11; IbAhkSendLib (v1)
22; Description: Enable AHK to send keystrokes by drivers.
33; Author: Chaoses Ib
4- ; Version: 0.2
4+ ; Version: 0.3
55; Git: https://github.com/Chaoses-Ib/IbAhkSendLib
66
77IbSendInit (send_type := "AnyDriver", mode := 1, args* ){
88 workding_dir := A_WorkingDir
99 SetWorkingDir , %A_ScriptDir %
1010
11- static hModule := DllCall (" LoadLibrary" , " Str" , " IbAhkSend.dll" , " Ptr" )
11+ static hModule := DllCall (" LoadLibrary" , " Str" , A_ScriptDir " \ IbAhkSend.dll" , " Ptr" )
1212 if (hModule == 0 ){
1313 if (A_PtrSize == 4 )
1414 throw " SendLibLoadFailed: Please use AutoHotkey x64"
@@ -19,16 +19,18 @@ IbSendInit(send_type := "AnyDriver", mode := 1, args*){
1919 }
2020
2121 if (send_type == " AnyDriver" )
22- result := DllCall (" IbAhkSend\IbAhkSendInit " , " Int" , 0 , " Int" , 0 , " Ptr" , 0 , " Int" )
22+ result := DllCall (" IbAhkSend\IbSendInit " , " Int" , 0 , " Int" , 0 , " Ptr" , 0 , " Int" )
2323 else if (send_type == " SendInput" )
24- result := DllCall (" IbAhkSend\IbAhkSendInit " , " Int" , 1 , " Int" , 0 , " Ptr" , 0 , " Int" )
24+ result := DllCall (" IbAhkSend\IbSendInit " , " Int" , 1 , " Int" , 0 , " Ptr" , 0 , " Int" )
2525 else if (send_type == " Logitech" )
26- result := DllCall (" IbAhkSend\IbAhkSendInit" , " Int" , 2 , " Int" , 0 , " Ptr" , 0 , " Int" )
26+ result := DllCall (" IbAhkSend\IbSendInit" , " Int" , 2 , " Int" , 0 , " Ptr" , 0 , " Int" )
27+ else if (send_type == " Razer" )
28+ result := DllCall (" IbAhkSend\IbSendInit" , " Int" , 3 , " Int" , 0 , " Ptr" , 0 , " Int" )
2729 else if (send_type == " DD" ){
2830 if (args.MaxIndex () == 1 )
29- result := DllCall (" IbAhkSend\IbAhkSendInit " , " Int" , 3 , " Int" , 0 , " WStr" , args[1 ], " Int" )
31+ result := DllCall (" IbAhkSend\IbSendInit " , " Int" , 4 , " Int" , 0 , " WStr" , args[1 ], " Int" )
3032 else
31- result := DllCall (" IbAhkSend\IbAhkSendInit " , " Int" , 3 , " Int" , 0 , " Ptr" , 0 , " Int" )
33+ result := DllCall (" IbAhkSend\IbSendInit " , " Int" , 4 , " Int" , 0 , " Ptr" , 0 , " Int" )
3234 } else
3335 throw " Invalid send type"
3436
@@ -47,28 +49,28 @@ IbSendInit(send_type := "AnyDriver", mode := 1, args*){
4749IbSendMode (mode ){
4850 static ahk_mode := ""
4951 if (mode == 1 ){
50- DllCall (" IbAhkSend\IbAhkSendInputHook " , " Int" , 1 )
52+ DllCall (" IbAhkSend\IbSendInputHook " , " Int" , 1 )
5153 ahk_mode := A_SendMode
5254 SendMode Input
5355 } else if (mode == 0 ){
5456 SendMode %ahk_mode%
55- DllCall (" IbAhkSend\IbAhkSendInputHook " , " Int" , 0 )
57+ DllCall (" IbAhkSend\IbSendInputHook " , " Int" , 0 )
5658 } else {
5759 throw " Invalid send mode"
5860 }
5961}
6062
6163IbSendDestroy (){
62- DllCall (" IbAhkSend\IbAhkSendDestroy " )
64+ DllCall (" IbAhkSend\IbSendDestroy " )
6365 ; DllCall("FreeLibrary", "Ptr", hModule)
6466}
6567
6668IbSyncKeyStates (){
67- DllCall (" IbAhkSend\IbAhkSendSyncKeyStates " )
69+ DllCall (" IbAhkSend\IbSendSyncKeyStates " )
6870}
6971
7072IbSend (keys ){
71- DllCall (" IbAhkSend\IbAhkSendInputHook " , " Int" , 1 ) ; or IbSendMode(1)
73+ DllCall (" IbAhkSend\IbSendInputHook " , " Int" , 1 ) ; or IbSendMode(1)
7274 SendInput %keys%
73- DllCall (" IbAhkSend\IbAhkSendInputHook " , " Int" , 0 ) ; or IbSendMode(0)
75+ DllCall (" IbAhkSend\IbSendInputHook " , " Int" , 0 ) ; or IbSendMode(0)
7476}
0 commit comments