package main import ( //"flag" "log" "fmt" "strings" "time" "github.com/stephen-fox/user32util" ) var timeout time.Duration = 1 func checkErr(err error, args ...string) { if err != nil { fmt.Printf("Error: %q", err.Error()) } } func sendKeys(cmd string){ user32, err := user32util.LoadUser32DLL() if err != nil { log.Fatalf("failed to load user32.dll - %s", err.Error()) } command := strings.ToUpper(cmd) for _, ch := range command { err := user32util.SendKeydbInput(user32util.KeybdInput{WVK: uint16(ch),}, user32) checkErr(err) } time.Sleep(timeout * time.Second) err = user32util.SendKeydbInput(user32util.KeybdInput{WVK: 0x0A,}, user32) checkErr(err) err = user32util.SendKeydbInput(user32util.KeybdInput{WVK: 0x0D,}, user32) checkErr(err) time.Sleep(timeout * time.Second) } func windowsR(){ user32, err := user32util.LoadUser32DLL() if err != nil { log.Fatalf("failed to load user32.dll - %s", err.Error()) } err = user32util.SendKeydbInput(user32util.KeybdInput{WVK: 0x5B,}, user32) checkErr(err) err = user32util.SendKeydbInput(user32util.KeybdInput{WVK: 0x52,}, user32) checkErr(err) err = user32util.SendKeydbInput(user32util.KeybdInput{WVK: 0x5B, DwFlags: 0x0002}, user32) checkErr(err) time.Sleep(timeout * time.Second) } func windowsCmdEsc(){ user32, err := user32util.LoadUser32DLL() if err != nil { log.Fatalf("failed to load user32.dll - %s", err.Error()) } //CTRL+ESC err = user32util.SendKeydbInput(user32util.KeybdInput{WVK: 0x11,}, user32) checkErr(err) err = user32util.SendKeydbInput(user32util.KeybdInput{WVK: 0x1B,}, user32) checkErr(err) //release windows key err = user32util.SendKeydbInput(user32util.KeybdInput{WVK: 0x11, DwFlags: 0x0002}, user32) checkErr(err) time.Sleep(timeout * time.Second) } func main() { //https://raw.githubusercontent.com/stephen-fox/user32util/v0.3.1/examples/sendinput/main.go //flag.Parse() user32, err := user32util.LoadUser32DLL() if err != nil { log.Fatalf("failed to load user32.dll - %s", err.Error()) } _ = user32 sendKeys("ipconfig") //windowsCmdEsc() windowsR() sendKeys("cmd") sendKeys("ipconfig") }