ylk94377113 发表于 2009-10-8 23:15:33

同时运行两个程序

AU3能不能同时对两个程序进行控制??

另外楼主还想问问关于用 “句柄”来控制程序的小问题,请别重复问题!
虽然某人很讨厌我这样留个小言,但我破多次例
                      --------By kn007

vivier001 发表于 2009-10-8 23:29:39

模拟下多线程,应该就行了吧
看这里http://www.autoitx.com/forum.php?mod=viewthread&tid=475&extra=&page=1

sxd 发表于 2009-10-9 00:35:59

楼主说的是 对2个程序进行控制 应该不是说的 多进程

如果是这意思的话当然可以

ylk94377113 发表于 2009-10-9 08:01:20

能给个例子吗?谢谢

wisly 发表于 2009-10-9 12:00:35

只要能获得pid或者窗口句柄你当然可以对n个程序进行控制

vivier001 发表于 2009-10-9 12:36:52

同时!控制两个程序的话,不就得用多进程吗,每个进程控制一个。而不是控制完一个在控制另一个

五猫橙 发表于 2009-10-9 20:21:13

LS注意进程和线程的区别..

vivier001 发表于 2009-10-9 22:01:57

我是说用多进程模拟多线程,au3又不支持多线程。

RobertLi 发表于 2009-10-9 22:07:18

只要能获得pid或者窗口句柄你当然可以对n个程序进行控制,注意控制和释放的关系可以完整控制哦!

ylk94377113 发表于 2009-10-26 14:18:55

本帖最后由 ylk94377113 于 2009-10-26 14:22 编辑

只要能获得pid或者窗口句柄你当然可以对n个程序进行控制,注意控制和释放的关系可以完整控制哦!
RobertLi 发表于 2009-10-9 22:07 http://www.autoitx.com/images/common/back.gif


窗口句柄,怎么用?

窗口句柄(Window Handles / HWNDs)
AutoIt 中的变量可用来存储窗口句柄(HWND).所谓窗口句柄是指 Windows 自动分配给每个新创建的窗口的特殊值.窗口句柄可用来代替窗口标题参数.使用窗口句柄来代替窗口标题的好处是能够更加精确地识别窗口,比如说有时候我们会同时打开同一应用程序的多个副本,这些窗口具有完全相同的窗口标题和窗口文本,这时就可以利用窗口句柄的唯一性来准确识别窗口了. 另外,当使用窗口句柄代替窗口标题参数时,窗口文本参数将被完全忽略.

ylk94377113 发表于 2009-10-26 14:23:04

$handle = WinGetHandle("无标题 - 记事本", "")
WinClose($handle)

ylk94377113 发表于 2009-10-26 14:59:12

$handle = WinGetHandle("无标题 - 记事本", "")

如果程序没有标题,要怎么办???

ylk94377113 发表于 2009-10-26 15:05:02

本帖最后由 ylk94377113 于 2009-10-26 15:06 编辑

如果有两相同个进程怎么办?

以下是通过进程方式来获得句柄
Local $aWList = WinList()
Local $aRet =

_WinGetByPid(ProcessExists("notepad.exe"))
MsgBox(0,"",$aRet)
Func _WinGetByPid($iPID)

    For $iCC = 0 To $aWList
      If WinGetProcess($aWList[$iCC]) = $iPID AND _
                BitAND(WinGetState($aWList[$iCC]), 2) Then
            ReDim $aRet
            $aRet += 1
            $aRet[$aRet] = $aWList[$iCC]
      EndIf
    Next
    If $aRet = 0 Then
      Return SetError(1, 0, 0)
    Else
      Return $aRet
    EndIf
EndFunc

kn007 发表于 2009-10-26 15:05:31

回楼上的

$handle = WinGetHandle("ClassName=Notepad", "")
你只要读取类别名称,塞进去就行饿

ylk94377113 发表于 2009-10-26 15:15:31

有什么办法用   “句柄:0x002003BA”来控制程序。
$handle = 0x002003BA
ControlSend($handle, "", "Edit1", "AbCdE$handle")
这种用好像不行。
页: [1] 2
查看完整版本: 同时运行两个程序