Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.02;
Скачать: CL | DM;

Вниз

запуск   Найти похожие ветки 

 
Ag2002   (2002-11-20 18:22) [0]

Подскажите пожалуйста как запустить, внешние приложение, только так чтобы оно не закрывалось по завершению моей программы, а продолжало работу, если можно пример !!!


 
Marcus   (2002-11-20 18:40) [1]

А почему ты решил, что оно должно закрыться? Это ж не дочернее окно, а автономное приложение. ShellExecute, WinExec, CreateProcess - кого хочешь выбирай


 
Ag2002   (2002-11-20 18:43) [2]

На сколько мне известно CreateProcess самое лучшие !!!
Если можно пример !!!
А вот ShellExecute - закрывет тотже експлорер !!!


 
Marcus   (2002-11-20 18:51) [3]

function MyCreateProcess(const AppName: string; const CmdLine: string; WorkDir: PChar): boolean;
var
si: STARTUPINFO;
pi: PROCESS_INFORMATION;
begin
ZeroMemory(@si, SizeOf(si));
si.cb := SizeOf(si);
si.dwFlags := STARTF_USESHOWWINDOW;
si.wShowWindow := SW_SHOWNORMAL;
Result := CreateProcess(nil, PChar(Format(""%s" "%s"", [AppName, CmdLine])), nil, nil, FALSE,
NORMAL_PRIORITY_CLASS, nil, WorkDir, si, pi);
CloseHandle(pi.hProcess);
end;


 
Ag2002   (2002-11-21 10:46) [4]

AppName - должно быть имя exe файла
WorkDir - католог где он находится ?
а CmdLine можно оставлять пустым да ?


 
Ag2002   (2002-11-22 14:39) [5]

Помогите выходит большой "бок", с использованием выше указаной функции или в моей пороги !!!
Я храню список файлов которые хочу запусать в комоненте ListView, по нажатию на кнопку я хочу запустить файл который выделен у меня в ListView:

...
s := trim(ListView1.Selected.Caption);
s1 := ExtractFilePath(s);
if not MyCreateProcess(ExtractFileName(s),"",Pchar(s1)) then showmessage("Файл незапущен!!!");
...

но почему-то всегда запускается файл который занесён в список последним ?почему, проверял по шагово всё в функцию передаётся правельно и имя фалй и путь ? в чем глюк ?


 
Ag2002   (2002-11-22 17:50) [6]

rt


 
KoluChi ©   (2002-11-22 17:56) [7]

MyCreateProcess?


 
Marcus   (2002-11-22 18:07) [8]

В функцию CreateProcess можно передать AppName - путь к экзешнику, CmdLine - его параметры ком. строки. Если AppName = nil, то CmdLine путь к exe и через пробел параметры. WorkingDir можно оставить пустым, воспримет текущий каталог как рабочий. Это все, если файл - исполняемый, а если документ, то сначала нужно найти для него экзешник FindExecutable, а затем подсунуть в CreateProcess. А чем тебе ShellExecute не угодила? Удобней же



Страницы: 1 вся ветка

Текущий архив: 2002.12.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
3-4228
akzhan
2002-11-13 19:52
2002.12.02
Приглашаю почитать драфт моего опуса.


1-4479
Павел
2002-11-20 16:22
2002.12.02
Работа с файлами


1-4431
jen_bond
2002-11-19 22:45
2002.12.02
Изменение размера компонента


1-4440
alcat
2002-11-20 01:56
2002.12.02
Проблема с ReadLn


1-4273
borg
2002-11-21 09:37
2002.12.02
коды символов