Ich möchte ein Programm (Exe) aus meiner Delphi-Anwendung ausführen. Ich kann es tun, aber ich möchte überprüfen, ob das Programm bereits ausgeführt wird oder nicht, bevor es ausgeführt wird. Gibt es eine Möglichkeit, es zu tun .. Vielen Dank im Voraus.Wie können wir feststellen, ein Programm läuft bereits in Delphi
Antwort
Die folgende Funktion prüft, ob ein Prozess läuft. Fügen Sie der uses-Klausel "TlHelp32" hinzu.
function ProcessRunning (sExeName: String) : Boolean;
{ -> sExeName : Name of the EXE without path. Does not have to be the full EXE name. }
var
hSnapShot : THandle;
ProcessEntry32 : TProcessEntry32;
begin
Result := false;
hSnapShot := CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0);
Win32Check (hSnapShot <> INVALID_HANDLE_VALUE);
sExeName := LowerCase (sExeName);
FillChar (ProcessEntry32, SizeOf (TProcessEntry32), #0);
ProcessEntry32.dwSize := SizeOf (TProcessEntry32);
if (Process32First (hSnapShot, ProcessEntry32)) then
repeat
if (Pos (sExeName,
LowerCase (ProcessEntry32.szExeFile)) = 1) then
begin
Result := true;
Break;
end; { if }
until (Process32Next (hSnapShot, ProcessEntry32) = false);
CloseHandle (hSnapShot);
end; { ProcessRunning }
Das ist, was ich wollte. Vielen Dank. – Anushal
Das mag wie das, was Sie wollen, aber ich bezweifle es. Auf diese Weise können Sie Ihren Prozess abhängig vom Timing mehrmals starten. Was Sie wirklich brauchen, ist eine Lösung mit einem Mutex. Trotzdem ist dies eine nützliche Funktion. –
Wenn Sie diese Funktion aufrufen, bevor Sie den Prozess starten, @Lieven, und True zurückgibt, würden Sie den Prozess nicht erneut starten. Was hat Timing damit zu tun? Gehen Sie davon aus, dass das Ziel darin besteht, dass das Programm eine vorherige Instanz von * sich selbst * erkennt? Es gab keine Anzeichen dafür, dass dies das Ziel ist. –
- 1. Wie kann mein Programm feststellen, ob Delphi läuft?
- 2. Können wir ein Java-Programm ohne Argumente in main() ausführen?
- 3. Können wir iPhone Programm in C schreiben?
- 4. Rails - Ein Server bereits läuft
- 5. Wie können wir feststellen, wie ausgelastet ein Azure Search Service ist?
- 6. Wie erkennt man, ob ein PHP-Skript bereits läuft?
- 7. XAMPP: Ein weiterer Web-Server bereits läuft
- 8. Wie können wir ein QRubberBand halbtransparent machen
- 9. Wie können wir feststellen, ob wir uns in einem reaktionsspezifischen Kontext befinden?
- 10. Wie können wir Daten auswählen, wenn wir Schlüsselworte als Zugriffsdatenbanktabellennamen und Feldnamen in Delphi verwenden
- 11. können wir die bereits unterschriebenen Gläser in Java zurückgeben?
- 12. Auf dem Fabricjs wie können Sie feststellen, ob ein Objekt bereits an bestimmten Koordinaten existiert?
- 13. geöffnet und ein externes Programm von Delphi
- 14. Können wir Multi-Prozess-Programm in Docker laufen?
- 15. Wie können wir ein Vektorbild kacheln?
- 16. Wie können wir ein Label ändern?
- 17. Programm läuft nicht wie vorgesehen
- 18. Wie können wir ein Objekt jederzeit laden?
- 19. Können wir Native Windows API von Delphi aufrufen?
- 20. Wie läuft das Kind in diesem Programm?
- 21. Wie kann mein Programm feststellen, ob es auf einer bestimmten Domain läuft?
- 22. Können wir ein Verzeichnis in hdfs komprimieren?
- 23. Können wir in iframes ein- und ausblenden?
- 24. Können wir ein Element in Jmeter ersetzen?
- 25. Debugging $ Digest läuft bereits
- 26. Können wir ein Programm in cmd und nicht in Visual Studio IDE debuggen?
- 27. Können wir feststellen, wer einen Datensatz in CRM 2011 gelöscht hat?
- 28. Können wir ein Objekt in JavaScript in ein Cookie einbinden?
- 29. Ermitteln, ob ein Python-Programm auf WINE läuft
- 30. Wie lange läuft Sharepoint-Workflow verbessern bereits in der Produktion
See [Auflisten aller Prozesse] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms682623.aspx) auf MSDN. –
Ist das Programm dein? – MBo
Ich bin ein wenig verwirrt, warum niemand dafür stimmte, als Duplikat zu schließen? Dies ist eine sehr häufige Frage ... –