ショートカットを使用せずにビデオ ドライバーをリセットする方法 (CTRL + SHIFT + WIN + B)

ショートカットを使用せずにビデオ ドライバーをリセットする方法 (CTRL + SHIFT + WIN + B)

ARM32 を実行している Windows 10 マシンのビデオ ドライバーをリセットする必要があります。従来の一般的なショートカット (CTRL + SHIFT + WIN + B) は機能します。はい。期待どおりに 1 回のビープ音が鳴りますが、キーボードが常に存在するとは限らないため、ソフトウェアでこれを行う必要があります。

すでに試しました:

  • Powershell を使用して Windows にキーを送信する (2 つの方法)
  • Visual C++ アプリを使用して Windows にキーを送信する
  • キーの組み合わせを送信するSendkeysアプリユーティリティ
  • Devcon? 以下をお読みください
  • PnpUtil (下記参照)

これらはすべて Windows では動作します (テスト済み) が、Windows ARM32 では動作せず、エラー メッセージも表示されません。Windows ARM の dll またはライブラリがこれらの機能を許可していない可能性があります。他の開発スレッドで見つけたところによると、完全な機能は備えておらず、一部の場所 (公式) では実験的なものにさえ言及されています。結局のところ、Windows 10 (32 ビット) は公式にリリースされたことがなく、Windows x64 ARM のみでした。

さまざまな方法を試してきましたが、どの方法も、小さな exe ファイルを作成するためにギガバイト単位のデータとライブラリをダウンロードする必要があり、最終的には実行時にどこにも見つからない 1、2、3 個の追加ファイルが要求され、見つかったとしても数時間後には機能しません。

Devcon.exe: このコマンド ライン ユーティリティで問題が解決するはずですが、見つかりません。ARM32 用が必要なのですが、リンクが 1 つも見つかりません。ソース コードは見つかりましたが、VS++ のチューニングに何時間も費やし、見つけた不可解なチュートリアルも結局は、ARM32 用にビルドしてコンパイルしようとするたびに、常に新しいエラーが発生します。この問題は Windows Driver Kit に関連しており、コンパイルに問題を抱えている人々のスレッドが Web 上に多数見つかりました。WDK に含まれていると記載されていますが、差分セットをダウンロードした後、そこにはありませんでした。x86 および x64 へのリンクはいくつかありますが、ARM32 へのリンクはありません。Microsoft の公式ドキュメントには、WDK、Visual Studio、および Windows SDK for desktop をインストールする方法が記載されていますが、これを実行した後... (ダウンロード、インストール、検索に何時間も費やしましたが)、コンピューターのどこにも見つかりませんでした。

PnPユーティリティ: オプション restart-device は機能するはずです。これは文書化されており、2004 年以降のすべての Windows に存在します (MS のドキュメントによる)。ただし、実際には、.exe は存在しますが (Windows 上)、この機能 (restart-device) がないため、私の目的には機能しません。

どのような助けでもいただければ幸いです。

答え1

答えを見つけたのでこの質問を更新しています。他の人にも役立つことを願っています。適切な権限と特権があれば、Powershell を使用してビデオ ドライバー/ディスプレイを「リセット」するのは簡単です。方法は次の通りです。

$d = Get-PnpDevice| where {$_.friendlyname -like "NAME-OF-THE-DEVICE*"};
$d  | Disable-PnpDevice -Confirm:$false;
$d  | Enable-PnpDevice -Confirm:$false

これにより、デバイスが無効になり、その後再び有効になり、完全なリセットが行われます。コンピューターによっては、画面が点滅したり (点滅しない場合もあります)、「新しいハードウェアが検出されました」という音が鳴る場合があります。

なぜこれが必要だったのでしょうか? Windows 10 にアップグレードされた Surface RT1 および Surface RT2 には、電源を入れてから数分後に明るさのコントロールが無効になる問題があり、これは公式の未リリースの Windows バージョンのバグです。ここで説明した内容は機能し、明るさのコントロールを完全に有効にします。これは、ビデオ ドライバー、またはディスプレイ (デバイス) のみを無効/有効にすることで実現できます。説明したように、一方は点滅を引き起こし、もう一方は点滅を引き起こしません。場合によっては、最初に PowerShell スクリプトの権限を昇格する必要があるかもしれません。

また、コード (C#) または sendkeys や C++ を使用した他のライブラリを介してこれを実現する他の方法も見つけましたが、少し面倒でした。Powershell スクリプトで簡単に解決し、起動時にトリガーされるカスタムのスケジュールされたタスクを追加しました。

それでおしまい。

関連情報