From d70fbf3fa99fe4f5e52b2a36241b5d058acef142 Mon Sep 17 00:00:00 2001 From: vcaesar Date: Sun, 9 Aug 2020 08:40:20 -0400 Subject: [PATCH] add paste string err return and optimize code --- hook.go | 8 +------- robotgo.go | 16 ++++++++++------ 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/hook.go b/hook.go index a499baf..63e5551 100644 --- a/hook.go +++ b/hook.go @@ -60,7 +60,6 @@ func EventProcess(Events chan hook.Event) chan bool { // EventHook register gohook event func EventHook(When uint8, keysPressed []string, Callback func(hook.Event)) { hook.Register(When, keysPressed, Callback) - return } // AddEvent add event listener, @@ -92,12 +91,7 @@ func AddEvent(key string) bool { geve := hook.AddEvent(key) // defer C.free(unsafe.Pointer(cs)) - - if geve == 0 { - return true - } - - return false + return geve == 0 } // AddEvents add global event hook diff --git a/robotgo.go b/robotgo.go index a1e353c..e7faab3 100644 --- a/robotgo.go +++ b/robotgo.go @@ -49,8 +49,9 @@ package robotgo import "C" import ( - // "fmt" + "fmt" "image" + // "os" "reflect" "runtime" @@ -577,9 +578,9 @@ func KeyTap(tapKey string, args ...interface{}) string { num int keyDelay = 10 ) + // var ckeyArr []*C.char ckeyArr := make([](*C.char), 0) - // zkey := C.CString(args[0]) zkey := C.CString(tapKey) defer C.free(unsafe.Pointer(zkey)) @@ -591,8 +592,8 @@ func KeyTap(tapKey string, args ...interface{}) string { ckeyArr = append(ckeyArr, (*C.char)(unsafe.Pointer(C.CString(s)))) } - str := C.key_Taps(zkey, (**C.char)(unsafe.Pointer(&ckeyArr[0])), - C.int(num), 0) + str := C.key_Taps(zkey, + (**C.char)(unsafe.Pointer(&ckeyArr[0])), C.int(num), 0) return C.GoString(str) } @@ -601,7 +602,6 @@ func KeyTap(tapKey string, args ...interface{}) string { keyArr = args[0].([]string) num = len(keyArr) - for i := 0; i < num; i++ { ckeyArr = append(ckeyArr, (*C.char)(unsafe.Pointer(C.CString(keyArr[i])))) } @@ -789,7 +789,11 @@ func TypeStr(str string, args ...float64) { // PasteStr paste a string, support UTF-8 func PasteStr(str string) string { - clipboard.WriteAll(str) + err := clipboard.WriteAll(str) + if err != nil { + return fmt.Sprint(err) + } + if runtime.GOOS == "darwin" { return KeyTap("v", "command") }