只有进程ID这个条件,如何激活这个应用程序的窗口?
RT。这个应用程序确实有窗口,只是用最小化后,隐藏起来了,任务栏里找不到,只好靠其他第三方程序激活,求思路~ 本帖最后由 user3000 于 2012-4-15 07:39 编辑
回复 1# xwt620
借鉴7楼蛋大的代码(他的代码, 经测试失败了), 修改了下:
获取进程窗口句柄, 然后就可以进行激活等操作了:#include <WinAPIEx.au3>
$PID = ProcessExists('sfdsf.exe')
$a = _WinAPI_EnumProcessWindows($PID, 0)
If IsArray($a) Then
For $i = 1 To $a
_WinAPI_ShowWindow($a[$i], @SW_SHOW)
Next
EndIf此代码, 无标题的隐藏窗口也可显示!
经测试, 它可以显示隐藏的无标题AU3窗口, 但很奇怪, 会多显示1个标题为'AutoIt V3' 的窗口.
如果把该窗口关掉, 也就把AU3程序关了! 二楼好方法mark 一下 回复 2# user3000
试了一下报错哦~ 回复 4# xwt620
二楼代码是有误, GuiSetState 对不是同一程序的窗口也不起作用.
试试这个, 枚举窗口标题后, 判断同 PID 则...#include <WinAPIEx.au3>
$PID = ProcessExists('toolmgr.exe')
$b = WinList()
For $ii = 1 To $b
$_pid = WinGetProcess($b[$ii])
If $_pid = $PID Then
WinSetState($b[$ii], '', @SW_RESTORE)
WinSetState($b[$ii], '', @SW_SHOW)
EndIf
Next 楼主什么软件 分享一下 本帖最后由 netegg 于 2012-4-15 02:55 编辑
#Include <WinAPIEx.au3>
$ahWnd = _WinAPI_EnumProcessWindows( $PID, False )
if isarray($ahWnd) then
for $hWnd in $ahWnd
_WinAPI_ShowWindow($hWnd)
next
endif
页:
[1]