Консультация № 109265
13.11.2007, 18:34
0.00 руб.
0 1 1
Здравствуйте уважаемые эксперты.

Извиняюсь за тарабарские термины
Нахожусь в DLL пристегнутой к процессу1
нас временно интересует другой процесс2

Вопрос:
Как из этой DLL
1.активировать другой работающий процесс2 ,
2.передать ему сочетание клавиш "ctrl+N"
3. вернуться в свой процесс1.

По русски:
1. активна окно одной из двух запущеных программ.
2. переключаемся в другую программу
3. жмем клавиши ctrl+N
4. возвращаемся в первую программу.

Спасибо.

Обсуждение

Неизвестный
13.11.2007, 22:38
общий
это ответ
Здравствуйте, DinGior!

1. Находим хэндлы нужных окон с помощью FindWindow или EnumWindows (кому что ближе) - пусть H1 и H2

2. Активизируем вторую SetForegroundWindow(H2);

3. Жмем клавиши в очередь втрой программы
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(Ord(‘N‘), 0, 0, 0);

Отпустить не забываем ;)
keybd_event(Ord(‘N‘), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);

4. Возвращаемся к первой программе SetForegroundWindow(H1);
Форма ответа