Autor Beitrag
dynamo
Hält's aus hier
Beiträge: 11

Vista32/64, Win7_64
CodeGearRADStudio2007
BeitragVerfasst: Fr 09.05.08 21:05 
möchte folgenden Schlüssel mit Wert in die Registry schreiben:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems]
"Optional"=hex(7):50,00,6f,00,73,00,69,00,78,00,00,00,00,00

Aber ich weiß nicht, was "hex(7)" bedeutet und welche write-Methode ich wählen muss.

writeCurrency()
writeBinaryData()
writeBool()
writeDate()
writeDateTime()
writeFloat()
writeInteger()
writeString()
writeExpandString()
writeTime()

Diese write-Methoden bietet Delphi mir an - sie scheinen aber alle nicht zu passen.

Der Datentyp in der Registry soll Reg_Multi_SZ ergeben.

Ich glaube, dieses Thema scheint es im ganzen Internet nicht zu geben
(habe 2 Tage recherchiert - jetzt habe ich keine Lust mehr)


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 09.05.2008 um 23:48
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 09.05.08 21:28 
ich weiß es auch nit richtig ,aber versuch es mal mit probieren:
writeString()
writeExpandString()
writeTime()
writeBool()
writeDate()
writeDateTime()

..kann man glaub ich auch ausschließen.....


versuch einfach mal odr frag die delphi-hilfe..

j.klugmann
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Fr 09.05.08 21:37 
Hallo,

willst du die Konstante 7 speichern? Da sind doch Hexadezimal und Deizimal genau gleich - also WriteInteger. Wenn du eine hexadezimale Variable - also einen Integer hast, kannst du das auch so machen. Wenn du aber einen String hast, in dem der Wert hexadezimal vorliegt, musst du dir eine Methode schreiben, ihn umzuwandeln.

Grüße,
Yogu
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 09.05.08 21:45 
:autsch: :autsch: :autsch: :autsch: :autsch: ...das tat mir weh... :autsch: :autsch: :autsch: :autsch:
ach und :welcome: !!!!!
dynamo Threadstarter
Hält's aus hier
Beiträge: 11

Vista32/64, Win7_64
CodeGearRADStudio2007
BeitragVerfasst: Sa 10.05.08 19:35 
Ich hab noch 'n bischen rumprobiert - aber leider ohne Erfolg.
Es scheint mit Delphi nicht möglich zu sein, einen Registrywert vom Typ "REG_MULTI_SZ"
zu erzeugen - jedenfalls nicht mit der Registry-VCL.

Zur Schreibweise "Hex(7)" habe ich rausgefunden, daß dies wohl eine VB-Funktion ist.
aus -> "Optional"=hex(7):50,00,6f,00,73,00,69,00,78,00,00,00,00,00
wird -> "posix" als String erzeugt.

Ich hab jetzt einen anderen Weg versucht, die reg-Datei mit Delphi zu importieren:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
     prog := 'c:\test.reg';  
oder prog := 'regedit /s c:\test.reg'
oder prog := 'regedit.exe /s c:\test.reg'

 success := ShellExecute(0,
           Nil,
           PChar(prog),
           Pchar('s'),  //oder pchar('/s') oder nil oder ...
           nil,
           SW_NORMAL);

Sämtliche Varianten hab ich ausprobiert -> das Programm "regedit" zeigt entweder immer
zwei lästige Hinweis-Fenster, die ich bestätigen muß, oder ShellExecute wird nicht
ausgeführt.
Der Parameter "/s" sollte eigentlich für den Silent-Betrieb dienen, funzt aber bei mir
nicht. Entweder hab ich die lästigen Hinweis-Fenster - oder es geht gar nicht.
Wie krieg ich den Silent-Betrieb hin ?

In der cmd-line geht es immerhin.

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
dynamo Threadstarter
Hält's aus hier
Beiträge: 11

Vista32/64, Win7_64
CodeGearRADStudio2007
BeitragVerfasst: Sa 10.05.08 23:49 
Ha, ich hab's - zumindest, was die silent-Ausführung betrifft.
Im angegebenen Pfad waren Leerzeichen vorhanden, habe sie durch "_" ersetzt. jetzt geht's. :D

Aber die Probleme s.o. hex(7)... usw konnte ich leider immer noch nicht lösen. :(
fuba
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 125

Win7
D7 Ent.
BeitragVerfasst: Sa 07.06.08 10:09 
hab hier was gefunden:
read a REG_MULTI_SZ value From the Registry?

hoffe es hilft dir weiter.

lg. fuba