Перейти к содержанию
Fire Monkey от А до Я
  • 0

Посылаем нажатия клавиш другому приложению(не путать клавишу с символом)


newcleaning newcleaning

Вопрос

Здравствуйте, весь интернет излазил но так и не нашел, примеров много но все они в водят в заблуждения и походу сами не понимают, что они отправляют приложению, код символа
keybd_event(90, 0, KEYEVENTF_KEYUP, 0);
или код нажатой клавиши. ЕСТЬ РАЗНИЦА, ОТПРАВИТЬ КОД НАЖАТОЙ КНОПКИ X И КОД СИМВОЛА РАСКЛАДКИ X.
Если кто-то когда-то смог реализовать то поясните пожалуйста, как это реализовать. 

 

keybd_event(VK_F1,Lo(MapVirtualKey(VK_F1,1)),KEYEV ENTF_EXTENDEDKEY,1); (*нажатие*)
keybd_event(VK_F1,Lo(MapVirtualKey(VK_F1,1)),KEYEV ENTF_KEYUP,1); (*отпускание*)

SendMessage(592216,WM_KEYDOWN,VK_F1,0);
SendMessage(592216,WM_KEYUP,VK_F1,0);

PostMessage(592216, WM_KEYDOWN, VK_F1, 0);
PostMessage(592216, WM_KEYUP, VK_F1, 0);

for I := 1 to Length(Str) do
begin
// press
Inp.Itype := INPUT_KEYBOARD;
Inp.ki.wVk := Ord(UpCase(Str[i]));
Inp.ki.dwFlags := 0;
SendInput(1, Inp, SizeOf(Inp));

// release
Inp.Itype := INPUT_KEYBOARD;
Inp.ki.wVk := Ord(UpCase(Str[i]));
Inp.ki.dwFlags := KEYEVENTF_KEYUP;
SendInput(1, Inp, SizeOf(Inp));

Application.ProcessMessages;
Sleep(80);
end;
==============================================

весь это код распознается не как нажатая клавиша, а как код отправленный. я ищю способ нажать кнопку и что-бы она была воспрринята как нажатая кнопка а не КОД ТАБЛИЦЫ КЛАВИАТУРЫ

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Набрел на статью года 80-лохматого.. не суть, https://forum.vingrad.ru/articles/topic-225315/kw-драйвер-windows-delphi.html

Скомпилировал проект, скомпилировал драйвер.. но вылазит ошибка при установке 

OpenSCManager TRUE
CreateService TRUE
CloseServiceHandle FALSE
CloseServiceHandle TRUE
Системная ошибка 1275.

Загрузка драйвера была заблокирована

 

Предполагаю, что данный драйвер написан для х32 систем, можно ли его перекомпилировать для х64 в рамках cmd /k "path %path%;c:\masm32\bin&set include=c:\masm32\include&set lib=c:\masm32\lib"

dcc32.exe -jP -$A-,B-,C-,D-,G-,H-,I-,J-,L-,M-,O+,P-,Q-,R-,T-,U-,V-,W+,X+,Y- MyDrv.pas
link.exe /NOLOGO /ALIGN:32 /BASE:0x10000 /SUBSYSTEM:NATIVE /DRIVER /FORCE:UNRESOLVED /ENTRY:DriverEntry$qqsxp13DRIVER_OBJECTxp14UNICODE_STRING MyDrv.obj /out:MyDrv.sys ntoskrnl.lib

 

если получиться и обойду защиту GameGuard Lineage2 отпишусь.

Ссылка на комментарий
  • 0

Да, все получилось но пришлось ставить win7x32 ибо x64 не удалось поставить этот драйвер с ошибкой 1275, и еще с трудом откапал Delphi 3 , для компиляции самого драйвера только Delphi 3 справился. Кто в курсе, поясните единственными Win32-версиями Delphi, которые создавали объектные файлы, полностью соответствующие стандарту OMF, являются Delphi 2 и Delphi 3.  Так вот, у меня Delphi 10.4, может ли она создавать соответствующие стандарту OMF файлы?

И как портировать это на платформы Winх64? 

Сам с собой тут разговариваю...  ставлю вопрос и сам на него отвечаю.. ))

 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...