AGB  ·  Datenschutz  ·  Impressum  







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

CreateMutex, komischer Fehler

Ein Thema von Koma-Code · begonnen am 12. Jul 2004 · letzter Beitrag vom 12. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2      
Koma-Code
(Gast)

n/a Beiträge
 
#1

CreateMutex, komischer Fehler

  Alt 12. Jul 2004, 12:07
Hi,

ich verwende CreateMutex, damit das Programm nicht mehrmals gestartet wird.
Das komische ist aber, das Delphi einen Mutex auf dem Programmnamen (sag man das so?) reserviert.
Mein Programm lädt daraufhin immer Delphi in den Vordergrund.

Wenn mein Progrann läuft, läßt sich Delphi wiederrum nicht starten
('Programm is already running.')



Kennt jemand diesen Fehler?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: CreateMutex, komischer Fehler

  Alt 12. Jul 2004, 12:10
Hai Koma-Code,

zeige mal wie Du den Mutex erzeugst.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Koma-Code
(Gast)

n/a Beiträge
 
#3

Re: CreateMutex, komischer Fehler

  Alt 12. Jul 2004, 12:14
Hier:

Delphi-Quellcode:
initialization
mHandle := CreateMutex(nil,True,'Name');
if (GetLastError = ERROR_ALREADY_EXISTS) then
 begin
  ...
 end
  else ShowMessage ('Program is already running.');

  halt;
end;


finalization
if mHandle <> 0 then CloseHandle(mHandle);
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: CreateMutex, komischer Fehler

  Alt 12. Jul 2004, 12:18
Hmmm.... ich verwende bei meinen Programmen als "Name" immer eine GUID (Im Editor von Delphi Shift-Ctrl-G).
Der sollte dann "auf jeden Fall" eindeutig sein. Ausserdem prüfst Du falsch. Du sagst wenn der Mutex nicht existiert soll das Programm beendet werden.

Delphi-Quellcode:
initialization
mHandle := CreateMutex(nil,True,'{4A1ADBC4-25EA-42AF-8A30-35F5A4606554}');
if (GetLastError = ERROR_ALREADY_EXISTS) then
  begin
    ShowMessage ('Program is already running.');
    halt;
  end
  else
  begin
   
  end;
end;


finalization
if mHandle <> 0 then CloseHandle(mHandle);
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Koma-Code
(Gast)

n/a Beiträge
 
#5

Re: CreateMutex, komischer Fehler

  Alt 12. Jul 2004, 12:31
Oh,

als ich den Code abgekürzt habe,
ist es an die falsche stelle gerutscht.

Es funktioniert auch auf meinem anderem PC,
nur auf dem neuen nicht.


Aber mit der GUID klappt es

Danke
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: CreateMutex, komischer Fehler

  Alt 12. Jul 2004, 12:36
Dann bedenke mal, daß Name auch nicht unbedingt so einmalig ist Wird mal wohl oft in Code-Schnippseln sehen und Programmierer sind oft zu faul die kompletten Anweisungen zu lesen

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Koma-Code
(Gast)

n/a Beiträge
 
#7

Re: CreateMutex, komischer Fehler

  Alt 12. Jul 2004, 12:38
Bei Name stand aber schon Application.Name
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: CreateMutex, komischer Fehler

  Alt 12. Jul 2004, 12:39
Zitat von Koma-Code:
Bei Name stand aber schon Application.Name
Gut, wenn der dann z.B. "Delphi-PRAXiS User Anwendung zum Durchsuchen von HDDs" ist, aber wenn der einfach nur "Windows Explorer" heißt...

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#9

Re: CreateMutex, komischer Fehler

  Alt 12. Jul 2004, 12:41
Zitat von Koma-Code:
Bei Name stand aber schon Application.Name
Hmmm. Und dieser ist ein Leerstring wenn Du ihn nicht vorher setzt.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Koma-Code
(Gast)

n/a Beiträge
 
#10

Re: CreateMutex, komischer Fehler

  Alt 12. Jul 2004, 12:44
Habe ich gemacht

Delphi-Quellcode:
 Application.Title := 'Koma-Mail';
 Application.CreateForm(TForm1, Form1);
Es lief ja wie gesagt auch auf den anderen PCs.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:32 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