値を調べてモニターのデバイス名を見つけDEV_BROADCAST_DEVICEINTERFACE.dbcc_name
、関数内でそのデバイス名を使用しようとしていますEnumDisplaySettings()
(デバイス名はその関数の最初のパラメーターです)。
私の問題:関数EnumDisplaySettings()
は常に 0 を返します。つまり、失敗します。私のデバイス名は from であるのに対し、 MSDN は の最初のパラメータはEnumDisplaySettings()
a であるべきだと言っているので、失敗すると思います。DISPLAY_DEVICE.DeviceName returned from EnumDisplayDevices
DEV_BROADCAST_DEVICEINTERFACE.dbcc_name
を使用して、2 番目のモニターDEV_BROADCAST_DEVICEINTERFACE.dbcc_name
のデバイス名を取得しますが、デバイス名を取得します。\\?\DISPLAY#GSM3AD7#5&20a3f50d&0&UID513#{866519b5-3f07-4c97-b7df-24
c5d8a8ccb8}
EnumDisplayDevices()
\\.\DISPLAYV1
第 1 パラメーターが関数 DEV_BROADCAST_DEVICEINTERFACE.dbcc_name から取得されたデバイス名である EnumDisplaySettings() を使用することは可能ですか?
私が質問する理由は、2 台目のモニターがコンピューターに接続されたときに、そのモニターの表示設定を変更したいからです。しかし、モニター接続時に、DEV_BROADCAST_DEVICEINTERFACE.dbcc_name
(上で説明したように) そのデバイス名が通知されます。これは、まったく同じデバイスに対して EnumDisplayDevices() が返すものとは異なる名前です。そして、EnumDisplayDevices() を使用してすべてのディスプレイ デバイスを列挙することで、その 2 番目のモニターを特定する方法がわかりません。EnumDisplayDevices() を使用してすべてのディスプレイ デバイスを列挙し、コンピューターに接続されたばかりの正しいモニター/デバイスを特定する方法はありますか?