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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2011, 18:10   #1
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию SendMessage + WM_KEYDOWN

хочу чужому окну передать символ s, пробую
Код:
HWD:=findwindow(nil,'Безымянный - Блокнот');
SendMessage(HWD,WM_KEYDOWN,0x53,null);
но мне компилятор выдает Not enough actual parameters
почему?
Хотя если передавать вместо 0x53 например VK_TAB компилируется нормально
fate вне форума Ответить с цитированием
Старый 28.01.2011, 18:11   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

$53 ;
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 28.01.2011, 18:19   #3
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

спасибо, скомпилировалась, но не то что мне нужно ((
я хочу передать ctrl + s
пишу
Код:
SendMessage(HWD,WM_KEYDOWN,VK_CONTROL,0);
SendMessage(HWD,WM_KEYDOWN,$53,0);
но ничего не происходит. Вроде как в LPARAM что-то нужно указать, читал msdn но не понял что там указать
fate вне форума Ответить с цитированием
Старый 28.01.2011, 18:27   #4
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

можно конечно SetForegroundWindow сделать нужное окно активным а потом keybd_event, но я хочу попробовать через SendMessage

Последний раз редактировалось fate; 28.01.2011 в 18:29.
fate вне форума Ответить с цитированием
Старый 28.01.2011, 18:35   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

SendMessage(HWD, WM_KEYDOWN, VK_CONTROL, $1D0001);
SendMessage(HWD, WM_KEYDOWN, $53, $1F0001);

если не поможет, то или HWD кривой, или нужно как-то по-другому..
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 28.01.2011, 18:46   #6
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

0 эмоций.

а почему ты именно такие значения указал в lparam?
fate вне форума Ответить с цитированием
Старый 28.01.2011, 23:40   #7
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

а я подсмотрел, чё там реально приходит:

Код:
procedure wmKD(var msg: TWMKeyDown); message WM_KEYDOWN;

procedure TForm1.wmKD(var msg: TWMKeyDown);
begin
  Memo1.Lines.add('CC = ' + IntToStr(msg.CharCode) + '; KD=' + IntToStr(msg.KeyData));
end;
но, видимо, чего-то не хватает..
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Параметры SendMessage Jenya Win Api 4 11.12.2010 19:15
SendMessage Damien4Damien Общие вопросы Delphi 3 29.09.2010 21:27
SendMessage ASЯ Помощь студентам 0 20.05.2010 10:38
Как сразу после WM_KEYDOWN отправить WM_KEYUP ? Someb7 Win Api 2 17.10.2009 21:50
Обработка wm_keydown если на форме присутствует TFrame Oburec Компоненты Delphi 1 13.04.2009 10:01