roteme has asked for the wisdom of the Perl Monks concerning the following question:
Hi,
I would like to check if registry key is exist by the following simple Perl code:
Output ERROR is:my $UninstallRegistryPATH = "HKLM\\SOFTWARE\\Microsoft\\Windows\\Curre +ntVersion\\Uninstall\\{30277218-0100-0904-9ABB-000BDB5CF35D}"; my $cmd = "REG QUERY ${UninstallRegistryPATH}"; print "\n----$cmd----\n\n"; my @RegKeys = `$cmd 2>&1`; foreach my $var (@RegKeys) { print "$var" }
----C:\Windows\system32\reg.exe QUERY HKLM\SOFTWARE\Microsoft\Windows\ +CurrentVersion\Uninstall\{30277218-0100-0904-9ABB-000BDB5CF35D}---- ERROR: The system was unable to find the specified registry key or val +ue.
If I run the command ($cmd) from the command line it run successfully.
Do someone have any idea?
Please advice
Thanks
I Failed even if i use the following code:
use Win32::Registry; my $Register = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{0 +34106B5-54B7-467F-B477-5B7DBB492624}'; my $hkey; $HKEY_LOCAL_MACHINE->Open($Register,$hkey)|| die print "($!) ($?) ($^E +)\n"; $hkey->Close();
If i remove the last entrance key {034106B5-54B7-467F-B477-5B7DBB492624} and run it like the following is working good:
use Win32::Registry; my $Register = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall'; my $hkey; $HKEY_LOCAL_MACHINE->Open($Register,$hkey)|| die print "($!) ($?) ($^E +)\n"; $hkey->Close();
My question is why? Why {034106B5-54B7-467F-B477-5B7DBB492624} caused to read problem?
I just need to check if some product is installed
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Failed to check if registry key is exist
by wwe (Friar) on Feb 27, 2012 at 15:55 UTC | |
by roteme (Acolyte) on Feb 28, 2012 at 07:21 UTC | |
by Anonymous Monk on Jan 22, 2015 at 20:11 UTC | |
by Anonymous Monk on Jan 22, 2015 at 20:27 UTC | |
|
Re: Failed to check if registry key is exist
by RMGir (Prior) on Feb 27, 2012 at 13:17 UTC | |
by roteme (Acolyte) on Feb 28, 2012 at 06:32 UTC | |
by RMGir (Prior) on Feb 28, 2012 at 12:53 UTC |