mirror of
https://github.com/go-vgo/robotgo.git
synced 2025-06-02 23:23:55 +00:00
Optimized memory recovery
This commit is contained in:
parent
ab4b7d30ab
commit
ec751f8b1c
25
robotgo.go
25
robotgo.go
@ -18,6 +18,7 @@ import "C"
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
. "fmt"
|
. "fmt"
|
||||||
|
"unsafe"
|
||||||
// "runtime"
|
// "runtime"
|
||||||
// "syscall"
|
// "syscall"
|
||||||
)
|
)
|
||||||
@ -70,6 +71,7 @@ func SetMouseDelay(x C.int) {
|
|||||||
func ScrollMouse(x C.int, y string) {
|
func ScrollMouse(x C.int, y string) {
|
||||||
z := C.CString(y)
|
z := C.CString(y)
|
||||||
C.ascrollMouse(x, z)
|
C.ascrollMouse(x, z)
|
||||||
|
defer C.free(unsafe.Pointer(z))
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -100,9 +102,12 @@ func KeyTap(args ...string) {
|
|||||||
|
|
||||||
zkey := C.CString(args[0])
|
zkey := C.CString(args[0])
|
||||||
amod := C.CString(apara)
|
amod := C.CString(apara)
|
||||||
defer func() {
|
// defer func() {
|
||||||
C.akeyTap(zkey, amod)
|
C.akeyTap(zkey, amod)
|
||||||
}()
|
// }()
|
||||||
|
|
||||||
|
defer C.free(unsafe.Pointer(zkey))
|
||||||
|
defer C.free(unsafe.Pointer(amod))
|
||||||
}
|
}
|
||||||
|
|
||||||
func KeyToggle(args ...string) {
|
func KeyToggle(args ...string) {
|
||||||
@ -116,20 +121,24 @@ func KeyToggle(args ...string) {
|
|||||||
|
|
||||||
zkey := C.CString(args[0])
|
zkey := C.CString(args[0])
|
||||||
amod := C.CString(apara)
|
amod := C.CString(apara)
|
||||||
defer func() {
|
// defer func() {
|
||||||
str := C.akeyToggle(zkey, amod)
|
str := C.akeyToggle(zkey, amod)
|
||||||
Println(str)
|
Println(str)
|
||||||
}()
|
// }()
|
||||||
|
defer C.free(unsafe.Pointer(zkey))
|
||||||
|
defer C.free(unsafe.Pointer(amod))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TypeString(x string) {
|
func TypeString(x string) {
|
||||||
cx := C.CString(x)
|
cx := C.CString(x)
|
||||||
C.atypeString(cx)
|
C.atypeString(cx)
|
||||||
|
defer C.free(unsafe.Pointer(cx))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TypeStringDelayed(x string, y C.size_t) {
|
func TypeStringDelayed(x string, y C.size_t) {
|
||||||
cx := C.CString(x)
|
cx := C.CString(x)
|
||||||
C.atypeStringDelayed(cx, y)
|
C.atypeStringDelayed(cx, y)
|
||||||
|
defer C.free(unsafe.Pointer(cx))
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetKeyboardDelay(x C.size_t) {
|
func SetKeyboardDelay(x C.size_t) {
|
||||||
@ -148,6 +157,7 @@ func SetKeyboardDelay(x C.size_t) {
|
|||||||
func GetPixelColor(x, y C.size_t) string {
|
func GetPixelColor(x, y C.size_t) string {
|
||||||
color := C.agetPixelColor(x, y)
|
color := C.agetPixelColor(x, y)
|
||||||
gcolor := C.GoString(color)
|
gcolor := C.GoString(color)
|
||||||
|
defer C.free(unsafe.Pointer(color))
|
||||||
return gcolor
|
return gcolor
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,6 +170,7 @@ func GetScreenSize() (C.size_t, C.size_t) {
|
|||||||
func GetXDisplayName() string {
|
func GetXDisplayName() string {
|
||||||
name := C.agetXDisplayName()
|
name := C.agetXDisplayName()
|
||||||
gname := C.GoString(name)
|
gname := C.GoString(name)
|
||||||
|
defer C.free(unsafe.Pointer(name))
|
||||||
return gname
|
return gname
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user