#REG_MULTI_SZ schreiben

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Beitrag von Shardik »

Hallo jpd,

schön, daß es bei Dir läuft. :allright:
jpd hat geschrieben: und mit eingeschalteten unicode (compiler option)
Es ist nicht unbedingt nötig, die Unicode-Compileroption einzuschalten. Ich habe beide Möglichkeiten getestet. Wie ts-soft in einem vorherigen Posting betont hat, werden sowieso alle Registry-Einträge von den Win-API Registry-Funktionen automatisch in Unicode umgesetzt und in der Registry eingetragen...
jpd hat geschrieben: ohne "Null" zeichen auszutauschen.
Das Austauschen der Linefeeds (#LF$) gegen Null-Bytes ist optional und deshalb auch nicht ursprünglich in ts-softs Prozedur Reg_WriteMultiLineString() enthalten. Dies ist also kein Fehler. Es könnte aber sein, daß Windows-Betriebssystemfunktionen, die Deine IP-Adressen auslesen sollen, diese Null-Bytes als Trennzeichen benötigen. Microsoft selbst gibt dazu ja im TechNet (siehe meine obigen Zitate) widersprüchliche Auskünfte.

Wenn Du also eine schon vorhandene IP-Adresse aus der Registry auslesen und um eine zweite ergänzen möchtest, solltest Du die beiden sicherheitshalber durch ein Linefeed (#LF$) trennen und mit meiner Erweiterung in ein Null-Byte umwandeln lassen:

Code: Alles auswählen

Reg_WriteMultiLineString(#HKEY_CURRENT_USER, "Test", "Gateway", ip_val + #LF$ + "192.168.0.2")
Antworten