找回密码
 加入
搜索
查看: 6191|回复: 16

[AU3基础] (已解决)如何检测当前哪个窗口是激活的?

  [复制链接]
发表于 2010-7-8 17:17:47 | 显示全部楼层 |阅读模式
本帖最后由 jinyue115 于 2010-7-8 18:32 编辑

程序运行了半小时后 想看看当前哪个程序是被激活的 ?

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-7-8 17:19:11 | 显示全部楼层
_WinAPI_EnumWindowsTop()
 楼主| 发表于 2010-7-8 17:56:20 | 显示全部楼层
Afan永远是最快的
 楼主| 发表于 2010-7-8 18:04:38 | 显示全部楼层
回复 2# afan


    Afan老大 那个函数 我不会用
#include <WinAPI.au3>
_WinAPI_EnumWindowsTop()???这样好像不显示当前激活的窗口是哪个啊?

我也去看了源函数 上面说 enumerates all top lever windows ;列举所以激活窗口
我不知道 怎么调用这个函数
发表于 2010-7-8 18:11:48 | 显示全部楼层
那就用这个吧 _WinAPI_GetForegroundWindow() 好懂,返回的就是当前窗口的句柄
 楼主| 发表于 2010-7-8 18:12:50 | 显示全部楼层
回复 5# afan


    好 我试试 谢了
发表于 2010-7-8 18:18:04 | 显示全部楼层
#Include <WinAPI.au3>
msgbox(0, '前台激活窗口标题:', WinGetTitle(_WinAPI_GetForegroundWindow()))
 楼主| 发表于 2010-7-8 18:32:21 | 显示全部楼层
回复 7# afan


    非常感谢 !!!还多学了招 : 原来还可以可以嵌套的
下次会用了
 楼主| 发表于 2010-7-9 16:26:20 | 显示全部楼层
回复 7# afan


    hello  Boss

当如果遇到ShellExecute("C:\Program Files\adf")执行一个不存在的窗口后 ,微软会弹出来一个对话框说不存在 ,然后后面的脚本就不会被执行了,我无法用程序关掉 ,望指点下 。谢谢。
发表于 2010-7-9 16:28:40 | 显示全部楼层
应该先用 FileExists() 检查指定目录是否存在
 楼主| 发表于 2010-7-9 16:32:40 | 显示全部楼层
回复 10# afan


    已经可以解决我现在的情况了 感谢
多问句 微软那个窗口出来以后,我后面的代码都不执行了,能不能把那个窗口关掉?
发表于 2010-7-9 16:34:43 | 显示全部楼层
出现这种情况本身就是程序代码不健壮,应该先从健壮代码着手
 楼主| 发表于 2010-7-9 16:37:20 | 显示全部楼层
回复 12# afan


    呵呵 感谢 说的是
我一直在用winexists 检测窗口存在就关掉 可是老是不执行 后来慢慢研究才明白 如果不关掉那个窗口后面的东西都不执行
 楼主| 发表于 2010-7-9 16:55:08 | 显示全部楼层
回复 12# afan


    Boss 我仔细看了下 代码 是有很多设计问题
感谢帮助
发表于 2010-7-9 16:56:28 | 显示全部楼层
回复 14# jinyue115


    不客气~ 互相学习~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-26 18:12 , Processed in 0.079501 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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