yzhshi,千堆雪看过来。 (50分)

  • 主题发起人 主题发起人 zhaohai9
  • 开始时间 开始时间
迷迷糊糊听课[:(]
//admire 各位大侠
 
yzhshi:
这个问题真的没法解决了吗?
 
迷迷糊糊听课[:(]
 
不应该没有办法解决。
不知道你确切是想如何呢?想去除QQ的图标?
还是做什么?也许达到你的要求还有别的途径。
 
我公司监控系统,我用个工具把他破解了,我用个API已经把那个工具在运行时隐藏,
但是他在托盘区有个图标,我想把图标删了,就是这样。
 
嗯,那你似乎应该得到这个控件的Tray的uID,好像这个ID相同的,只能有一个显示在任务栏中。
得到它,再使用Shell_NotifyIcon(NIM_DELETE, @iData)删除。
应该是这个意思。
 
怎么得到这两个参数呢?
 
不知道,暂时没有好的思路。
 
关键参数有两个,一个是创建此图标并接收此图标消息的窗口句柄,另一个就是 uID
了,窗口的Handle很容易找到的(WinSign追消息)。uID 真的没办法,但是多数情况
中会是 0, 1, 100, $FFFF, $FFFFFFFF, 这几个数,我想写此代码的人一定想不到
有人要此下黑手,想一个怪数摆这儿的。 [:D][:D][:D]
 
这段代码是我测试删 金山词霸 2000 的托盘图标的。成功!!! [8D][8D]

uses
; ShellAPI;

procedure TForm1.Button1Click(Sender: TObject);
var
; h: THandle;
; Buf: array[0..256]of Char;
; id: TNotifyIconData;
begin
; h := $00300348; ; ; ; ; ; ; // 用 WinSight32 追出来的(2000下的WinSight32字体太伤眼了)
; GetWindowText(h, Buf, 256); // 显示一下窗口的标题,看对不对。
; Memo1.Lines.Add(Buf);
; FillChar(id, sizeof(TNotifyIconData), 0);
; id.cbSize := sizeof(TNotifyIconData);
; id.Wnd := h;
; id.uID := $0159; ;// ????? 消息代码是 0x00001100, uID 来自 WParam !!!
; Shell_NotifyIcon(NIM_DELETE, @id);
end;
 
再提供你一些:
; 拨号网络的 ; uID := $00000000;
; 输入法的 ; ; uID := $000000DF;
; 任务管理器 ; uID := $0000040A;
 
某个应用程序的uid运行时会不会在注册表中能找到呢?
 
不可能!
 
多人接受答案了。
 
后退
顶部