Problem with ShellExecute and HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App
Paths
Duane Clark
dclark at akamail.com
Sun Dec 29 13:18:44 CST 2002
Dan Kegel wrote:
>
> Thanks for the --debugmsg +process tip (and I guess you also did relay?)!
>
> But if you also add +reg, you'll see that the App Paths key is indeed being searched
> by SearchPath():
>
That was done inside CreateProcessA (note the relay Call and Ret pair),
and at least at first glance, appears to be looking for the App Path key
for "ListV", which is the name of my test application. I am note real
sure what the NtQueryValueKey calls are doing though. I still think the
problem is later on, in SHELL_FindExecutable. I think the registry
checks here are "red herrings". Then again, I could be completely wrong
about that ;)
Probably the best way to determine that is to modify your simple program
to call CreateProcess directly, and see what happens then.
08073208:Call kernel32.CreateProcessA(00000000,40582788 "wordpad.exe
readme.txt",00000000,00000000,00000000,00000000,00000000,0040e4db
"C:\\",40581eb8,40581ea8) ret=40c8d29f
trace:process:CreateProcessA app (null) cmdline "wordpad.exe readme.txt"
trace:process:find_exe_file looking for "wordpad.exe"
trace:reg:NtOpenKey
((nil),L"Machine\\Software\\Microsoft\\Windows\\CurrentVersion\\App
Paths",f003f,0x4057e998)
trace:reg:NtOpenKey <- 0x4c
trace:reg:NtOpenKey (0x4c,L"ListV.exe",f003f,0x4057e994)
trace:reg:NtOpenKey <- (nil)
trace:reg:NtOpenKey
((nil),L"Machine\\Software\\Wine\\Wine\\Config\\AppDefaults",f003f,0x4057fdf0)
trace:reg:NtOpenKey <- 0x4c
trace:reg:NtOpenKey (0x4c,L"ListV.exe\\DllOverrides",f003f,0x4057fdec)
trace:reg:NtOpenKey <- (nil)
trace:reg:NtQueryValueKey (0x14,L"wordpad.exe",2,0x4057fee4,80,22)
trace:reg:NtQueryValueKey (0x14,L"*wordpad.exe",2,0x4057fee4,80,24)
trace:reg:NtQueryValueKey (0x14,L"*",2,0x4057fee4,80,2)
trace:process:find_exe_file Trying built-in exe
"C:\\WINDOWS\\SYSTEM\\wordpad.exe"
trace:process:find_exe_file Trying native exe
"C:\\WINDOWS\\SYSTEM\\wordpad.exe"
trace:process:find_exe_file looking for "wordpad.exe readme.txt"
trace:reg:NtOpenKey
((nil),L"Machine\\Software\\Microsoft\\Windows\\CurrentVersion\\App
Paths",f003f,0x4057e998)
trace:reg:NtOpenKey <- 0x4c
trace:reg:NtOpenKey (0x4c,L"ListV.exe",f003f,0x4057e994)
trace:reg:NtOpenKey <- (nil)
trace:reg:NtOpenKey
((nil),L"Machine\\Software\\Wine\\Wine\\Config\\AppDefaults",f003f,0x4057fdf0)
trace:reg:NtOpenKey <- 0x4c
trace:reg:NtOpenKey (0x4c,L"ListV.exe\\DllOverrides",f003f,0x4057fdec)
trace:reg:NtOpenKey <- (nil)
trace:reg:NtQueryValueKey (0x14,L"wordpad.exe
readme.txt",2,0x4057fee4,80,44)
trace:reg:NtQueryValueKey (0x14,L"*wordpad.exe
readme.txt",2,0x4057fee4,80,46)
trace:reg:NtQueryValueKey (0x14,L"*",2,0x4057fee4,80,2)
trace:process:find_exe_file Trying built-in exe
"C:\\WINDOWS\\SYSTEM\\wordpad.exe readme.txt"
trace:process:find_exe_file Trying native exe
"C:\\WINDOWS\\SYSTEM\\wordpad.exe readme.txt"
08073208:Ret kernel32.CreateProcessA() retval=00000000 ret=40c8d29f
More information about the wine-devel
mailing list