Entwickler-Ecke
Sonstiges (Delphi) - Registry-Keys, Vollzugriff für eingeschränkte Benutzerkonten
galagher - So 24.07.11 15:35
Titel: Registry-Keys, Vollzugriff für eingeschränkte Benutzerkonten
Hallo!
Ich möchte ein Programm schreiben, das die Berechtigungen für Keys in der Registry für Benutzer mit eingeschränkten Rechten auf "Vollzugriff" ändert.
Wie kann ich aus meinem Programm heraus den Windows-eigenen "Berechtigungen für"-Dialog starten? Diesem muss der Key, für den die Berechtigungen gesetzt werden soll, übergeben werden. Das eigentliche Setzen soll also manuell vorgenommen werden, den Rest erledigt Windows.
Es handelt sich um folgende zwei Keys:
HKEY_LOCAL_MACHINE\SOFTWARE\L&H\
G2P und HKEY_LOCAL_MACHINE\SOFTWARE\L&H\TTS\V6.0\
Voice.
Der Grund: Standardmässig haben nur Admins Vollzugriff, daher funktioniert die deutsche Sprachausgabe mit L&H nur unter einem Admin-Konto. Man muss für beide Keys und zusätzlich für die Ordner \WINDOWS\Lhsp und \WINDOWS\Temp Vollzugriff für eingeschränkte Benutzer setzen. Mit einem Programm kann man das doch einfacher erledigen.
Siehe auch:
http://www.mz-translator.de/faq/faq.php?id=97
acnut - So 24.07.11 18:14
ich weiß nicht ob ich die frage selber richtig kapiert hab, aber:
du kannst ja dein programm gleich mit admin-rechten starten in dem du eine manifest-datei einbindest oder z.b die jedi komponenten installierst.
noch eine möglichkeit wäre es einfach mit shellexecute in dem du 'runas' statt den anderen parametern benutzt damit kannst du deine eigene anwendung als admin starten oder andere anwendungen als administratopr starten lassen ;)
ich weiß nicht ob ich dir iwie helfen konnte, falls nicht dann hab ich deine frage falsch verstanden. also wenn ich mit meiner "hilfe" falsch liege dann bitte ich um verständnis ;)
mfg
acnut
galagher - So 24.07.11 18:53
acnut hat folgendes geschrieben : |
ich weiß nicht ob ich die frage selber richtig kapiert hab, aber:
du kannst ja dein programm gleich mit admin-rechten starten |
Ja, dann klappt es natürlich in jedem Fall!
Ich habe also ein Programm, das die ActiveX-Komponente TTextToSpeech nützt und dazu diese Rechte braucht. Meine Idee ist nun, ein Tool zu schreiben, das man als Admin 1x ausführt und das diese Rechte setzt. Dann läuft mein eigentliches Programm (das mit TTextToSpeech) problemlos und "spricht" deutsch, ohne diese Rechte nur englisch.
Nun ist es ja nicht so, dass man die Zugriffsrechte jeden Tag neu setzen muss, sondern nur 1x und gut ist's. Natürlich kann man diese Rechte auch manuell setzen, hab' ich ja getan, siehe den Link im ersten Post. Aber es wäre halt schön, ein solches Hilfstool selbst zu schreiben. Aber zugegeben: Wirklich nötig ist das nicht.
acnut - So 24.07.11 19:23
ich selber benutze in meinem win7tool diese funktion:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| function IsAdmin: Boolean; const SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5)); SECURITY_BUILTIN_DOMAIN_RID = $00000020; DOMAIN_ALIAS_RID_ADMINS = $00000220; SE_GROUP_ENABLED = $00000004; var hAccessToken: THandle; ptgGroups: PTokenGroups; dwInfoBufferSize: DWORD; psidAdministrators: PSID; x: Integer; bSuccess: BOOL; begin Result:= False; |
oder du machst es wie ich schon sagte:
1)manifest
2)jedi komponente (ich bin mir nicht sicher, aber ich glaub mit dem jwawindows.pas?! ;))
3)shellexecute mit 'runas' als parameter
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!