Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
1-4403
Михич
2002-11-18 07:44
2002.12.02
Next Tab


1-4321
DN
2002-11-21 17:27
2002.12.02
TIniFile


1-4459
Азазелло
2002-11-20 12:33
2002.12.02
Crystal Report 8.5 + VCL


7-4646
Serge V. Pyataev
2002-10-01 12:14
2002.12.02
процессы и потоки


1-4326
Acorus
2002-11-21 16:49
2002.12.02
Как сделать два перечисляемых типа с повторяющимся значением




   Наверх