Mit unserem heutigen Tipp lässt sich prüfen, ob eine bestimmte Anwendung gestartet ist. Die Funktion IsAppRunning erwartet hierbei im ersten Parameter den Dateinamen der zu prüfenden Anwendung. Hierbei werden alle laufenden Prozesse durchlaufen und über das jeweilige Process-Objekt der Dateiname des Prozesses ermitteln. Über den zweiten optionalen Parameter kann festgelegt werden, ob nur der reine Dateiname oder gesamte Pfad+Dateiname verglichen werden soll. Wird die gesuchte Anwendung ausgeführt, kann über den dritten optionalen Parameter noch eine "Aktion" bestimmt werden, die ausgeführt werden soll, bspw. um die Anwendung zu aktivieren, schließen oder den gesamten Task zu beenden. Erstellen Sie ein neues Modul und fügen nachfolgenden Code ein: Imports System.Diagnostics Module Module1 ' Aktions-Konstanten Public Enum eActionState DoNothing = 0 DoActivate = 1 DoClose = 2 DoKill = 3 End Enum ' Prüft, ob eine bestimmte Anwendung gestartet ist Public Function IsAppRunning(ByVal sFilename As String, _ Optional ByVal bCompareFullPath As Boolean = False, _ Optional ByVal nAction As eActionState = eActionState.DoNothing) As Boolean ' alle laufenden Prozesse ermitteln Dim oProcessList As Process() = Process.GetProcesses Dim oProcess As Process Dim sProcessFile As String Dim bResult As Boolean ' Porzesse der Reihe nach durchlaufen For Each oProcess In oProcessList Try ' vollständigen Dateinamen (inkl. Pfad) des Prozesses ermitteln sProcessFile = oProcess.MainModule.FileName.ToLower If bCompareFullPath Then ' gesamter Pfad muss übereinstimmen bResult = (sProcessFile = sFilename.ToLower) Else ' nur EXE-Datei ohne Pfadangabe vergleichen bResult = (sProcessFile.IndexOf("\" & sFilename.ToLower) > 0) End If If bResult Then ' gewünschte Aktion ausführen Try If nAction = eActionState.DoActivate Then ' Anwendung aktivieren AppActivate(oProcess.MainWindowTitle) ElseIf nAction = eActionState.DoClose Then ' Anwendung beenden oProcess.CloseMainWindow() ElseIf nAction = eActionState.DoKill Then ' Anwendung (Task) beenden oProcess.Kill() End If Return True Catch ex As Exception Return False End Try End If Catch ex As Exception End Try Next End Function End Module Beispiele für den Aufruf: ' Ist WinWord gestartet? ' Wenn ja, soll WinWord aktiviert werden If Not IsAppRunning("winword.exe", , eActionState.DoActivate) Then MsgBox("WinWord ist nicht gestartet!") End If ' Ist MS-Excel gestartet? ' Wenn ja, soll Excel geschlossen werden If Not IsAppRunning("excel.exe", , eActionState.DoClose) Then MsgBox("MS-Excel ist nicht gestartet!") End If ' WinWord ohne Rücksicht auf Verluste beenden, falls gestartet IsAppRunning("winword.exe", , eActionState.DoKill) Dieser Tipp wurde bereits 41.708 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevDTA 3.0 Pro SEPA mit Kontonummernprüfung Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |