HKCU Regisitry-Key mit Variable abfragen in Setup.inf

Post Reply
FabianH
Posts: 5
Joined: 14. Nov 2023, 14:48
Contact:

HKCU Regisitry-Key mit Variable abfragen in Setup.inf

Post by FabianH » 16. Jul 2024, 13:54

Hi,

ich habe DWORD's in der Registry unter HKEY_CURRENT_USER angelegt.
Diese sind bei jedem angemeldetem User anders. Deshalb unter HKEY_CURRENT_USER.
Der Wert beträgt entweder 1 oder 0.

Nun sollen diese in der Setup.inf ausgelesen werden und in einer Variable durch eine IF, THEN, ELSE Bedingung abgefragt werden.
Das sieht nun wie folgt aus:

Code: Select all

[Product]
; ReplaceEnv <Variable>

#Set:Product, CLIENT
#Set:Installation, DONTDELETE
#Set:REM Intern, CLIENT
#Set:REM Meeting-Signatur, CLIENT
#Set:REM NMC-Signatur, CLIENT
#Set:REM Vertrieb&Service-Signatur, CLIENT
#Set:REM AAA-Signatur, CLIENT
#Set:REM externe NMC Signatur, CLIENT
#Set:REM externe Signatur, CLIENT
#Set:REM externe Signatur_Else, CLIENT
#Reg:OnUninstallProduct, DELETE
#Reg:ClientConfig, CLIENT
#Reg:Product
#Ini:Product
#Security:Product

[Set:Product]
Call %StartSignatureRequest%
sleep 10000

Set VU_NMC=%%HKCU,"\Software\Matrix42\Outlook Signature","S_Signatur_NMC"%%
ReplaceEnv VU_NMC
Echo %VU_NMC%
Call cmd.exe /c echo "%VU_NMC%" > "C:\temp\test\Test01"

Set VU_VertriebService=%%HKCU,"\Software\Matrix42\Outlook Signature","S_Signatur_Vertrieb&Service"%%
ReplaceEnv VU_VertriebService
Echo %VU_VertriebService%
Call cmd.exe /c echo "%VU_VertriebService%" > "C:\temp\test\Test02"

Set VU_AAA=%%HKCU,"\Software\Matrix42\Outlook Signature","S_Signatur_AAA"%%
ReplaceEnv VU_AAA
Echo %VU_AAA%
Call cmd.exe /c echo "%VU_AAA%" > "C:\temp\test\Test03"

Set VU_Mobil=%%HKCU,"\Software\Matrix42\Outlook Signature","S_Signatur_Mobil"%%
ReplaceEnv VU_Mobil
Echo %VU_Mobil%
Call cmd.exe /c echo "%VU_Mobil%" > "C:\temp\test\Test04"

Set VU_keine=%%HKCU,"\Software\Matrix42\Outlook Signature","S_Signatur_keine"%%
ReplaceEnv VU_keine
Echo %VU_keine%
Call cmd.exe /c echo %VU_keine% > "C:\temp\test\Test05"

[Set:Installation]

Call %ChangeACLs%

sleep 10000


If %VU_keine% == "1" Then "Set:NoSignature" EndIf

"Set:REM Intern"

"Set:REM Meeting-Signatur"

If %VU_NMC% == "1" Then "Set:REM NMC-Signatur" Else "Set:NoSignature" EndIf

If %VU_VertriebService% == "1" Then "Set:REM Vertrieb&Service-Signatur" Else "Set:NoSignature" EndIf

If %VU_AAA% == "1" Then "Set:REM AAA-Signatur" Else "Set:NoSignature" EndIf

If %VU_NMC% == "1" Then "Set:REM externe NMC Signatur" Else "Set:NoSignature" EndIf

If %VU_Mobil% == "1" Then "Set:REM externe Signatur" Else "Set:NoSignature" EndIf

Leider ist die Variable leer, wenn ich sie mir zur Kontrolle abspeichere.

Code: Select all

Call cmd.exe /c echo "%VU_NMC%" > "C:\temp\test\Test01"
Zudem kommt, dass die Sektionen trotzdem alle durchlaufen werden, obwohl sie dies nur tun sollten, wenn die Beding oben erfüllt ist.

Kann mir jemand weiterhelfen und erklären was ich falsch mache?

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 8087
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: HKCU Regisitry-Key mit Variable abfragen in Setup.inf

Post by Hendrik_Ambrosius » 16. Jul 2024, 15:29

Das sieht mir so aus, als wenn die Variable im Userteil (SET:PRODUCT) ausgelesen wird, das IF aber im Systemteil (SET:INSTALLATION) ausgeführt wird. Da der Systemteil zuerst läuft, muss die Variable leer sein.

Ich würde die IFs direkt in SET:PRODUCT einbauen.
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

FabianH
Posts: 5
Joined: 14. Nov 2023, 14:48
Contact:

Re: HKCU Regisitry-Key mit Variable abfragen in Setup.inf

Post by FabianH » 16. Jul 2024, 15:52

Erstmal Danke für die schnelle Antwort.

Leider bleibt die Variable trotzdem leer.
Um das zu testen, hatte ich ja folgende Zeile eingetragen:

Call cmd.exe /c echo "%VU_Mobil%" > "C:\temp\test\Test04"

Code: Select all

Set VU_Mobil=%%HKCU,"\Software\Matrix42\Outlook Signature","S_Signatur_Mobil"%%
ReplaceEnv VU_Mobil
Echo %VU_Mobil%
Call cmd.exe /c echo "%VU_Mobil%" > "C:\temp\test\Test04"
Diese text-Dateien sind aber leer. Lediglich "" steht drin.
>>Also wird die Variable schon im [Set:Product]-Teil nicht ausgelesen.

Oder habe ich einen Denkfehler?

FabianH
Posts: 5
Joined: 14. Nov 2023, 14:48
Contact:

Re: HKCU Regisitry-Key mit Variable abfragen in Setup.inf

Post by FabianH » 17. Jul 2024, 12:36

Hab die Lösung für das Variablen Problem gefunden.

Das Problem lag am Backslash im Pfad vor dem Software.
Set VU_Mobil=%%HKCU,"\Software\Matrix42\Outlook Signature","S_Signatur_Mobil"%%

Das darf dort nicht sein. Richtig lauten müsste es:

Code: Select all

Set VU_Mobil=%%HKCU,"Software\Matrix42\Outlook Signature","S_Signatur_Mobil"%%


Leider werden bei mir weiterhin die IF THEN ELSE Bedingen ignoriert und jede Section angesteuert, obwohl sie nur über die erfüllte Bedingung angesteuert werden sollte.

Sieht jemand den Fehler?

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 8087
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: HKCU Regisitry-Key mit Variable abfragen in Setup.inf

Post by Hendrik_Ambrosius » 17. Jul 2024, 16:03

Das Problem ist weiterhin die Reihenfolge der Abarbeitung der Sektionen, siehe meine Antwort unten.
Die Variablen werden so immer leer sein, so dass die IF-Bedingungen nicht greifen.
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

Post Reply

Return to “Empirum”

Who is online

Users browsing this forum: No registered users and 2 guests