質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

11654閲覧

VS2015 C# リモートデスクトップ埋め込みについて

ssmm

総合スコア12

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2017/01/18 01:53

編集2017/01/18 02:59

###前提・実現したいこと

C#プログラムでリモートデスクトップ組み込みについて

C#アプリ内からリモートデスクトップ操作をさせる予定です。
以下の参考URLの通りコーディングしました。
※ソースは下記URLのサンプルコードとほぼ同じです。

▼参考URL
http://devlights.hatenablog.com/entry/20091120/p1

###発生している問題・エラーメッセージ

接続を試みても、何も起きず困っております。
エラーを吐くわけでもありません。

デバッグしてみると、
リモートする情報をRDPコントロールに渡すところで、
問題になっているようにも見えます。

その部分のウォッチ式が以下

advancedSettings.ClearTextPassword
error CS0154: get アクセサーがないため、プロパティまたはインデクサー 'IMsRdpClientAdvancedSettings.ClearTextPassword' をこのコンテキストで使用することはできません

気になったのは、この ClearTextPassword が
advancedSettingsの機能に存在しないところです。

###該当のソースコード

private void btn_Connect_Click(object sender, EventArgs e)
{
rdp.Server = txt_IP.Text;
rdp.UserName = txt_UserName.Text;
var advancedSettings = (rdp.AdvancedSettings as IMsRdpClientAdvancedSettings);
advancedSettings.ClearTextPassword = txt_Password.Text;
rdp.Connect();
}

###試したこと
リモート先のIP、ユーザー名、パスワードは確実に合っています。
Windows標準アクセサリのリモートデスクトップ接続では問題なく接続可能です。

また、違うサイトを参考にパスワード設定部分を以下のようにして検証→結果同じ現象。

IMsTscNonScriptable secured = (IMsTscNonScriptable)rdp.GetOcx();
secured.ClearTextPassword = txtPassword.Text;

===============================================
【重要】Windows7 & 8.1には問題なく接続可能。

▼参考URL
https://www.codeproject.com/Articles/43705/Remote-Desktop-using-C-NET

###補足情報(言語/FW/ツール等のバージョンなど)
Winedows7 Pro
Visual Studio 2015 C#
リモート先:Windows10 Pro

以下、ビルド時のメッセージです。

1>------ すべてのリビルド開始: プロジェクト:RemoteTest, 構成:Debug Any CPU ------
1> COM 参照 'MSTSCLib' は ActiveX コントロール 'AxMSTSCLib' の相互運用アセンブリですが、コンパイラによって /link フラグでリンクされるように設定されています。この COM 参照は参照として処理され、リンクされません。
1>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(2399,5): warning MSB3305: COM 参照 "MSTSCLib" をパス "C:\Windows\SysWOW64\mstscax.dll" から処理しています。'MsRdpClient4NotSafeForScripting.get_UIParentWindowHandle' の引数のうち少なくとも 1 つをランタイム マーシャラーでマーシャリングできません。 したがってこのような引数はポインターとして渡され、アンセーフ コードの使用が必要になります。



(同じような警告がずらずらーーーーっと)
1> RemoteTest -> C:\Users\test\Documents\Visual Studio 2015\Projects\RemoteTest\RemoteTest\bin\Debug\RemoteTest.exe
========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========

##その他
どんなことでも構いませんので、
情報を頂けると幸いです。

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

日本語サイトにない情報でしたので苦労しましたが、自己解決しました。

投稿2017/01/18 06:07

ssmm

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問