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

newcleaning newcleaning

Пользователи
  • Постов

    4
  • Зарегистрирован

  • Посещение

Достижения newcleaning newcleaning

  1. Имеется проект готовый на Delphi 3, средствами delphi 3 там создается и компилится файл драйвер MyDrive.pas для клавиатуры dcc32.exe, rlink32.dll, system.dcu и sysinit.dcu - собственно компилятор Delphi3 с сопутствующими файлами 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 на выходе получаю файл MyDrv.obj далее я этот файл просто конвертирую , компилирую сразу в MyDrv.sys link.exe /NOLOGO /ALIGN:32 /BASE:0x10000 /SUBSYSTEM:NATIVE /DRIVER /FORCE:UNRESOLVED /ENTRY:DriverEntry$qqsxp13DRIVER_OBJECTxp14UNICODE_STRING MyDrv.obj /out:MyDrv.sys ntoskrnl.lib вот и все, получаю готовый драйвер, протестировал работает без ошибок на всех WINx32 платформах. Попробовал перенести это в Embarcadero RAD Studio Delphi 10.4 , были проблемы с переездом но решаемы, проект полностью переехал на Embarcadero RAD Studio. Собрал заново dcc32.exe, rlink32.dll, system.dcu и sysinit.dcu эти файлы и приступил к компиляции. 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 на выходе получаю файл MyDrv.obj - ОК link.exe /NOLOGO /ALIGN:32 /BASE:0x10000 /SUBSYSTEM:NATIVE /DRIVER /FORCE:UNRESOLVED /ENTRY:DriverEntry$qqsxp13DRIVER_OBJECTxp14UNICODE_STRING MyDrv.obj /out:MyDrv.sys ntoskrnl.lib - ERROR MyDrv.obj : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt - фатальная ошибка LNK1123: сбой при преобразовании в COFF: файл недействителен Ладно, скачал утилиту https://agner.org/optimize/#objconv и конвертнул фаил с:\objconv -fcof -nr:uname:u_cos -nr:wname:cos MyDrv.o MyDrv.obj затем снова link.exe /NOLOGO /ALIGN:32 /BASE:0x10000 /SUBSYSTEM:NATIVE /DRIVER /FORCE:UNRESOLVED /ENTRY:DriverEntry$qqsxp13DRIVER_OBJECTxp14UNICODE_STRING MyDrv.obj /out:MyDrv.sys ntoskrnl.lib LINK : error LNK2001: unresolved external symbol _DriverEntry$qqsxp13DRIVER_OBJE CTxp14UNICODE_STRING MyDrv.obj : error LNK2001: unresolved external symbol @$xp$4Word MyDrv.obj : error LNK2001: unresolved external symbol @$xp$8SmallInt MyDrv.obj : error LNK2001: unresolved external symbol @$xp$8Cardinal MyDrv.obj : error LNK2001: unresolved external symbol @$xp$7Integer MyDrv.obj : error LNK2001: unresolved external symbol @$xp$7Pointer MyDrv.obj : error LNK2001: unresolved external symbol @$xp$4Byte MyDrv.obj : error LNK2001: unresolved external symbol @$xp$8ByteBool MyDrv.obj : error LNK2001: unresolved external symbol @$xp$9PWideChar MyDrv.obj : error LNK2001: unresolved external symbol @$xp$9PAnsiChar MyDrv.sys : fatal error LNK1120: 10 unresolved externals Делаю вывод, что Delphi 10.4 портирует его не в MyDrv.obj формат, а во что-то иное.. как это выяснить ума не приложу, олазил все доки ВСЕ, информация упорно продолжает вводить в заблуждения. Если есть у кого какие мысли то прошу помощи.. В ПРОТИВНОМ СЛУЧАИ ПРОСТО ПРИДЕТСЯ ВЫБРОСИТЬ ВСЕ DELPHI НАЧИНАЯ С DELPHI 7 И ВЫШЕ .. ИБО ОНИ НЕ РАБОТАЮТ КАК ЗАЯВЛЕНО , ИМИТАЦИЯ ФОРМ НА ЭКРАНЕ ЭТО НЕ РАБОТА ЯЗЫКА ПРОГРАММИРОВАНИЯ. На сборках Delphi 2-3 все компилится и хорошо работает. Прикрепляю файлы mydrive-delphi.rar
  2. Да, все получилось но пришлось ставить win7x32 ибо x64 не удалось поставить этот драйвер с ошибкой 1275, и еще с трудом откапал Delphi 3 , для компиляции самого драйвера только Delphi 3 справился. Кто в курсе, поясните единственными Win32-версиями Delphi, которые создавали объектные файлы, полностью соответствующие стандарту OMF, являются Delphi 2 и Delphi 3. Так вот, у меня Delphi 10.4, может ли она создавать соответствующие стандарту OMF файлы? И как портировать это на платформы Winх64? Сам с собой тут разговариваю... ставлю вопрос и сам на него отвечаю.. ))
  3. Набрел на статью года 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 отпишусь.
  4. Здравствуйте, весь интернет излазил но так и не нашел, примеров много но все они в водят в заблуждения и походу сами не понимают, что они отправляют приложению, код символа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) dobegin// pressInp.Itype := INPUT_KEYBOARD;Inp.ki.wVk := Ord(UpCase(Str[i]));Inp.ki.dwFlags := 0;SendInput(1, Inp, SizeOf(Inp));// releaseInp.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;==============================================весь это код распознается не как нажатая клавиша, а как код отправленный. я ищю способ нажать кнопку и что-бы она была воспрринята как нажатая кнопка а не КОД ТАБЛИЦЫ КЛАВИАТУРЫ
×
×
  • Создать...