Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сделать аналогично Пуск -> Выполнить [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 отбиться.


Наверх

Титульная страница Поиск, карта сайта Написать письмо