![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сделать аналогично Пуск -> Выполнить [D7, WinXP]
Chaser © (2006-02-27 16:02:00)Есть ли у кого компонент или исходник программы аналогичной пункту меню в Windows: "Пуск" -> "Выполнить...".
Т.е. чтобы только с помощью одной командной строки (Edit например) запускались приложения ("calc"), программы с параметрами ("notepad c:\boot.ini"), файлы в связанном с ними приложении ("test.doc" - MS Word), папки ("c:\windows") и т.п.
ShellExecute запускает все виды файлов, но для этого используются отдельно строка программы и строка с параметрами (ShellExecute(Handle,nil,'notepad','c:\boot.ini','',SW_SHOW);).
CreateProcess не открывает файлы в связанном с ними приложении ("test.doc" - MS Word), по крайней мере у меня это не вышло сделать.
Есть решение?
Crash Coredump (2006-02-27 17:18:00) [1]
> Геморно, нужно именно на подобии "Выполнить", где все пишется
> в одну строку без кавычек
run использует поиск от последнего символа \
Chaser (2006-02-27 17:17:00) [2]А если .com, .bat и т.п.?
Слишком много условий получается, все не охватишь.
Nick Denry (2006-02-27 17:11:00) [3]поиск с конца строки до нахождения последней последовательности символов ".exe"
Chaser (2006-02-27 17:07:00) [4]
> Eraser ©
Геморно, нужно именно на подобии "Выполнить", где все пишется в одну строку без кавычек.
Eraser (2006-02-27 17:05:00) [5]
> Chaser © (27.02.06 17:02) [4]
в кавычки брать название тогда.
Chaser (2006-02-27 17:02:00) [6]
> Crash Coredump © (27.02.06 16:30) [2]
> Eraser © (27.02.06 16:23) [1]
>
> Алгоритм такой - первое слово до пробела или табуляции считается
> именем приложения, все остальное - параметры
А если в имени приложения есть пробел?
Eraser (2006-02-27 16:45:00) [7]
> Crash Coredump © (27.02.06 16:30) [2]
и что?
Crash Coredump (2006-02-27 16:30:00) [8]Eraser © (27.02.06 16:23) [1]
Алгоритм такой - первое слово до пробела или табуляции считается именем приложения, все остальное - параметры
Eraser (2006-02-27 16:23:00) [9]
> Chaser © (27.02.06 16:02)
алгоритм такой: сначала пробуешь CreateProcess'ом запустить, если не получается, то ShellExecute, если опять не получается, то сообщение об ошибке... хотя теоретически можно одним ShellExecute отбиться.