Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mutexhandle setzt sich selbst auf 0 (https://www.delphipraxis.net/89382-mutexhandle-setzt-sich-selbst-auf-0-a.html)

gsh 30. Mär 2007 11:05


Mutexhandle setzt sich selbst auf 0
 
Hi DPler

Ich glaub ich spinne ich hab ein Problem mit der Neustart funktion von meinem Programm und beim debuggen bin ich jetzt drauf gekommen das das Mutexhandle was ich am Anfang erzeuge plötzlich wie von geisterhand auf 0 ist. :wall:

Delphi-Quellcode:
initialization
  MutexHandle := CreateMutex(Nil, True, PChar('MeinProgramm')); //Hier wird der Mutex erzeugt (auch erfolgreich das Handle war 3964)
  if GetLastError = ERROR_ALREADY_EXISTS then //Wurde nicht ausgelöst
  begin
    Showmessage('Anwendung ist bereits gestartet!');
    Halt;
  end;
finalization
  if MutexFensterHandle <> 0 then CloseHandle(MutexFensterHandle); //Wenn ich das Programm beende dann kommt er hier her aber da ist das Handle schon null (deshalb wird es nicht geschlossen)
  if vApplicationRestart then ShellExecute(0, 'open', PChar(ParamStr(0)), nil, nil, SW_SHOW); //wenn ich neustarte dann wird die Anwendung hier neugestartet ... die neugestartete Anwendung sagt dann aber "Anwendung ist bereits gestartet!"
Ich hab Delphi nach dem Variablennamen suchen lassen (in allen Projektdateien) ... also ich bin mir ganz sicher das die Variable MutexFensterHandle nur in diesem Codeabschnitt verwendet wird.

Habt ihr eine Idee?

HERMES 30. Mär 2007 11:13

Re: Mutexhandle setzt sich selbst auf 0
 
oben steht "MutexHandle", unten steht "MutexFensterHandle".

mfg

gsh 30. Mär 2007 11:17

Re: Mutexhandle setzt sich selbst auf 0
 
ARG :wall: :wall: :wall: :wall: :wall:
man bin ich dumm ... danke das wars

Christian Seehase 30. Mär 2007 18:06

Re: Mutexhandle setzt sich selbst auf 0
 
Moin Alex,

es hätte übrigens auch sein können, dass Du Dir den Inhalt der Variablen durch das Überschreiten von Arraygrenzen, oder sonstiges überschreiten von Speichergrenzen, überschreibst.
Nur um weiter Möglichkeiten aufzuzeigen.

DP-Maintenance 30. Mär 2007 18:30

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Sonstige Fragen zu Delphi" nach "Windows API / MS.NET Framework API" verschoben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz