1

ここまでで、リモート デスクトップ接続用の AxMsTscAxNotSafeForScripting クラスを使用してアプリを作成しました。すべてが魅力のように機能します!ここで必要なのは、接続時に特定のアプリケーションを起動するようにこのオブジェクトを構成することです。

コードを見てみましょう

AxMsTscAxNotSafeForScripting rpd = new AxMsTscAxNotSafeForScripting();
var client = (IMsRdpClient7)rdp.GetOcx();
client.RemoteProgram2.RemoteProgramMode = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).DisplayConnectionBar = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).ConnectionBarShowPinButton = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).BitmapVirtualCache32BppSize = 48;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).ConnectionBarShowRestoreButton = false;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).ConnectionBarShowMinimizeButton = true;

((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).EnableWindowsKey = 1;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).GrabFocusOnConnect = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).RedirectDrives = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).RedirectClipboard = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).RedirectPrinters = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).RedirectPOSDevices = true;

rdp.Server = txtServer.Text;
rdp.UserName = txtUserName.Text;
IMsTscNonScriptable secured = (IMsTscNonScriptable)rdp.GetOcx();
secured.ClearTextPassword = txtPassword.Text;
rdp.FullScreenTitle = "Full Screen";
rdp.SecuredSettings.FullScreen = 1;
rdp.SecuredSettings.StartProgram = @"c:\windows\System32\calc.exe";
rdp.Connect();

これをすべて実行した後、接続された画面が表示されますが、全体が黒い画面です。次に、3 行目にコメントを付けます。 //client.RemoteProgram.RemoteProgramMode = true;

これにより、正しいコンピューターに接続された画面が表示されますが、アプリケーションは表示されません。

このコードを追加して、rdp_OnConnected イベントも試しました。

((ITSRemoteProgram)((IMsRdpClient7)rdp.GetOcx()).RemoteProgram2).ServerStartProgram(@"c:\windows\System32\calc.exe", null, @"C:\Windows\System32", false, "", false );

それでも何も起こりませんでした。

ここで何かお役に立てれば幸いです。

4

2 に答える 2

1

システムが win7 または xp の場合、レジストリを変更する必要があります。HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList: fDisabledAllowList最初の手順は、レジストリ キーを値に設定して、Windows 7 で RemoteApp を有効にすることです1。システムが win server 2008 の場合は、remoteapp manager を使用して remoteapp を許可リストに追加する必要があります。その後、ServerStartProgram 関数を使用できます。

于 2015-05-21T09:09:46.340 に答える
0

この行をコメントアウトすると、完全に機能します。

// client.RemoteProgram2.RemoteProgramMode = true;
于 2014-10-05T16:18:50.377 に答える