【发布时间】:2011-11-16 21:14:36
【问题描述】:
我正在编写一个小程序来创建一个新的 Windows 桌面,切换到它并等待几秒钟,然后切换回原来的桌面。我已经设法创建并切换到新桌面,但没有再回到原来的桌面。我在 C# 中使用 win32 API 并导入 DLL。我认为 GetDesktopWindow() 可以让我获得原始桌面的句柄,但它对我不起作用。
这是我要开始工作的代码 sn-p。
public IntPtr createDesktop(string name)
{
return CreateDesktop(name, IntPtr.Zero, IntPtr.Zero, 0, (long)DESKTOP_ACCESS_MASK.GENERIC_ALL, IntPtr.Zero);
}
public IntPtr getCurrentDesktop()
{
return GetDesktopWindow();
}
public void switchDesktop(IntPtr desktop)
{
SwitchDesktop(desktop);
}
main()
{
IntPtr newDesktop = createDesktop("Test");
IntPtr oldDesktop = getCurrentDesktop();
switchDesktop(newDesktop);
switchDesktop(oldDesktop);
}
【问题讨论】: