AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Instanzen verhindern

Ein Thema von Rapthor · begonnen am 21. Sep 2003 · letzter Beitrag vom 21. Sep 2003
Antwort Antwort
Rapthor

Registriert seit: 30. Nov 2002
139 Beiträge
 
#1

Mehrere Instanzen verhindern

  Alt 21. Sep 2003, 11:58
Habe folgendes in meiner Unit1 zu stehen:

Delphi-Quellcode:
Initialization //Verhindern, dass das Programm mehrmals gestartet wird
   mHandle := CreateMutex(nil, True, 'Festung.exe');
     if GetLastError = ERROR_ALREADY_EXISTS then
     begin
       ShowMessage('Programm wird bereits ausgeführt');
       Halt;
     end;

finalization
   if mHandle <> 0 then
     CloseHandle(mHandle);
Hierbei wird verhindert, dass ein Programm namens Festung.exe doppelt ausgeführt wird. Was muss ich jetzt machen, damit die Prozedur auch überprüft , ob eine client.exe schon läuft? Denn in diesem Falle soll der gleiche Effekt auftreten, wie wenn Festung.exe schon ausgeführt wurde.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Mehrere Instanzen verhindern

  Alt 21. Sep 2003, 12:03
In dem du auch eien Muztex für die client.exe erstellst?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Mehrere Instanzen verhindern

  Alt 21. Sep 2003, 12:05
Ich glaub du verwechselst da was. Der dritte Parameter von CreateMutex gibt einfach einen String an, der den Mutex identifiziert. In diesem Fall hast du "Festung.exe" verwendet, was wohl der Name der Anwendung ist, du könntest aber auch jeden anderen Bezeichner verwenden. Name des Mutex und Name der Anwendung können natürlich übereinstimmen, müssen es aber nicht.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Rapthor

Registriert seit: 30. Nov 2002
139 Beiträge
 
#4

Re: Mehrere Instanzen verhindern

  Alt 21. Sep 2003, 12:58
Zitat:
In dem du auch eien Muztex für die client.exe erstellst?
So ?

Delphi-Quellcode:
Initialization //Verhindern, dass das Programm mehrmals gestartet wird
   mHandle := CreateMutex(nil, True, 'Festung.exe');
     if GetLastError = ERROR_ALREADY_EXISTS then
     begin
       ShowMessage('Programm wird bereits ausgeführt');
       Halt;
     end;

   mHandle := CreateMutex(nil, True, 'client.exe');
     if GetLastError = ERROR_ALREADY_EXISTS then
     begin
       ShowMessage('client.exe läuft bereits');
       Halt;
     end;

finalization
   if mHandle <> 0 then
     CloseHandle(mHandle);
Das bringt bei mir aber garnichts. Der startet trotzdem fröhlich, obwohl client.exe läuft.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Mehrere Instanzen verhindern

  Alt 21. Sep 2003, 13:03
Moin Rapthor,

lies Dir doch noch mal Chewies Beitrag durch.

Verallgemeinert:
Das Programm, dass nur einmal gestartet werden soll muss prüfen, ob es schon läuft.
In einem anderen Programm kann man dann natürlich auch testen, ob das der Fall ist. Ob das Sinn macht hängt natürlich vom Zusammenhang ab.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz