Как установить, что окно стороннего процесса активно - C#

Узнай цену своей работы

Формулировка задачи:

Если теряется его фокус (к примеру во время выполнения стороннего процесса юзер нажимает какую-то кнопку) это приводит к хаосу. т.к. в стороннем приложении имитируются нажатия клавиатуры. Поэтому намереваюсь перед каждой имитацией нажатия клавиш проверять, активно ли стороннее запускаемое приложение. Что для этого надо определить? Предполагаю, что его фокус (активен ли он), но где его искать? Вначале:
System.Diagnostics.Process Prilogenie = new System.Diagnostics.Process();
Затем:
Priligenie.start();
Как мне дальше определить в процессе запуска Prilogenie, активно ли в данный момент его окно или нет?

Решение задачи: «Как установить, что окно стороннего процесса активно»

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");
         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы