Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 15.08.2011, 22:33   #1
usb72
 
Регистрация: 15.08.2011
Сообщений: 3
Радость поочередная имитация нажатия клавиш

Всем привет, прочисал весь поиск форума но не нашел нужного, поэтому вопрос такой от новичка, надо сделать поочередную имитацию клавишь. на форме есть button при нажатии на который обновляется компонент webbrowser1, обновление прекрасно работает, Но надо сделать так...:

жмем button - обновляется webbrowser1, затем имитация нажатия клавиши enter и снова жмется button и так много много раз.
usb72 вне форума Ответить с цитированием
Старый 15.08.2011, 22:39   #2
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

Просто нажатие ентер? Или может сфокусироваться сначала на чем-то (может внутри webbrowser), а потом имитировать нажатие?
kettanaito вне форума Ответить с цитированием
Старый 15.08.2011, 22:41   #3
usb72
 
Регистрация: 15.08.2011
Сообщений: 3
По умолчанию

просто нажатие имитировать, там уже нужная кнопка в фокусе будет
usb72 вне форума Ответить с цитированием
Старый 15.08.2011, 22:43   #4
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(webbrowser1.handle, wm_char, ord(#13), 0);
end;
?
Если хочешь повторять действие много раз без твоего участия - поставь таймер а процедуру выполняй на WebBrowserNavigationComplete (когда страница полностью загружена).

P.S. В гугле все есть

Последний раз редактировалось kettanaito; 15.08.2011 в 22:50.
kettanaito вне форума Ответить с цитированием
Старый 16.08.2011, 00:44   #5
Larboss
Недо
Участник клуба
 
Аватар для Larboss
 
Регистрация: 10.08.2011
Сообщений: 1,392
По умолчанию

Функции для имитации:

Код:
procedure SimulateKeyDown(Key: Byte);
var
  flags: DWORD;
begin
  // if Key in ExtendedKeys then flags := KEYEVENTF_EXTENDEDKEY else flags := 0;
  keybd_event(Key, MapVirtualKey(Key, 0), 0, 0);
end;

procedure SimulateKeyUp(Key: Byte);
var
  flags: DWORD;
begin
  // if Key in ExtendedKeys then flags := KEYEVENTF_EXTENDEDKEY else flags := 0;
  keybd_event(Key, MapVirtualKey(Key, 0), KEYEVENTF_KEYUP, 0);

procedure SimulateKey(Key: Byte; CD: integer);
begin
  SimulateKeyDown(Key);
  sleep(CD);
  SimulateKeyUp(Key);
end;
Пример, съимитирует нажатие enter (CD - задержка перед отпусканием клавиши):
Код:
SimulateKey(VK_Enter,0);
Larboss вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имитация нажатия комбинации клавиш! stalsoft C# (си шарп) 2 23.06.2011 23:13
имитация нажатия клавиш RAVAL(c) HTML и CSS 10 07.02.2011 12:29
Имитация нажатия клавиш в играх. simtiko Общие вопросы Delphi 2 01.06.2010 14:02
Имитация нажатия клавиш Air Свободное общение 28 04.02.2010 12:38
Имитация нажатия комбинации клавиш Zeraim Win Api 15 05.05.2008 19:35


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840