diff --git a/README.md b/README.md
index 220a6a9..bf74a8b 100644
--- a/README.md
+++ b/README.md
@@ -36,9 +36,10 @@ RobotGo supports Mac, Windows, and Linux(X11); and robotgo supports arm64 and x8
- [License](#license)
## Docs
- - [GoDoc](https://godoc.org/github.com/go-vgo/robotgo)
- - [API Docs](https://github.com/go-vgo/robotgo/blob/master/docs/doc.md)
- - [Chinese Docs](https://github.com/go-vgo/robotgo/blob/master/docs/doc_zh.md)
+ - [GoDoc](https://godoc.org/github.com/go-vgo/robotgo)
+
+ - [API Docs](https://github.com/go-vgo/robotgo/blob/master/docs/doc.md) (Deprecated, no updated)
+ - [Chinese Docs](https://github.com/go-vgo/robotgo/blob/master/docs/doc_zh.md) (Deprecated, no updated)
## Binding:
[ADB](https://github.com/vcaesar/adb), packaging android adb API.
@@ -57,13 +58,22 @@ GCC
```
#### For Mac OS X:
+
+Xcode Command Line Tools (And Privacy setting: [#277](https://github.com/go-vgo/robotgo/issues/277) )
+
```
-Xcode Command Line Tools
+xcode-select --install
```
#### For Windows:
+
+[MinGW-w64](https://sourceforge.net/projects/mingw-w64/files) (Use recommended)
+
```
-MinGW-w64 (Use recommended) or other GCC
+Or the other GCC (But you should compile the "libpng" with yourself.
+Or you can removed the bitmap.go.
+
+In the plans, the bitmap.go will moves to the bitmap dir, but break the API. )
```
#### For everything else:
@@ -81,12 +91,12 @@ xcb, xkb, libxkbcommon
##### Ubuntu:
```yml
+# gcc
sudo apt install gcc libc6-dev
sudo apt install libx11-dev xorg-dev libxtst-dev libpng++-dev
-sudo apt install xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev
-sudo apt install libxkbcommon-dev
+sudo apt install xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev libxkbcommon-dev
sudo apt install xsel xclip
```
@@ -105,7 +115,6 @@ sudo dnf install xsel xclip
```
go get github.com/go-vgo/robotgo
```
- It's that easy!
png.h: No such file or directory? Please see [issues/47](https://github.com/go-vgo/robotgo/issues/47).
@@ -130,19 +139,25 @@ import (
)
func main() {
- robotgo.ScrollMouse(10, "up")
- robotgo.Scroll(100, 200)
+ // robotgo.ScrollMouse(10, "up")
+ robotgo.Scroll(0, -10)
+ robotgo.Scroll(100, 0)
+
robotgo.MilliSleep(100)
- robotgo.ScrollRelative(10, -100)
+ robotgo.ScrollSmooth(-10, 6)
+ // robotgo.ScrollRelative(10, -100)
robotgo.MouseSleep = 100
robotgo.Move(10, 20)
robotgo.MoveRelative(0, -10)
robotgo.Drag(10, 10)
+ robotgo.Click("wheelRight")
robotgo.Click("left", true)
- robotgo.MoveSmooth(100, 200, 1.0, 100.0)
- robotgo.MouseToggle("up")
+ robotgo.MoveSmooth(100, 200, 1.0, 10.0)
+
+ robotgo.Toggle("left")
+ robotgo.Toggle("left", "up")
}
```
@@ -177,7 +192,8 @@ func main() {
robotgo.KeyTap("i", arr)
robotgo.MilliSleep(100)
- robotgo.KeyToggle("a", "down")
+ robotgo.KeyToggle("a")
+ robotgo.KeyToggle("a", "up")
robotgo.WriteAll("Test")
text, err := robotgo.ReadAll()
diff --git a/README_zh.md b/README_zh.md
index 474789a..350248b 100644
--- a/README_zh.md
+++ b/README_zh.md
@@ -32,9 +32,10 @@ RobotGo 支持 Mac, Windows, and Linux(X11).
- [License](#license)
## Docs
-- [GoDoc](https://godoc.org/github.com/go-vgo/robotgo)
-- [中文文档](https://github.com/go-vgo/robotgo/blob/master/docs/doc_zh.md)
-- [English Docs](https://github.com/go-vgo/robotgo/blob/master/docs/doc.md)
+- [GoDoc](https://godoc.org/github.com/go-vgo/robotgo)
+
+- [中文文档](https://github.com/go-vgo/robotgo/blob/master/docs/doc_zh.md) (弃用)
+- [English Docs](https://github.com/go-vgo/robotgo/blob/master/docs/doc.md) (弃用)
## Binding:
@@ -53,13 +54,20 @@ GCC
```
#### For Mac OS X:
+
+Xcode Command Line Tools (And Privacy setting: [#277](https://github.com/go-vgo/robotgo/issues/277) )
+
```
-Xcode Command Line Tools
+xcode-select --install
```
#### For Windows:
+
+[MinGW-w64](https://sourceforge.net/projects/mingw-w64/files) (推荐使用)
+
```
-MinGW-w64 (推荐使用) or other GCC
+Or the other GCC (But you should compile the "libpng" with yourself.
+Or you can removed the bitmap.go )
```
#### For everything else (Linux 等其他系统):
@@ -81,8 +89,7 @@ sudo apt install gcc libc6-dev
sudo apt install libx11-dev xorg-dev libxtst-dev libpng++-dev
-sudo apt install xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev
-sudo apt install libxkbcommon-dev
+sudo apt install xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev libxkbcommon-dev
sudo apt install xsel xclip
@@ -102,7 +109,6 @@ sudo dnf install xsel xclip
```
go get github.com/go-vgo/robotgo
```
- It's that easy!
png.h: No such file or directory? Please see [issues/47](https://github.com/go-vgo/robotgo/issues/47).
@@ -127,10 +133,12 @@ import (
)
func main() {
- robotgo.ScrollMouse(10, "up")
- robotgo.Scroll(100, 200)
+ // robotgo.ScrollMouse(10, "up")
+ robotgo.Scroll(0, -10)
+ robotgo.Scroll(100, 0)
robotgo.MilliSleep(100)
- robotgo.ScrollRelative(10, -100)
+ // robotgo.ScrollRelative(10, -100)
+ robotgo.ScrollSmooth(-10, 6)
robotgo.MouseSleep = 100
robotgo.Move(10, 20)
@@ -138,8 +146,10 @@ func main() {
robotgo.Drag(10, 10)
robotgo.Click("left", true)
- robotgo.MoveSmooth(100, 200, 1.0, 100.0)
- robotgo.MouseToggle("up")
+ robotgo.MoveSmooth(100, 200, 1.0, 10.0)
+
+ robotgo.Toggle("left")
+ robotgo.Toggle("left", "up")
}
```
@@ -174,7 +184,8 @@ func main() {
robotgo.KeyTap("i", arr)
robotgo.MilliSleep(100)
- robotgo.KeyToggle("a", "down")
+ robotgo.KeyToggle("a")
+ robotgo.KeyToggle("a", "up")
robotgo.WriteAll("テストする")
text, err := robotgo.ReadAll()
diff --git a/base/microsleep.h b/base/microsleep.h
index bbb8a4f..777831c 100644
--- a/base/microsleep.h
+++ b/base/microsleep.h
@@ -20,8 +20,7 @@
*
* Pauses execution for the given amount of milliseconds.
*/
-H_INLINE void microsleep(double milliseconds)
-{
+H_INLINE void microsleep(double milliseconds) {
#if defined(IS_WINDOWS)
Sleep((DWORD)milliseconds); /* (Unfortunately truncated to a 32-bit integer.) */
#else
diff --git a/clipboard/clipboard_test.go b/clipboard/clipboard_test.go
index 993d343..43f05ad 100644
--- a/clipboard/clipboard_test.go
+++ b/clipboard/clipboard_test.go
@@ -2,6 +2,9 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build darwin || windows
+// +build darwin windows
+
package clipboard_test
import (
diff --git a/key/keypress_c.h b/key/keypress_c.h
index da63ae4..8fd0502 100644
--- a/key/keypress_c.h
+++ b/key/keypress_c.h
@@ -173,6 +173,7 @@ void toggleKeyCode(MMKeyCode code, const bool down, MMKeyFlags flags){
void tapKeyCode(MMKeyCode code, MMKeyFlags flags){
toggleKeyCode(code, true, flags);
+ microsleep(5.0);
toggleKeyCode(code, false, flags);
}
@@ -224,6 +225,7 @@ void toggleKey(char c, const bool down, MMKeyFlags flags){
void tapKey(char c, MMKeyFlags flags){
toggleKey(c, true, flags);
+ microsleep(5.0);
toggleKey(c, false, flags);
}
@@ -289,6 +291,7 @@ void unicodeType(const unsigned value){
UniChar ch = (UniChar)value; // Convert to unsigned char
toggleUnicode(ch, true);
+ microsleep(5.0);
toggleUnicode(ch, false);
#elif defined(IS_WINDOWS)
INPUT input[2];
@@ -307,10 +310,12 @@ void unicodeType(const unsigned value){
SendInput(2, input, sizeof(INPUT));
#elif defined(USE_X11)
toggleUniKey(value, true);
+ microsleep(5.0);
toggleUniKey(value, false);
#endif
}
+// todo: removed
void typeStringDelayed(const char *str, const unsigned cpm){
/* Characters per second */
diff --git a/mouse/mouse_c.h b/mouse/mouse_c.h
index 245f618..1b72e74 100644
--- a/mouse/mouse_c.h
+++ b/mouse/mouse_c.h
@@ -206,6 +206,7 @@ void toggleMouse(bool down, MMMouseButton button){
void clickMouse(MMMouseButton button){
toggleMouse(true, button);
+ microsleep(5.0);
toggleMouse(false, button);
}
@@ -309,7 +310,7 @@ void scrollMouse(int scrollMagnitude, MMMouseWheelDirection scrollDirection){
#endif
}
-void scrollMouseXY(int x, int y){
+void scrollMouseXY(int x, int y) {
#if defined(IS_WINDOWS)
// Fix for #97,
// C89 needs variables declared on top of functions (mouseScrollInput)
diff --git a/robotgo.go b/robotgo.go
index eff9581..7d319e8 100644
--- a/robotgo.go
+++ b/robotgo.go
@@ -441,6 +441,7 @@ func CheckMouse(btn string) C.MMMouseButton {
return C.LEFT_BUTTON
}
+// Deprecated:
// MoveMouse move the mouse
func MoveMouse(x, y int) {
Move(x, y)
@@ -452,10 +453,10 @@ func MoveMouse(x, y int) {
// robotgo.MouseSleep = 100 // 100 millisecond
// robotgo.Move(10, 10)
func Move(x, y int) {
- if runtime.GOOS == "windows" {
- f := ScaleF()
- x, y = Scaled0(x, f), Scaled0(y, f)
- }
+ // if runtime.GOOS == "windows" {
+ // f := ScaleF()
+ // x, y = Scaled0(x, f), Scaled0(y, f)
+ // }
cx := C.int32_t(x)
cy := C.int32_t(y)
@@ -464,6 +465,7 @@ func Move(x, y int) {
MilliSleep(MouseSleep)
}
+// Deprecated:
// DragMouse drag the mouse to (x, y),
// It's same with the DragSmooth() now
func DragMouse(x, y int, args ...interface{}) {
@@ -474,6 +476,7 @@ func DragMouse(x, y int, args ...interface{}) {
Toggle("left", "up")
}
+// Deprecated:
// Drag drag the mouse to (x, y),
// It's not valid now, use the DragSmooth()
func Drag(x, y int, args ...string) {
@@ -500,6 +503,7 @@ func DragSmooth(x, y int, args ...interface{}) {
Toggle("left", "up")
}
+// Deprecated:
// MoveMouseSmooth move the mouse smooth,
// moves mouse to x, y human like, with the mouse button up.
func MoveMouseSmooth(x, y int, args ...interface{}) bool {
@@ -515,10 +519,10 @@ func MoveMouseSmooth(x, y int, args ...interface{}) bool {
// robotgo.MoveSmooth(10, 10)
// robotgo.MoveSmooth(10, 10, 1.0, 2.0)
func MoveSmooth(x, y int, args ...interface{}) bool {
- if runtime.GOOS == "windows" {
- f := ScaleF()
- x, y = Scaled0(x, f), Scaled0(y, f)
- }
+ // if runtime.GOOS == "windows" {
+ // f := ScaleF()
+ // x, y = Scaled0(x, f), Scaled0(y, f)
+ // }
cx := C.int32_t(x)
cy := C.int32_t(y)
@@ -577,6 +581,7 @@ func GetMousePos() (int, int) {
return x, y
}
+// Deprecated:
// MouseClick click the mouse
//
// robotgo.MouseClick(button string, double bool)
@@ -646,6 +651,7 @@ func Toggle(key ...string) int {
return int(i)
}
+// Deprecated:
// MouseToggle toggle the mouse
//
// Examples:
@@ -666,6 +672,7 @@ func MouseToggle(togKey string, args ...interface{}) int {
return int(i)
}
+// Deprecated:
// ScrollMouse scroll the mouse to (x, "up")
//
// Examples:
diff --git a/robotgo_mac_win.go b/robotgo_mac_win.go
index de6d21a..b0486c9 100644
--- a/robotgo_mac_win.go
+++ b/robotgo_mac_win.go
@@ -37,6 +37,10 @@ func internalGetTitle(pid int32, args ...int32) string {
// ActivePID active the window by PID,
//
// If args[0] > 0 on the Windows platform via a window handle to active
+//
+// Examples:
+// ids, _ := robotgo.FindIds()
+// robotgo.ActivePID(ids[0])
func ActivePID(pid int32, args ...int) error {
var hwnd int
if len(args) > 0 {