程序托盘图标隐藏器

易语言 2020-08-20 13:03:53

程序托盘图标隐藏器

超级列表框1.全部删除 ()
图片组 = 建空图片组 (16, 16)
hToolbar = 取托盘区句柄_ (真)
GetWindowThreadProcessId (hToolbar, pid)
hProcess = OpenProcess (1082, 假, pid)
num = SendMessage (hToolbar, 1048, 0, 0) ' 1048 = TB_BUTTONCOUNT
.计次循环首 (num, i)
' 在远程申请TBBUTTON结构的内存
ptb = VirtualAllocEx (hProcess, 0, 20, 4096, 64)
.如果真 (ptb = 0)
输出调试文本 (“Process allocates memory error!”)
到循环尾 ()
.如果真结束
' 将远程TBBUTTON结构填充
SendMessage (hToolbar, 1047, i - 1, ptb) ' 1047 = TB_GETBUTTON
' 从远程取出TBBUTTON结构
buf = 取空白字节集 (20)
ReadProcessMemory (hProcess, ptb, buf, 取字节集长度 (buf), 0)
_To_TB (tb, buf, 20)
' 取出远程unicode文本的长度
num = _lstrlenW (hProcess, tb.iString)
' 构造unicode缓冲文本,并从远程取出。
buf = 取空白字节集 (num × 2 + 2)
ReadProcessMemory (hProcess, tb.iString, buf, 取字节集长度 (buf), 0)
' 将unicode文本转换为ansi
string = W2A (buf)
buf = 取空白字节集 (4)
ReadProcessMemory (hProcess, tb.dwData, buf, 取字节集长度 (buf), 0)
hWnd = 取字节集数据 (buf, #整数型, )
GetWindowThreadProcessId (hWnd, pid)
.如果真 (节点.加入属性 (到文本 (hWnd), 真))
加入图片 (图片组, 取文件图标 (0, 取模块路径 (pid), #白色), )
temp.标题 = string
temp.句柄 = 到文本 (hWnd)
temp.进程名 = PID_NAME (pid)
temp.pid = 到文本 (pid)
temp.索引 = 到文本 (tb.idCommand)
temp.路径 = 取模块路径 (pid)
加入成员 (表, temp)
.如果真结束
' 释放远程TBBUTTON结构内存
VirtualFreeEx (hProcess, ptb, 0, 32768)
.计次循环尾 ()