20

Windows サービス (c#) またはラップトップを自動的に (起動時またはキーの組み合わせで) スクリーン ミラーリング用の MS ワイヤレス ディスプレイ アダプターに接続する powershell スクリプトを作成したいと考えています。Windows 10 では、通知に移動し、[接続] > [MS ワイヤレス アダプター] > [接続] をクリックして、手動でのみ行うことができます。

私が見つけたのは、Miracast APIがあるということですが、その使用方法に関するドキュメントはあまりありません。

MiraDisp.dllにもこのドキュメントがあり、OpenMiracastSession と CloseMiracastSession の 2 つの関数があります。

問題は、これらの関数を C# で使用する方法がわからないことです。おそらく pInvoke を使用する必要があることはわかっています。誰かが私を正しい方向に向けることができますか?

4

6 に答える 6

8

まず、@jaredbaszler が本当に優れたソリューションを提供してくれたと言いたいです。それは魅力のように働きました:)

これを行う別の方法があるかどうかを知りたかったので、私も AutoHotkey をいじっていました。しばらくして、次のスクリプトを思いつきました。

Send #k ; Sends Windows button + K to open the Action Center Connect window
Sleep, 3000 ; Wait some time so the wireless display dongle can be found
Send {Enter} ; Send ENTER key to connect to wireless display dongle (works when only 1 is found)
Send {Esc} ; Send ESC key to close the Action Center Connect window

Ok。次に、このスクリプトがどのように機能するかを説明しましょう。

  1. 最初に WIN+K を押すと、Action Center Connect ウィンドウが開きます
  2. 次に、ワイヤレス ディスプレイ ドングルが見つかるまで 3 秒間待機します (この値は自由に調整できますが、ワイヤレス ディスプレイ ドングルが表示されるまで 2 秒以上待つ必要がありました)。
  3. 待機後、ENTER を押すと、リスト内の最初のワイヤレス ディスプレイ ドングルが自動的に選択され、接続機能がトリガーされます (ワイヤレス ディスプレイ ドングルが見つからない場合、デフォルト ブラウザは「ヘルプ」リンクを開きます)。
  4. スクリプトが最後に行うことは、ESC キーを押してアクション センターを閉じることです。

まあ、それだけです。それは特別なことではありませんが、うまくいきます。このスクリプトをタブレットとワイヤレス ディスプレイ ドングル (ここにある) で数回テストしたところ、問題なく動作するようです。残念ながら、複数のワイヤレス ディスプレイ ドングルを同時に実行している場合、私のスクリプトは最初に表示されたドングルを選択するだけなので、期待どおりに動作しません。(私はワイヤレス ディスプレイ ドングルを 1 つしか持っていないので、これは問題ではありません)

于 2016-04-22T13:16:05.477 に答える
2

質問は少し古いですが、現在私は同じ問題に直面しています。

高度なキャスト サンプルProjectionManagerのサンプル 5 + 6 に従って、クラスを利用する UWP アプリを作成することをお勧めします。

基本的な手順は次のとおりです。

  • DeviceID を取得する (たとえば、DevicePickerクラスで選択することによって)
  • ProjectionManager.StartProjectingAsync(newViewId, currentViewId, selectedDeviceInformation)投影開始の呼び出し

DeviceInformationオブジェクトは、取得 (および保存) された deviceId を使用して呼び出すことで取得できますDeviceInformation.CreateFromIdAsync()。viewIds が 0 (またはその他の無効な値) に設定されている可能性がありますが、投影はとにかく開始されます。

投影が開始された場合、アプリを閉じることができます。投影は引き続き有効です。

誰かがソリューションに興味を持っている場合は、コードを GitHub にアップロードします。

于 2019-07-21T16:55:47.957 に答える