AGB  ·  Datenschutz  ·  Impressum  







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

CreateMutex() verhält sich komisch

Ein Thema von Shark99 · begonnen am 23. Apr 2020 · letzter Beitrag vom 23. Apr 2020
 
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#1

CreateMutex() verhält sich komisch

  Alt 23. Apr 2020, 14:18
Ich muss einen Bug in einer 10 Jahre alten App fixen, die seit Windows update v1909 nicht mehr korrekt funktioniert.

Man soll nur eine Instanz der Exeutable starten können.

Der alte Code der nicht mehr funktioniert schaut so aus:
Code:
  MutexHandle := CreateMutex(nil, True, 'NameOfTheApp');
  if GetLastError = ERROR_ALREADY_EXISTS then
  begin
   log('errorcode is ERROR_ALREADY_EXISTS, bring app to front');
   ...
  end else
  begin
   log('errorcode is *NOT* ERROR_ALREADY_EXISTS, app darf weiter laufen');
   ...
  end;
10 Jahre lang, wenn man die Executable zum zweiten mal startete war das MutexHandle das gleiche wie bei der ersten Instanz, und GetLastError war ERROR_ALREADY_EXISTS. Nun ist der Handle des Mutex bei jedem Start der Exe ein neuer Handle und damit kommt ERROR_ALREADY_EXISTS nie zu stande, d.h. eine zweite Instanz der Exe wird gestartet.

Weiß jemand vielleicht wieso dieses Verhalten plötzlich da ist, und was man als Alternative zum CreateMutex nehmen könnte? FindWindow kommt nicht in Frage, weil die App nicht immer mit einem Fenster startet.
  Mit Zitat antworten Zitat
 


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 02:42 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