libuiohook icon indicating copy to clipboard operation
libuiohook copied to clipboard

Qt integrate with libuiohook

Open mile1000 opened this issue 4 years ago • 4 comments

Hi, we tray integrate libuiohook with Qt app and when we run app and close is we have error: get_keyboard_layout_file [455]: RegOpenKeyEx failed to open key: "SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0"! 21:07:19: The program has unexpectedly finished. 21:07:19: The process was ended forcefully.

Can you tell me what is problem. We test on win 10 and win 7 not different. I use: demo_hook_async.c

Thanks!

mile1000 avatar Jan 13 '20 20:01 mile1000

Are you building the 1.1 branch? This should be fixed there, but I haven't thoroughly tested.

kwhat avatar Jan 15 '20 21:01 kwhat

Yes i use 1.1 branch. When i add integrate with QT i find one more small bug in code and fix to in Win and Osx platform (X11 not test). You can fast tray test add this make file in you QT and run it with you libuiohook in win. add you libary in folder name "third_party"

INCLUDEPATH += third_party/libuiohook/include
third_party/libuiohook/src

SOURCES += third_party/libuiohook/src/logger.c

win32: SOURCES += third_party/libuiohook/src/windows/input_helper.c
third_party/libuiohook/src/windows/input_hook.c
third_party/libuiohook/src/windows/post_event.c
third_party/libuiohook/src/windows/system_properties.c

macx: SOURCES += third_party/libuiohook/src/darwin/input_helper.c
third_party/libuiohook/src/darwin/input_hook.c
third_party/libuiohook/src/darwin/post_event.c
third_party/libuiohook/src/darwin/system_properties.c

unix:!macx: SOURCES += third_party/libuiohook/src/x11/input_helper.c
third_party/libuiohook/src/x11/input_hook.c
third_party/libuiohook/src/x11/post_event.c
third_party/libuiohook/src/x11/system_properties.

macx: HEADERS +=
third_party/libuiohook/src/darwin/input_helper.h
third_party/libuiohook/include/uiohook.h

unix:!macx: HEADERS +=
third_party/libuiohook/src/x11/input_helper.h

win32: HEADERS +=
third_party/libuiohook/src/windows/input_helper.h

and we change this for make:

OSX work:
int *hook_thread_status = malloc(sizeof(int)); to int hook_thread_status = (int) malloc(sizeof(int));

Win: DWORD *hook_thread_status = malloc(sizeof(DWORD)); to DWORD hook_thread_status = (DWORD) malloc(sizeof(DWORD));

int* and DWORD*

Last error i can figure how fix: get_keyboard_layout_file [455]: RegOpenKeyEx failed to open key: "SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0"!

mile1000 avatar Jan 16 '20 06:01 mile1000

This maybe fixed in 1.2, I made some adjustments to the code in question.

kwhat avatar Sep 28 '21 17:09 kwhat

@mile1000 Not sure how much it will help you, but I use this library in a Qt app I work on.

I'm still improving the implementation, but it works:https://github.com/thebigG/Tasker/tree/main/Tasker/Engine/Hooks/XHook

thebigG avatar Jun 04 '22 04:06 thebigG