apsun / absolutetouchex Goto Github PK
View Code? Open in Web Editor NEWTurns your Windows precision touchpad into a tablet. Kind of.
License: MIT License
Turns your Windows precision touchpad into a tablet. Kind of.
License: MIT License
Whenever I go to save the calibration settings nothing shows in command line. Then when i try to load it it still remains on the original settings.
Please help.
This isn't really an issue, but I thought I'd leave my patch here, since it may be helpful to some other people. It changes atloader.exe to enumerate the running processes and find the given executable, then injects the library using CreateRemoteThread
. (I've only tested in osu, and it hasn't triggered any kind of anti cheat. I can't say the same for other apps.) The DLL has also been updated to patch windows after-the-fact and hook raw input devices.
Here's the patch for anyone that's interested:
absolutetouchex-injection.patch
I didn't make a pull request since it didn't seem appropriate to add this functionality to the main project, and it's more of a special-case use I suppose.
I tried using it with MS-Paint and it does not work.
Note: I have precision touchpad and the program did work with osu!, however the mapping was wrong. Is there a way to change the input to screen mapping?
I have a similar issue to many (#5, #8, #12, #20) where the absolute positioning freezes the cursor with an ELAN touchpad, but it seems to work in the 2015 client. My best guess is that peppy implemented some kind of anti-cheat/update that prevents the touchpad raw input header from being passed properly in some devices.
There are two problems that I ran into:
if (hdr.dwType == RIM_TYPEMOUSE) { return true; }
interpreted the touchpad as a mouse and stopped AT_HandleRawInput
from being handled properly resulting in a frozen cursor in absolute touch mode. Commenting this section of the code out solved the frozen cursor in absolute mode, but did not inject absolute input from the touchpad. This version might work for others.
It also seems that the raw input header was not being reported properly due to limitations of winapi with hdr.hDevice reporting 00000000. I'm working on a solution that uses WM_Pointer instead of WM_input since "classic Win32 API is not suitable for touch input at all" and it could also be helpful in preventing unintentional additional inputs from affecting gameplay.
Hello!
I'm trying to use absolutetouchex on a different app (scrcpy) which seems to work (it starts), but the shift-f6 doesn't enable it and shift-7 didn't start the calibration.
I checked all the requirements: precision touchpad, visual c++ 2019.. the only thing I seem to miss is the raw input.
Apparently it's supported by scrcpy, launching it with the following parameter:
scrcpy --raw-key-events
(Which I don't even know if it applies just to the keys or also to the mouse/touchpad)
But when launching scrcpy from the absolutetouchex, it seems it doesn't accept the parameters of the other app, is there a way to make it happen?
Thanks
Hello
I'm having this issue with my new laptop I got and I was expecting it not gonna lie
So on my old laptop it gave 5 contact devices for the trackpad at the top when I run the program. Absolutetouch worked flawlessly and had no issues. [acer aspire v15 nitro]
Contact for device 00020049: link=1, touchArea={0,0,1030,748}
Contact for device 00020049: link=2, touchArea={0,0,1030,748}
Contact for device 00020049: link=3, touchArea={0,0,1030,748}
Contact for device 00020049: link=4, touchArea={0,0,1030,748}
Contact for device 00020049: link=5, touchArea={0,0,1030,748}
Detected touchpad with handle 00020049
CreateWindowExW() -> hWnd=000308DA
RegisterRawInputDevices(mouse)
On my new laptop [ge66 raider], it only gives 1 contact device for the trackpad.
Here is what shows up on the attest
Contact for device 00020055: link=1, touchArea={0,0,402,244}
Detected touchpad with handle 00020055
CreateWindowExW() -> hWnd=000606A6
RegisterRawInputDevices(mouse)
and as I expected when I did it with the actual program and osu! and went into absolute mode the cursor didn't move. It started clicking a bunch of things (mostly exit) or scrolling on the song selection nonstop. Is there any way I could fix this with a driver/software update? Or any other way?
If not any other way?
or am I shit outta luck with this.
So I got my precision drivers working on my Synaptics touchpad
When I turn it on, it doesn't work? (osu says 0 reports per second)
It goes something like this:
CreateWindowExW() -> hWnd=some hex RegisterRawInputDevices(other) RegisterRawInputDevices(mouse) GetRawInputData(handle=some hex, command=some hex)
Cmd log:
Contact for device 00010064: link=1, touchArea={0,0,384,188}
Detected touchpad with handle 00010064
CreateWindowExW() -> hWnd=000715C4
CreateWindowExW() -> hWnd=00041840
CreateWindowExW() -> hWnd=0003183A
CreateWindowExW() -> hWnd=00031834
CreateWindowExW() -> hWnd=0003170C
CreateWindowExW() -> hWnd=000416A6
CreateWindowExW() -> hWnd=00310670
CreateWindowExW() -> hWnd=000316AA
CreateWindowExW() -> hWnd=000617CA
CreateWindowExW() -> hWnd=00320670
CreateWindowExW() -> hWnd=000416AA
CreateWindowExW() -> hWnd=00041708
RegisterRawInputDevices(other)
RegisterRawInputDevices(mouse)
CreateWindowExW() -> hWnd=00330670
CreateWindowExW() -> hWnd=000516AA
CreateWindowExW() -> hWnd=000717CA
CreateWindowExW() -> hWnd=000806C2
Absolute touch mode -> ON
Nothing shows in the console after enabling absolute touch mode. Cursor doesn't move, clicking and scrolling still works.
i dont have the programing skills, i cant make it work... im i doing something wrong?
windows 10 pro, want to put it to work on onenote, to move as touch.
When pasting in atloader.exe %LocalAppData%\osu!\osu!.exe
or start atloader.exe %LocalAppData%\osu!\osu!.exe
in shell or cmd prompt, you might have experienced an error message. I have found a fix:
Paste your bitness version in the folder in osu! folder.
Go to CMD or Shell, type start
,space, then drag atloader.exe into cmd or Shell. Then add another space and drag osu!.exe into cmd or shell. Click run and viola! I am currently in the process of setting it up but if I get it to work I will update this as soon as I can.
12Gb of VS download for building this program... ๐
A prebuilt release would be great... ๐
I really like to use my touchpad in absolute mode with other programs than osu!
Using it inside the browser for example with different drawing apps would be huge for me.
Are there any plans to implement such a thing in the future or are there other possible pathways to achieve something like that on windows or linux?
Windows 10, Synaptics touchpad (Lenovo Ideapad 110-15ACL), AbsoluteTouchEx 1.0.0 (from releases). Old AbsoluteTouch works perfectly. This one does not work at all.
I use this .bat file to run the program:
atloader.exe %LocalAppData%\osu!\osu!.exe
As soon as I enable Raw Input in osu and press Shift+Fn+F6, my cursor stops responding. I also have a mouse connected (I have tried unplugging the mouse, no difference) and it stops responding too. I have also tried running atloader as administrator, no difference.
Before I press Shift+Fn+F6, the console output is like this:
GetRawInputData(handle=023E026D, command=0x10000005)
GetRawInputData(handle=023E026D, command=0x10000003)
GetRawInputData(handle=01BA05D7, command=0x10000005)
GetRawInputData(handle=01BA05D7, command=0x10000003)
After I enable absolute touch mode, it's like this:
Absolute touch mode -> ON
GetRawInputData(handle=00D2045D, command=0x10000005)
AT_WndProcHook: handled WM_INPUT
GetRawInputData(handle=00D3045D, command=0x10000005)
AT_WndProcHook: handled WM_INPUT
Here's the console output at startup:
CreateWindowExW() -> hWnd=00180638
CreateWindowExW() -> hWnd=001B046E
CreateWindowExW() -> hWnd=00120562
CreateWindowExW() -> hWnd=00250234
CreateWindowExW() -> hWnd=003F01F0
CreateWindowExW() -> hWnd=000B02C4
CreateWindowExW() -> hWnd=002C0434
CreateWindowExW() -> hWnd=002E0464
CreateWindowExW() -> hWnd=000E0262
CreateWindowExW() -> hWnd=001B027C
CreateWindowExW() -> hWnd=002A0420
CreateWindowExW() -> hWnd=00220250
CreateWindowExW() -> hWnd=000B027A
CreateWindowExW() -> hWnd=001C03D4
CreateWindowExW() -> hWnd=000902BE
CreateWindowExW() -> hWnd=000C0252
CreateWindowExW() -> hWnd=001D03D4
CreateWindowExW() -> hWnd=000A02BE
CreateWindowExW() -> hWnd=0016014A
RegisterRawInputDevices(other)
RegisterRawInputDevices(mouse)
CreateWindowExW() -> hWnd=001E03D4
CreateWindowExW() -> hWnd=000B02BE
CreateWindowExW() -> hWnd=00260234
CreateWindowExW() -> hWnd=000E04EC
Also, if I try to run atloader.exe attest.exe (is that how it's supposed to be used?), the startup log does not register the "other" input device:
CreateWindowExW() -> hWnd=001304B6
RegisterRawInputDevices(mouse)
Also, with absolute touch mode, the log is different too:
GetRawInputData(handle=009B0701, command=0x10000005)
GetRawInputData(handle=009B0701, command=0x10000003)
GetRawInputData(handle=005805FB, command=0x10000005)
GetRawInputData(handle=005805FB, command=0x10000003)
Absolute touch mode -> ON
AT_WndProcHook: handled WM_INPUT
AT_WndProcHook: handled WM_INPUT
AT_WndProcHook: handled WM_INPUT
AT_WndProcHook: handled WM_INPUT
I have notebook Lenovo Legion Y530.
I've downloaded every driver/program what I needed to install.
When I launch program, press Shift+F6, program detects all the touches on touchpad, but cursor isn't moving anywhere...
Ask any questions. I really want to have touchscreen. :O
Fairly certain I'm punching in my directories and commands correctly, but I get a "Failed to create process: 0x2" error and neither program will start.
Definitely have the x86 c++ distributable, and even restarted my pc (the horror)
I've tried typing the directory as absolute or with the %appdata% format
C:\WINDOWS\system32>cd C:\Users\User\Desktop\AbsoluteTouch-1.1.0\x86\
C:\Users\User\Desktop\AbsoluteTouch-1.1.0\x86>atloader.exe C:\Users\User\appdata\local\osu!\osu!.exe
Failed to create process: 0x2C:\Users\User\Desktop\AbsoluteTouch-1.1.0\x86>atloader.exe %LocalAppData%\osu!\osu!.exe
Failed to create process: 0x2C:\Users\User\Desktop\AbsoluteTouch-1.1.0\x86>\
This is what the window looks like when i run atloader.exe directly
Contact for device 00020059: link=1, touchArea={0,0,1030,748}
Contact for device 00020059: link=2, touchArea={0,0,1030,748}
Contact for device 00020059: link=3, touchArea={0,0,1030,748}
Contact for device 00020059: link=4, touchArea={0,0,1030,748}
Contact for device 00020059: link=5, touchArea={0,0,1030,748}
Detected touchpad with handle 00020059
CreateWindowExW() -> hWnd=00050336
RegisterRawInputDevices(mouse)
I know its probably not a problem with the software, but when I type nothing comes up. Any help would be appreciated
I would love to use this piece of software, but as it is right now is (for most people) unusable, and even if it worked it works like a cheat, I'm not a dev but would it be possible to make a separate driver (like virtual tablet does) that acts like how a tablet registers movement, without translating it to HID events, this would solve lots of problems but it also would require development to be done
it works on the tester, but when I use on osu, it doesn't work at all when i activate it. (yes, i am using raw input.)
sometimes it randomly scrolls or tries to exit, but thats not my concern. my concern is actually getting this thing to work.
Exactly what the title says. I'm running an ELAN touchpad, which windows says is a precision touchpad in the settings. The tester log gives coordinate values, but it doesn't when launched with osu. Cursor also doesn't move when absolute mode is enabled in osu.
I know that this project is inactive, but the switch to osu!lazer will be made in the coming weeks, and this program does not work with it. There are other issues describing this but support for lazer is yet to be implemented. I am dependent on this project to play osu! currently, so I hope somebody is able to fix the program for lazer
thanks
When I launch MelonDS using AbsoluteTouchEx x64/atloader.exe, opening the file dialog makes the program crash.
atdll.dll!std::_Compressed_pair<std::hash<HWND__ *>,std::_Compressed_pair<std::equal_to<HWND__ *>,float,1>,1>::_Get_first() Line 1339 C++
atdll.dll!std::_Uhash_compare<HWND__ *,std::hash<HWND__ *>,std::equal_to<HWND__ *>>::operator()<HWND__ *>(HWND__ * const & _Keyval) Line 174 C++
atdll.dll!std::unordered_map<HWND__ *,__int64 (__cdecl*)(HWND__ *,unsigned int,unsigned __int64,__int64),std::hash<HWND__ *>,std::equal_to<HWND__ *>,std::allocator<std::pair<HWND__ * const,__int64 (__cdecl*)(HWND__ *,unsigned int,unsigned __int64,__int64)>>>::at(HWND__ * const & _Keyval) Line 405 C++
> atdll.dll!AT_WndProcHook(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 927 C++
user32.dll!UserCallWinProcCheckWow() Unknown
user32.dll!CallWindowProcW() Unknown
duser.dll!ExtraInfoWndProc() Unknown
user32.dll!UserCallWinProcCheckWow() Unknown
user32.dll!CallWindowProcW() Unknown
atdll.dll!AT_WndProcHook(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 928 C++
user32.dll!UserCallWinProcCheckWow() Unknown
user32.dll!CallWindowProcW() Unknown
duser.dll!ExtraInfoWndProc() Unknown
user32.dll!UserCallWinProcCheckWow() Unknown
user32.dll!CallWindowProcW() Unknown
...snipped...
atdll.dll!AT_WndProcHook(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 928 C++
user32.dll!UserCallWinProcCheckWow() Unknown
user32.dll!CallWindowProcW() Unknown
duser.dll!ExtraInfoWndProc() Unknown
user32.dll!UserCallWinProcCheckWow() Unknown
The maximum number of stack frames supported by Visual Studio has been exceeded.
I recall message
was 124 or something, definitely not 0xFF or above.
I have several Windows Explorer addons installed though. I'm not sure if this can be reproduced on stock Windows 10.
melonDS 0.8.3 JIT beta for x64 Windows:
Windows 10 1909 x64.
osu!lazer still allows the use of Raw Input, however it seems that AbsoluteTouchEx doesn't work well with it.
Have tried both x86 and x64 executables (as osu!lazer seems to be x64 from task manager)
Also tried both the shortcut location (C:\Users_\AppData\Local\osulazer\osu!.exe) and the actual game executable (C:\Users_\AppData\Local\osulazer\app-2019.530.0\osu!.exe) they both does not work out like what is like in osu! stable one.
i'd like to use it like your original AbsoluteTouch
what do i have to hook?
maybe a list of commands?
idk im confused plz help qwq
Where do I run the command
atloader.exe %LocalAppData%\osu!\osu!.exe
I am aware there has already been an issue created, but since that was back in 2019 I decided to create another, tried both x64 and x86 loaders, but neither work. This will soon be a huge issue since osu! will move to using osu!lazer as the main client which will make this program (and using touchpads for osu) practically useless
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.