jinyue115 发表于 2010-7-8 17:17:47

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

本帖最后由 jinyue115 于 2010-7-8 18:32 编辑

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

afan 发表于 2010-7-8 17:19:11

_WinAPI_EnumWindowsTop()

jinyue115 发表于 2010-7-8 17:56:20

Afan永远是最快的

jinyue115 发表于 2010-7-8 18:04:38

回复 2# afan


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

我也去看了源函数 上面说 enumerates all top lever windows ;列举所以激活窗口
我不知道 怎么调用这个函数

afan 发表于 2010-7-8 18:11:48

那就用这个吧 _WinAPI_GetForegroundWindow() 好懂,返回的就是当前窗口的句柄

jinyue115 发表于 2010-7-8 18:12:50

回复 5# afan


    好 我试试 谢了

afan 发表于 2010-7-8 18:18:04

#Include <WinAPI.au3>
msgbox(0, '前台激活窗口标题:', WinGetTitle(_WinAPI_GetForegroundWindow()))

jinyue115 发表于 2010-7-8 18:32:21

回复 7# afan


    非常感谢 !!!还多学了招 : 原来还可以可以嵌套的
下次会用了

jinyue115 发表于 2010-7-9 16:26:20

回复 7# afan


    helloBoss

当如果遇到ShellExecute("C:\Program Files\adf")执行一个不存在的窗口后 ,微软会弹出来一个对话框说不存在 ,然后后面的脚本就不会被执行了,我无法用程序关掉 ,望指点下 。谢谢。

afan 发表于 2010-7-9 16:28:40

应该先用 FileExists() 检查指定目录是否存在

jinyue115 发表于 2010-7-9 16:32:40

回复 10# afan


    已经可以解决我现在的情况了 感谢
多问句 微软那个窗口出来以后,我后面的代码都不执行了,能不能把那个窗口关掉?

afan 发表于 2010-7-9 16:34:43

出现这种情况本身就是程序代码不健壮,应该先从健壮代码着手

jinyue115 发表于 2010-7-9 16:37:20

回复 12# afan


    呵呵 感谢 说的是
我一直在用winexists 检测窗口存在就关掉 可是老是不执行 后来慢慢研究才明白 如果不关掉那个窗口后面的东西都不执行

jinyue115 发表于 2010-7-9 16:55:08

回复 12# afan


    Boss 我仔细看了下 代码 是有很多设计问题
感谢帮助

afan 发表于 2010-7-9 16:56:28

回复 14# jinyue115


    不客气~ 互相学习~
页: [1] 2
查看完整版本: (已解决)如何检测当前哪个窗口是激活的?