4

c#を使用してリモートデスクトップからサーバーにログインしようとしています。AxMSTSCLibと以下のコードを使用して接続を開始できます。しかし、私はドメインのセキュリティ通知に固執しています。

手動でログインする場合は、ログインが完了する前に通知をクリックして[OK]をクリックする必要があります。とにかく、アプリケーションを介してこの[OK]ボタンを操作する方法を見つけることができませんでした。SendKeys相互運用サービスを使用してキーイベントを送信し、カーソル位置を見つけてマウスクリックイベントを送信する、のバリエーションを試しました...

ここでアイデアが不足しています。

rdp.Server = server;
rdp.Domain = domain;
rdp.UserName = userName;

IMsTscNonScriptable secured = (IMsTscNonScriptable)rdp.GetOcx();
secured.ClearTextPassword = password;
rdp.StartConnected = 1;

rdp.Connect();

ありがとう

4

2 に答える 2

2

さて、あなたが求めることをする方法があります。Windows 7 Embedded Standard( WES7 wSP1 )のコピーをダウンロードする必要があります。WES7には、他のエディションのWindows7にはないもの(ダイアログフィルター)が含まれています。これはサービスとして実行され、ユーザーの操作なしで自動的に実行される特定のウィンドウイベントを指定できます。

Dialog Filter Editorは、Windows EmbeddedStandard7ツールとともにEmbeddedSDK\binフォルダーにインストールされます。

あなたがしなければならないのは:

  1. 必要なダイアログフィルターファイルをC:\ Windows \ System32にコピーして、Windowsにサービスを追加します。x86とx64のバージョンがあるため、正しいアーキテクチャを選択してください。

  2. ファイルを登録し、サービスが自動的に実行されるようにします。

  3. エディターで作成したConfigurationList.xmlファイルをC:\ ProgramData \ Microsoft\DialogFilterに追加します。この場所はdefeaultによって隠されているため、Windowsエクスプローラーで隠しファイルを表示し、保護されたシステムファイルを再表示してください。

私は実際にConfigurationList.xmlファイルをすでに作成しているので、次のコードをコピーして「ConfigurationList.xml」として保存するだけです。

<?xml version="1.0" encoding="utf-8"?> 
<CL:dialogs xmlns:CL="urn:Dialogs"> 
    <dialog> 
    <ProcessImageName>rundll32.exe</ProcessImageName> 
    <Title>Remote Desktop Connection</Title> 
    <Class>#32770</Class> 
    <Buttons> 
      <Button>OK</Button> 
      <Button>Cancel</Button> 
      <Button>Close</Button> 
    </Buttons> 
    <Actions> 
      <Action>OK</Action> 
    </Actions> 
  </dialog> 
</CL:dialogs>

ご覧のとおり、アクションは、RDP接続を確立するときにポップアップするRDPダイアログで[ OK]ボタンを自動的に押すように設定されています。

MSから直接ダイアログフィルターに関する詳細情報: https ://msdn.microsoft.com/en-US/library/ff794135(v = winembedded.60).aspx

于 2015-11-05T09:42:52.380 に答える
1

これを行うためのはるかに簡単な方法を見つけました。ClickOffと呼ばれる無料の小さなアプリがあります。これは、Windows Embedded Standard7DialogFilterと非常によく似た方法で機能します

ClickOffv1.90こちらからダウンロードできます。

ClickOffをインストールした後、キャプチャするウィンドウと、その中のクリックするボタンを定義できます。唯一のことは、スタートアップアプリに追加する必要があるということです。

30秒のRDPタイムアウトポップアップウィンドウで[OK]をクリックするclickoff.lstファイルを既に作成しました。ファイルはC:\ Users \ USERNAME \ AppData \ Roaming\ClickOffに配置する必要があります。ファイルの内容は次のとおりです。

1.900
WINDOWTITLE="Remote Desktop Connection" BUTTONTEXT="OK" MSGTEXT="CompName\\UserName wants to connect to this machine.\r\n\r\nClick OK to disconnect your session immediately or click cancel to stay connected.\r\n\r\nOtherwise, you will be disconnected in 30 seconds." BUTTONID="1" MSGID="65535" DLGID="0" CLKEVENT="17" CLKMETHOD="3" TIMESCLICKED="0" WAIT="0" BPOSX="0" BPOSY="0" ;

乾杯。

于 2016-03-03T15:45:02.343 に答える