首页
社区
课程
招聘
[原创]系统托盘图标隐藏(删除)
发表于: 2013-12-29 18:13 6143

[原创]系统托盘图标隐藏(删除)

2013-12-29 18:13
6143

为了在某计算机上建立一个隐蔽的Wifi,所以面对可恶的托盘图标,令我不得不考虑写个程序将其Hide掉,以免后患。

于是开始了大量的谷歌与 百度,看下前人是如何去做的。站在巨人的肩膀不是看得更远嘛。

首先我们了解到托盘区似乎是个窗口性质的东西,于是乎,操起Spy++查查到底是什么情况。
很清晰的窗口所属结构,只要我们一次通过FindWindow()和FindWindowEx()依次从窗口类为Shell_TrayWnd ->SysPager ->ToolbrWindow32,得到最终句柄,然后通过发送 TB_BUTTONCOUNT消息得到托盘窗口TBBUTTON的个数  ->  通过得到总数,遍历所有按钮,向每个BUTTON发送TB_GETBUTTON消息 获得按钮 ->  用ReadProcessMemory读取每个TBBUTTON结构  ->  再通过TBBUTTON.dwData 得到TRAYDATA结构。

这里不得不提一下TRAYDATA,据说这是一个从未公开的结构

struct TRAYDATA { 
HWND hwnd;
UINT uID;
UINT uCallbackMessage;
DWORD Reserved[2];
HICON hIcon;
};
typedef struct {
  int       iBitmap;
  int       idCommand;
  BYTE      fsState;
  BYTE      fsStyle;
#ifdef _WIN64
  BYTE      bReserved[6];
#else 
#if defined(_WIN32)
  BYTE      bReserved[2];
#endif 
#endif 
  DWORD_PTR dwData;
  INT_PTR   iString;
} TBBUTTON, *PTBBUTTON, *LPTBBUTTON;

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 5
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//