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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2009, 00:47   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Как послать нажатие кнопки? И вопрос про хук клавы.

1. как послать нажатие кнопки? например, висит таймер и каждые тридцать секунд посылает нажатие кнопки A. т.е. если курсор висит в блокноте, туда написалась А.


2. почему после перехвата WM_HOTKEY'ем не приходит нажатая кнопка на экран?
Код:
procedure TForm1.wmhotkey(var msg: TWMHotKey);
begin
  beep();
end;
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  RegisterHotKey(handle,  0, 0, ord('A'));
end;
Если запустить и попробовать написать в блокноте АААА, то ничего не выйдет.

3. Как поменять посылаемое значение кнопки, используй WM_hotkey

Последний раз редактировалось Stilet; 10.09.2009 в 08:17.
TwiX вне форума Ответить с цитированием
Старый 10.09.2009, 07:23   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

1)
Код:
procedure TForm1.Button1Click(Sender: TObject);
 var
   wnd: HWND;
   I: Integer;
   Str: string;
 begin
   wnd := FindWindow('Notepad', Nil);
   if wnd <> 0 then
   begin
     wnd := FindWindowEx(wnd, 0, 'Edit', nil);  
    Str := 'Текст, который необходимо ввести';
     for i := 1 to Length(s) do
       SendMessage(wnd, WM_CHAR, Word(Str[i]), 0);
    PostMessage(wnd, WM_KEYDOWN, VK_RETURN, 0);
   end;
 end;
Разберешься.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 10.09.2009, 08:19   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не приходит нажатая кнопка на экран?
Ты бы расшифровал эту фразу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2009, 08:30   #4
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

1) Alex Cones, блокнот был просто примером, я имел ввиду, чтобы если ты переставишь курсор, туда тоже бы нажималась кнопка.

2) Stilet, я и расшифровал:
если зарегать кнопку А вм_хоткеем, то "Если запустить и попробовать написать в блокноте АААА, то ничего не выйдет".
TwiX вне форума Ответить с цитированием
Старый 10.09.2009, 08:40   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А вм_хоткеем, то "Если запустить и попробовать написать в блокноте АААА, то ничего не выйдет".
Так ведь ХотКеи работают только в рамках твоей проги. Если ее окна не активны Хоткеи не будут им посылаться Тут хук ставить нужно... т.е. я неверно выразился. Я хотел сказать что просто символ не может быть Хоткеем. Хот Кей - это комбинация символа с CTRL ALT SHIFT иначе не будет работать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2009, 09:07   #6
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
чтобы если ты переставишь курсор, туда тоже бы нажималась кнопка.
Тут высокоуважаемый Stilet с месяц назад выкладывал программу, которая выясняет тип и заголовок окна, которое находится под мышью. Если он объяснит принцип её действия, то параметры этого куска можно вставлять в мой кусок.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 10.09.2009, 20:58   #7
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Я просто думабл, что существует некая "wm_setket" которая посылает нажатие кнопки...
TwiX вне форума Ответить с цитированием
Старый 10.09.2009, 21:02   #8
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Введи в пустом проекте этот код:
Код:
Begin
SendMessage(HWND,WM_CLOSE,0,0);
End;
Зажми Ctrl и жмакни по WM_CLOSE. Откроется вкладка MESSAGES. Там все сообщения, которые можно напрямую посылать. Разбирайся. Удачи!
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 10.09.2009, 21:20   #9
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Код:
procedure SetKey(Key:Integer);
begin
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY,0);
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
end;
pushl $0x18E3DF6B
call ICQ

Последний раз редактировалось russian-stalker; 10.09.2009 в 21:27.
russian-stalker вне форума Ответить с цитированием
Старый 10.09.2009, 21:40   #10
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Stilet, я дома делал такую прогу, в которой при нажатии, например, кнопки А, выводиться на экран исмвол Б. Но сейчас нет возможности глянуть исходник =(

russian-stalker, что это?)

Alex Cones, как понять "шмякни на вм_клозе"?
TwiX вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перерисовка канвы нажатием кнопки клавы ViNcHeStEr Помощь студентам 3 07.04.2009 04:57
3 в одном: Хук клавы, мышки и..... Vognedar Win Api 2 02.03.2009 13:39
Как отследить нажатие кнопки? Bezdar Microsoft Office Excel 9 17.12.2008 11:12
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
Как отследить нажатие кнопки Обновить из PHP? Timpi PHP 4 11.07.2008 09:16