2

私は、アプリケーションが削除デスクトップ (RDP プロトコル) に自動的に接続する必要があるプロジェクトで作業しています。このために、mstscax.dll を使用する Delphi のライブラリ MSTSCLib_TLB を使用しています。問題は、Windows が接続が ActiveX コントロールからのものであると識別し、次の警告を表示することです。

ここに画像の説明を入力

この警告により、サーバーでの自動接続が困難になっています。

注:「Web サイトがリモート接続を開始しようとしています」、実行可能ファイルからこれを行っているときに...このメッセージについてインターネットで読み、Windows レジストリでいくつかの解決策を試しましたが、どれも問題を解決しませんでした. Windows レジストリでこの警告の表示を停止する解決策は受け入れますが、プログラムによる解決策を好みます。IObjectSafety を使用して ActiveX オブジェクトに署名し、SetInterfaceSafetyOptions を「INTERFACESAFE_FOR_UNTRUSTED_CALLER」に設定するという提案を見ましたが、これが何を意味し、どのようにそれを達成するかについてはわかりません。

私のアプリケーションは Delphi でコーディングされており、Windows 10 を使用しています。これまでのコードは次のとおりです。

procedure TForm1.Button1Click(Sender: TObject);
var
  Client: TMsRdpClient9;
begin
  Client:= TMsRdpClient9.Create(Self);
  Client.Parent:= Self; //dont know why, but this ActiveX control needs a parent
  Client.Server:= Edit1.Text;
  Client.UserName:= Edit2.Text;
  Client.AdvancedSettings9.ClearTextPassword:= Edit3.Text;
  Client.OnLoginComplete:= LoginComplete;
  Client.Connect;
end;
4

2 に答える 2

1

user3810691 が提供する回答の本質は、C# WinForms でも機能します。[COM コンポーネント] タブ ([ツールボックス アイテムの選択]) で、次のように移動します。

Microsoft RDP クライアント コントロール - バージョン 10

それ以外の:

Microsoft RDP クライアント コントロール (再頒布可能) - バージョン 10

これにより、「スクリプトを実行するのは安全ではありません」バージョン 9 (sic!) コントロール タイプが得られます。

AxMSTSCLib.AxMsRdpClient9NotSafeForScripting

于 2017-11-03T04:38:23.803 に答える