Используя функцию Windows API CreateDesktopA
Я создал жизненно важный рабочий стол и запустил в нем свое приложение.
Я удивлюсь, если что-нибудь ограничит доступ ко всем остальным приложениямдоступ к виртуальному рабочему столу.Другими словами, только упомянутые приложения увидят / получат доступ к виртуальному рабочему столу.
Код для создания рабочего стола и запуска c # winform:
static void Main()
{
IntPtr hOldDesktop = GetThreadDesktop(GetCurrentThreadId());
SECURITY_ATTRIBUTES sa = new SECURITY_ATTRIBUTES();
sa.bInheritHandle = 1;
sa.nLength = Marshal.SizeOf(sa);
IntPtr hNewDesktop = CreateDesktopExA("myDesktop", IntPtr.Zero, IntPtr.Zero, 0, (uint)DESKTOP_ACCESS.GENERIC_ALL, ref sa);
SwitchDesktop(hNewDesktop);
string passwd = "";
Task.Factory.StartNew(() =>
{
SetThreadDesktop(hNewDesktop);
Form loginWnd = new Form();
TextBox passwordTextBox = new TextBox();
passwordTextBox.Location = new Point(10, 30);
passwordTextBox.Width = 250;
passwordTextBox.Font = new Font("Arial", 20, FontStyle.Regular);
loginWnd.Controls.Add(passwordTextBox);
Application.Run(loginWnd);
}).Wait();
SwitchDesktop(hOldDesktop);
CloseDesktop(hNewDesktop);
}