mirror of
https://github.com/go-vgo/robotgo.git
synced 2025-06-02 23:23:55 +00:00
optimize and clearer keytap code
This commit is contained in:
parent
6f9b1354dc
commit
87e23b9adf
@ -171,7 +171,7 @@ int GetFlagsFromValue(char* value[], MMKeyFlags* flags, int num){
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If it's not an array, it should be a single string value.
|
// If it's not an array, it should be a single string value.
|
||||||
char* key_Tap(char *k, char* keyArr[], int num, int keyDelay){
|
char* key_Taps(char *k, char* keyArr[], int num, int keyDelay){
|
||||||
MMKeyFlags flags = MOD_NONE;
|
MMKeyFlags flags = MOD_NONE;
|
||||||
// MMKeyFlags flags = 0;
|
// MMKeyFlags flags = 0;
|
||||||
MMKeyCode key;
|
MMKeyCode key;
|
||||||
|
28
robotgo.go
28
robotgo.go
@ -516,11 +516,10 @@ func KeyTap(tapKey string, args ...interface{}) {
|
|||||||
// var ckeyArr []*C.char
|
// var ckeyArr []*C.char
|
||||||
ckeyArr := make([](*_Ctype_char), 0)
|
ckeyArr := make([](*_Ctype_char), 0)
|
||||||
|
|
||||||
Try(func() {
|
if len(args) > 0 {
|
||||||
if reflect.TypeOf(args[0]) == reflect.TypeOf(keyArr) {
|
if reflect.TypeOf(args[0]) == reflect.TypeOf(keyArr) {
|
||||||
|
|
||||||
keyArr = args[0].([]string)
|
keyArr = args[0].([]string)
|
||||||
|
|
||||||
num = len(keyArr)
|
num = len(keyArr)
|
||||||
|
|
||||||
for i := 0; i < num; i++ {
|
for i := 0; i < num; i++ {
|
||||||
@ -542,30 +541,31 @@ func KeyTap(tapKey string, args ...interface{}) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}, func(e interface{}) {
|
} else {
|
||||||
// fmt.Println("err:::", e)
|
// fmt.Println("err:::", e)
|
||||||
akey = "null"
|
akey = "null"
|
||||||
keyArr = []string{"null"}
|
keyArr = []string{"null"}
|
||||||
})
|
}
|
||||||
// }()
|
// }()
|
||||||
|
|
||||||
zkey := C.CString(tapKey)
|
zkey := C.CString(tapKey)
|
||||||
|
defer C.free(unsafe.Pointer(zkey))
|
||||||
|
|
||||||
if akey == "" && len(keyArr) != 0 {
|
if akey == "" && len(keyArr) != 0 {
|
||||||
C.key_Tap(zkey, (**_Ctype_char)(unsafe.Pointer(&ckeyArr[0])),
|
C.key_Taps(zkey, (**_Ctype_char)(unsafe.Pointer(&ckeyArr[0])),
|
||||||
C.int(num), C.int(keyDelay))
|
C.int(num), C.int(keyDelay))
|
||||||
} else {
|
|
||||||
// zkey := C.CString(args[0])
|
|
||||||
amod := C.CString(akey)
|
|
||||||
amodt := C.CString(keyT)
|
|
||||||
|
|
||||||
C.key_tap(zkey, amod, amodt, C.int(keyDelay))
|
return
|
||||||
|
|
||||||
defer C.free(unsafe.Pointer(amod))
|
|
||||||
defer C.free(unsafe.Pointer(amodt))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
defer C.free(unsafe.Pointer(zkey))
|
// zkey := C.CString(args[0])
|
||||||
|
amod := C.CString(akey)
|
||||||
|
amodt := C.CString(keyT)
|
||||||
|
|
||||||
|
C.key_tap(zkey, amod, amodt, C.int(keyDelay))
|
||||||
|
|
||||||
|
C.free(unsafe.Pointer(amod))
|
||||||
|
C.free(unsafe.Pointer(amodt))
|
||||||
}
|
}
|
||||||
|
|
||||||
// KeyToggle toggle the keyboard
|
// KeyToggle toggle the keyboard
|
||||||
|
Loading…
Reference in New Issue
Block a user