同时运行两个程序
AU3能不能同时对两个程序进行控制??另外楼主还想问问关于用 “句柄”来控制程序的小问题,请别重复问题!
虽然某人很讨厌我这样留个小言,但我破多次例
--------By kn007 模拟下多线程,应该就行了吧
看这里http://www.autoitx.com/forum.php?mod=viewthread&tid=475&extra=&page=1 楼主说的是 对2个程序进行控制 应该不是说的 多进程
如果是这意思的话当然可以 能给个例子吗?谢谢 只要能获得pid或者窗口句柄你当然可以对n个程序进行控制 同时!控制两个程序的话,不就得用多进程吗,每个进程控制一个。而不是控制完一个在控制另一个 LS注意进程和线程的区别.. 我是说用多进程模拟多线程,au3又不支持多线程。 只要能获得pid或者窗口句柄你当然可以对n个程序进行控制,注意控制和释放的关系可以完整控制哦! 本帖最后由 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 自动分配给每个新创建的窗口的特殊值.窗口句柄可用来代替窗口标题参数.使用窗口句柄来代替窗口标题的好处是能够更加精确地识别窗口,比如说有时候我们会同时打开同一应用程序的多个副本,这些窗口具有完全相同的窗口标题和窗口文本,这时就可以利用窗口句柄的唯一性来准确识别窗口了. 另外,当使用窗口句柄代替窗口标题参数时,窗口文本参数将被完全忽略. $handle = WinGetHandle("无标题 - 记事本", "")
WinClose($handle) $handle = WinGetHandle("无标题 - 记事本", "")
如果程序没有标题,要怎么办??? 本帖最后由 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 回楼上的
$handle = WinGetHandle("ClassName=Notepad", "")
你只要读取类别名称,塞进去就行饿 有什么办法用 “句柄:0x002003BA”来控制程序。
$handle = 0x002003BA
ControlSend($handle, "", "Edit1", "AbCdE$handle")
这种用好像不行。
页:
[1]
2