RobotGo, Go Native cross-platform GUI automation @vcaesar

Robotgo

Build Status CircleCI Status Build Status Appveyor Go Report Card GoDoc GitHub release Join the chat at https://gitter.im/go-vgo/robotgo

Golang Desktop Automation. Control the mouse, keyboard, bitmap, read the screen, Window Handle and global event listener.

RobotGo supports Mac, Windows, and Linux(X11).

Chinese Simplified

Contents

Docs

Binding:

Robotn, binding JavaScript and other, support more language.

Requirements:

Now, Please make sure Golang, GCC is installed correctly before installing RobotGo.

ALL:

Golang

GCC

For Mac OS X:

Xcode Command Line Tools

For Windows:

MinGW-w64 (Use recommended) or other GCC

For everything else:

GCC, libpng

X11 with the XTest extension (also known as the Xtst library)

Event:

xcb, xkb, libxkbcommon
Ubuntu:
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 xsel xclip

Fedora:

sudo dnf install libxkbcommon-devel libXtst-devel libxkbcommon-x11-devel xorg-x11-xkb-utils-devel

sudo dnf install libpng-devel

sudo dnf install xsel xclip

Installation:

go get github.com/go-vgo/robotgo

It's that easy!

png.h: No such file or directory? Please see issues/47.

Update:

go get -u github.com/go-vgo/robotgo

Note go1.10.x C file compilation cache problem, golang #24355. go mod vendor problem, golang #26366.

Examples:

Mouse

package main

import (
	"github.com/go-vgo/robotgo"
)

func main() {
  robotgo.ScrollMouse(10, "up")
  robotgo.MouseClick("left", true)
  robotgo.MoveMouseSmooth(100, 200, 1.0, 100.0)
}

Keyboard

package main

import (
  "fmt"

  "github.com/go-vgo/robotgo"
)

func main() {
  robotgo.TypeStr("Hello World")
  robotgo.TypeStr("だんしゃり", 1.0)
  // robotgo.TypeString("テストする")

  robotgo.TypeStr("Hi galaxy. こんにちは世界.")
  robotgo.Sleep(1)

  // ustr := uint32(robotgo.CharCodeAt("Test", 0))
  // robotgo.UnicodeType(ustr)

  robotgo.KeyTap("enter")
  // robotgo.TypeString("en")
  robotgo.KeyTap("i", "alt", "command")

  arr := []string{"alt", "command"}
  robotgo.KeyTap("i", arr)

  robotgo.WriteAll("Test")
  text, err := robotgo.ReadAll()
  if err == nil {
    fmt.Println(text)
  }
}

Screen

package main

import (
	"fmt"

	"github.com/go-vgo/robotgo"
)

func main() {
  x, y := robotgo.GetMousePos()
  fmt.Println("pos: ", x, y)

  color := robotgo.GetPixelColor(100, 200)
  fmt.Println("color---- ", color)
}

Bitmap

package main

import (
	"fmt"

	"github.com/go-vgo/robotgo"
)

func main() {
  bitmap := robotgo.CaptureScreen(10, 20, 30, 40)
  // use `defer robotgo.FreeBitmap(bit)` to free the bitmap
  defer robotgo.FreeBitmap(bitmap)

  fmt.Println("...", bitmap)

  fx, fy := robotgo.FindBitmap(bitmap)
  fmt.Println("FindBitmap------ ", fx, fy)

  robotgo.SaveBitmap(bitmap, "test.png")
}

Event

package main

import (
  "fmt"

  "github.com/go-vgo/robotgo"
  hook "github.com/robotn/gohook"
)

func main() {
  add()
  low()
  event()
}

func add() {
  fmt.Println("--- Please press ctrl + shift + q to stop hook ---")
  robotgo.EventHook(hook.KeyDown, []string{"q", "ctrl", "shift"}, func(e hook.Event) {
    fmt.Println("ctrl-shift-q")
    robotgo.EventEnd()
  })

  fmt.Println("--- Please press w---")
  robotgo.EventHook(hook.KeyDown, []string{"w"}, func(e hook.Event) {
    fmt.Println("w")
  })

  s := robotgo.EventStart()
  <-robotgo.EventProcess(s)
}

func low() {
	EvChan := hook.Start()
	defer hook.End()

	for ev := range EvChan {
		fmt.Println("hook: ", ev)
	}
}

func event() {
  ok := robotgo.AddEvents("q", "ctrl", "shift")
  if ok {
    fmt.Println("add events...")
  }

  keve := robotgo.AddEvent("k")
  if keve {
    fmt.Println("you press... ", "k")
  }

  mleft := robotgo.AddEvent("mleft")
  if mleft {
    fmt.Println("you press... ", "mouse left button")
  }
}

Window

package main

import (
	"fmt"

	"github.com/go-vgo/robotgo"
)

func main() {
  fpid, err := robotgo.FindIds("Google")
  if err == nil {
    fmt.Println("pids... ", fpid)

    if len(fpid) > 0 {
      robotgo.ActivePID(fpid[0])

      robotgo.Kill(fpid[0])
    }
  }

  robotgo.ActiveName("chrome")

  isExist, err := robotgo.PidExists(100)
  if err == nil && isExist {
    fmt.Println("pid exists is", isExist)

    robotgo.Kill(100)
  }

  abool := robotgo.ShowAlert("test", "robotgo")
  if abool {
 	  fmt.Println("ok@@@ ", "ok")
  }

  title := robotgo.GetTitle()
  fmt.Println("title@@@ ", title)
}

CrossCompiling

Windows64 to win32
SET CGO_ENABLED=1
SET GOARCH=386
go build main.go

Other to windows

GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ go build -x ./
// CC=mingw-w64\x86_64-7.2.0-win32-seh-rt_v5-rev1\mingw64\bin\gcc.exe
// CXX=mingw-w64\x86_64-7.2.0-win32-seh-rt_v5-rev1\mingw64\bin\g++.exe

Some discussions and questions, please see issues/228, issues/143.

Authors

Plans

  • Update Find an image on screen, read pixels from an image
  • Update Window Handle
  • Try support Android, maybe support IOS

Contributors

License

Robotgo is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.

See LICENSE-APACHE, LICENSE-MIT.

Owner
vgo
The Vgo Programming Language, AI; View with C & Golang & Es6
vgo
Comments
  • XkbGetKeyboard failed to locate a valid keyboard!

    XkbGetKeyboard failed to locate a valid keyboard!

    • Robotgo version (or commit ref): Latest from today
    • Go version: 1.10.4
    • Gcc version: 7.2.0
    • Operating system and bit: Ubuntu 17.10
    • Can you reproduce the bug (Check below code):
      • [ ] Yes
    package main
    
    import (
    	"fmt"
    
    	"github.com/go-vgo/robotgo"
    )
    
    func main() {
    	fmt.Println(robotgo.GetTitle())
    }
    
    
    • Log gist: No protocol specified on_library_load [441]: XOpenDisplay failure! load_input_helper [1892]: XkbGetKeyboard failed to locate a valid keyboard! signal: segmentation fault (core dumped)

    Description

    The program doesnt execute and exits with above log mentioned of XkbGetKeyboard failed to locate a valid Keyboard!. ...

    System information

    Dell Vostro 15 (2017 Model) Gnome 3.26.2 64 Bit

  • ./bitmap/../base/zlib_util_c.h:2:18: fatal error: zlib.h: No such file or directory

    ./bitmap/../base/zlib_util_c.h:2:18: fatal error: zlib.h: No such file or directory

    • Robotgo version (or commit ref): latest
    • Go version: go version go1.9.2 windows/amd64
    • Gcc version: gcc (tdm64-1) 5.1.0
    • Operating system and bit: Win10_x64

    go get github.com/go-vgo/robotgo github.com/go-vgo/robotgo In file included from ./bitmap/../base/str_io_c.h:2:0, from ./bitmap/goBitmap.h:27, from ......\go\src\github.com\go-vgo\robotgo\robotgo.go:45: ./bitmap/../base/zlib_util_c.h:2:18: fatal error: zlib.h: No such file or directory compilation terminated.

  • cross-platform Build

    cross-platform Build

    I am using Ubuntu. Cross Compile

    /github.com/go-vgo/robotgo$ GOOS=windows GOARCH=386 go build -o test.exe

    Error message : can't load package: package github.com/go-vgo/robotgo: no buildable Go source files in /home/say/golang/gowork/src/github.com/go-vgo/robotgo

    Linux Cross Compile, What packages do I need ?

  • TypeString Bug

    TypeString Bug

    今天新装的系统 ,环境版本都是最新的,主要TypeString存在问题

    1. TypeString(str) str首字母必须大写, 否则无限输出第一个字母
    2. TypeString 不输出中文

    e.g. robotgo.TypeString("hello xxx") // hhhhhhhhhhhhhhhhh endless robotgo.TypeString("E水电费水电费") // output: E without chinese

  • How to read and find an image using embed?

    How to read and find an image using embed?

    • Robotgo version (or commit ref): v0.100.10
    • Go version: go1.17 windows/amd64
    • Gcc version: gcc version 8.1.0 (x86_64-win32-seh-rev0, Built by MinGW-W64 project)
    • Operating system and bit: Windows 10 64bit
    • Resolution: 1920x1080

    Description

    How to read and find an image using go:embed?

    I tried following:

    1. As suggested in https://github.com/go-vgo/robotgo/issues/309
    //go:embed image.png
    var image []byte
    
    func main() {
    	img, _, _ := image.Decode(bytes.NewReader(image))
    	bit := robotgo.ImgToBitmap(img)
    	x, y := robotgo.FindBitmap(bit)
    
    	fmt.Println(x, y)
    }
    

    Does not build due to type mismatch:

    cannot use bit (type robotgo.Bitmap) as type robotgo._Ctype_MMBitmapRef in argument to robotgo.FindBitmap


    //go:embed image.png
    var image string
    
    func main() {
    	img := robotgo.BitmapFromStr(image)
    	x, y := robotgo.FindBitmap(img)
    	
    	fmt.Println(x, y)
    }
    

    Builds, but doesn't find given image on the screen (image's content seems to be loaded via embed):

    bitmap is not ready yet! -1 -1


    func main() {
    	bit := robotgo.OpenBitmap("image.png")
    	x, y := robotgo.FindBitmap(bit)
    	
    	fmt.Println(x, y)
    }
    

    This works, but doesn't use embed - just reads the same file from file system:

    1502 12


    1. I also wanted to try v1.0.0-beta4, but I can't find any function that would find given image on the screen. How to do that?
  • Error cross-compiling for windows/386 using xgo

    Error cross-compiling for windows/386 using xgo

    Not sure if this is a robotgo issue or an xgo issue but asking here just in case anyone can shine a light on what is going on.

    Please see this xgo issue for info - https://github.com/karalabe/xgo/issues/123

  • How to add multiple keypress event listener ?

    How to add multiple keypress event listener ?

    I want press k do something, and press s do something.

    I try it like this, but failed.

    package main
    
    import (
    	"fmt"
    
    	"github.com/go-vgo/robotgo"
    )
    
    func main() {
    
    	kCh := make(chan int)
    	go func() {
    		for {
    			fmt.Println("...event k")
    			kCh <- robotgo.AddEvent("k")
    		}
    	}()
    
    	sCh := make(chan int)
    	go func() {
    		for {
    			fmt.Println("...event s")
    			sCh <- robotgo.AddEvent("s")
    		}
    	}()
    
    	for {
    		switch {
    		case <-kCh == 0:
    			fmt.Println("you press...", "k")
    		case <-sCh == 0:
    			fmt.Println("you press...", "s")
    		}
    		fmt.Println("for switch")
    	}
    }
    
    
  • event/goEvent.h file not found

    event/goEvent.h file not found

    • Robotgo version (or commit ref): v0.60.0 6f0557305893c33da9ddb8f8aac687653ec074e8
    • Go version: go version go1.11 darwin/amd64
    • Gcc version:
    Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
    Apple LLVM version 9.1.0 (clang-902.0.39.2)
    Target: x86_64-apple-darwin17.7.0
    Thread model: posix
    
    
    • Operating system and bit:
    macOS High Sierra
    10.13.6
    
    • Resolution:
    • Can you reproduce the bug at Examples:
      • [x] Yes (provide example code)
      • [ ] No
      • [ ] Not relevant
    • Provide example code: run the mouse example via
    go run main.go
    
    • Log gist:
    github.com/robotn/gohook
    ../../vendor/github.com/robotn/gohook/hook.go:22:10: fatal error: 'event/goEvent.h' file not found
    #include "event/goEvent.h"
    1 error generated.
    
    
  • Could not install robotgo in MacOS Sierra using Go 1.10.1

    Could not install robotgo in MacOS Sierra using Go 1.10.1

    • Robotgo version (or commit ref):
    • Go version: 1.10.1
    • Gcc version: n/a
    • Operating system and bit: MacOS Sierra (10.12.6)
    • Can you reproduce the bug at Examples:
      • [ ] Yes (provide example code)
      • [ ] No
      • [X ] Not relevant
    • Provide example code: go get -v github.com/go-vgo/robotgo
    • Log gist:
    robotgo$ go get -v github.com/go-vgo/robotgo
    github.com/go-vgo/robotgo
    # github.com/go-vgo/robotgo
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(png.o)) was built for newer OSX version (10.13) than being linked (10.12)
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(pngread.o)) was built for newer OSX version (10.13) than being linked (10.12)
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(pngwrite.o)) was built for newer OSX version (10.13) than being linked (10.12)
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(pngmem.o)) was built for newer OSX version (10.13) than being linked (10.12)
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(pngget.o)) was built for newer OSX version (10.13) than being linked (10.12)
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(pngset.o)) was built for newer OSX version (10.13) than being linked (10.12)
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(pngtrans.o)) was built for newer OSX version (10.13) than being linked (10.12)
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(pngrtran.o)) was built for newer OSX version (10.13) than being linked (10.12)
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(pngerror.o)) was built for newer OSX version (10.13) than being linked (10.12)
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(pngwio.o)) was built for newer OSX version (10.13) than being linked (10.12)
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(pngrutil.o)) was built for newer OSX version (10.13) than being linked (10.12)
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(pngwutil.o)) was built for newer OSX version (10.13) than being linked (10.12)
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(pngwtran.o)) was built for newer OSX version (10.13) than being linked (10.12)
    ld: warning: object file (/Users/aaguilar/.gvm/pkgsets/go1.10.1/global/src/github.com/go-vgo/robotgo/cdeps/mac/libpng.a(pngrio.o)) was built for newer OSX version (10.13) than being linked (10.12)
    Undefined symbols for architecture x86_64:
      "_inflateValidate", referenced from:
          _png_inflate_claim in libpng.a(pngrutil.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    
    

    Description

    Could not install robotgo go library via go get -v github.com/go-vgo/robotgo and therefore could not run the basic examples.

  • How to find all bitmaps?

    How to find all bitmaps?

    Hey. Thanks for the project. Can you please tell me how you can find all the coordinates of objects on a bitmap? Something similar to:

    bitmap := robotgo.OpenBitmap("images/sample.png")
    target := robotgo.OpenBitmap("images/target.png")
    for _, points := range robotgo.FindAllBitmaps(target, bitmap) {
    	fmt.Println(points)
    }
    
  • Capturing screen question

    Capturing screen question

    Hello, I am trying to use this awesome library for screencapture, but it returns MMBitmapRef and actually I cannot get how to convert this to byte[] or image types golang supports. How can I do that? Please, help

  • Compiling for Windows (on Linux) emits warnings

    Compiling for Windows (on Linux) emits warnings

    Building for Windows 64b
    GOOS=windows GOARCH=amd64 go build -o "$APP_PROJECT_BIN_DIR/${APP_PROJECT_NAME}.exe" -ldflags="-s -w" main.go
    
    

    `

    github.com/go-vgo/robotgo

    /home/qs/go/pkg/mod/github.com/go-vgo/[email protected]/hook.go:30:29: undefined: hook.Event /home/qs/go/pkg/mod/github.com/go-vgo/[email protected]/hook.go:31:14: undefined: hook.Start /home/qs/go/pkg/mod/github.com/go-vgo/[email protected]/hook.go:36:7: undefined: hook.End /home/qs/go/pkg/mod/github.com/go-vgo/[email protected]/hook.go:43:24: undefined: hook.Event /home/qs/go/pkg/mod/github.com/go-vgo/[email protected]/hook.go:44:14: undefined: hook.Start /home/qs/go/pkg/mod/github.com/go-vgo/[email protected]/hook.go:60:36: undefined: hook.Event /home/qs/go/pkg/mod/github.com/go-vgo/[email protected]/hook.go:65:69: undefined: hook.Event /home/qs/go/pkg/mod/github.com/go-vgo/[email protected]/img.go:92:40: undefined: Bitmap /home/qs/go/pkg/mod/github.com/go-vgo/[email protected]/img.go:107:38: undefined: Bitmap /home/qs/go/pkg/mod/github.com/go-vgo/[email protected]/img.go:137:20: undefined: Bitmap /home/qs/go/pkg/mod/github.com/go-vgo/[email protected]/hook.go:44:14: too many errors `

    go version go1.19.4 linux/amd64
    
    lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 20.04.5 LTS
    Release:        20.04
    Codename:       focal
    
    
  • window api does not work on Mac

    window api does not work on Mac

    • Robotgo version (or commit ref): v0.100.10
    • Go version: 1.18
    • Gcc version:

    image

    • Operating system and bit: macos 12.6 x86_64
    • Resolution:
    • Can you reproduce the bug at Examples:
      • [x] Yes (provide example code)
      • [ ] No
      • [ ] Not relevant
    • Provide example code:
    func main() {
    	pids, err := robotgo.FindIds("STGame")
    	if err == nil {
    		fmt.Println("pids... ", pids)
    	}
    	if len(pids) < 0 {
    		robotgo.ShowAlert("robot-keys", "未找到腾讯Start窗口", "ok", "cancel")
    	}
    	pid := pids[0]
    
    	title := robotgo.GetTitle(pid)
    	fmt.Println(title)
    
    	// 操作窗口的都不管用
    
    	err = robotgo.ActivePID(pid)
    	if err != nil {
    		fmt.Println(err)
    		return
    	}
    
    	robotgo.MinWindow(pid)
    }
    

    Description

    Got the correct pid for the window, but both ActivePID and MinWindow and the other APIs about the operation are invalid and do not respond

  • How to operate a window,move window

    How to operate a window,move window

    How to operate a window

    obtain a window handle, and move the window

    find follow function,not found how to move window

    mdata := robotgo.GetActive()//获取当前窗口
    hwnd := robotgo.GetHandle()//获取当前窗口hwnd
    Println("hwnd---", hwnd)
    title := robotgo.GetTitle()//获取当前窗口标题
    Println("title-----", title)
    robotgo.CloseWindow()//关闭当前窗口
    robotgo.SetActive(mdata)//SetActive窗口
    
  • build failing on windows 386

    build failing on windows 386

    • Robotgo version (or commit ref): v1.0.0-beta5.3
    • Go version: go version go1.19.1 windows/amd64
    • Gcc version: gcc.exe (x86_64-win32-sjlj-rev0, Built by MinGW-W64 project) 8.1.0
    • Operating system and bit: win10 64bit
    • Resolution:
    • Can you reproduce the bug at Examples:
      • [x] Yes (provide example code)
      • [ ] No
      • [ ] Not relevant
    • Provide example code:
    package main
    
    import (
    	"fmt"
    	"github.com/go-vgo/robotgo"
    )
    
    func main() {
    	color := robotgo.GetPixelColor(67, 344)
    	fmt.Println("color:", color)
    }
    
    • Log gist: go run main.go ....\pkg\mod\github.com\go-vgo\[email protected]\img.go:92:40: undefined: Bitmap ....\pkg\mod\github.com\go-vgo\[email protected]\img.go:107:38: undefined: Bitmap ....\pkg\mod\github.com\go-vgo\[email protected]\img.go:137:20: undefined: Bitmap ....\pkg\mod\github.com\go-vgo\[email protected]\robotgo_mac_win.go:23:9: undefined: internalGetBounds ....\pkg\mod\github.com\go-vgo\[email protected]\robotgo_mac_win.go:33:9: undefined: internalGetClient ....\pkg\mod\github.com\go-vgo\[email protected]\robotgo_mac_win.go:42:12: undefined: cgetTitle ....\pkg\mod\github.com\go-vgo\[email protected]\robotgo_mac_win.go:60:2: undefined: internalActive ....\pkg\mod\github.com\go-vgo\[email protected]\robotgo_mac_win.go:66:9: undefined: getNumDisplays ....\pkg\mod\github.com\go-vgo\[email protected]\robotgo_mac_win.go:76:9: undefined: showAlert

    Description

    set GOARCH=386

    64-bit runs OK 32-bit failed to run How to fix ...

  • bitmap not working at all ?

    bitmap not working at all ?

    1. Please speak English (English only), this is the language everybody of us can speak and write.
    2. Please take a moment to search that an issue doesn't already exist.
    3. Please make sure Golang, GCC is installed correctly before installing RobotGo.
    1. Please give all relevant information below for bug reports, incomplete details will be handled as an invalid report.

    You MUST delete the content above including this line before posting, otherwise your issue will be invalid.

    • Robotgo version (or commit ref):
    • Go version: go version go1.19.1 windows/amd64
    • Gcc version:gcc version 8.1.0 (x86_64-win32-seh-rev0, Built by MinGW-W64 project)
    • Operating system and bit: Microsoft Windows 11 专业版 x64
    • Resolution:
    • Can you reproduce the bug at Examples:
      • [ ] Yes (provide example code)
      • [ ] No
      • [ ] Not relevant
    • Provide example code:
    bitmap example code from readme
    
    • Log gist:
    bitmap... &{0x1e2f82867b0 30 40 120 32 4 [0 0]}
    FindBitmap------  -1 -1
    Find all bitmap:  []
    FindBitmap------  10 20
    

    Description

    bitmap.FindAll seems Find all bitmap got no result ...

  • does't we support mouse x-button click event detect?,i need one

    does't we support mouse x-button click event detect?,i need one

    does't we support mouse x-button click event detect?,i event hook like that, and we need function parameter detail in document,i just found parameter definition in code like this:

    	var (
    		// cs   *C.char
    		mArr = []string{"mleft", "center", "mright", "wheelDown",
    			"wheelUp", "wheelLeft", "wheelRight"}
    		mouseBool bool
    	)
    
Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron)

Thanks to go-astilectron build cross platform GUI apps with GO and HTML/JS/CSS. It is the official GO bindings of astilectron and is powered by Electr

Jan 9, 2023
Build cross platform GUI apps with GO and HTML/JS/CSS (powered by nwjs)
Build cross platform GUI apps with GO and HTML/JS/CSS (powered by nwjs)

gowd Build cross platform GUI apps with GO and HTML/JS/CSS (powered by nwjs) How to use this library: Download and install nwjs Install this library g

Dec 11, 2022
Cross-platform GUI for go is never this easy and clean.
Cross-platform GUI for go is never this easy and clean.

gimu Strongly suggest NOT to use this project anymore, the auto-generated cgo wrapper of Nuklear has a random crash issue which is hard to fix (becaus

Jul 12, 2022
Cross platform rapid GUI framework for golang based on Dear ImGui.
Cross platform rapid GUI framework for golang based on Dear ImGui.

giu Cross platform rapid GUI framework for golang based on Dear ImGui and the great golang binding imgui-go. Any contribution (features, widgets, tuto

Dec 28, 2022
Cross-Platform GUI Framework for Go

⚠️ I'm currently working on this project as part of my master's thesis at the Berlin University of Applied Sciences and Technology. It is under active

Oct 31, 2022
Kita is a declarative, reactive GUI toolkit for build cross platform apps with web technology with single codebase
Kita is a declarative, reactive GUI toolkit for build cross platform apps with web technology with single codebase

Kita is a declarative, reactive GUI toolkit for build cross platform apps with web technology with single codebase. Inspired by Flutter, React. S

Apr 18, 2022
UIKit - A declarative, reactive GUI toolkit for build cross platform apps with web technology with single codebase
 UIKit - A declarative, reactive GUI toolkit for build cross platform apps with web technology with single codebase

UIKit - A declarative, reactive GUI toolkit for build cross platform apps with web technology with single codebase

Apr 18, 2022
Cross-platform Go/Golang GUI library.

中文 | English GoVCL Cross-platform Golang GUI library, The core binding is liblcl, a common cross-platform GUI library created by Lazarus. GoVCL is a n

Dec 30, 2022
Platform-native GUI library for Go.

ui: platform-native GUI library for Go This is a library that aims to provide simple GUI software development in Go. It is based on my libui, a simple

Jan 9, 2023
An experimental Go cross platform UI library.

GXUI - A Go cross platform UI library. Notice: Unfortunately due to a shortage of hours in a day, GXUI is no longer maintained. If you're looking for

Jan 6, 2023
Build cross-platform modern desktop apps in Go + HTML5
Build cross-platform modern desktop apps in Go + HTML5

Lorca A very small library to build modern HTML5 desktop apps in Go. It uses Chrome browser as a UI layer. Unlike Electron it doesn't bundle Chrome in

Jan 6, 2023
Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and Edge (Windows)

webview A tiny cross-platform webview library for C/C++/Golang to build modern cross-platform GUIs. Also, there are Rust bindings, Python bindings, Ni

Dec 28, 2022
Cross-platform Go library to place an icon in the host operating system's taskbar.

trayhost Package trayhost is a cross-platform Go library to place an icon in the host operating system's taskbar. Platform Support macOS - Fully imple

Nov 6, 2022
Go cross-platform library for displaying dialogs and input boxes

dlgs dlgs is a cross-platform library for displaying dialogs and input boxes. Installation go get -u github.com/gen2brain/dlgs Documentation Document

Dec 24, 2022
A cross-platform app-development module for Go.
A cross-platform app-development module for Go.

The cross-platform Go module for building apps (pronounced klo-va-seed). Usecases As a lightweight alternative to Electron Write your frontend and nat

Dec 1, 2022
pure go, cross-platform, MIT-licensed ui toolkit for developers
pure go, cross-platform, MIT-licensed ui toolkit for developers

duit - developer ui toolkit WARNING: this library is work in progress. backwards incompatible changes will be made. details duit is a pure go (*), cro

Dec 24, 2022
Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and Edge (Windows)

webview A tiny cross-platform webview library for C/C++/Golang to build modern cross-platform GUIs. Also, there are Rust bindings, Python bindings, Ni

Jan 1, 2023
Go wrapper around the Iup GUI toolset

Iup Go Wrapper iup is a Go wrapper around the Iup GUI toolkit. The project was started on April 27, 2011. Fork https://github.com/grd/iup is a fork of

Nov 28, 2020
Go Wrapper for the wxWidgets GUI

This is the source code for wxGo a Go wrapper of the wxWidgets library. The actuall wxWidgets source code is not included and will need to be downloa

Nov 30, 2022