rally 发表于 2022-1-7 10:53:43

程序多开,同名进程窗口如何分别获取 - 已解决

本帖最后由 rally 于 2022-1-7 15:27 编辑

如题,如建议H2test测试软件,多开的情况下,如果对每个窗口的测试内容进行轮询获取这个只能激活第一个打开的窗口,

#include <array.au3>

Local $iPid = ProcessExists("h2testw.exe")
ConsoleWrite('$iPid=' & $iPid & @CRLF)
Local $list = WinList()
If Not @error Then
      For $i = 1 To $list
                If BitAND(WinGetState($list[$i]), 2) And WinGetProcess($list[$i]) = $iPid Then
                        WinActivate($list[$i])
                        ExitLoop
                EndIf
      Next
         EndIf


itzyx 发表于 2022-1-7 11:30:14

#include <array.au3>

Local $iPid = ProcessList("h2testw.exe")
ConsoleWrite('$iPid=' & $iPid & @CRLF)
Local $list = WinList()
If Not @error Then
      For $i = 1 To $list
                        For$n = 1 To $iPid
                If BitAND(WinGetState($list[$i]), 2) And WinGetProcess($list[$i]) = $iPid[$n] Then
                        WinActivate($list[$i])
                        ExitLoop
                                EndIf
                        Next
      Next
EndIf


虽然是同样的进程名,PID 是不同的,需要都列举一下 。。

zdphj 发表于 2022-1-7 14:57:08

itzyx 发表于 2022-1-7 11:30
#include

Local $iPid = ProcessList("h2testw.exe")


请问 $iPid 是咋来的?

itzyx 发表于 2022-1-7 15:15:40

zdphj 发表于 2022-1-7 14:57
请问 $iPid 是咋来的?

ProcessList 返回的进程数

函数返回二维数组,其构成如下:
$aArray = 进程数
$aArray = 第 1 个进程的名称
$aArray = 第 1 个进程的 ID (PID)
$aArray = 第 2 个进程的名称
$aArray = 第 2 个进程的 ID (PID)
    ...
$aArray = 第 n 个进程的名称
$aArray = 第 n 个进程的 ID (PID)

rally 发表于 2022-1-7 15:27:12

itzyx 发表于 2022-1-7 11:30
#include

Local $iPid = ProcessList("h2testw.exe")


感谢itzyx的鼎力相助,明白了!

zdphj 发表于 2022-1-19 16:54:17

本帖最后由 zdphj 于 2022-1-20 11:59 编辑

不知道怎么删除回复。

zdphj 发表于 2022-1-20 11:56:00

本帖最后由 zdphj 于 2022-1-20 11:59 编辑

不知道怎么删除回复。
页: [1]
查看完整版本: 程序多开,同名进程窗口如何分别获取 - 已解决