セカンダリ モニターのデバイス名を取得する必要があります。ただし、単純にデバイス名を取得しようとすると、出力はDISPLAY1, DISPLAYV1and などになります。
ただし、ここで言及されている表示名のように、画面の解像度を確認するときに表示される名前が必要です。

まず、この文字列をどこから入手できるかわかりません。friendlyname少し読んでみると、それはデバイスのものだと思います。ただし、EnumDisplaySetting()Unhandled Exception: Could not access memory locationを呼び出すと、この関数が呼び出されたときに私に与えられているので、わかりません。そのため、フレンドリ名が正確に何であるかを確認できませんでした。そして、未処理の例外は、DISPLAY_DEVICE 内の driverextra の DISPLAY_DEVICE へのメモリの不適切な割り当てが原因であると考えています。これは次の理由によるものだと思います。
iModeNum がディスプレイ デバイスの最後のグラフィック モードのインデックスより大きい場合、関数は失敗します。
ここで述べた
また、同じリンクで言及されているように、DISPLAY_DEVICE-> dmDriverExtraに割り当てる必要があるメモリの量もわかりませんでした。
EnumDisplaySettings を呼び出す前に、dmSize メンバーを sizeof(DEVMODE) に設定し、dmDriverExtra メンバーを設定して、プライベート ドライバー データの受信に使用できる追加領域のサイズ (バイト単位) を示します。
だから私の質問は多様です:
1) dmDriverExtra にどのくらいのメモリを割り当てる必要がありますか?
2) Friendlyname は、画面解像度の [表示] タブで提供される名前にアクセスするために必要な正しいパラメーターです。または、他のパラメーターが必要でない場合はどうすればよいですか?
3) この未処理の例外は、メモリ割り当てが不適切なために発生したものですか、それとも他の理由がありますか?
4) セカンダリ モニターのフレンドリーネームにアクセスする他の方法はありますか?