Browse Source

增加注册服务,重启电脑操作

master
VIVIMAN 3 years ago
parent
commit
44700c34a6
  1. 0
      golang_learn/data_func/go_to_command/demo01/demo.go
  2. 37
      golang_learn/data_func/go_to_command/demo02/启动执行文件.go
  3. 23
      golang_learn/data_func/go_to_command/demo03/实现启动执行程序隐藏进程.go
  4. 23
      golang_learn/data_func/go_to_command/demo04/根据进程名字kill进程.go
  5. 28
      golang_learn/data_func/go_to_command/demo05/操作注册表,实现程序开机启动.go
  6. 38
      golang_learn/data_func/go_to_command/demo06/关机、重启.go
  7. 11
      golang_learn/data_func/go_to_windows/main.go

0
golang_learn/data_func/go_to_command/demo/demo.go → golang_learn/data_func/go_to_command/demo01/demo.go

37
golang_learn/data_func/go_to_command/demo02/启动执行文件.go

@ -0,0 +1,37 @@
package main
import (
"fmt"
"os"
"os/exec"
"strings"
)
func main() {
}
// 启动exe
// 参数 strGameName 启动的执行文件的名字;strIPandPort 传递给exe的参数
func CallEXE(strGameName string, strIPandPort string) {
fmt.Println("CallEXE 开始启动游戏")
arg := []string{strGameName, strIPandPort}
fmt.Println("------------", arg)
strPath := getCurrentPath()
strPath = strPath + "\\TSTX\\" + strGameName // 路径
cmd := exec.Command(strPath, arg...)
if err := cmd.Run(); err != nil {
fmt.Println("Error: ", err)
return
}
return
}
// 获取当前目录
func getCurrentPath() string {
s, _ := exec.LookPath(os.Args[0])
i := strings.LastIndex(s, "\\")
path := string(s[0 : i+1])
// PathData = path
return path
}

23
golang_learn/data_func/go_to_command/demo03/实现启动执行程序隐藏进程.go

@ -0,0 +1,23 @@
package main
import (
"fmt"
"os/exec"
)
func main() {
}
// 隐藏调进程 参数---start /b notepad.exe
func YinCangEXE(strEXEName string) {
fmt.Println("隐藏进程")
cmd := exec.Command("auto.bat")
d, err := cmd.CombinedOutput()
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(string(d))
return
}

23
golang_learn/data_func/go_to_command/demo04/根据进程名字kill进程.go

@ -0,0 +1,23 @@
package main
import (
"fmt"
"os/exec"
)
func main() {
}
// kill调进程 参数---taskkill /im notepad.exe /T /F
// 参数说明:strGameName为需要kill的进程的名字
func KillEXE(strGameName string) bool {
fmt.Println("kill调进程游戏:", strGameName)
strGameName = strGameName + ".exe"
arg := []string{"/im", strGameName}
cmd := exec.Command("taskkill", arg...)
if err := cmd.Run(); err != nil {
fmt.Println("Error: ", err)
}
return true
}

28
golang_learn/data_func/go_to_command/demo05/操作注册表,实现程序开机启动.go

@ -0,0 +1,28 @@
package main
import (
"fmt"
"os/exec"
)
func main() {
}
//假如你要运行的程序名字为:"autorun.exe"使用命令为
//"reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v AUTORUN /t REG_SZ /d C:\autorun.exe /f"
//(不包括引号)其中"C:\autorun.exe"为目标程序的路径.按着这样的命令就可以将你的程序添加到启动项中了
// RunEXE 参数---reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v AUTORUN /t REG_SZ /d C:\autorun.exe /f
func RunEXE() {
fmt.Println("开机启动")
strEXEName := "C:\\Windows\\System32\\auto.vbs" // 需要启动文件的路径文件
arg := []string{"add", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "/v", "auto", "/t", "REG_SZ", "/d", strEXEName, "/f"}
cmd := exec.Command("reg", arg...)
d, err := cmd.CombinedOutput()
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(string(d))
return
}

38
golang_learn/data_func/go_to_command/demo06/关机、重启.go

@ -0,0 +1,38 @@
package main
import (
"fmt"
"os/exec"
)
func main() {
}
// 关闭计算机
func ShutDownEXE() {
fmt.Println("关闭主机")
arg := []string{"-s", "-t", "20"}
cmd := exec.Command("shutdown", arg...)
d, err := cmd.CombinedOutput()
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(string(d))
return
}
// 重启计算机
func ReShutDownEXE() {
fmt.Println("重启主机")
arg := []string{"-r", "-t", "20"}
cmd := exec.Command("shutdown", arg...)
d, err := cmd.CombinedOutput()
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(string(d))
return
}

11
golang_learn/data_func/go_to_windows/main.go

@ -138,7 +138,7 @@ func flushServiceStat(service myService) {
winService, err := NewWinService(service.serviceName)
if winService == nil || err != nil {
if err == windows.ERROR_SERVICE_DOES_NOT_EXIST {
setServiceState(service, "未安装", false, false, false)
setServiceState(service, "未安装", false, false, true)
} else {
setServiceState(service, "服务打开失败", false, false, true)
}
@ -187,9 +187,16 @@ func registerService(service myService) {
registerState(service.serviceName,
`SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\GWY20_Tomcat\Parameters\Stop`,
`stop`, path)
}
showMsg(service.serviceName + " 服务注册成功!")
walk.MsgBox(app.mw, "重启提醒", "注册成功程序,需要重启电脑!", walk.MsgBoxIconWarning)
arg := []string{"-r", "-t", "20"}
cmd := exec.Command("shutdown", arg...)
_, err := cmd.CombinedOutput()
if err != nil {
showMsg(" 重启电脑失败,手动重启电脑")
}
}
// startService 启动服务

Loading…
Cancel
Save