I only blanked out 4 values (the one with the line through it), the rest are all empty.
Full path (direct copy-paste from the registry):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{BF61699A-6D79-4A97-B879-7A890E5A9A48}
$RO - doesn't print anything.
But using the following it does work / does print something..
ReadRegStr $R0 HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\
ReadRegStr $R0 HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Themes
Using the following (doesn't matter what inside it) doesn't work..
ReadRegStr $R0 HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
Thats why my initial quetion about path length.
But it might be something with permissions; Do I need special permission to acces the Uninstall path? How can I check for read access?
Reg-Values
DisplayName --- REG_SZ --- Driver 32bit Driver Install
InstallLocation --- REG_SZ --- C:\Program Files\Driver\
InstallSource --- REG_SZ --- E:\Autoinstall\Driver\
UninstallString --- REG_EXPAND_SZ --- MsiExec.exe /I{BF61699A-6D79-4A97-B879-7A890E5A9A48}
ProcessMonitor
-- When computer with program NOT installed
RegOpenKey
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{BF61699A-6D79-4A97-B879-7A890E5A9A48}
NAME NOT FOUND
Desired Access: Read
-- When computer with program installed
RegOpenKey
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{BF61699A-6D79-4A97-B879-7A890E5A9A48}
SUCCESS
Desired Access: Read
RegQueryValue
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{BF61699A-6D79-4A97-B879-7A890E5A9A48}\UninstallString
SUCCESS
Type: REG_EXPAND_SZ, Length: 106, Data: MsiExec.exe /I{BF61699A-6D79-4A97-B879-7A890E5A9A48}
RegQueryValue
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{BF61699A-6D79-4A97-B879-7A890E5A9A48}\UninstallString SUCCESS Type: REG_EXPAND_SZ, Length: 106, Data: MsiExec.exe /I{BF61699A-6D79-4A97-B879-7A890E5A9A48}
RegCloseKey
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{BF61699A-6D79-4A97-B879-7A890E5A9A48}
SUCCESS
CreateFile C:\Users\User\AppData\Local\Temp\Driver\x86\x86Inf\i386\MsiExec.exe \I{BF61699A-6D79-4A97-B879-7A890E5A9A48}\
PATH NOT FOUND
Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
So it seems like it is working properly according to process monitor.
But why does it try to create a file at the UnistallString? It only has to check if the value exist or not, right?
EDIT01:
Can you open up cmd and cd to the directory it specifies?
Haven't tried this, about to try it.