Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
1 / 1 / 0
Регистрация: 03.06.2011
Сообщений: 33
1

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

01.02.2012, 17:29. Показов 3359. Ответов 1
Метки нет (Все метки)

Если теряется его фокус (к примеру во время выполнения стороннего процесса юзер нажимает какую-то кнопку) это приводит к хаосу. т.к. в стороннем приложении имитируются нажатия клавиатуры.
Поэтому намереваюсь перед каждой имитацией нажатия клавиш проверять, активно ли стороннее запускаемое приложение.
Что для этого надо определить? Предполагаю, что его фокус (активен ли он), но где его искать?

Вначале:

C#
1
System.Diagnostics.Process Prilogenie = new System.Diagnostics.Process();
Затем:

C#
1
Priligenie.start();
Как мне дальше определить в процессе запуска Prilogenie, активно ли в данный момент его окно или нет?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2012, 17:29
Ответы с готовыми решениями:

Как скрыть главное окно стороннего процесса после старта?
Помню несколько лет назад уже делал но не помню точно как, кажется сдвигал окно за край видимой...

Как проверить открыто ли окно стороннего приложения?
Я не знаю как написать программу, которая бы проверяла (т.е. if окно в фокусе then), помогите, мне...

При щелчке по значку в трее определить активно ли окно
Делаю приложение, которое сворачивается в трей. Хочу сделать, чтобы при одиночном клике по значку в...

Как программно эмулировать Drag&drop файла на окно стороннего приложения
ну собственно вопрос в названии к окну никакого отношения не имею и оно не на net, просто найдено...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
1
765 / 545 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
01.02.2012, 20:59 2
Есть функция в WinApi SetForegroundWindow которая передает окну фокус по хэндлу
Ниже пример где фокус передается вкладке брауера с открытом поисковиком Google
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[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");
         }
3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2012, 20:59

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Работать если "активно" окно нужного (моего) процесса
Всем привет . Есть у софт , в его ресурсах лежит другой exe файл который при запуске кидается в...

Как определить границы памяти стороннего процесса?
Мне необходим пример c определением границ памяти стороннего процесса, по принципу работы ...

Как сделать окно стороннего приложения активным?
Как сделать окно стороннего приложения активным. Например окно Game называется... Здесь на форуме...

Как сделать окно стороннего приложения поверх всех окон?
Имеется Handle стороннего приложения. Пытался использовать SetWindowPos(handle, 0, 0, 0, 0, 0,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.