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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2016, 13:56   #1
artbotva
Форумчанин
 
Аватар для artbotva
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию Вопрос про таймер

Всем доброго времени суток!
Такой вопрос, мне нужно чтобы моё приложение передавало во внешнее приложение команды. Должно быть такого вида:
1.Приложение найдено
2.Нажимаем клавишу "A"
3.Отпускаем клавишу "A"
4.Нажимаем ENTER
5.Отпускаем ENTER
6.Нажимаем клавишу "B"
7.Отпускаем клавишу "B"
8.Нажимаем ENTER
9.Отпускаем ENTER

Самое интересное: пункты 1234 приложение выполняет, а потом глохнет. Таймер ставлю на 12 сек.

Заранее спасибо!

Код:
procedure TForm1.Timer2Timer(Sender: TObject);
var
    h : thandle;
begin
    h := findwindow(nil, 'Notebook');
       keybd_event(h, 83, 0, 0);
       Sleep(1000);
    keybd_event(h, 83, 0, KEYEVENTF_KEYUP);
    Sleep(1000);
     keybd_event(h, VK_RETURN, 0, 0);
     Sleep(1000);
    keybd_event(h, VK_RETURN, 0, KEYEVENTF_KEYUP);
    Sleep(1000);
    keybd_event(h, 84, 0, 0);
    Sleep(1000);
    keybd_event(h, 84, 0, KEYEVENTF_KEYUP);
    Sleep(1000);
     keybd_event(h, VK_RETURN, 0, 0);
     Sleep(1000);
    keybd_event(h, VK_RETURN, 0, KEYEVENTF_KEYUP);
    Sleep(1000);
end;
Недостижение того, что ты хотел, является иногда лучшим подарком судьбы
artbotva вне форума Ответить с цитированием
Старый 23.10.2016, 14:14   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А таймер причем тут?

Смотрите документацию, порядок параметров не тот же https://msdn.microsoft.com/en-us/lib...or=-2147217396
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 23.10.2016, 14:16   #3
artbotva
Форумчанин
 
Аватар для artbotva
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А таймер причем тут?
Мне нужно чтобы моя программа проверяла наличие открытой программы Notebook, и когда она будет запущена проводить эти действия.

Посмотрел документацию
Код:
keybd_event( VK_NUMLOCK,
                      0x45,
                      KEYEVENTF_EXTENDEDKEY | 0,
                      0 );

      // Simulate a key release
         keybd_event( VK_NUMLOCK,
                      0x45,
                      KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
                      0);
Вроде порядок такой же как и у меня, нажал-отпустил. Задержку я чуть позже дописал, от безысходности...
Недостижение того, что ты хотел, является иногда лучшим подарком судьбы

Последний раз редактировалось artbotva; 23.10.2016 в 14:20.
artbotva вне форума Ответить с цитированием
Старый 23.10.2016, 14:18   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так а таймер-то причем если вопрос на самом деле не о нем? Думаете в обработчике клика кнопки или вообще в консольном приложении этот код будет работать по-другому?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 23.10.2016, 14:28   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от artbotva Посмотреть сообщение
Вроде порядок такой же как и у меня, нажал-отпустил
порядок параметров, а не вызовов.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 23.10.2016, 15:01   #6
artbotva
Форумчанин
 
Аватар для artbotva
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
порядок параметров, а не вызовов.
Блин, вот не вижу я где ошибка, может тыкнете пальцем?
Недостижение того, что ты хотел, является иногда лучшим подарком судьбы
artbotva вне форума Ответить с цитированием
Старый 23.10.2016, 15:14   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Читайте какой параметр что делает и смотрите что у вас.

А handle оно вообще не принимает же.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача про Таймер (C++ Builder 6) Deis Помощь студентам 2 05.03.2011 09:50
Вопрос про Свойство Visible и про иконки в imagelist Kappi4 Компоненты Delphi 2 21.05.2010 13:10
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
Вопрос про таймер igroman Общие вопросы Delphi 1 31.05.2008 18:34
У меня вопрос про базы данных,а точнее про таблицы!!! Alexij Общие вопросы Delphi 1 13.04.2008 23:24