Go加spy++隐藏窗口

最近发现有些软件的窗口就像狗皮膏药一样,关也关不掉,一点就要登录,属实是有点不爽了。

窗口的进程不能杀死,但是窗口我不想要。思路很简单,用 spy++ 找到要隐藏的窗口的句柄,然后调用 Windows 的 ShowWindow 函数将它隐藏掉即可。

懒得写 C++ 了,直接用Go调用 Windows 的 dll 解决吧。代码比较简单,如下:

go 复制代码
package main

import (
	"fmt"
	"syscall"
)

var (
	user32         = syscall.NewLazyDLL("user32.dll")
	procShowWindow = user32.NewProc("ShowWindow")
)

func ShowWindow(hwnd uintptr, nCmdShow int32) (bool, error) {
	ret, _, err := procShowWindow.Call(hwnd, uintptr(nCmdShow))
	if ret == 0 {
		return false, err
	}
	return true, nil
}

func main() {
	_, err := ShowWindow(uintptr(0x015005FE), 0)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println("success!")
}

注意在运行之前,先找到窗口的句柄,替换掉程序中 ShowWindow 的第一个参数。然后 go run main.go 就可以将目标窗口隐藏了,不影响窗口后面的进程。

啊,世界终于清净了。

除了使用 spy++ 去获取句柄,还可以直接在 Go 中调用 Windows 的相关 API 获取窗口句柄,比如获取活动窗口句柄,获取当前鼠标下的窗口句柄等。

更进一步,窗口句柄可能会变,这里的方法其实是一次性的。但是窗口的类名一般不会变,我们可以记录下要隐藏窗口的类名,然后定期检查,只要窗口出现就给它隐藏掉。

反正我现在已经清净了,管他呢,后面的事后面再说。

相关推荐
有代理ip1 天前
Python 与 Golang 爬虫的隐藏优势
爬虫·python·golang
天远云服1 天前
天远车辆过户查询API微服务实战:用Go语言构建高性能车况溯源系统
大数据·微服务·架构·golang
女王大人万岁1 天前
Go标准库 sync 详解
服务器·开发语言·后端·golang
小高Baby@1 天前
session、cookie、Jwt-token
开发语言·后端·golang
Grassto1 天前
12 go.sum 是如何保证依赖安全的?校验机制源码解析
安全·golang·go·哈希算法·go module
小二·1 天前
Go 语言系统编程与云原生开发实战(第12篇)云原生部署实战:Helm Chart × GitOps × 多环境管理(生产级落地)
开发语言·云原生·golang
天空属于哈夫克31 天前
Go 语言实战:构建一个企微外部群“技术贴收藏夹”小程序后端
小程序·golang·企业微信
小二·1 天前
Go 语言系统编程与云原生开发实战(第13篇)工程效能实战:Monorepo × 依赖治理 × 构建加速(10万行代码实测)
开发语言·云原生·golang
暴躁小师兄数据学院1 天前
【WEB3.0零基础转行笔记】Golang编程篇-第4讲:Go语言中的流程控制
开发语言·后端·golang·web3·区块链
lingggggaaaa2 天前
安全工具篇&Go魔改二开&Fscan扫描&FRP代理&特征消除&新增扩展&打乱HASH
学习·安全·web安全·网络安全·golang·哈希算法