Как установить, что окно стороннего процесса активно - C#
Формулировка задачи:
Если теряется его фокус (к примеру во время выполнения стороннего процесса юзер нажимает какую-то кнопку) это приводит к хаосу. т.к. в стороннем приложении имитируются нажатия клавиатуры.
Поэтому намереваюсь перед каждой имитацией нажатия клавиш проверять, активно ли стороннее запускаемое приложение.
Что для этого надо определить? Предполагаю, что его фокус (активен ли он), но где его искать?
Вначале:
Затем:
Как мне дальше определить в процессе запуска Prilogenie, активно ли в данный момент его окно или нет?
System.Diagnostics.Process Prilogenie = new System.Diagnostics.Process();
Priligenie.start();
Решение задачи: «Как установить, что окно стороннего процесса активно»
textual
Листинг программы
[DllImport("USER32.DLL", CharSet = CharSet.Unicode)] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("USER32.DLL")] public static extern bool SetForegroundWindow(IntPtr hWnd); private void button3_Click(object sender, EventArgs e) { IntPtr DialogHandle = FindWindow("MozillaWindowClass", "Google - Mozilla Firefox"); if (DialogHandle == IntPtr.Zero) { MessageBox.Show("Window is not running."); return; } SetForegroundWindow(DialogHandle); SendKeys.Send("^W"); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д