Поиск файла в каталогах запуска
От: kudmaks  
Дата: 18.12.07 09:52
Оценка:
Подскажите, как можно найти полный путь файла, перед тем как он будет запущен Process.Start().
т.е. для Process.Start("calc") нужно получить c:\WINDOWS\system32\calc.exe
для Process.Start("appclient") нужно получить c:\Sun\SDK\bin\appclient.bat (в path этот путь прописан)

Можно конечно самому сделать перебор по переменным окружения, расширениям, но добиться чтоб это на 100% соотвествовало последовательности перебора системой — не так просто (плюс теоретически она может меняться). Может есть способ сделать это проще?
Re: Поиск файла в каталогах запуска
От: agos Россия http://trtrmitya.wordpress.com
Дата: 18.12.07 10:04
Оценка:
Здравствуйте, kudmaks, Вы писали:

K>Можно конечно самому сделать перебор по переменным окружения, расширениям, но добиться чтоб это на 100% соотвествовало последовательности перебора системой — не так просто (плюс теоретически она может меняться). Может есть способ сделать это проще?

всё описано здесь

1. The directory from which the application loaded.
2. The current directory for the parent process.
3. The 32-bit Windows system directory. Use the GetSystemDirectory function to get the path of this directory.
4. The 16-bit Windows system directory. There is no function that obtains the path of this directory, but it is searched. The name of this directory is System.
5. The Windows directory. Use the GetWindowsDirectory function to get the path of this directory.
6. The directories that are listed in the PATH environment variable. Note that this function does not search the per-application path specified by the App Paths registry key. To include this per-application path in the search sequence, use the ShellExecute function.

Не переходите улицу на тот свет..
Re[2]: Поиск файла в каталогах запуска
От: kudmaks  
Дата: 18.12.07 11:16
Оценка:
Здравствуйте, agos, Вы писали:

A>всё описано здесь


Спасибо. Я просто спрашивал, есть ли какой-нибуть способ узнать у системы, какой она выберет файл в этом случае?
Может можно вызвать функцию поиска, которую вызывает сам CreateProcess?
Если делать такой перебор самому, то например, оказывается нужно еще реализовать и это...

For example, consider the string "c:\program files\sub dir\program name". This string can be interpreted in a number of ways. The system tries to interpret the possibilities in the following order:

c:\program.exe files\sub dir\program name
c:\program files\sub.exe dir\program name
c:\program files\sub dir\program.exe name
c:\program files\sub dir\program name.exe

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.