Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> keybd_event в WinXP 
:(
    Опции темы
LamerTM
Дата 13.12.2007, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006

Репутация: нет
Всего: 0



Есть Опера, в которой загружена страница. На странице объект по виду типа Combobox. Навожу на него мышь (программно). Кликаю по нему мышью программно (чтобы фокус был на этом "комбобоксе").
Дальше задача: нажать программно enter. Это я делаю процедурой keybd_event.
Делаю так:
Код

keybd_event(13, 13, 0, 0); 

Этот код работает как часы под Win2K. Под WinXP он можно сказать не работает вообще (иногда срабатывает (enter нажимается), но чаще всего - нет). В чём может быть причина?

Пробовал и так:
Код

keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN,0), 0, 0);
keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN,0), KEYEVENTF_KEYUP, 0);

Тоже не работает.
PM MAIL   Вверх
Dubrov
Дата 27.12.2007, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 6.7.2006
Где: Горы

Репутация: нет
Всего: нет



Похожая проблема и у меня.  :(
Эмулирую нажатие Ctrl+v программно:

Код

keybd_event(VK_LCONTROL,MapVirtualKeyA(VK_CONTROL,0),0,0);
keybd_event('V',MapVirtualKeyA('V',0),0,0);
keybd_event('V',MapVirtualKeyA('V',0),KEYEVENTF_KEYUP,0);
keybd_event(VK_LCONTROL,MapVirtualKeyA(VK_CONTROL,0),KEYEVENTF_KEYUP,0);


иногда срабатывает, иногда нет. Иногда получается почему-то только V, без ctrl'a.

Это сообщение отредактировал(а) Dubrov - 27.12.2007, 18:19
PM MAIL WWW ICQ   Вверх
dumb
Дата 27.12.2007, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



Sleep(10) поставь между 2-ой и 3-ей строкой.
PM MAIL   Вверх
Dubrov
Дата 28.12.2007, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 6.7.2006
Где: Горы

Репутация: нет
Всего: нет



Спасибо БрейнФакер!

Я методом тыка ужо поставил Sleep. Правда немножко не там, где ты сказал. Но тоже работает!

Код

    keybd_event(VK_LCONTROL,MapVirtualKeyA(VK_CONTROL,0),0,0);
    keybd_event('V',MapVirtualKeyA('V',0),0,0);
    keybd_event('V',MapVirtualKeyA('V',0),KEYEVENTF_KEYUP,0);
    Sleep(10); //как решение проблемы 'v'
    keybd_event(VK_LCONTROL,MapVirtualKeyA(VK_CONTROL,0),KEYEVENTF_KEYUP,0);


PM MAIL WWW ICQ   Вверх
dumb
Дата 28.12.2007, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



Цитата(Dubrov @  28.12.2007,  11:35 Найти цитируемый пост)
Спасибо БрейнФакер!
[offtop]и почему никто не замечает красного зачеркнутого круга?! - аватара имеет диаметрально противоположный смысл - "ду нот фак май брейн!"[/offtop]

Цитата(Dubrov @  28.12.2007,  11:35 Найти цитируемый пост)
Правда немножко не там, где ты сказал.
правильнее все таки там, где я указал, т.к. у тебя получается, что нажатие кнопки "v" происходит моментально.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1229 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.