Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Способы отправить чужой программе сочитание клавиш

408
08 августа 2009 года
Lei fang
265 / / 01.10.2005
Здравствуйте. Проблема в общем странная возникла, что никак не получается отправить в окно комбинацию альт + Q. Обычные буквы отправляются и пишутся где надо, а на альт + q не реагирует как надо, только виснет на некоторое время чужое окно %)

Мне известно два способа - SendInput и SendKeys.SendWait("%Q");
Перед отправкой клавиш, я делаю SetForegroundWindow(mw2_windows.proc.MainWindowHandle);

Может кто знает еще способы как можно отправить комбинацию клавиш в чужое окно? Или подскажет в чем может быть проблема? %)

P.S. И так тоже комбинация не отправляется *Убился ап стену*
 
Код:
SetForegroundWindow(mw2_windows[0].proc.MainWindowHandle);
            Thread.Sleep(cnfg.ACTION_DELAY);

            const int KEYEVENTF_KEYUP = 0x02;
            const byte VK_MENU = 0x12;

            keybd_event(VK_MENU, 0xb8, 0, 0);
            keybd_event((byte)VkKeyScan('Q'), 0x90, 0, 0);
            keybd_event((byte)VkKeyScan('Q'), 0x90, KEYEVENTF_KEYUP, 0);
            keybd_event(VK_MENU, 0xb8, KEYEVENTF_KEYUP, 0);

Но обычные буквы отправляются. В этом случае чужое окно хоть не виснет

P.S.2
И так не пашет. Вместо комбинации появляется две буквы q
 
Код:
const uint WM_KEYDOWN = 0x0100;
            const uint WM_KEYUP = 0x0101;

            PostMessage(mw2_windows[0].proc.MainWindowHandle, WM_KEYDOWN, VK_MENU, 0);
            PostMessage(mw2_windows[0].proc.MainWindowHandle, WM_KEYDOWN, (uint)VkKeyScan('Q'), 0);
            PostMessage(mw2_windows[0].proc.MainWindowHandle, WM_KEYUP, (uint)VkKeyScan('Q'), 0);
            PostMessage(mw2_windows[0].proc.MainWindowHandle, WM_KEYUP, VK_MENU, 0);
535
10 августа 2009 года
Нездешний
537 / / 17.01.2008
 
Код:
keybd_event(VK_LMENU, 0, 0, 0);
keybd_event('q', 0, 0, 0);
keybd_event('q', 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_LMENU, 0, KEYEVENTF_KEYUP, 0);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог