Seite 1 von 1

Registry - Wert ändern ohne Adminstrator Berechtigungen

Verfasst: 14.02.2014 14:25
von pyromane
Hallo,

ich habe neuerdings einen Windows Tablet PC. Der hat ein Auto Rotation "Feature", wie man es von Smartphones kennt. Manchmal ist das sehr lästig. Es gibt viele Optionen das Aus-/Anzustellen. Da ich aber 2 "programmierbare" Hardware Buttons habe, wollte ich ein Script schreiben welches in der Registry den Wert von 0 auf 1 bzw von 1 auf 0 setzt. Das klappt auch, allerdings benötigt mein Code Admin-Rechte, damit er den Wert ändert. Die habe ich auch nur wenn ich unter den Tablet Einstellungen sage welche .exe gestartet werden soll wenn ich den Button drücke gibt es diese Option nicht mehr bzw die Programme werden einfach ohne Admin rechte ausgeführt. Gibt es eine Möglichkeit, dass meine Software sich entweder die Rechte holt oder das ich den Wert ohne Admin rechte ändere?

Betriebssystem ist Windows 8.1 und der Schlüssel liegt hier:

Code: Alles auswählen

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AutoRotation
und heißt Enabled. Ist ein DWORD und kann 0 bzw 1 sein.

Ich nutze die Funktionen von hier: http://www.purebasic.fr/english/viewtop ... gistry.pbi

Danke für eure Hilfe!

Re: Registry - Wert ändern ohne Adminstrator Berechtigungen

Verfasst: 14.02.2014 14:46
von ts-soft
Einfach die Manifest für Admin in den Compileroptionen aktivieren.
Falls das OS 64-Bit ist und Deine Anwendung 32-Bit, wird der Schlüssel dank Virtualisierung nicht mehr stimmen!
Dafür kannst Du aber meine etwas aktuelleren Registry-Funktionen nutzen, findest Du hier:
http://www.purebasic.fr/english/viewtop ... 72#p422572

Re: Registry - Wert ändern ohne Adminstrator Berechtigungen

Verfasst: 14.02.2014 15:54
von pyromane
Meinst du damit die Checkbox das die exe als Admin ausgeführt wird unter den Compiler-Optionen? Wenn ja, die habe ich die ganze Zeit schon gesetzt. Mein Code funktioniert ja auch nur nicht mehr wenn Windows ihn ausführt. Bei deinem Code bekome ich beim testenden Fehler: "Ungültiger Zugriff auf Speicherbereich"

Folgende Codezeile nutze ich hierfür:

Code: Alles auswählen

WriteValue(#HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\AutoRotation", "Enable", Str(1), #REG_DWORD))
Ja, dass OS ist Win 8.1 x64.