|
現: 2024-07-31 (水) 17:42:38 yuji |
| + | * 仮想ディスプレイドライバー [#nc388600] |
| + | TeamViewerやVNC等のリモートデスクトップ環境を使用するときに,操作されるPCに接続しているディスプレイの電源をOffしたり,ディスプレイを接続していない場合,操作する側のPCにリモート画面が表示されない場合やリモート接続出来ない場合がある。~ |
| | | |
| + | TeamViewerやVNC等のリモートデスクトップのソフトウェアは,ディスプレイアダプターに送られる表示データを,操作する側のPCにネットワークを経由して転送することで画像を表示している。~ |
| + | |
| + | ディスプレイの電源をOffしたり接続しない場合,PCのディスプレイアダプターが動作しなくなったり,表示するディスプレイが無いことでビデオ・デバイスドライバーが表示データをVRAM(表示用のメモリー)に転送しなくなったりするPCがある。~ |
| + | |
| + | このようなPCでTeamViewerやVNC等のリモートデスクトップ環境ソフトウェアを使用すると,画像データが操作する側のPCに転送されなくなり,その結果画面が表示されなくなる。~ |
| + | |
| + | この対策として,ディスプレイを接続する代わりに[[ダミーディスプレイプラグ>https://amzn.to/4b3mW99]]と呼ばれるものをPCに接続して,ディスプレイが接続されているようにごまかす小道具が販売されている。~ |
| + | |
| + | また,仮想ディスプレイドライバーという特殊なビデオ・デバイスドライバーを使って,ディスプレイが接続されているようにごまかすことで,ダミーディスプレイプラグと同様な効果が得ることもできるようだ。~ |
| + | |
| + | ** Windowsに仮想ディスプレイドライバーをインストール [#q7329b4b] |
| + | Microsoftの情報で[[Indirect Display Driver (IDD)>https://learn.microsoft.com/ja-jp/windows-hardware/drivers/display/indirect-display-driver-model-overview]]というのを使うと,どうも仮想ディスプレイドライバー(ユーザーモード)が作成できるらしい。~ |
| + | |
| + | Indirect Display Driver (IDD)のサンプルとして作成された仮想ディスプレイドライバーを見つけたのでWindows 10/11へインストールしてみたら,うまく仮想ディスプレイとして使用できた。~ |
| + | |
| + | *** IddSampleDriver 仮想ディスプレイドライバーのインストール [#u1a0da7d] |
| + | [[こちらのサイト>https://github.com/ge9/IddSampleDriver]]の[[Releaseページ>https://github.com/ge9/IddSampleDriver/releases]]から''IddSampleDriver.zip''ファイルがダウンロードできる。~ |
| + | |
| + | インストールは以下のようにした。~ |
| + | - ダウンロードしたファイルを任意のディレクトリに解凍する。~ |
| + | ''C:\iddsampledriver''ディレクトリに解凍した。~ |
| + | 仮想ディスプレイドライバーやそのデバイスドライバーが使用する解像度定義ファイルなどがある。~ |
| + | ''option.txt''の1行目に仮想ディスプレイの個数を定義して,その後利用できる解像度を定義してある。~ |
| + | またこのデバイスドライバーは自己デジタル署名されているので,自己電子証明書を証明書ストアに登録するためのBATファイルが入っている。~ |
| + | - 管理者権限でコマンドプロンプトを起動する。~ |
| + | 以下のようにして,自己電子証明書を証明書ストアの信頼された発行元に登録する。~ |
| + | > cd c:\iddsampledriver |
| + | > installCert.bat |
| + | - コントロールパネル>デバイスマネージャーを起動する。~ |
| + | - 「ディスプレイ アダプター」をクリックする。~ |
| + | - メニューの操作>''レガシ ハードウェアの追加''をクリック。~ |
| + | - ハードウェアの追加のウィザードが開始されるので,次へをクリック。~ |
| + | - 一覧から選択したハードウェアを選択するにマークして,次へをクリック。~ |
| + | - ディスプレイアダプターを選択して,次へをクリック。~ |
| + | - ディスク使用ボタンをクリックする。~ |
| + | - 参照ボタンを押して,デバイスドライバーがある''c:\iddsampledriver''を選択して,開くをクリック。~ |
| + | - OKボタンをクリックする。~ |
| + | |
| + | これで仮想ディスプレイドライバーがインストールされた。~ |
| + | |
| + | デバイスマネージャーのディスプレイアダプターに''lddSampleDriver Device''があり,正常に動作しているのを確認しておく。~ |
| + | |
| + | *** Amyuni仮想ディスプレイドライバー [#v2a219a1] |
| + | 上記以外にWindows 10用の仮想ディスプレイドライバーとして,[[加Amyuni Technologies>https://www.amyuni.com/]]から配布されているものがある。~ |
| + | |
| + | [[こちら>https://www.amyuni.com/downloads/usbmmidd_v2.zip]]から''usbmmidd_v2.zip''ファイルをダウンロードして,任意のディレクトリに解凍する。~ |
| + | |
| + | 管理者権限でコマンドプロンプトを起動して,解凍したディレクトリを開く。~ |
| + | > deviceinstaller64 usbmmidd.inf |
| + | この仮想ディスプレイドライバーはAmyuni Technologies Inc.によってデジタル署名されている。(32bit版Windowsの場合は,deviceinstallerコマンドを使用する。~)~ |
| + | |
| + | 代わりに, |
| + | > usbmidd.bat |
| + | でもインストールできる。~ |
| + | |
| + | 仮想ディスプレイを1個有効にする。~ |
| + | > deviceinstaller64 enableidd 1 |
| + | 同様にして,最大4個のディスプレイを有効にできる。~ |
| + | |
| + | これで,仮想ディスプレイ(デフォルト解像度は,1980x1080)が使えるようになる。~ |
| + | 解像度の設定は以下のレジストリで設定出来る。~ |
| + | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF\Services\usbmmIdd\Parameters\Monitors |
| + | 最大10個の解像度の設定(キー: 0~9)が設定できて,(default)がデフォルト設定になる。~ |
| + | |
| + | 仮想ディスプレイを非有効化したい場合は,~ |
| + | > deviceinstaller64 enableidd 0 |
| + | とする。複数の仮想ディスプレイを追加した場合は,複数回実行する。~ |
| + | |
| + | この仮想ディスプレイドライバーを削除するには,デバイスマネージャーで''USB Mobile Monitor Virtual Display''をアンインストールするか,以下のコマンドでアンインストールする。~ |
| + | > deviceinstaller64 stop usbmmidd |
| + | > deviceinstaller64 remove usbmmid |
| + | |
| + | *** その他の仮想ディスプレイドライバー [#t3ee2663] |
| + | リモートデスクトップ環境のVNCの一つであるUltraVNCのインストール時に,Windows 10用の仮想ディスプレイドライバー''UVncVirtualDisplay''をインストールすることが出来る。 |
| + | 通常この仮想ディスプレイドライバーは,UltraVNC Viewerを使ってリモート接続する時にオプション設定により利用できるようになるので,他のアプリケーションからでは使用できない。~ |
| + | |
| + | また,Windows 10 Proなどで使用できるリモートデスクトップ(RDP)では,''Microsoft Remote Display Adapter''という仮想ディスプレイドライバーが使用されている。~ |
| + | こちらの仮想ディスプレイドライバーもリモートデスクトップ接続する時のみ使われるので,VNCやTeamViwerや他のアプリケーションからは使用できない。~ |
| + | |
| + | もしかしたらこれらの仮想ディスプレイドライバーも「レガシ ハードウェアの追加」からインストールできるのかも・・・~ |
| + | と思いデバイスマネージャーの「レガシ ハードウェアの追加」を使ってデバイスドライバーがインストールできるか試してみたところ,UltraVNCのUVncVirtualDisplay(デジタル署名されている)は問題なくインストール出来ました。~ |
| + | また,WinGetからでもインストールできる。~ |
| + | > winget list ultravnc |
| + | 名前 ID バージョン ソース |
| + | UltraVNC uvncbvba.UltraVnc 1.4.3.6 winget |
| + | |
| + | 物理ディスプレイ+IddSampleDriver+UVncVirtualDisplayの3モニターで使えた :) |
| + | |
| + | * 仮想ディスプレイドライバーを使ってみる [#ud2aaacc] |
| + | ** VNCやTeamViewerで使ってみる [#o09d480c] |
| + | Windowsの設定のディスプレイを開くと,2個目などに仮想ディスプレイが追加されているのが確認できる。~ |
| + | #ref(vertualdisp.png,,30%) |
| + | 設定から表示の動作モードを切り替えることが出来る。~ |
| + | - 表示画面を複製する。~ |
| + | メインのディスプレイと同じ表示を行うモード(プロジェクターなんかでよく使う)。~ |
| + | メインディスプレイの電源をOffにした状態でVNCやTeamViewerを使ってリモート接続するような場合は,このモードにしておくと良いと思われる。~ |
| + | メインのディスプレイがOffになっても,追加した仮想ディスプレイはOnなので表示データが描画されることで,TeamViewerやVNCで操作する側の画面に表示データを転送できるようになる。~ |
| + | - 表示画面を拡張する。~ |
| + | 追加した仮想ディスプレイをメインディスプレイの横に配置して,両方のディスプレイを使用するモード。~ |
| + | 追加したのは仮想ディスプレイなので,追加したPCでは実際に表示を見ることは当然出来ない。~ |
| + | - 1のみの表示。~ |
| + | メインディスプレイのみ使用するモード。つまり仮想ディスプレイは使わない。~ |
| + | - 2のみの表示。~ |
| + | 追加した仮想ディスプレイのみ使用するモード。このモードにした瞬間,PCで何も表示されなくなる。~ |
| + | このモードでもVNCやTeamViewerで操作する側の画面に表示データを転送できる。~ |
| + | |
| + | ''Windows+Pキー''でこれらのモードを押すことで設定が循環で切り替え出来るので,仮想ディスプレイのみにした場合でも,あとで''Windows+Pキー''を数回押すことで,メインディスプレイの表示に復帰することが出来る。~ |
| + | |
| + | ** プレゼンするときに使ってみる [#b79aae47] |
| + | Microsoft TeamsやZoomなんかでPowerPointを使ってプレゼンとかする場合,発表者ツールを使いたい場合は通常2つのディスプレイが必要になる。~ |
| + | |
| + | そこで2つ目のディスプレイとして仮想ディスプレイドライバーを使うことが出来る。~ |
| + | この場合はWindowsのディスプレイの動作モードを''表示画面を拡張する''で使用する。~ |
| + | |
| + | この状態でPowerPointを起動して開発者ツールを使ってスライド表示すると,メイン画面に開発者ツールの画面,拡張した画面(仮想ディスプレイ)にプレゼン用のスライドが表示される。~ |
| + | |
| + | なので,Microsoft TeamsやZoomなんかでプレゼン用のスライドが表示されている仮想ディスプレイドライバーの画面を共有することで,発表者ツールを使ってプレゼンを行うことが出来る。~ |