同名进程如何区分?[已解决]
本帖最后由 cashiba 于 2018-3-14 23:21 编辑Local $iPid=ProcessExists("启动记事本.exe")
If $iPid Then
MsgBox(4096, "", "程序已经在运行!")
;ProcessClose($iPID)
;Exit
Else
Local $iPID = Run("notepad.exe", "", @SW_SHOWMAXIMIZED)
WinWait("", "", 10)
Sleep(2000)
EndIf
如上代码,编译后保存为"启动记事本.exe"。
想在打开"启动记事本.exe"这个程序时判断有无同名实例在运行
有的话就自己乖乖退出
没有的话自己就开始运行......
http://img.mp.sohu.com/upload/20170625/9393d157b2924f80b105227c2b9e0200_th.png
当然,可以另外写个"判断.exe"如下:
$a = processlist("启动记事本.exe")
if isarray($a) then
for $i =1 to $a
processclose($a[$i])
next
endif
run("启动记事本.exe")
http://img.mp.sohu.com/upload/20170625/9393d157b2924f80b105227c2b9e0200_th.png
有没有什么方法可以区分同名进程或实例,从而可以分别处理之? 干嘛非得用进程名判断……
论坛仅允许一个实例的代码多了去了 用这个行不行:
If WinExists($g_sTitle) And $_OnlyOneProcess = 1 Then
MsgBox(16, "", "不可以重复运行。", 0, $Form1)
......... _Singleton 干嘛非得用进程名判断……
论坛仅允许一个实例的代码多了去了
afan 发表于 2018-3-11 21:42 http://www.autoit3.cn/images/common/back.gif
我怎么搜不到呢,A大能否提供一个关键词..... 用这个行不行:
If WinExists($g_sTitle) And $_OnlyOneProcess = 1 Then
MsgBox(16, "", "不可以重复 ...
hnfeng 发表于 2018-3-12 08:16 http://www.autoit3.cn/images/common/back.gif
WinExists跟processExists一样,都是包括刚打开的同名实例在内
现在是想在打开现实例的时候,先关闭以前残留的所有同名旧实例,然后再接着运行现实例.... 一个实例 _Singleton
tubaba 发表于 2018-3-12 09:18 http://www.autoit3.cn/images/common/back.gif
第一次看到这个函数,折腾了一会,发现还是达不到目的,还用不好这个函数.... 不知道你所说的实例是指监控程序的本身,还是指被监控的实例
如果是前一种,那_Singleton函数的例子可以满足你的要求
启动时验证自身同名进程是否存在,如存在则退出自己
#include <Misc.au3>
Global $Title = '我是一个实例'
If _Singleton($Title,1) = 0 Then
MsgBox(0, "警告","测试已经运行")
Exit
EndIf
MsgBox(0, "OK", "第一次出现的测试运行")
Global $GUI = GUICreate($Title)
GUISetState()
Do
Until GUIGetMsg() = -3
如果是后一种
目的:在打开现实例的时候,先关闭以前残留的所有同名旧实例,然后再接着运行现实例....
Do
ProcessClose('notepad.exe')
Until Not ProcessExists('notepad.exe')
Local $iPID = Run("notepad.exe", "", @SW_SHOWMAXIMIZED)
afan 发表于 2018-3-14 14:26 http://www.autoit3.cn/images/common/back.gif
先前是用一个进程或一个窗口什么的搜不好使,用A大的这个直白的关键词,果然精准很多,搜到下面这个早期的帖子:
超简单的仅允许运行一个实例源码
{:face (88):}
感谢指点! 不知道你所说的实例是指监控程序的本身,还是指被监控的实例
如果是前一种,那_Singleton函数的例子可以满 ...
tubaba 发表于 2018-3-14 21:14 http://www.autoit3.cn/images/common/back.gif
谢谢兔大侠的详细解答,问题解决了,非常感谢!
页:
[1]