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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2014, 17:33   #1
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию Послать нажатие клавиши в Mozilla FireFox

Здравствуйте. Есть такая онлайн программа Соло на клавиатуре. Вот скрин:

Конечно же в добровольно принудительном порядке её заставляют проходит руководителям и как всегда это ложится на плечи программистов или сисадминов. Хочу написать прогу, чтобы она имитировала нажатия этих слов. Слова предварительно занесены в Edit1. Но ничего не выходит.
Вот код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  moz : HWnd;
  i   : word;
  s   : string;
begin
  moz := FindWindow ('MozillaWindowClass', '');
  //moz := FindWindow ('GeckoPluginWindow', '');
  s := Edit1.Text;
  if moz <> 0 then
    begin
      for i:= 1 to Length (s) do
        begin
          SendMessage(moz, WM_KEYDOWN, Ord(s[i]), 0);
          SendMessage(moz, WM_KEYUP, Ord(s[i]), 0);
          Sleep (500);
        end;
    end else
    MessageBox (Handle, 'Окно Mozilla FireFox не найдено.', 'Ошибка',
      MB_OK or MB_ICONERROR);
end;
С помощью Spy++ узнал класс окна лисички. Окно программа находит, но не хочет передавать в него нажатия клавиш. Что можете посоветовать?
З.Ы. при наведении Spy++ на саму так сказать программу Соло, выдаёт класс окна GeckoPluginWindow, но по нему не находит окно.
FaTaL вне форума Ответить с цитированием
Старый 30.01.2014, 18:00   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Окно соло построено построено как динам. веб-страница. И вообще это браузер.
Человек_Борща вне форума Ответить с цитированием
Старый 30.01.2014, 18:03   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
заставляют проходит руководителям и как всегда это ложится на плечи программистов
Отказывайся. Ты не обязан это делать. Однозначно отказывайся, иначе сядут на шею - поверь мне, я уже это прошел.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.01.2014, 18:25   #4
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Спасибо конечно за отзывы. Но что нибудь подсказать можете по коду?
FaTaL вне форума Ответить с цитированием
Старый 30.01.2014, 18:32   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Глупости это все.
Если нужно отправлять на сервер результаты теста, то просниффить один раз результаты и каждый раз отправлять такие-же вместо иммитации нажатий.
Или в TWebBrowser переделать управление - функции JS сайта подменить своими похожими.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.01.2014, 18:34   #6
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Если это вэб страница, то можно снифером её перехватить, выдрать из неё задание, и сэмулировать набор текста. В общем можно поиграться с вариантами набора.
doktor255 вне форума Ответить с цитированием
Старый 30.01.2014, 18:49   #7
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Если это вэб страница, то можно снифером её перехватить, выдрать из неё задание, и сэмулировать набор текста. В общем можно поиграться с вариантами набора.
Текст у меня есть. Я только не могу эмулировать нажатие клавиш.
FaTaL вне форума Ответить с цитированием
Старый 30.01.2014, 18:59   #8
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Попробуй в коде поменять SendMessage на PostMessage.

Последний раз редактировалось doktor255; 30.01.2014 в 19:24.
doktor255 вне форума Ответить с цитированием
Старый 31.01.2014, 09:52   #9
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

PostMessage тоже не проходит. Есть ещё варианты?
FaTaL вне форума Ответить с цитированием
Старый 31.01.2014, 10:26   #10
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Да не покатит вам ничего, там дальше ChromeWindowClass работает рендер веб-страниц, и обрабатывает ввод по своему, игнорируя сообщения окна.

Так ответа и не услышал, это программа ПК или онлаин-тест?
Человек_Борща вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Послать нажатие клавиши + хуки c0mp Win Api 7 13.08.2012 10:26
Mozilla FireFox 4.0 Beta 8 Adblock Софт 1 02.04.2011 11:26
Mozilla Firefox 4 Bustle Софт 11 02.04.2011 10:23
Mozilla Firefox zai_1gen Софт 29 13.02.2009 18:08