Seite 1 von 2
Registry läst sich nicht in Windows 8 ändern ?
Verfasst: 28.01.2014 19:26
von 3dhubiflieger
Hallo ich habe ein Problem mit dem Code für die Registry unten. Er funktioniert einwandfrei. Allerdings nicht in Windows 8 !

Das Problem scheint mit irgendwelchen Rechten zu tun zu haben ! Ich habe folgenden Link gefunden
http://msdn.microsoft.com/en-us/library ... ol.aspx#Y0
Allerdings versteh ich das ganze nich ! Wie zum Henker bekomm ich die Procedure so hin das diese auch unter Windows 8 meine Einträge in die Registry schreibt ?? Vielleicht hat ja jemand mehr Ahnung !
Code: Alles auswählen
Procedure.l SetValueEx(topKey.l, sKeyName.s, sValueName.s, lType.l, vValue.s)
lValue.l
sValue.s
Select lType
Case #REG_SZ
sValue = vValue
size.l = Len(sValue)
RegCreateKey_(topKey,sKeyName,@hKey)
SetValueEx = RegSetValueEx_(hKey, sValueName, 0, #REG_SZ, @sValue, size)
Case #REG_DWORD
lValue = Val(vValue)
SetValueEx = RegSetValueEx_(hKey, @sValueName, 0, #REG_DWORD, @lValue, 4)
EndSelect
ProcedureReturn SetValueEx
EndProcedure
setvalueex(#HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run","XBMC",#REG_SZ,"1")
Re: Registry läst sich nicht in Windows 8 ändern ?
Verfasst: 28.01.2014 19:30
von RSBasic
Welches Betriebssystem hast du zuvor verwendet?
Führst du deine Anwendung mit Administratorenrechten aus?
Re: Registry läst sich nicht in Windows 8 ändern ?
Verfasst: 28.01.2014 20:06
von 3dhubiflieger
Ich benutze normalerweise noch Windows XP. Ich will allerdings das mein Programm in allen Umgebungen läuft. Wie gesagt Windows Xp läuft einwandfrei. Und auch Windows 7 geht. Es liegt eindeutig an Windows 8. An den Adminrechten kann es nicht liegen. Das habe ich schon getestet. Man muss in Windows 8 irgendetwas aktivieren (siehe Link). Wie man das allerdings macht (Framework ?)...keine Ahnung.
Re: Registry läst sich nicht in Windows 8 ändern ?
Verfasst: 28.01.2014 20:43
von ts-soft
Ich kann mir nicht vorstellen, das Du ein Programm erstellt hast, das im Kontext des Computers gestartet werden sollte,
eher wohl im Kontext des Benutzers, also #HKey_LOCAL_MACHINE ist schon mal der falsche Ort.
Ansonsten, den richtigen Schlüssel verwenden, die richtige Manifest und es funktioniert.
Re: Registry läst sich nicht in Windows 8 ändern ?
Verfasst: 28.01.2014 22:03
von 3dhubiflieger
Eben nicht !! Hier hat jemand das selbe Problem....
http://www.vbdotnetforums.com/vb-net-ge ... s-8-a.html
HKEY LOCAL MACHINE ....Allgemeinzugriff
HKEY CURRENT USER ....der Benutzer
....Aber daran liegt es nicht....Es ist ja auch egal welche Schlüssel ich nehme. In der Registry müsste ja so, oder so anschliessend was drin stehen.
Es liegt definitv an Windows 8. (siehe Link oben) Aber ich brauche die Prozedure um in Windows ein alternatives Shellprogramm einzutragen. Weitere Lösungsansätze ?
Re: Registry läst sich nicht in Windows 8 ändern ?
Verfasst: 28.01.2014 22:18
von ts-soft
Hier mal funktionierende Registryfunktionen:
http://www.purebasic.fr/english/viewtop ... 72#p422572
RegCreateKey ist für 16-Bit Programme geschaffen worden und war bisher nur noch aus Kompatibilitätsgründen
vorhanden, das dies nicht mehr unter Win 8 funktioniert, kann ich mir vorstellen
Ansonsten solltest Du diese Einträge lieber durch ein prof. Setup-Programm erstellen lassen, ich denke mal, Dir
fehlt sowohl Erfahrung als auch Hintergrundwissen um so etwas sicher in ein Programm einzubauen.
Falls Du es doch selber machst, denk dran, die richtige Manifest in Deine Exe zu kompilieren. Bei LOKAL_MACHINE
sind in jedem Falle AdminRechte erforderlich, bei CURRENT_USER normalerweise nicht, weil dort gehört es auch hin.
Gruß
Thomas
Re: Registry läst sich nicht in Windows 8 ändern ?
Verfasst: 28.01.2014 22:21
von TroaX
Ich vermute der Grund dafür ist hier:
http://uliarmbruster.wordpress.com/2012 ... wendungen/
Nagel mich nicht darauf fest. Aber wenn ich das richtig verstehe gibt es selbst mit Admin-Mode noch Einschränkungen.
Re: Registry läst sich nicht in Windows 8 ändern ?
Verfasst: 28.01.2014 23:03
von Falko
@3dhubiflieger
Also bei mir funktioniert es.
Es funktioniert nicht, wenn du einfach nur im Editor deinen Code mit Compile ausführst und
in der Registry nachschaust und feststellst, das dort nichts eingetragen wurde.
Du musst also erst im Editor unter dem Menü Compiler, dann Compiler-Optionen
bei der Einstellung "Administrator-Modus für Windows Vista anfordern" ein Häkchen setzen.
Dann sollte auch bei dir mit deinem Source, der aus der IDE dann compiliert wird, in der
Registry das stehen, was du angegeben hast.
So funktioniert bei mir dein Code korrekt. Ich selbst bevorzuge die Droopy-Lib, die überigens
das gleiche Problem hat, wenn man das Häkchen nicht gesetzt hat
MfG,
Falko
Re: Registry läst sich nicht in Windows 8 ändern ?
Verfasst: 28.01.2014 23:15
von ts-soft
Die "alten" Codes, wie sie z.B. Droopy verwendet, fordern ja grundsätich #KEY_ALLACCESS oder wie das heißt an, dann
braucht man für jeden Pup natürlich Adminrechte.
Mein Module fordert immer nur die min. erforderlichen Rechte an, was natürlich für #HKEY_LOCAL_MACHINE immer noch
Adminrechte erfordert, aber bei #HKEY_CURRENT_USER aber nicht. Normale Anwendungen schreiben eigentlich niemals
nach #HKEY_LOCAL_MACHINE; es sei denn, man nutzt Win9x

Re: Registry läst sich nicht in Windows 8 ändern ?
Verfasst: 28.01.2014 23:29
von Falko
So alt ist der Code nicht, wenn du nur die Version 5.20 meinst.
Und was man dort einsetzt hat doch nichts mit dem Code zu tun.
Oben stand "#HKEY_LOCAL_MACHINE" und danach bin ich gegangen
Gruß,
Falko