Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Createmutex / Windows 7 / 64bit Problem (https://www.delphipraxis.net/143121-createmutex-windows-7-64bit-problem.html)

Mavarik 10. Nov 2009 08:14


Createmutex / Windows 7 / 64bit Problem
 
Hallo Zusammen...

Ich habe einen Servicedienst mit Adminrechten geladen...

Dieser Dienst holt sich ein Mutex mit:

Delphi-Quellcode:
  ServiceGeladen := CreateEvent(nil,true,true,ServiceDa);
  SetEvent(ServiceGeladen);
Ein anderes Programm soll abfragen ob der Service geladen ist mit:

Delphi-Quellcode:
  Geladen := CreateMutex(nil, true,ServiceDa);

  if Geladen = 0
    then begin
Bisher (unter Vista 32Bit) funktionierte das prima so...
Hat jemand ne Idee woran es liegt, dass es jetzt nicht mehr läuft?
- 64 Bit?
- Windows 7
- sonstiges...

Grüsse Mavarik :coder:

PS.: Lasterror = 0 Gelanden = 256

Dezipaitor 10. Nov 2009 09:56

Re: Createmutex / Windows 7 / 64bit Problem
 
Das Erste ist ein eigentlich ein Event, d.h. das sind zwei völlig verschiedene Objekte.

Also, du kannst Events verwenden, statt Mutexes, musst aber dieselbe Funktion (CreateMutex <-> CreateEvent) nutzen. Schau dir die Doku in der MSDN dazu genau an.

Mavarik 10. Nov 2009 10:07

Re: Createmutex / Windows 7 / 64bit Problem
 
Oh Cool ist mir nicht aufgefallen...

Komisch, dass es unter Vista so funktioniert..

Aber auch wenn ich bei beiden den CreateEvent verwende erhalte ich nicht das gewünschte Ergebiss

Sollte nicht GetLastError = ERROR_ALREADY_EXISTS sein?

Grüsse :dp:

wicht 10. Nov 2009 10:28

Re: Createmutex / Windows 7 / 64bit Problem
 
Muss da vielleicht auch das berühmte "GLOBAL\" vor?

Mavarik 10. Nov 2009 10:45

Re: Createmutex / Windows 7 / 64bit Problem
 
Zitat:

Zitat von wicht
Muss da vielleicht auch das berühmte "GLOBAL\" vor?

Was - wo - vor?

Warum zeigt sich erst unter Windows 7 das Problem oder liegt es an 64 Bit...?

Wie gesagt unter Vista 32 läuft es...

Mavarik

wicht 10. Nov 2009 10:48

Re: Createmutex / Windows 7 / 64bit Problem
 
War mehr ins blaue geraden :) .. Naja der Mutex bekommt ja einen Namen, und der Name sollte dann nicht "asdf" sein, sondern "GLOBAL\asdf". Kannst ja mal versuchen, keine Ahnung ob es hilft.

Mavarik 10. Nov 2009 11:08

Re: Createmutex / Windows 7 / 64bit Problem
 
Zitat:

Zitat von wicht
War mehr ins blaue geraden :) .. Naja der Mutex bekommt ja einen Namen, und der Name sollte dann nicht "asdf" sein, sondern "GLOBAL\asdf". Kannst ja mal versuchen, keine Ahnung ob es hilft.

Wenn ich GLOBAL\ davor setze läßt sich der Mutex nicht erzeugen...

Aber auch alle anderen Events klappen unter W7_64 nicht mehr...

Wo ist der Trick..?

Mavarik

Mavarik 10. Nov 2009 11:45

Re: Createmutex / Windows 7 / 64bit Problem
 
Ich habe folgendes gefunde zu "Global"

Link <- hier steht "Global\\"

Funktioniert aber auch nicht...

Dezipaitor 10. Nov 2009 13:07

Re: Createmutex / Windows 7 / 64bit Problem
 
für Global\xxx benötigt man das CreateGlobalPrivilege, was z.B. Admin haben.

Mavarik 10. Nov 2009 13:16

Re: Createmutex / Windows 7 / 64bit Problem
 
Zitat:

Zitat von Dezipaitor
für Global\xxx benötigt man das CreateGlobalPrivilege, was z.B. Admin haben.

CreateGlobalPrivilege aus "Deiner" API?

Ich habe es mit "InitializeSecurityDescriptor" versucht... wollte leider auch nicht...


Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr.
Seite 1 von 2  1 2      

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