当前位置: 首页 > news >正文

golang模拟QQ退出后自动重启

模拟QQ退出后自动重启,go build xxx.go 打包成exe运行。
processName 为你所需要的进程exe
processNamePath 为你所需要的进程路径

package mainimport ("bytes""errors""fmt""os""os/exec""regexp""strconv""time"
)var processName = "QQ.exe"
var processNamePath = "D:\\Program Files (x86)\\Tencent\\QQ\\Bin\\"func findProcessID(processName string) (int, error) {buf := bytes.Buffer{}cmd := exec.Command("wmic", "process", "get", "name,processid")cmd.Stdout = &bufcmd.Run()cmd2 := exec.Command("findstr", processName)cmd2.Stdin = &bufdata, _ := cmd2.CombinedOutput()if len(data) == 0 {return -1, errors.New("not find")}info := string(data)reg := regexp.MustCompile(`[0-9]+`)pid := reg.FindString(info)return strconv.Atoi(pid)
}func getNowTime() string {timeNow := time.Now().Format("2006-01-02 15:04:05")return timeNow
}func main() {pid, err := findProcessID(processName)if pid > 0 {fmt.Println("time:", getNowTime())fmt.Println(processName+" processID:", pid, " is running")}if err == nil {process, err := os.FindProcess(pid)if err != nil {fmt.Println("get process err:", err)return}process.Wait()}attr := &os.ProcAttr{Files: []*os.File{os.Stdin, os.Stdout, os.Stderr},Env:   os.Environ(),}for {_, err := findProcessID(processName)if err != nil {p, err := os.StartProcess(processNamePath+processName, []string{}, attr)if err != nil {fmt.Println("err:", err)return}fmt.Println("time:", getNowTime())fmt.Println(processName+" restart pid:", p.Pid)p.Wait()time.Sleep(1 * time.Second)fmt.Println("start ", processName)}}
}
http://www.lryc.cn/news/210172.html

相关文章:

  • jQuery中ajax如何使用
  • redis集群的多key原子性操作如何实现?
  • 密码学与网络安全:量子计算的威胁与解决方案
  • GoLong的学习之路(十二)语法之标准库 flag的使用
  • mac git ssh
  • 栈、共享栈、链式栈(C++实现)
  • MySQL实战2
  • 【面试经典150 | 栈】简化路径
  • 无线电编码和记录和静音检测器 PlayOutONE LiveStream 5.0
  • React中useEffect Hook使用纠错
  • 0049【Edabit ★☆☆☆☆☆】【修改Bug代码】Buggy Code
  • javaswing/gui的科学计算器
  • Chapter1:C++概述
  • 实战经验分享FastAPI 是什么
  • Edge浏览器中常用的20个快捷键
  • winscp显示隐藏文件
  • uniapp获取地理位置的API是什么?
  • 【ARMv8 SIMD和浮点指令编程】NEON 通用数据处理指令——复制、反转、提取、转置...
  • C#,数值计算——分类与推理,基座向量机的 Svmgenkernel的计算方法与源程序
  • 08.K8S高可用方案
  • MySQL实战1
  • 关于A level的习题答案
  • 左神算法题系列:动态规划机器人走路
  • LeetCode75——Day19
  • ToLua使用原生C#List和Dictionary
  • WebDAV之π-Disk派盘 + 言叶
  • Spring Security: 整体架构
  • JavaScript进阶知识汇总~
  • 理解C#中对象的浅拷贝和深拷贝
  • js 生成随机数(含随机颜色)