Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Registry Permissions setzen (https://www.delphipraxis.net/64148-registry-permissions-setzen.html)

Flinto 28. Feb 2006 09:13


Registry Permissions setzen
 
Hallo,

ich schreibe ein Tool, welches die Registry Einträge für den USB und FTDIBUS port setzt.
Dazu muss ich im Pfad CurrentControlSet/Enum/ (Systempfad) Einträge erstellen.
Dies wird von der Windows Seite her nicht erlaubt (Permissions).

ich habe es mit der Funktion RegCreateKeyEx probiert, wobei ich die access Rechte auf
KEY_ALL_ACCESS setzte, was auch nicht funktioniert hat (access denied).

Ich suche nun eine Klasse, tool, Funktion was auch immer womit ich diese permissions
setzen kann und so die Einträge schreiben kann.

Ich habe schon einige Themen darüber gelesen aber leider nichts gefunden.

Danke für Eure Hilfe.

Flinn

Robert Marquardt 28. Feb 2006 09:22

Re: Registry Permissions setzen
 
Finger weg von diesen Registry-Eintraegen.
Das Installieren oder Deinstallieren der Treiber geht ueber Setup API Funktionen.

Luckie 28. Feb 2006 09:33

Re: Registry Permissions setzen
 
Zitat:

Zitat von Flinto
ich habe es mit der Funktion RegCreateKeyEx probiert, wobei ich die access Rechte auf
KEY_ALL_ACCESS setzte, was auch nicht funktioniert hat (access denied).

Diese Flags drücken nur aus, WIE du zugreifen willst, sie ändern aber nicht die Rechte selber. Was ziemlich dramatisch wäre, wenn man einfach so die Zugriffsrechte ändern könnte.

Flinto 28. Feb 2006 10:18

Re: Registry Permissions setzen
 
ich hab das ja über die API Funktion RegCreateKeyex probiert und das Flag
'samDesired' auf 'KEY_ALL_ACCESS' gesetzt und es hat denoch
ein access denied gegeben.

Die Zugriffsrechte von Hand kann man ja auch einfach so ändern. Also
müsste es doch irgend eine Möglichkeit geben, dies in meinen Programm
umzusetzen.

Kann mir niemand weiter helfen, wie ich diese Rechte programmtechnisch
ändern kann??

Flinn

Robert Marquardt 28. Feb 2006 11:02

Re: Registry Permissions setzen
 
Verkeil dich doch nicht in dieser Ecke.
Was willst du eigentlich erreichen und warum willst du das erreichen?
Wahrscheinlich doch die Registry-Eintraege fuer ein USB-Device loeschen, damit der Treiber neu zugewiesen werden kann.
Das loest man aber auf andere Weise.

Luckie 28. Feb 2006 11:08

Re: Registry Permissions setzen
 
Zitat:

Zitat von Flinto
ich hab das ja über die API Funktion RegCreateKeyex probiert und das Flag
'samDesired' auf 'KEY_ALL_ACCESS' gesetzt und es hat denoch
ein access denied gegeben.

Habe ich doch versucht zu erklären. Du hast in diesem Schlüssel nur Leserechte, wie es aussieht. Mit KEY_ALL_ACCESS willst du aber so wohl lesend als auch schreiben zurgreifen: KEY_READ or KEY_WRITE. Noch mal, der Flag sagt nur aus WIE du auf den Schlüssel zugreifen willst. Er hat nichts mit irgendwelchen Zugriffsrechten zu tun.

Zitat:

Die Zugriffsrechte von Hand kann man ja auch einfach so ändern. Also
müsste es doch irgend eine Möglichkeit geben, dies in meinen Programm
umzusetzen.
Klar geht das aber dazu gehört schon einiges an API und Hintergrundwissen über ACLs und DCLs und wie sie nicht alle heißen.

Flinto 28. Feb 2006 17:06

Re: Registry Permissions setzen
 
ich muss für meine Facharbeit ein Tool schreiben, welches die Treiber für eine Hardware
schon im voraus (bevor man es mit dem Computer verbindet) installiert, sodass
man die hardware danach verbinden kann und keine Nachricht von wegen 'Neue hardware bla bla bla'
erscheint. Das ist alles.

Und somit ist es zwingend, dass ich die Rechte erhalte um diese Einträge zu schreiben.
Ich verstehe dass jezt mit dem KEY_ALL_ACCESS. sorry hat ein wenig länger gedauert...

Aber hat nun jemand einen Lösungsvorschlag wie ich das erreichen könnte??

Luckie 28. Feb 2006 17:08

Re: Registry Permissions setzen
 
Zitat:

Zitat von Flinto
Aber hat nun jemand einen Lösungsvorschlag wie ich das erreichen könnte??

Folge dem Rat von Robert:

Zitat:

Zitat von Robert Marquardt
Finger weg von diesen Registry-Eintraegen.
Das Installieren oder Deinstallieren der Treiber geht ueber Setup API Funktionen.


Flinto 1. Mär 2006 08:56

Re: Registry Permissions setzen
 
Also habt Ihr keine Lösungsvorschläge wie man die Permission setzen kann??

Viel kann da ja nicht passieren wenn man eigene Key's an bestimmten Orten
erstellt. Ich lösch ja nichts oder änder auch nichts ab, ich erstelle bloss eigene.

merci ade

Robert Marquardt 1. Mär 2006 11:36

Re: Registry Permissions setzen
 
Warum sind die Leute denn immer so beratungsresistent?

Treiber fuer ein Geraet werden per INF-File installiert.
Dabei koennen CoInstaller involviert sein, die im Prinzip alles duerfen wie Zusatzapplikationen installieren usw.

Man installiert also das INF-File per Setup API Funktionen. Teil der Installation sollte ein signierter Treiber sein, da XP sonst immer den Treibersuchdialog zeigt.
Es empfiehlt sich also das Platform SDK ueber INF files zu lesen bis man es versteht.

UpdateDriverForPlugAndPlayDevices ist uebrigens auch noch eine wichtige Funktion mit der man sich vertraut machen sollte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 Uhr.
Seite 1 von 2  1 2      

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