эмуляция работы клавиатуры
От: moridin_  
Дата: 16.12.06 00:46
Оценка:
Доброго времени суток
Несколько дней бьюсь над проблемой, никак не могу её разрешить
Есть некоторое приложение, работающее с клавиатурой через DirectInput. Задача програмно нажать кнопку, так, чтобы приложение обработало нажатие кнопки
Я пробовал посылку сообщений, SendInput, keybd_event — ничего из этого не работает
Сталкивался ли кто с подобной проблемой? Как можно проэмулировать нажатие клавиши?
OS Windows, язык C++

Спасибо за внимание.
Re: эмуляция работы клавиатуры
От: niko_ Россия www.KGBSpy.ru
Дата: 16.12.06 09:42
Оценка:
Здравствуйте, moridin_.

Вот моя процедура которая замечательно справляется с этой проблемой (правдо на Delphi):


// Code — код клавиши
// Count — колличество нажатий

Procedure MyKeyUp(Code: Integer; Count: Integer);
var
i : Integer;
begin
for i := 1 to Count do begin
keybd_event(Code, MapVirtualKeyEx(Code, 0, GetKeyboardLayout(GetCurrentThreadId())), 0, 0);
keybd_event(Code, MapVirtualKeyEx(Code, 0, GetKeyboardLayout(GetCurrentThreadId())), KEYEVENTF_KEYUP, 0);
end;
end;

Я думаю переписать под Си труда не составит.
The truth is out there
Re[2]: эмуляция работы клавиатуры
От: moridin_  
Дата: 16.12.06 10:56
Оценка:
я в первом посте написал, что пробовал keybd_event. не работает в данном случае
Re: эмуляция работы клавиатуры
От: adontz Грузия http://adontz.wordpress.com/
Дата: 16.12.06 22:54
Оценка:
Здравствуйте, moridin_, Вы писали:

_>Сталкивался ли кто с подобной проблемой? Как можно проэмулировать нажатие клавиши?


Сам не пользовался, так просто в голову пришло
http://msdn2.microsoft.com/en-us/library/ms793171.aspx
A journey of a thousand miles must begin with a single step © Lau Tsu
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.