Как отключить функцию поддержки фокусировки в Windows 10? - PullRequest
0 голосов
/ 07 ноября 2019

Я использую C # WinForms для создания наложения. Наложение должно быть того же размера, что и (или больше) текущего экрана. Тем не менее, он не должен включать функцию «помощи при фокусировке».

Я пытался использовать FormWindowState.Maximized и P / Invoke MoveWindow, но как только форма становится такого же размера (или больше) экранаРазмер, тогда помощь при фокусировке включена.

Это код, который у меня есть на данный момент:

Конструктор оверлейной формы

this.DoubleBuffered = true;
this.SetStyle(ControlStyles.OptimizedDoubleBuffer |
    ControlStyles.DoubleBuffer |
    ControlStyles.UserPaint |
    ControlStyles.AllPaintingInWmPaint |
    ControlStyles.SupportsTransparentBackColor, true);

SetWindowLong(this.Handle, GWL_EXSTYLE, (IntPtr)(GetWindowLong(this.Handle, GWL_EXSTYLE) | WS_EX_LAYERED | WS_EX_TRANSPARENT | WS_EX_NOACTIVATE));
SetLayeredWindowAttributes(this.Handle, 0, 128, LWA_ALPHA);
this.TopMost = true;
this.WindowState = FormWindowState.Maximized;

MoveWindow

Screen screen = Screen.FromPoint(Cursor.Position);
MoveWindow(this.Handle, screen.Bounds.X, screen.Bounds.Y, screen.Bounds.Width, screen.Bounds.Height, true);

Если есть какой-либо способ отключить эту функцию, я еще не нашел ее. Любые идеи будут оценены.

1 Ответ

1 голос
/ 07 ноября 2019

В настоящее время нет способа программно включить / отключить Focus Assist.

Есть несколько хаков , но я не буду рекомендовать их использовать.

...