ReplaceRegValue und REG_DWORD

Post Reply
Lurchi
Posts: 29
Joined: 02. Oct 2009, 14:45
Contact:

ReplaceRegValue und REG_DWORD

Post by Lurchi » 18. Nov 2009, 13:24

Hallo Forum, ich versuche mich gerade an einem Paket für eDrawings 2010 bei dem ich in der Registry einen (REG_DWORD) Wert von 0 auf 1 setzen möchte, damit das nervige "Wollen sie sich jetzt registrieren ?" Fenster beim Programm Start nicht mehr kommt.
Meine Zeile

ReplaceRegValue (HKCU,SOFTWARE\eDrawings\e2010\General\, "Activated", "0x00000000", "0x00000001", 0)

wandelt den REG_DWORD in einen REG_SZ um, was zu einem Fehler führt.

Weiß jemand Rat ?

Olaf Meuther
Posts: 120
Joined: 30. Mar 2007, 09:47
Location: Düsseldorf
Contact:

Post by Olaf Meuther » 18. Nov 2009, 15:13

Ich würde es mal damit versuchen: ;)

ReplaceRegValue (HKCU,SOFTWARE\eDrawings\e2010\General\, "Activated", 0x00000000, 0x00000001, 0)
Dr. Olaf Meuther

Julia
Posts: 384
Joined: 31. Aug 2007, 13:56
Location: Essen
Contact:

Post by Julia » 18. Nov 2009, 16:14

Hallo,
"0x00000000" ist der Flag für REG_SZ, für REG_DWORD mußt du aber stattdessen "0x00010001" verwenden.

Lurchi
Posts: 29
Joined: 02. Oct 2009, 14:45
Contact:

Post by Lurchi » 19. Nov 2009, 08:25

Julia, du meinst die Zeile muss dann so lauten:

ReplaceRegValue (HKCU,SOFTWARE\eDrawings\e2010\General\, "Activated", "0x00010000", "0x00010001", 0)

Uli

Olaf Meuther
Posts: 120
Joined: 30. Mar 2007, 09:47
Location: Düsseldorf
Contact:

Post by Olaf Meuther » 19. Nov 2009, 08:29

Ja, das meint sie.

Allerdings müssen die Werte übergeben werden und nicht die Formate.
Also bleibe ich dabei

ReplaceRegValue (HKCU,SOFTWARE\eDrawings\e2010\General\, "Activated", 0x00000000, 0x00000001, 0)
Dr. Olaf Meuther

Julia
Posts: 384
Joined: 31. Aug 2007, 13:56
Location: Essen
Contact:

Post by Julia » 19. Nov 2009, 08:55

Laut der Hilfe-Datei, sollte das so aussehen:
ReplaceRegValue (<Wurzel>, "<Schluessel>", "<Wert>", "<Suchzeichenfolge>", "<Ersatzzeichenfolge>", <Zahl>)

Ersetzt im <Wert> des Registrierungsschlüssels, der durch <Wurzel> und <Schl> angegeben ist, den Wert <Suchzeichenfolge> durch die <Ersatzzeichenfolge>. Ist <Zahl> 0, so werden alle Vorkommen ersetzt. Ist <Zahl> größer 0, so wird nur das n-te Vorkommen ersetzt. Die Zählung beginnt bei 1.

Beispiel: ReplaceRegValue (HKCU, "Volatile Environment", "Homedrive", "C", "D", 0)
Also würde ich das so umsetzen:
ReplaceRegValue (HKCU,SOFTWARE\\eDrawings\\e2010\\General, "Activated", "0", "1", 0)

Wenn du sicher gehn willst, mach doch einfach kurz einen Diff für den Key und kopiere dir die Zeile dann in das eigentliche Paket.

lennu
Posts: 581
Joined: 01. Aug 2005, 16:20
Location: Bonn
Contact:

Post by lennu » 19. Nov 2009, 08:57

Hallo,

warum so kompliziert über ReplaceRegValue?

Code: Select all

[Reg:Product]
HKCU,SOFTWARE\eDrawings\e2010\General,Activated,0x00010001,1
Viele Grüße,
Lennu
Lennart Freyberg
Sysadmin
Deutsche Steinzeug Cremer & Breuer AG

Lurchi
Posts: 29
Joined: 02. Oct 2009, 14:45
Contact:

Post by Lurchi » 20. Nov 2009, 08:14

Also egal wie ich den ReplaceRegValue angebe, die Registry sagt immer ungültiger Wert. Ist doch seltsam ....
Was macht denn der von Lennu vorgeschlagene Eintrag

[Reg:Product]
HKCU,SOFTWARE\eDrawings\e2010\General,Activated,0x00010001,1

genau ?

Uli

Julia
Posts: 384
Joined: 31. Aug 2007, 13:56
Location: Essen
Contact:

Post by Julia » 20. Nov 2009, 08:47

Damit wird ein Regkey gesetzt mit dem Namen "Activated", Typ REG_DWORD (0x00010001) und dem Wert 1.
Das sollte also so auch funktionieren.

Wie schon geschrieben, am einfachsten ist es sonst ein Diff laufen zu lassen, und sich dann die entsprechende Zeile in das bestehende Paket zu kopieren. Das geht zumindest schneller, als wenn du noch 3 Tage rumprobierst ;)

Lurchi
Posts: 29
Joined: 02. Oct 2009, 14:45
Contact:

Post by Lurchi » 20. Nov 2009, 09:14

Das mit dem Diff hab ich ja gemacht. "ungültiger Wert". Versteh ich auch nicht.

Julia
Posts: 384
Joined: 31. Aug 2007, 13:56
Location: Essen
Contact:

Post by Julia » 20. Nov 2009, 09:34

Und wenn du den Wert nach der Installation manuell setzt, geht es?

Wo, wer und wann genau heißt es denn "ungültiger Wert"?

Lurchi
Posts: 29
Joined: 02. Oct 2009, 14:45
Contact:

Post by Lurchi » 20. Nov 2009, 09:42

Das steht in der Registry wenn ich prüfen will ob der korrekte Wert drin steht.

User avatar
MSC
Posts: 324
Joined: 03. Jul 2006, 09:03
Contact:

Post by MSC » 20. Nov 2009, 11:01

Hi,

ich würde den Key erst löschen und danach neu setzen. Da ein Löschen bei Nichtvorhandensein einen Fehler bringt, erst auf Vorhandensein prüfen.

Also zum Beispiel:

...
If DoesRegKeyExist ("HKCU,SOFTWARE\eDrawings\e2010\General,Activated") == "1" Then "Reg:CleanUp" EndIf
#Reg:SetKey, CLIENT

[Reg:CleanUp]
-HKCU,"SOFTWARE\eDrawings\e2010\General","Activated"

[Reg:SetKey]
HKCU,"SOFTWARE\eDrawings\e2010\General","Activated",0x00010001,00000001
...


Bitte erst testen.

mfg Mario

Post Reply

Return to “Paketierung”

Who is online

Users browsing this forum: No registered users and 4 guests