Sub ProcessExists(ExeName As String) As Boolean
Dim Result As ShellSyncResult
Dim sh As Shell
sh.InitializeDoNotHandleQuotes("", "tasklist", Array As String("/FI", $""IMAGENAME eq ${ExeName}""$))
Result = sh.RunSynchronous(2000)
Return Not(Result.StdOut.Contains("No tasks are running"))
End Sub
Sub AppStart (Form1 As Form, Args() As String)
If ProcessCount("myApp\.exe") > 1 Then
Log("Only one instance of myApp allowed.")
ExitApplication(2)
End If
End Sub
Sub ProcessCount(ExeNamePattern As String) As Int
Dim Count As Int = 0
Dim Result As ShellSyncResult
Dim sh As Shell
sh.InitializeDoNotHandleQuotes("", "tasklist", Null)
Result = sh.RunSynchronous(2000)
If Result.Success = False Then Return Count
Dim Match As Matcher = Regex.Matcher2(ExeNamePattern, Regex.CASE_INSENSITIVE, Result.StdOut)
Do While Match.Find
Count = Count + 1
Loop
Return Count
End Sub
Sub BShell_MouseClicked (EventData As MouseEvent)
Dim shellexe As String
shellexe="c:\Windows\System32\notepad.exe"
Dim exerunning As Boolean
exerunning=ProcessExists(shellexe)
Log ("exerunning "&exerunning)
End Sub
Sub ProcessExists(ExeName As String) As Boolean
Dim Result As ShellSyncResult
Dim Sh As Shell
Sh.InitializeDoNotHandleQuotes("", "tasklist", Array As String("/FI", $""IMAGENAME eq ${ExeName}""$))
Result = Sh.RunSynchronous(2000)
Log("Result.StdOut = " & Result.StdOut)
Return Not(Result.StdOut.Contains("No tasks are running"))
End Sub
Program started.
Result.StdOut =
exerunning true
Sub MainForm_MouseClicked (EventData As MouseEvent)
Dim shellexe As String
shellexe="notepad.exe"
Dim exerunning As Boolean =ProcessExists(shellexe)
Log ("exerunning "&exerunning)
End Sub
Sub ProcessExists(ExeName As String) As Boolean
Dim Result As ShellSyncResult
Dim Sh As Shell
Sh.InitializeDoNotHandleQuotes("", "tasklist", Null)
Result = Sh.RunSynchronous(5000)
Return Result.StdOut.ToLowerCase.Contains(ExeName.ToLowerCase)
End Sub
Sub BShell_MouseClicked (EventData As MouseEvent)
Dim shellexe As String
shellexe="notepad.exe"
Dim exerunning As Boolean =ProcessExists(shellexe)
Log ("exerunning "&exerunning)
If exerunning = False Then
shell1.initialize("shell1","c:\Windows\System32\notepad.exe",list1)
shell1.Run(-1)
End If
End Sub
Sub ProcessExists(ExeName As String) As Boolean
Dim Result As ShellSyncResult
Dim Sh As Shell
Sh.InitializeDoNotHandleQuotes("", "tasklist", Null)
Result = Sh.RunSynchronous(5000)
Return Result.StdOut.ToLowerCase.Contains(ExeName.ToLowerCase)
End Sub