mirror of
https://github.com/go-vgo/robotgo.git
synced 2025-06-01 06:33:56 +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.
|
||||
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 = 0;
|
||||
MMKeyCode key;
|
||||
|
28
robotgo.go
28
robotgo.go
@ -516,11 +516,10 @@ func KeyTap(tapKey string, args ...interface{}) {
|
||||
// var ckeyArr []*C.char
|
||||
ckeyArr := make([](*_Ctype_char), 0)
|
||||
|
||||
Try(func() {
|
||||
if len(args) > 0 {
|
||||
if reflect.TypeOf(args[0]) == reflect.TypeOf(keyArr) {
|
||||
|
||||
keyArr = args[0].([]string)
|
||||
|
||||
num = len(keyArr)
|
||||
|
||||
for i := 0; i < num; i++ {
|
||||
@ -542,30 +541,31 @@ func KeyTap(tapKey string, args ...interface{}) {
|
||||
}
|
||||
}
|
||||
|
||||
}, func(e interface{}) {
|
||||
} else {
|
||||
// fmt.Println("err:::", e)
|
||||
akey = "null"
|
||||
keyArr = []string{"null"}
|
||||
})
|
||||
}
|
||||
// }()
|
||||
|
||||
zkey := C.CString(tapKey)
|
||||
defer C.free(unsafe.Pointer(zkey))
|
||||
|
||||
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))
|
||||
} else {
|
||||
// zkey := C.CString(args[0])
|
||||
amod := C.CString(akey)
|
||||
amodt := C.CString(keyT)
|
||||
|
||||
C.key_tap(zkey, amod, amodt, C.int(keyDelay))
|
||||
|
||||
defer C.free(unsafe.Pointer(amod))
|
||||
defer C.free(unsafe.Pointer(amodt))
|
||||
return
|
||||
}
|
||||
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user