无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3615|回复: 10
打印 上一主题 下一主题

[已解决] 关于检测Win10任务栏窗口的问题

[复制链接]
跳转到指定楼层
#
发表于 2017-6-9 12:53:37 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 求道者 于 2017-6-10 08:00 编辑
  1. ;#NoTrayIcon ;隐藏图标
  2. if not A_IsAdmin ;查询是否具有管理员权限
  3. {
  4.    Run *RunAs "%A_AhkPath%"  ; 需要 v1.0.92.01+
  5.    ExitApp
  6. }
  7. Loop ;循环
  8. {
  9.         IfWinExist, ahk_class Shell_TrayWnd ;判断是否存在ahk_class为Shell_TrayWnd的任务栏窗口
  10.         {
  11.                 SendMessage, 1466, , , , ahk_class Shell_TrayWnd ;什么用不知道但是用SendMessage向ahk_class为Shell_TrayWnd的任务栏窗口发送1466的Msg
  12.                 WinWaitClose, ahk_class Shell_TrayWnd ;等待ahk_class为Shell_TrayWnd的任务栏窗口关闭
  13.         }
  14.         /* ;这个去掉的话底层实现是否没变?
  15.         else ;否则
  16.         {
  17.                 WinWait, ahk_class Shell_TrayWnd ;等待ahk_class为Shell_TrayWnd的任务栏窗口开启
  18.         }
  19.         */
  20. }
复制代码


这是AHK源码

求问除了loop只有还有什么办法检测Win10任务栏窗口的存在?
hook吗?
10#
发表于 2017-6-10 15:25:11 | 只看该作者
求道者 发表于 2017-6-10 11:50
这种源码不能用文本编辑器开的东西真是奇葩啊

易语言是特殊的,必须要用他的IDE才行
回复

使用道具 举报

9#
 楼主| 发表于 2017-6-10 11:50:08 来自手机 | 只看该作者
金 发表于 2017-6-10 09:47
需要用易语言打开,

这种源码不能用文本编辑器开的东西真是奇葩啊

点评

易语言是特殊的,必须要用他的IDE才行  详情 回复 发表于 2017-6-10 15:25
回复

使用道具 举报

8#
发表于 2017-6-10 09:47:44 | 只看该作者
求道者 发表于 2017-6-9 19:59
易语言的源代码怎么看啊……
我用文本编辑器打开会乱码

需要用易语言打开,

点评

这种源码不能用文本编辑器开的东西真是奇葩啊  详情 回复 发表于 2017-6-10 11:50
回复

使用道具 举报

7#
 楼主| 发表于 2017-6-9 21:31:21 | 只看该作者
frg521 发表于 2017-6-9 21:15
有没有类似监控注册表或者文件这样的工具监控发给任务栏的消息,哪怕所有消息?hook是自己编程还是有工具?

http://www.dongcoder.com/detail-82105.html
最后那一段好像是……
其他就真不知道了
回复

使用道具 举报

6#
 楼主| 发表于 2017-6-9 21:06:42 | 只看该作者
frg521 发表于 2017-6-9 20:30
请问如何监控进程找到谁给发送了1466的消息,或者记录所有发送给任务栏的消息,有知道的说下,或者知道来源 ...

怕不是要hook
细节就不知道了
回复

使用道具 举报

5#
 楼主| 发表于 2017-6-9 21:06:05 | 只看该作者
本帖最后由 求道者 于 2017-6-9 21:19 编辑
金 发表于 2017-6-9 19:29
不能循环判断那就,过滤窗口消息。explorer重启后会向应用程序发出通知注册消息(TaskbarCreated)
给你 ...

姑且算是OK了
  1. #NoTrayIcon ;隐藏图标
  2. if not A_IsAdmin ;查询是否具有管理员权限
  3. {
  4.    Run *RunAs "%A_AhkPath%"  ; 需要 v1.0.92.01+
  5.    ExitApp
  6. }
  7. OnMessage(DllCall("RegisterWindowMessage", Str, "TaskbarCreated"), "WM_TASKBARCREATED") ;当接收到消息TaskbarCreated时调用函数WM_TASKBARCREATED
  8. WM_TASKBARCREATED() ;函数WM_TASKBARCREATED
  9. {
  10.         SendMessage, 1466, , , , ahk_class Shell_TrayWnd ;什么原理不知道 但是用SendMessage向ahk_class为Shell_TrayWnd的任务栏窗口发送1466的Msg
  11. }
复制代码
监听消息后SendMessage
回复

使用道具 举报

4#
 楼主| 发表于 2017-6-9 19:59:03 | 只看该作者
金 发表于 2017-6-9 19:29
不能循环判断那就,过滤窗口消息。explorer重启后会向应用程序发出通知注册消息(TaskbarCreated)
给你 ...

易语言的源代码怎么看啊……
我用文本编辑器打开会乱码

点评

需要用易语言打开,  详情 回复 发表于 2017-6-10 09:47
回复

使用道具 举报

3#
发表于 2017-6-9 19:29:58 | 只看该作者
求道者 发表于 2017-6-9 18:58
基本上是C C++的语法
只不过API是AHK内建的(比如SendMessage)

不能循环判断那就,过滤窗口消息。explorer重启后会向应用程序发出通知注册消息(TaskbarCreated)
给你一段C++示例代码,不是我写的
  1. const UINT WM_TASKBARCREATED = RegisterWindowMessageW(L"TaskbarCreated");  
  2. BOOL CALLBACK MainDlgProc(HWND hWnd, UINT Message, WPARAM wPa, LPARAM lPa)  
  3. {  
  4.     if (Message == WM_RECOVERTRAY)  
  5.     {  
  6.         // Do something  
  7.         MessageBox(GetForegroundWindow(), L"WM_RECOVERTRAY", L"WM_RECOVERTRAY", 0);  
  8.     }  
  9. }
复制代码

或者懂易语言的话参照这个楼主的做法
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=387383

点评

姑且算是OK了 监听消息后SendMessage  详情 回复 发表于 2017-6-9 21:06
易语言的源代码怎么看啊…… 我用文本编辑器打开会乱码  详情 回复 发表于 2017-6-9 19:59
回复

使用道具 举报

2#
 楼主| 发表于 2017-6-9 18:58:39 | 只看该作者
金 发表于 2017-6-9 13:07
这源码我看不懂,判断窗口是否存在可以判断窗口句柄 线程ID 类名 等。。。


基本上是C C++的语法
只不过API是AHK内建的(比如SendMessage)

我也是那么想的

原来那位大哥(最初实现这个的那位)说是让我监视资源管理器进程……
但是发现资源管理器进程就用SendMessage发送1466消息的话……
会失效

于是就变成现在这种监视句柄存不存在这样了……
效果挺好
但是我把这个代码拿出来的时候 原作者说不要用Loop循环……
但是不循环就没法总是监视任务栏的状态了

点评

不能循环判断那就,过滤窗口消息。explorer重启后会向应用程序发出通知注册消息(TaskbarCreated) 给你一段C++示例代码,不是我写的 或者懂易语言的话参照这个楼主的做法 http://bbs.wuyou.net/forum.php?mod=v  详情 回复 发表于 2017-6-9 19:29
回复

使用道具 举报

1#
发表于 2017-6-9 13:07:02 | 只看该作者
这源码我看不懂,判断窗口是否存在可以判断窗口句柄 线程ID 类名 等。。。

点评

基本上是C C++的风格 只不过API是AHK内建的(比如SendMessage) 我也是那么想的 原来那位大哥(最初实现这个的那位)说是让我监视资源管理器进程…… 但是发现资源管理器进程就用SendMessage发送1466消息的  详情 回复 发表于 2017-6-9 18:58
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-1-15 07:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表