找回密码
 加入
搜索
查看: 3716|回复: 17

同时运行两个程序

[复制链接]
发表于 2009-10-8 23:15:33 | 显示全部楼层 |阅读模式
AU3能不能同时对两个程序进行控制??

另外楼主还想问问关于用 “句柄”来控制程序的小问题,请别重复问题!  
虽然某人很讨厌我这样留个小言,但我破多次例
                      --------By kn007
发表于 2009-10-8 23:29:39 | 显示全部楼层
模拟下多线程,应该就行了吧
看这里http://www.autoitx.com/forum.php ... p;extra=&page=1
发表于 2009-10-9 00:35:59 | 显示全部楼层
楼主说的是 对2个程序进行控制 应该不是说的 多进程

如果是这意思的话  当然可以
 楼主| 发表于 2009-10-9 08:01:20 | 显示全部楼层
能给个例子吗?谢谢
发表于 2009-10-9 12:00:35 | 显示全部楼层
只要能获得pid或者窗口句柄你当然可以对n个程序进行控制
发表于 2009-10-9 12:36:52 | 显示全部楼层
同时!控制两个程序的话,不就得用多进程吗,每个进程控制一个。而不是控制完一个在控制另一个
发表于 2009-10-9 20:21:13 | 显示全部楼层
LS注意进程和线程的区别..
发表于 2009-10-9 22:01:57 | 显示全部楼层
我是说用多进程模拟多线程,au3又不支持多线程。
发表于 2009-10-9 22:07:18 | 显示全部楼层
只要能获得pid或者窗口句柄你当然可以对n个程序进行控制,注意控制和释放的关系可以完整控制哦!
 楼主| 发表于 2009-10-26 14:18:55 | 显示全部楼层
本帖最后由 ylk94377113 于 2009-10-26 14:22 编辑
只要能获得pid或者窗口句柄你当然可以对n个程序进行控制,注意控制和释放的关系可以完整控制哦!
RobertLi 发表于 2009-10-9 22:07



窗口句柄,怎么用?

窗口句柄(Window Handles / HWNDs)
AutoIt 中的变量可用来存储窗口句柄(HWND).所谓窗口句柄是指 Windows 自动分配给每个新创建的窗口的特殊值.窗口句柄可用来代替窗口标题参数.使用窗口句柄来代替窗口标题的好处是能够更加精确地识别窗口,比如说有时候我们会同时打开同一应用程序的多个副本,这些窗口具有完全相同的窗口标题和窗口文本,这时就可以利用窗口句柄的唯一性来准确识别窗口了. 另外,当使用窗口句柄代替窗口标题参数时,窗口文本参数将被完全忽略.
 楼主| 发表于 2009-10-26 14:23:04 | 显示全部楼层
$handle = WinGetHandle("无标题 - 记事本", "")
WinClose($handle)
 楼主| 发表于 2009-10-26 14:59:12 | 显示全部楼层
$handle = WinGetHandle("无标题 - 记事本", "")

如果程序没有标题,要怎么办???
 楼主| 发表于 2009-10-26 15:05:02 | 显示全部楼层
本帖最后由 ylk94377113 于 2009-10-26 15:06 编辑

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

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

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

    For $iCC = 0 To $aWList[0][0]
        If WinGetProcess($aWList[$iCC][1]) = $iPID AND _
                BitAND(WinGetState($aWList[$iCC][1]), 2) Then
            ReDim $aRet[UBound($aRet)+1]
            $aRet[0] += 1
            $aRet[$aRet[0]] = $aWList[$iCC][1]
        EndIf
    Next
    If $aRet[0] = 0 Then
        Return SetError(1, 0, 0)
    Else
        Return $aRet
    EndIf
EndFunc
发表于 2009-10-26 15:05:31 | 显示全部楼层
回楼上的

$handle = WinGetHandle("ClassName=Notepad", "")
你只要读取类别名称,塞进去就行饿
 楼主| 发表于 2009-10-26 15:15:31 | 显示全部楼层
有什么办法用   “句柄:0x002003BA”来控制程序。
$handle = 0x002003BA
ControlSend($handle, "", "Edit1", "AbCdE$handle")
这种用好像不行。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-26 13:56 , Processed in 0.080079 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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