c#中如何设置多显示器的主屏幕
蓝天居士 《人工智能从入门到进阶实战》作者 博客专家认证 2015-12-01 03:25:51 项目中有要求能够设置主屏幕(目前是1台显示器,一台自己的设备),在网上查找资料,得到的绝大多数都是C++实现的,跑例程也确实能够跑通,但是网上C#的实现例程却不能实现此功能。
目前主要问题如下:
C#中调用C++ dll中的“ChangeDisplaySettingsEx”函数实现设置主屏幕功能,但是C++中最后一次调用“ChangeDisplaySettingsEx”函数提交修改的实现为:ChangeDisplaySettingsEx (NULL, NULL, NULL, 0, NULL);
这是与msdn上的说明对应的。
ChangeDisplaySettingsEx 函数原型为:
LONG ChangeDisplaySettingsEx(
_In_ LPCTSTR lpszDeviceName,
_In_ DEVMODE *lpDevMode,
HWND hwnd,
_In_ DWORD dwflags,
_In_ LPVOID lParam
);
其中第二个参数为结构体,在C#调用时似乎无法传入null(提示无法将null转换为DEVMODE类型),而此参数如果不传null,提交修改的功能应该无法实现(已经在C++中试过)。
不知是否有人用C#实现过设置主屏幕功能,请提供帮助。非常感谢。