PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mein Prog darf nur einmal starten.


Anfänger
16.12.2001, 19:47
:D Hallo, Ich möchte das das Prog das ich programmiert habe nur einmal startet.
So habe ich es gemacht. Ich habe einen Button erstellt und zwischen begin und end das hier eingefügt:

mHandle:= CreateMutex(Nil, True, ´irgendeinName´);
If GetLastError = ERROR_ALREADY_EXISTS Then
Begin
ShowMessage(´Programm läuft bereits´);

Dann habe ich rHandle: THandle; als Variable genommen. ?( Aber irgendwas mache ich wahrscheinlich falsch, den sonst würde es ja starten. ;( Was muß ich machen damit das klappt.


------------------------------------------------------------------------

:) Danke auf jedenfalls schon mal das du meinen Beitrag gelesen hast.


Anfänger
17.12.2001, 17:19
:D Super ich habe eine Lösung gefunden. Und zwar mußte ich stat den Text in den Button einzufügen in das Formular eingefügt. Also dopelt auf Formular klicken und den Text dort einfügen.

Was ich nur nicht verstehe ist.
mHandle:= CreateMutex(Nil, True, ´irgendeinName´);



Wo wird das den angezeigt irgendeinName.

Und wieso schreibt er das Prog läuft bereits aber starten tut er es trozdem nocheinmal

xOOn
11.02.2002, 15:06
ich verstehe nicht genau was du meinst!

also du legst einfach einen Mutex an, der wieder geloescht wird, wenn du das programm beendest, jeder mutex hat einen namen ´irgendeinName´, und wird jetzt versucht ein 2. mal einen mutex mit dem selben namen anzulegen, so liefert die routine ERROR_ALREADY_EXISTS, es gibt bereits einen mutex mit diesem namen!

ich hoffe das ist es was du wissen wolltest


ciao...

LX
19.04.2002, 14:36
Ich häng´ einfach immer das an die Haupt-Unit dran und es funktioniert sogar :D

Initialization
mHandle:=CreateMutex(nil,True,´lalala oder so´);
if GetLastError=ERROR_ALREADY_EXISTS then
begin
showmessage(´Programm läuft schon!´);
Halt;
end;
finalization
if mHandle<>0 then
CloseHandle(mHandle);