Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   RegDeleteKeyEx wie geht das ?? (https://www.delphipraxis.net/155746-regdeletekeyex-wie-geht-das.html)

kuba 6. Nov 2010 07:53

AW: RegDeleteKeyEx wie geht das ??
 
Hy,

ja das ist mir schon klar, habe mein Programm mit Administratorberechtigung gestartet.

KUBA

kuba 6. Nov 2010 10:40

AW: RegDeleteKeyEx wie geht das ??
 
Hy,

habe die Prozedur zu einer Funktion umgebaut:

Delphi-Quellcode:
function RegDeleteKeyEx(const hKey: HKEY;const lpSubKey: string;
  const samDesired: REGSAM; reserved : DWORD): boolean; stdcall;
  external 'advapi32.dll' name 'RegDeleteKeyExW';
In meinem Programm rufe ich das so auf:

Delphi-Quellcode:
if RegDeleteKeyEx(HKEY_LOCAL_MACHINE, '\Software\Test', KEY_WOW64_64KEY, 0) then
       showmessage(SysErrorMessage(GetLastError))
       else showmessage(SysErrorMessage(GetLastError));
Als Fehlermeldung erhalte ich: "der Vorgang wurde erfolgreich beendet"

Der Schlüssel in der Registry wurde jedoch nicht gelöscht, was läuft falsch ??

KUBA

mkinzler 6. Nov 2010 10:58

AW: RegDeleteKeyEx wie geht das ??
 
Bitte verwende Delphi-Tags (Delphi-Icon) bei Delphi-Code. Und innerhalb 24 Stunden kannst du deinen letzten Beitrag ändern/erweitern, wenn dir noch etwas winfällt und noch keinen geantwortet hat; den Pushen sehen wir hier nicht so gerne

DeddyH 6. Nov 2010 14:50

AW: RegDeleteKeyEx wie geht das ??
 
Du hast auch den kompletten Artikel aus dem MSDN zu RegDeleteKeyEx gelesen?
Zitat:

Return Value

If the function succeeds, the return value is ERROR_SUCCESS.

If the function fails, the return value is a nonzero error code defined in Winerror.h. You can use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag to get a generic description of the error.

Remarks

A deleted key is not removed until the last handle to it is closed.

On WOW64, 32-bit applications view a registry tree that is separate from the registry tree that 64-bit applications view. This function enables an application to delete an entry in the alternate registry view.

The subkey to be deleted must not have subkeys. To delete a key and all its subkeys, you need to enumerate the subkeys and delete them individually. To delete keys recursively, use the RegDeleteTree or SHDeleteKey function.

If the function succeeds, RegDeleteKeyEx removes the specified key from the registry. The entire key, including all of its values, is removed.

Dezipaitor 6. Nov 2010 16:40

AW: RegDeleteKeyEx wie geht das ??
 
Hat mit dem Thema zu tun:
http://blog.delphi-jedi.net/2010/08/...key-and-64bit/

kuba 6. Nov 2010 17:26

AW: RegDeleteKeyEx wie geht das ??
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

hab mir alles nochmal fein durchgelesen und noch einige Tests gemacht.

Mittlerweile weiss ich warum es nicht funktioniert hat. Beim Schlüssel darf der erste Backslash nicht vorkommen, z.B.: 'software\test'.

2 Testprogramme habe ich nochmal angehangen..

KUBA


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr.
Seite 2 von 2     12   

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