PDA

View Full Version : Using Variables to create Registry keys


BigGuy
10-27-2008, 12:47 PM
I am having troubles creating registry keys by using variables. I tried %Var% and the Var = Session.Var %Var% commad to create a var. Nether work They ether make a key as "%VAR% or Var and not the actual componet in the variable. See my Code both ways below. On another note it would have been nice to be able to upload the "*".Lua saved file.

CompanyName2 = SessionVar.Expand("%CompanyName%")
ProductName2 = SessionVar.Expand("%ProductName%")
ProductVer2 = SessionVar.Expand("%ProductVer%")
AppFolder2 = SessionVar.Expand("%AppFolder%")
SerialNumber2 = SessionVar.Expand("%SerialNumber%")
--************************************************** *****
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\CompanyName2");
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\CompanyName2\\ProductName2");
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\CompanyName2\\ProductName2\\ProductVer2");
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\CompanyName2\\ProductName2\\ProductVer2", "InstallPath", AppFolder2, REG_SZ);
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\CompanyName2\\ProductName2\\ProductVer2", "Password", SerialNumber2", REG_SZ);
--************************************************** ****
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\%CompanyName%");
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\%CompanyName%\\%ProductName%");
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\%CompanyName%\\%ProductName%\\%ProductVe r%");
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\%CompanyName%\\%ProductName%\\%ProductVe r%", "InstallPath", AppFolder2, REG_SZ);
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\%CompanyName%\\%ProductName%\\%ProductVe r%", "Password", SerialNumber2", REG_SZ);

upeters
10-27-2008, 02:26 PM
This should work:

CompanyName2 = SessionVar.Expand("%CompanyName%");
ProductName2 = SessionVar.Expand("%ProductName%");
ProductVer2 = SessionVar.Expand("%ProductVer%");
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\" .. CompanyName2);
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\" .. CompanyName2 .. "\\" .. ProductName2);
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\" .. CompanyName2 .. "\\" .. ProductName2 .. "\\" .. ProductVer2);


As should this:


Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\" .. SessionVar.Expand("%CompanyName%"));
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\" .. SessionVar.Expand("%CompanyName%") .. "\\" .. SessionVar.Expand("%ProductName%"));
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\" .. SessionVar.Expand("%CompanyName%") .. "\\" .. SessionVar.Expand("%ProductName%") .. "\\" .. SessionVar.Expand("%ProductVer%"));


Or still:


Registry.CreateKey(HKEY_LOCAL_MACHINE, SessionVar.Expand("Software\\%CompanyName%"));
Registry.CreateKey(HKEY_LOCAL_MACHINE, SessionVar.Expand("Software\\%CompanyName%\\%ProductName%"));
Registry.CreateKey(HKEY_LOCAL_MACHINE, SessionVar.Expand("Software\\%CompanyName%\\%ProductName%\\%ProductVe r%"));


Ulrich