Registryeintrag entfernen

Für allgemeine Fragen zur Programmierung mit PureBasic.
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35

Registryeintrag entfernen

Beitrag von SBond »

Hi leute,

ich stell mich mal wieder zu blöd an. Ich schaffe es nicht einen simplen Reg-Eintrag zu löschen.


Code: Alles auswählen

Procedure.i _Autostart_aktivieren(iStatus.i = #True)
	
	Protected lKey.l 		= #HKEY_CURRENT_USER ; oder #HKEY_LOCAL_MACHINE für alle Benutzer
	Protected sPfad.s 		= "Software\Microsoft\Windows\CurrentVersion\Run"
	Protected sEintrag.s 	= "Zeitserver_CLIENT"
	Protected sWert.s 		= Chr(34) + ProgramFilename() + Chr(34)
	Protected lCurKey.l 	= 0
	
	; Registrieeintrag erstellen (oder löschen)
	If iStatus
		RegCreateKey_	(lKey, @sPfad, @lCurKey)
		RegSetValueEx_	(lCurKey, @sEintrag, 0, #REG_SZ, @sWert, StringByteLength(sWert))
	Else
		RegOpenKey_			(lKey, @sPfad, lCurKey)
		RegDeleteKeyValue_	(lKey, @sWert, @sEintrag) ; --> geht nicht???
	EndIf
	
	RegCloseKey_(lCurKey)
	
	ProcedureReturn 0
	
EndProcedure 
die WinAPI "RegDeleteKeyValue" wird scheinbar nicht erkannt. kennt jemand die Lösung?

viele Grüße,
SBond
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Registrieeintrag entfernen

Beitrag von RSBasic »

Wenn PB die API-Funktion nicht kennt, dann musst du diese manuell importieren.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35

Re: Registrieeintrag entfernen

Beitrag von SBond »

so scheint es zu finktionieren:

Code: Alles auswählen

RegOpenKey_		(lKey, @sPfad, lCurKey)
RegDeleteKey_		(lKey, sPfad)
danke dir trotzdem :)

......................................................
Edit: nicht gut. das löscht alle Einträge.
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Registrieeintrag entfernen

Beitrag von RSBasic »

Okay <) Aber falls du wieder das Problem haben solltest, dass du eine bestimmte API-Funktion nicht verwenden kannst, dann musst du diese mit OpenLibrary() importieren. Einfach auf der jeweiligen MSDN-Seite ganz unten in der Tabelle schauen, welche DLL-Datei dafür zuständig ist. Google einfach nach "%Funktionsname% msdn", beispielsweise "RegDeleteKeyValue msdn". Dann bekommst du die direkte Seite mit der Funktionsbeschreibung und mit anderen Informationen.
Der Name der DLL-Datei musst du als Parameter bei OpenLibrary() angeben und die Parameterliste der Funktion, die du gerne benutzen möchtest, definieren. Dann sollte es auch schon funktionieren. ;)
Am besten benutze auch Prototype. Beispielcodes findest du auch im Forum.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35

Re: Registrieeintrag entfernen

Beitrag von SBond »

supi :mrgreen:
werde ich probieren :D

hab noch einen schönen Sonntag ;)
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Registrieeintrag entfernen

Beitrag von RSBasic »

Wünsche ich dir auch. :)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten