c# вывести форму на передний план в Windows Назначенный доступ - PullRequest
0 голосов
/ 27 января 2020

Я настроил локальную Windows учетную запись с multi App Kiosk . В фоновом режиме работает служба, которая определяет, как долго пользователь находится в режиме ожидания (без ввода в течение определенного периода времени). Незадолго до истечения времени (5 минут) я хочу показать диалоговое окно, информирующее пользователя о необходимости что-то сделать, иначе пользователь автоматически выйдет из системы.

Мне удалось запустить этот диалог, но форма всегда придерживается фон. Я пробовал это:

protected override void OnLoad(EventArgs e)
{
    TopMost = true;
    WindowState = FormWindowState.Maximized;
    Show();
    Focus();
    BringToFront();
    SetWindowPos(this.Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS);
}

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);

private static readonly IntPtr HWND_TOPMOST = new IntPtr(-1);
private const UInt32 SWP_NOSIZE = 0x0001;
private const UInt32 SWP_NOMOVE = 0x0002;
private const UInt32 TOPMOST_FLAGS = SWP_NOMOVE | SWP_NOSIZE;

Но это не работает.

Есть ли способ решить эту проблему?

...