Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 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
Недо
Участник клуба
 
Регистрация: 11.08.2011
Сообщений: 1,394
По умолчанию

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

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


Купить рекламу на форуме - 42 тыс руб за месяц



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