The information in this article applies to:
SYMPTOMSThe FindExecutable function is supposed to retrieve the fully qualified path to the executable (.exe) file associated with the specified file name. For example, the following call to FindExecutable() should return the path to Winword.exe:
Assuming Winword.exe is currently in the C:\Msoffice\Winword directory, the
function, upon return, should fill szBuffer with the string
C:\Msoffice\Winword\Winword.Exe.
However, when you use FindExecutable() on a file whose associated application is in a directory that has a long file name (LFN) that includes a space, the function truncates the string up at the first space. Going back to the previous code example, if Winword.exe is located in the C:\Program Files\My Accessories directory, the function incorrectly returns the truncated string C:\Program instead of the following expected string: C:\Program Files\My Accessories\Winword.Exe CAUSEFile associations are stored in the registry under HKEY_CLASS_ROOT, where the executable name is actually stored under the key
By design, long file names stored in the registry should be enclosed in
quotation marks. Otherwise, the system is made to treat the rest of the
characters following the space as arguments.
In the example, the path to WinWord.Exe should be stored in the registry as:
which does causes FindExecutable to return the expected string.
Note that this problem does not occur when the short path name is stored in the registry, instead of the long file name. Again, taking the same example to WinWord.exe, this should not be a problem if the short path name "C:\Progra~1\MYACCE~1\WINWORD.EXE" is stored in the registry instead of the LFN version. RESOLUTION
In some situations, applications do not have control over what gets stored
in the registry. It may be the associated application's setup program that
wrote the incorrect LFN string (without quotation marks) to the registry.
Any application that would then call FindExecutable() on this associated
application will run into this problem.
STATUSThis behavior is by design. Additional query words: invalid wrong
Keywords : kbLib kbNTOS kbWinOS2000 kbSDKWin32 kbWinOS95 kbWinOS98 kbGrpShell |
Last Reviewed: January 25, 2000 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |