一個(gè)網(wǎng)站 多個(gè)域名新站seo優(yōu)化快速上排名
最近發(fā)現(xiàn)有些軟件的窗口就像狗皮膏藥一樣,關(guān)也關(guān)不掉,一點(diǎn)就要登錄,屬實(shí)是有點(diǎn)不爽了。
窗口的進(jìn)程不能殺死,但是窗口我不想要。思路很簡(jiǎn)單,用 spy++ 找到要隱藏的窗口的句柄,然后調(diào)用 Windows 的 ShowWindow
函數(shù)將它隱藏掉即可。
懶得寫 C++ 了,直接用Go調(diào)用 Windows 的 dll 解決吧。代碼比較簡(jiǎn)單,如下:
package mainimport ("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!")
}
注意在運(yùn)行之前,先找到窗口的句柄,替換掉程序中 ShowWindow
的第一個(gè)參數(shù)。然后 go run main.go
就可以將目標(biāo)窗口隱藏了,不影響窗口后面的進(jìn)程。
啊,世界終于清凈了。

除了使用 spy++ 去獲取句柄,還可以直接在 Go 中調(diào)用 Windows 的相關(guān) API 獲取窗口句柄,比如獲取活動(dòng)窗口句柄,獲取當(dāng)前鼠標(biāo)下的窗口句柄等。
更進(jìn)一步,窗口句柄可能會(huì)變,這里的方法其實(shí)是一次性的。但是窗口的類名一般不會(huì)變,我們可以記錄下要隱藏窗口的類名,然后定期檢查,只要窗口出現(xiàn)就給它隱藏掉。
反正我現(xiàn)在已經(jīng)清凈了,管他呢,后面的事后面再說(shuō)。