ModemJunki 21 Posted October 1, 2010 I need to get the contents of a key in Windows 7 64-bit. But I end up with an errorlevel of -1 with code below. What am I doing wrong? $var1 = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "nwiz") $var2 = @error If Not $var2 = 0 then MsgBox(4096, "Error", "Errorlevel is " & $var2) If $var2 = 0 then MsgBox(4096, "Value is ", $var1) Always carry a towel. Share this post Link to post Share on other sites
Varian 8 Posted October 1, 2010 @error -1 means "unable to open requested value"...Are you sure that there is a "nwiz" value in the registry key? Also, I would just use "If $var2 <> 0" Share this post Link to post Share on other sites
ModemJunki 21 Posted October 1, 2010 @error -1 means "unable to open requested value"...Are you sure that there is a "nwiz" value in the registry key?Also, I would just use "If $var2 <> 0"Yep, the key value is there in regedit. This could be a WoW3264 thing, now that I think about it, where the 64 bit OS is somehow redirecting the registry reads.I'm not a programmer, so I dunno.Sloppy if not/if is result of me doing a WTF when this didn't work, the actual code would read string and compare to another variable then change it only if needed. Always carry a towel. Share this post Link to post Share on other sites
Varian 8 Posted October 1, 2010 You are correct about that..this shows what values are in the the key$Count = 1 While 1 $Val = RegEnumVal("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", $Count) If @error = -1 Then ExitLoop MsgBox(4096, "Value is ", $val) $Count +=1 WEndPerhaps you can scroll through this list and check for your Value name. Incidentally, regedit shows "BCSSync" as the only value in my HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, but it does not show up in this list. I even tried regedt32 with the same results Share this post Link to post Share on other sites
ModemJunki 21 Posted October 1, 2010 You are correct about that..this shows what values are in the the key$Count = 1 While 1 $Val = RegEnumVal("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", $Count) If @error = -1 Then ExitLoop MsgBox(4096, "Value is ", $val) $Count +=1 WEndPerhaps you can scroll through this list and check for your Value name. Incidentally, regedit shows "BCSSync" as the only value in my HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, but it does not show up in this list. I even tried regedt32 with the same results Thanks. I fired up an XP 32-bit box to do some experimenting and my original code snippet works there without problem. I have the same result with your code - there are other values in the key, but not the ones I see in regedit. The values being shown are in key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run. Even RegistryWorkshop reads the key like it was a normal key. I'm stumped. Always carry a towel. Share this post Link to post Share on other sites