Почему функция «if ProcessExist» не работает на других компьютерах - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь выполнить IF ProcessExist.

на моем win 10 64-битном компьютере это работает, но когда я выполняю на другом ПК с win 7 или даже с win 10. Это не выполняется.

 #AutoIt3Wrapper_UseX64=N
    If ProcessExists ("program.exe") Then
MsgBox ("", "Hold", "Test", 10)
    Exit
    Else
        #RequireAdmin
    Run(@ComSpec & " /c " & "C:\folder\file.bat", "", @SW_HIDE)
        EndIf

Продолжайте получать, как будто program.exe существует, но это не так.

1 Ответ

0 голосов
/ 13 октября 2019
#RequireAdmin must be on the very top of your script.

Я предполагаю, что это не работает, когда вы компилируете исполняемый файл. Вероятно, он называется program.exe и находит собственный процесс.

Что касается Singleton, см. this :

_Singleton ( $sOccurrenceName [, $iFlag = 0] )
Enforce a design paradigm where only one instance of the script may be running

Пример

#include <Misc.au3>
#include <MsgBoxConstants.au3>

If _Singleton("test", 1) = 0 Then
    MsgBox($MB_SYSTEMMODAL, "Warning", "An occurrence of test is already running")
    Exit
EndIf
MsgBox($MB_SYSTEMMODAL, "OK", "the first occurrence of test is running")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...