Я пишу небольшую программу, которая создает новый рабочий стол Windows, переключается на него и ждет пару секунд, а затем переключается обратно на исходный рабочий стол. Мне удалось создать новый рабочий стол и переключиться на него, но я не вернулся к исходному. Я использую Win32 API в C # и импортирую библиотеки DLL. Я думал, что GetDesktopWindow () вернул бы меня к исходному рабочему столу, но у меня он не работает.
Вот фрагмент кода, который я пытаюсь заставить работать.
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);
}