robotgo库支持条件编译

This commit is contained in:
lwch
2021-11-02 18:47:19 +08:00
parent 1feae3fcba
commit 49d2d9d9b7
4 changed files with 78 additions and 44 deletions
+3 -40
View File
@@ -1,48 +1,11 @@
// +build !vnc
package worker
import (
"natpass/code/client/tunnel/vnc/vncnetwork"
"github.com/go-vgo/robotgo"
"github.com/lwch/logging"
)
import "natpass/code/client/tunnel/vnc/vncnetwork"
func runMouse(data *vncnetwork.MouseData) {
detach, err := attachDesktop()
if err != nil {
logging.Error("attach desktop: %v", err)
return
}
defer detach()
robotgo.MoveMouse(int(data.GetX()), int(data.GetY()))
var key string
switch data.GetBtn() {
case vncnetwork.MouseData_left:
key = "left"
case vncnetwork.MouseData_right:
key = "right"
case vncnetwork.MouseData_middle:
key = "center"
}
switch data.GetType() {
case vncnetwork.Status_down:
robotgo.MouseToggle("down", key)
case vncnetwork.Status_up:
robotgo.MouseToggle("up", key)
}
}
func runKeyboard(data *vncnetwork.KeyboardData) {
detach, err := attachDesktop()
if err != nil {
logging.Error("attach desktop: %v", err)
return
}
defer detach()
switch data.Type {
case vncnetwork.Status_down:
robotgo.KeyToggle(data.Key, "down")
case vncnetwork.Status_up:
robotgo.KeyToggle(data.Key, "up")
}
}
@@ -0,0 +1,50 @@
// +build vnc
package worker
import (
"natpass/code/client/tunnel/vnc/vncnetwork"
"github.com/go-vgo/robotgo"
"github.com/lwch/logging"
)
func runMouse(data *vncnetwork.MouseData) {
detach, err := attachDesktop()
if err != nil {
logging.Error("attach desktop: %v", err)
return
}
defer detach()
robotgo.MoveMouse(int(data.GetX()), int(data.GetY()))
var key string
switch data.GetBtn() {
case vncnetwork.MouseData_left:
key = "left"
case vncnetwork.MouseData_right:
key = "right"
case vncnetwork.MouseData_middle:
key = "center"
}
switch data.GetType() {
case vncnetwork.Status_down:
robotgo.MouseToggle("down", key)
case vncnetwork.Status_up:
robotgo.MouseToggle("up", key)
}
}
func runKeyboard(data *vncnetwork.KeyboardData) {
detach, err := attachDesktop()
if err != nil {
logging.Error("attach desktop: %v", err)
return
}
defer detach()
switch data.Type {
case vncnetwork.Status_down:
robotgo.KeyToggle(data.Key, "down")
case vncnetwork.Status_up:
robotgo.KeyToggle(data.Key, "up")
}
}
+1 -1
View File
@@ -25,4 +25,4 @@ go run contrib/bindata/main.go -pkg dashboard -o code/client/dashboard/assets.go
go build -ldflags "$LDFLAGS" -o bin/np-svr code/server/*.go
# CC=x86_64-w64-mingw32-gcc \
# CXX=x86_64-w64-mingw32-g++ \
go build -ldflags "$LDFLAGS" -o bin/np-cli code/client/*.go
go build -ldflags "$LDFLAGS" -tags "$TAGS" -o bin/np-cli code/client/*.go
+24 -3
View File
@@ -150,6 +150,13 @@ func build(t target) {
err = copyFile("CHANGELOG.md", path.Join(buildDir, "CHANGELOG.md"))
runtime.Assert(err)
logging.Info("go env...")
cmd := exec.Command("go", "env")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Env = os.Environ()
runtime.Assert(cmd.Run())
ldflags := "-X 'main.gitHash=" + gitHash() + "' " +
"-X 'main.gitReversion=" + gitReversion() + "' " +
"-X 'main.buildTime=" + buildTime() + "' " +
@@ -157,7 +164,7 @@ func build(t target) {
"--extldflags '-static -fpic -lssp'"
logging.Info("build server...")
cmd := exec.Command("go", "build", "-o", path.Join(buildDir, "np-svr"+t.ext),
cmd = exec.Command("go", "build", "-o", path.Join(buildDir, "np-svr"+t.ext),
"-ldflags", ldflags,
path.Join("code", "server", "main.go"))
cmd.Stdout = os.Stdout
@@ -168,7 +175,7 @@ func build(t target) {
fmt.Sprintf("GOARCH=%s", t.arch))
runtime.Assert(cmd.Run())
logging.Info("build client...")
logging.Info("build client(no vnc)...")
cmd = exec.Command("go", "build", "-o", path.Join(buildDir, "np-cli"+t.ext),
"-ldflags", ldflags,
path.Join("code", "client", "main.go"),
@@ -176,7 +183,21 @@ func build(t target) {
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Env = append(os.Environ(),
"CGO_ENABLED=0",
fmt.Sprintf("GOOS=%s", t.os),
fmt.Sprintf("GOARCH=%s", t.arch),
fmt.Sprintf("CC=%s", t.cc),
fmt.Sprintf("CXX=%s", t.cxx))
runtime.Assert(cmd.Run())
logging.Info("build client(vnc)...")
cmd = exec.Command("go", "build", "-o", path.Join(buildDir, "np-cli"+".vnc"+t.ext),
"-ldflags", ldflags,
"-tags", "vnc",
path.Join("code", "client", "main.go"),
path.Join("code", "client", "connect.go"))
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Env = append(os.Environ(),
fmt.Sprintf("GOOS=%s", t.os),
fmt.Sprintf("GOARCH=%s", t.arch),
fmt.Sprintf("CC=%s", t.cc),