現在のセッションで表示デバイスに関する情報を取得できるEnumDisplayDevicesを使用しています。
しかし、セッションに関係なく、ディスプレイ デバイスに関する情報が必要です。私はいくつかのWindowsサービスアプリケーション(システムプロセス)を作成しているためです。
このコードの代替案を知っている人はいますか:
vncDesktop::GetNrMonitors()
{
if(OSversion()==3 || OSversion()==5) return 1;
int i;
int j=0;
helper::DynamicFn<pEnumDisplayDevices> pd("USER32","EnumDisplayDevicesA"); // it's EnumDisplayDevices function
if (pd.isValid())
{
DISPLAY_DEVICE dd;
ZeroMemory(&dd, sizeof(dd));
dd.cb = sizeof(dd);
for (i=0; (*pd)(NULL, i, &dd, 0); i++)
{
if (dd.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP)
if (!(dd.StateFlags & DISPLAY_DEVICE_MIRRORING_DRIVER))j++;
}
}
return j;
}
前もって感謝します!