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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2010, 21:33   #1
Танкист
Пользователь
 
Регистрация: 01.02.2010
Сообщений: 18
По умолчанию Эмуляция нажатия кнопок!!(по таймеру!!)

всем здрасте!!
нужна помощь написании программы для эмулирования нажатия клавиш
тобиш я хочу чтобы при нажатии на Button1 по таймеру каждые 5 сек нажималась допустим клавиша "ч" а при нажатии Button2 эмуляция выключалась
помогите пожалуста!!!!
Танкист вне форума Ответить с цитированием
Старый 16.02.2010, 23:45   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

примерно так

Код:
case WM_COMMAND :
      switch (LOWORD(wParam))
                      {
                               case ID_BUTTON1 : SetTimer(hWnd,TIMER_ID,5000,0);
                                                          break;
                               case ID_BUTTON2 : KillTimer(hWnd,TIMER_ID);
                                                          break;
                        }break; 
case WM_TIMER: switch(wParam)
  	            {
                             case TIMER_ID: SendMessage(hWnd,WM_CHAR,0,(LPARAM)'x');
		      	                 break;
                       }       break;
case WM_CHAR:  switch(lParam)
 	           {
	                 case 'x': MessageBoxA(hWnd,"X key pressed", 
                  "WM_CHAR message", MB_OK | MB_ICONINFORMATION);							     
	                             break;
	           }break;

Последний раз редактировалось rpy3uH; 19.02.2010 в 20:15.
counter вне форума Ответить с цитированием
Старый 17.02.2010, 15:21   #3
Танкист
Пользователь
 
Регистрация: 01.02.2010
Сообщений: 18
По умолчанию

хмм....я чё то не понял немного....
разве в дельфи есть команды break и case ??

ну вот в частности я делал с SendMessage
Код:
SendMessage(HandleWindow, WM_CHAR, ord('s'), 0);

Последний раз редактировалось Stilet; 17.02.2010 в 15:53.
Танкист вне форума Ответить с цитированием
Старый 17.02.2010, 17:19   #4
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
Сообщение от Танкист Посмотреть сообщение
хмм....я чё то не понял немного....
разве в дельфи есть команды break и case ??
а разве вы написали, что вам нужно на дельфи? или вы считаете что winapi можно использовать только из дельфи?
counter вне форума Ответить с цитированием
Старый 17.02.2010, 21:54   #5
Танкист
Пользователь
 
Регистрация: 01.02.2010
Сообщений: 18
По умолчанию

ахх да.........извиняюсь....
пожалуста модеры киньте в 1-ый пост что это всё для Delphi надо!!!!
Танкист вне форума Ответить с цитированием
Старый 17.02.2010, 22:08   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
...разве в дельфи есть команды break и case ??
есть...
Код:
Function WindowProc(HWND, Msg, wParam, lParam: Longint): Longint; Stdcall;
Begin
 Result:= DefWindowProc(HWND, Msg, wParam, lParam);

 Case Msg Of

  WM_COMMAND :
   case LOWORD(wParam) of
     ID_BUTTON1 : SetTimer(hWnd,TIMER_ID,5000,0);
     ID_BUTTON2 : KillTimer(hWnd,TIMER_ID);
   end; 

  WM_TIMER: 
   case wParam of
    TIMER_ID: SendMessage(hWnd, WM_CHAR, 0, ord('x'));
   end;
...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 20.02.2010, 14:18   #7
Танкист
Пользователь
 
Регистрация: 01.02.2010
Сообщений: 18
По умолчанию

а с функцией SendMessage можете составить??
SendMessage(HandleWindow, WM_CHAR, ord('s'), 0)
у меня вот такая функция тока она не работает....
Танкист вне форума Ответить с цитированием
Старый 20.02.2010, 17:30   #8
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

тов. Танкист, выйдите пожалуйста из танка...
Вам же написали

Код:
SendMessage(hWnd, WM_CHAR, 0, ord('x'));
counter вне форума Ответить с цитированием
Старый 22.02.2010, 11:19   #9
Танкист
Пользователь
 
Регистрация: 01.02.2010
Сообщений: 18
По умолчанию

да я всё понимаю)
только у меня на пашет эта функция (hWnd, только HandleWindow)
Танкист вне форума Ответить с цитированием
Старый 22.02.2010, 12:13   #10
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...скажите, а в чем разница по-вашему между hWnd и HandleWindow? раз "пашет" с HandleWindow используйте ее
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эмуляция нажатия клавиши helenfly Win Api 9 01.12.2009 12:09
Эмуляция нажатия нескольких клавиш -=Shad0www Общие вопросы Delphi 3 12.05.2008 08:13
Эмуляция нажатия кнопки F3 Dimixis Помощь студентам 4 17.06.2007 23:42
Эмуляция нажатия клавиши...... Zoidberg Win Api 4 11.01.2007 18:44