Форум: "Основная";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];
ВнизКак в программе получить Handle запускаемой из нее подпрограммы? Найти похожие ветки
← →
Alku (2002-01-17 14:36) [0]Как из проводника передать управление программе, вместе с параметрами? Например программа висит в памяти, а я запускаю еще одну копию. Так вот, чтобы не создавать несколько копий проги надо передать управление в уже существующую в памяти программу вместе с несколькими параметрами. Как это сделать?
И еще. Из программы запускается другая прога процедурой ShellProcess. Как получить Handle запускаемой проги чтоб потом когда надо будет из программы ее закрыть?
← →
yaJohn (2002-01-17 14:55) [1]1. Standartno, cherez DDE. Sm. vkladku System.
2. Ispolzuy CreateProcess.
← →
Alku (2002-01-17 16:49) [2]А пример кода можно? У меня вот такой, но он не передает Handle в программу для его дальнейшего использования (в частности для закрытия программы)
Запуск
procedure TMainForm2.Button2Click(Sender: TObject);
var
s: string;
SI: TStartUpInfo;
PI: TProcessInformation;
begin
GetStartupInfo(SI);
s:="c:\winnt\notepad.exe"+#0;
if CreateProcess(nil,
@s[1],
nil,
nil,
FALSE,
NORMAL_PRIORITY_CLASS,
nil,
nil,
SI,
PI)=False
then ShowMessage("Не могу запустить Блокнот")
else handles:=PI.hProcess;
//else WaitForSingleObject(PI.hProcess, INFINITE);
end;
Выгрузка
procedure TMainForm2.Button1Click(Sender: TObject);
var
AG_hWnd:HWND;
AG_PID:DWORD;
D,DD:cardinal;
begin
{ AG_HWND:=FindWindow("notepad",nil);
GetWindowThreadProcessId(AG_HWND,@AG_PID);}
GetWindowThreadProcessId(handles,@AG_PID);
D:=OpenProcess(Process_all_access,true,AG_PID);
GetexitcoDeprocess(d,dd);
TerminateProcess(d,dd);
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c