|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Вопрос по CreateComObject
Как создать ComObj используя CreateComObject?
LIBID_Scaner: TGUID = '{30BDCD3D-FF71-46DD-931F-0C85D2FD6BFE}'; IID_IStandart: TGUID = '{9EE812C6-E98F-11D2-AF3E-0000E8DBEDCE}'; DIID_IScanerEvents: TGUID = '{691870D6-592F-11D3-B029-0000E8DBEDCE}'; IID_IScaner3: TGUID = '{691870D5-592F-11D3-B029-0000E8DBEDCE}'; CLASS_Scaner45: TGUID = '{691870D7-592F-11D3-B029-0000E8DBEDCE}'; делал : Код:
ComObj:=CreateComObject(LIBID_Scaner); /// Далее хочу получить свойство ShowMessage( ComObj.Version); // и тут ошибка не является объектом автоматизации |
#2
|
|||
|
|||
Для начала, а какого типа у тебя переменная ConObj. Случаем не OleVariant?
Кстати, CreateComObject ожидает CLSID на входе. Вообще, я бы сказал, что твой код должен выглядеть как то так: Код:
var scaner : IScaner3; begin scaner := CreateComObject(CLASS_Scaner45) as IScaner3; ShowMessage(scaner.Version); Последний раз редактировалось lmikle, 26.08.2023 в 10:18. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
infopol (26.08.2023)
|
#3
|
|||
|
|||
Спасибо.
Попробую.Просто я не спец в Delphi
|
#4
|
|||
|
|||
Да тут не Делфи. Фактически тут голый COM API, просто в синтаксисе паскаля.
|
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
infopol (28.08.2023)
|
#5
|
|||
|
|||
Может подскажешь как отключать и включать события Клавиатуры?
Приветствую! Нужно программно отключать и включать события клавиатуры,да любого HID устройства.
Последний раз редактировалось infopol, 28.08.2023 в 06:28. |
#6
|
|||
|
|||
Ну глянь вот это:
https://stackoverflow.com/questions/...keyboard-mouse Может подойдет И вот тут глянь тоже: https://stackoverflow.com/questions/...hi-application |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
infopol (31.08.2023)
|
#7
|
|||
|
|||
Я так понял
Это отключение клавиатуры
Код:
function KBHookHandler(ACode: Integer; WParam: WParam; LParam: LParam) : LResult; stdcall; begin if ACode < 0 then // Immediately pass the event to next hook Result := CallNextHookEx(Hook, ACode, WParam, LParam) else // by setting Result to values other than 0 means we drop/erase the event Result := 1; end; function DisableKeyboard : boolean; begin if Hook = 0 then // install the hook // Hook := SetWindowsHookEx(WH_KEYBOARD, @KBHookHandler, HINSTANCE, 0); Hook := SetWindowsHookEx(WH_KEYBOARD, @KBHookHandler, 0, 0); Result := Hook <> 0; end; Код:
function EnableKeyboard : boolean; begin if Hook = 0 then // install the hook // Hook := SetWindowsHookEx(WH_KEYBOARD, @KBHookHandler, HINSTANCE, 0); Hook := SetWindowsHookEx(WH_KEYBOARD, @KBHookHandler, 1, 0); Result := Hook <> 0; end; Может использовать JvHidControllerClass.pas? Только выдается ошибка при использовании данной библиотеки.Не могу корректно установить компоненты JEDI Последний раз редактировалось infopol, 31.08.2023 в 12:16. Причина: оооо11 |
#8
|
|||
|
|||
Enable - просто убери свой хук и все должно работать.
Установка JEDI - ну это не всегда простой процесс. Для начала надо убедиться, что поддерживается твоя версия компилятора. Потом надо смотреть в какой последовательности надо компилить и устанавливать пакеты. Я вообще с JEDI не стал связываться, но есть подобный опыть для DevExpress. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
infopol (01.09.2023)
|
#9
|
|||
|
|||
Я нашел hid.dll
Цитата:
Код:
function DisableKeyboard : boolean; begin if Hook = 0 then // install the hook // Hook := SetWindowsHookEx(WH_KEYBOARD, @KBHookHandler, HINSTANCE, 0); Hook := SetWindowsHookEx(WH_KEYBOARD, @KBHookHandler, 0, 0); Result := Hook <> 0; //ShowMessage(IntToStr(Hook)); end; function EnableKeyboard : boolean; begin if Hook = 0 then // install the hook // Hook := SetWindowsHookEx(WH_KEYBOARD, @KBHookHandler, HINSTANCE, 0); //Hook := SetWindowsHookEx(WH_KEYBOARD, @KBHookHandler, 1, 0); Result := true; end; Может ее использовать? Последний раз редактировалось infopol, 01.09.2023 в 07:28. Причина: 112 |
#10
|
|||
|
|||
Ну, если возвращает False, то GetLastError тебе в руки. Получай код ошибки и смотри что не так.
По поводу dll - а я знаю что это за библиотека, ты бы написал что это и для чего... |