强力的程序窗口隐藏工具附千明模块

易语言 2020-07-25 11:24:52

强力的程序窗口隐藏工具附千明模块

“强力隐藏”,也就是传统意义上的老板键,是专门用来隐藏窗口的。
1.按下指定热键即可立即隐藏指定的窗口(如网页、游戏、QQ等),而不会影响其它任何窗口。
2.隐藏状态下,程序会自动监视符合条件的窗口,并随时将之隐藏。
3.具有隐藏桌面/任务栏/系统托盘图标等功能,使窗口隐藏更彻底。
4.隐藏窗口时可以指定运行任意程序做为伪装。
5.可以设置屏蔽WIN键,防止在隐藏游戏界面后因误按Win键而弹出游戏画面。
6.具有静音功能,可以在隐藏窗口的同时静音,省却游戏声音暴露你的秘密的尴尬。
7.可以关闭显示器。
8.自定义热键的功能,同时支持键盘热键及鼠标操作。
9.可以设置开机自动运行。
10.可以设置运行后自动隐藏,以及设置程序运行后是否显示托盘图标。
11.隐藏窗口恢复时,或显示程序主界面时,可以设置密码保护功能,防止他人误操作而暴露你的秘密。
以上功能涉及到进程与窗口的查找,窗口的隐藏和显示,托盘图标的隐藏和显示、热键的注册与撤消、键盘钩子、鼠标钩子的使用。

' 注:本子程序中所用到api函数及常量,实在无法正确地翻译,所以干脆不译了
清除数组 (结果)
文本缓冲长度 = 255
dwAllocSize = 32
取窗口线程标识 (托盘区句柄, 线程标志)
进程源句柄 = 打开进程 (#PROCESS_ALL_ACCESS, 0, 线程标志)
.如果真 (进程源句柄 = 0) ' 打开进程失败
输出调试文本 (“打开进程失败”)
返回 ()
.如果真结束
操作结果 = DuplicateHandle (取当前进程句柄 (), 进程源句柄, 取当前进程句柄 (), 进程目标句柄, #PROCESS_ALL_ACCESS, 0, 0)
.如果真 (操作结果 = 0) ' 复制句柄失败
输出调试文本 (“复制句柄失败”)
关闭句柄 (进程源句柄)
返回 ()
.如果真结束
pStart = VirtualAllocEx (进程目标句柄, 0, dwAllocSize, #MEM_COMMIT, #PAGE_READWRITE)
pBufStart = VirtualAllocEx (进程目标句柄, 0, 文本缓冲长度, #MEM_COMMIT, #PAGE_READWRITE) ' 工具提示信息存放空间
.如果真 (pStart = 0 或 pBufStart = 0) ' 分配内存失败
输出调试文本 (“分配内存失败”)
关闭句柄 (进程目标句柄)
返回 ()
.如果真结束
图标数 = 消息_图标操作 (托盘区句柄, #TB_BUTTONCOUNT, 0, 0)
.变量循环首 (1, 图标数, 1, 图标索引)
托盘图标信息.cbSize = dwAllocSize
托盘图标信息.dwMask = 位或 (#TBIF_BYINDEX, #TBIF_COMMAND, #TBIF_STATE, #TBIF_STYLE, #TBIF_IMAGE, #TBIF_LPARAM, #TBIF_SIZE) ' 'Or TBIF_TEXT
写进程内存 (进程目标句柄, pStart, 取变量数据地址 (托盘图标信息.cbSize), dwAllocSize, 读操作)
消息_图标操作 (托盘区句柄, #TB_GETBUTTONINFOA, 图标索引 - 1, pStart)
读进程内存 (进程目标句柄, pStart, 取变量数据地址 (托盘图标信息.cbSize), dwAllocSize, 写操作)
重定义数组 (临时缓冲数组, 假, 文本缓冲长度)
写进程内存 (进程目标句柄, pBufStart, 取变量数据地址 (临时缓冲数组 [1]), 文本缓冲长度, 读操作)
标题长度 = 消息_图标操作 (托盘区句柄, #TB_GETBUTTONTEXTA, 托盘图标信息.idCommand, pBufStart)
读进程内存 (进程目标句柄, pBufStart, 取变量数据地址 (临时缓冲数组 [1]), 文本缓冲长度, 写操作)
.如果真 (标题长度 > 0)
重定义数组 (临时缓冲数组, 真, 标题长度)
.如果真 (寻找文本 (到大写 (到文本 (临时缓冲数组)), 到大写 (包含的标题), , 假) ≠ -1)
加入成员 (结果, 托盘图标信息.idCommand)
.如果真结束

.如果真结束

.变量循环尾 ()
VirtualFreeEx (进程目标句柄, pStart, dwAllocSize, #MEM_DECOMMIT)
VirtualFreeEx (进程目标句柄, pBufStart, 文本缓冲长度, #MEM_DECOMMIT)