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

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

CreateProcess, ShellExecute, WinExec [Win95/98]


balepa ©   (2006-04-04 14:38:00) 

Есть ли какая-то разница между этими функциями в рамках моей задачи: Нужно просто запустить .exe'шник и передать туда commandline. В данный момент использую WinExec (руководствовался тем что у нее параметров меньше чем у всех остальных :)).


balepa   (2006-05-12 15:05:00) [1]


> Zhekacoder   (07.05.06 20:20) [8]

А при чем тут ?


Eraser   (2006-05-11 23:46:00) [2]


> Zhekacoder   (07.05.06 20:20) [8]
>
> Ну после CreateProcess можно еще WaitForSingleObject

эт не то.. WaitForSingleObject с аргументом - дескриптором процесса, ждёт завершение работы этого самого процесса.


Сергей М.   (2006-05-11 17:00:00) [3]


> Как быть?


Привести тип string к типу PAnsiChar.

var
 PAnsiCharData: PAnsiChar;
 StringData: String;

..
 PAnsiCharData := PAnsiChar(StringData);


Sibiryak   (2006-05-11 16:42:00) [4]

Прошу прощения за вторжение. Не могу решить задачу. Нужно запускать экзешник с кучей динамических параметров, которые зависят от результатов действий программы ранее. Т.е. четко строку типа 'c:\program.exe' я для функции WinExec сформировать не могу. А при подстановке переменной string , содержащей путь к файлу и текущие параметры в WinExec не дает результата по причине несовместимости string и AnsiChar. Как быть? Подскажите плиз...


Dstr   (2006-05-07 21:11:00) [5]

По-любому вызов любой функции приведет к одной(Например, CreateProcessA,использующая Ansii код,перегоняет все к ТолстойСтроке(WideChat)и вызывает в свою очередь CreateProcessW,CreateProcessW в свою очередь вызывает ряд функций из NativeApi выполняя необходимые преобразования,заполняя StartupInfo и тд,и вызывает опять же из NativeApi какуе нить функцию запуска ексешника,а NativeApi мош вызовет эшо ченить, и так фсе функции WinApi а про не Api(Делфийные и тд) ваще запарешся говорить


Zhekacoder   (2006-05-07 20:20:00) [6]

Ну после CreateProcess можно еще WaitForSingleObject Добавить


Джо   (2006-04-04 16:39:00) [7]

Да, возможно, я поторопился с выводами. Действительно, CreateProcess не ждет полной инициализации процесса. А WinExec дожидается выполнения GetMessage в создаваемом процессе. Иногда, наверное, это может оказаться существенным.


Leonid Troyanovsky   (2006-04-04 15:20:00) [8]


> Джо ©   (04.04.06 15:11) [5]

> А когда не "как"? Обе функции все равно, очевидно, вызывают
> один и тот же загрузчик исполнимых файлов. А функции эти


WinExec делает еще WaitForInputIdle, IMHO.

--
Regards, LVT.


Джо   (2006-04-04 15:11:00) [9]

> [4] balepa ©   (04.04.06 14:51)
> Когда как.

А когда не "как"? Обе функции все равно, очевидно, вызывают один и тот же загрузчик исполнимых файлов. А функции эти не более чем интерфейс к нему.


balepa   (2006-04-04 14:51:00) [10]


> Джо ©   (04.04.06 14:49) [3]

Когда как.


Джо   (2006-04-04 14:49:00) [11]

Скорость самого запуска — величина крайне несущественная, чтобы о ней задумываться ;)


balepa   (2006-04-04 14:45:00) [12]


> Сергей М. ©   (04.04.06 14:41) [1]

thx
А то я весь изнервничался :)
В скорости запуска приложения (.exe'шника)  ?


Сергей М.   (2006-04-04 14:41:00) [13]

В рамках твоей задачи разницы никакой нет.


Наверх

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