找回密码
 加入
搜索
楼主: 3131210

[系统综合] [已解决]判断程序重复运行出错

 火.. [复制链接]
发表于 2017-5-26 14:54:32 | 显示全部楼层
Local $aProcess=ProcessList(@ScriptName);
For $i=1 To $aProcess[0][0]
    if $aProcess[$i][1] <> @AutoItPID  then ;It's not my own!!
                MsgBox(0,'请勿重复运行','程序已经运行中,请勿重复启动')
                Exit
        EndIf
Next
发表于 2017-5-26 15:00:17 | 显示全部楼层
回复  3131210

誰說不可以的    請看下面範例
kk_lee69 发表于 2017-5-26 13:49


运行LP快捷辅助 v2.2_NoUPX.exe后,
再次点击LP快捷辅助 v2.2_NoUPX.exe,显示MsgBox(262144, '警告', '不要重复!')
关闭MsgBox(262144, '警告', '不要重复!')。
第三次点击LP快捷辅助 v2.2_NoUPX.exe,出错了!
原打开的LP快捷辅助 v2.2_NoUPX.exe的窗口己经变了
发表于 2017-5-26 15:05:58 | 显示全部楼层
本帖最后由 1361739590 于 2017-5-26 15:09 编辑

根据我发的第9楼 生成的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-5-26 15:21:53 | 显示全部楼层
回复 14# 1361739590

這是它原本的

我不知道為何要這樣寫  沒意義  但是我沒動他  因為照理說  上面先判斷 如果存在就退出了  

所以這行不會跑第二次  沒差
发表于 2017-5-26 15:31:32 | 显示全部楼层
回复 19# kk_lee69


        没太懂你的意思。
WinSetState($Exists, "", @SW_SHOW)    这个是没问题的。
问题是    有两个窗口都叫  $Exists ,这个怎么显示呢,不会都显示,只显示最近激活的窗口。
所有他说有白框。
发表于 2017-5-26 15:51:39 | 显示全部楼层
回复 20# 1361739590

不會 你跑過我的範例了嗎  原本的 $Exists 這個內容必須要建立 FROM 才會存在

因此  第一次 跑以後  會有  $Exists 這個的內容的窗口存在  

第二次跑的時候 因為一開始就先判斷 此時 尚未建立 FROM 因此  不會有第二個 $Exists

所以 第二次   會將第一次的 秀出來後  自己就退出了

反而是  原本的寫法是 抓 CLASS  他之所以 會無法秀出隱藏的  就是因為他抓到了第二次的程式

AU3 執行的時候  沒有建立 FROM 的時候  會有個 透明的框  CLASS名稱是  AUTO IT V3 GUI
发表于 2017-5-26 16:19:20 | 显示全部楼层
回复 21# kk_lee69


    他主要有  AutoItWinSetTitle($Exists)  这个。
发表于 2017-5-26 21:13:20 | 显示全部楼层
若是自己的代码,可以有很多种方法实现吧.
Local $runState = @ScriptDir & 'tmp.dat'
FileWrite($runState, '')
Sleep(2000)
If Not FileExists($runState) Then Exit MsgBox(0, '', '实例已运行.')
FileDelete($runState)
GUICreate('')
Do
  If FileExists($runState) Then
          GUISetState()
          FileDelete($runState)
   EndIf
Until GUIGetMsg()= -3
 楼主| 发表于 2017-5-27 00:52:11 | 显示全部楼层
用9楼的办法,把隐藏的代码改成WinSetState就解决了,感谢盖楼的各位的讨论,都很有用。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-3-29 23:02 , Processed in 0.069243 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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