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

Вниз

Освобождение памяти после работы внешней программы   Найти похожие ветки 

 
ed30 ©   (2002-11-29 13:30) [0]

Добрый день!

Подскажите пожалуйста, как можно (если это возоможно) очистить память после запуска и отработки внешнего приложения из моей программы.
В приведенном ниже куске, если его делать в цикле (да и для одного запуска тоже), постоянно "поедается" память.

TmpSt := PChar(cmdAcrobat + " " + "d:\test.ps");
iResult := WinExec(TmpSt, SW_SHOWMINNOACTIVE);
TheWindowHandle := FindAWindow("Acrobat", "");
if TheWindowHandle <> 0 then begin
GetWindowThreadProcessID(TheWindowHandle, @ProcessID);
ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
TerminateProcess(ProcessHandle, 1);
CloseHandle(ProcessHandle);
end;

Через CreateProcess то же самое.

Заранее спасибо, Эд.


 
Morfein ©   (2002-11-30 22:18) [1]

Обычно этим виндовый менджер памяти занимается...

А насчёт TerminateProcess вот чего в хэлпе написано :
TerminateProcess causes all threads within a process to terminate, and causes a process to exit, but DLLs attached to the process are not notified that the process is terminating.


 
kostik78ua   (2002-12-01 00:00) [2]

Замена TerminateProcess (работает с DLL):

function NTKillProcess(iProcessID: Integer): Integer;
var
hProcess: Integer;
pfnExitProcess: Pointer;
hInstance: Integer;
hThread: DWORD;
begin
Result:=ERROR_SUCCESS;

hProcess:=OpenProcess(PROCESS_ALL_ACCESS, FALSE, iProcessID);

if hProcess > 0 then begin
hInstance:=GetModuleHandle("KERNEL32.DLL");
pfnExitProcess:=GetProcAddress(hInstance, "ExitProcess");
hThread:=CreateRemoteThread(hProcess, nil, 0, pfnExitProcess, nil, 0,hThread);
if hThread>0 then begin
WaitForSingleObject(hThread, 40000);
if not CloseHandle(hThread) then Result:=GetLastError;
end else Result:=GetLastError;
CloseHandle(hProcess);
end else Result:=GetLastError;
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.019 c
1-49018
Song
2003-01-07 12:53
2003.01.16
Проблема: на событии onCreate формы1 надо отобразить


3-48938
_landy
2002-12-19 15:37
2003.01.16
TQuery & TStream


1-49150
First_May
2003-01-05 15:13
2003.01.16
Визуальность компонента...


6-49179
Vit@ly
2002-11-15 12:36
2003.01.16
---|Ветка была без названия|---


14-49303
Mr.Ice
2002-12-26 20:35
2003.01.16
Скины в делфи