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

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

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

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

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

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

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

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

просто нажатие имитировать, там уже нужная кнопка в фокусе будет
usb72 вне форума Ответить с цитированием
Старый 15.08.2011, 23: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 в 23:50.
kettanaito вне форума Ответить с цитированием
Старый 16.08.2011, 01:44   #5
Larboss
Недо
Участник клуба
 
Аватар для Larboss
 
Регистрация: 11.08.2011
Сообщений: 1,391
По умолчанию

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

Код:
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 вне форума Ответить с цитированием
Ответ
Опции темы


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