Можно ли разрешить некоторым конкретным приложениям получить доступ к рабочему столу, созданному функцией CreateDesktopA - PullRequest
0 голосов
/ 28 мая 2019

Используя функцию 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...