Думаю будет примерно так...
| Код | program mein_project;
uses Windows;
var si: TStartupInfo; pi: TProcessInformation;
const nMaxMemSize = 2 * 1048576; // 2 Мб nTimeout = 2 * 1000; // 2 секунды MIN_MEM_SIZE = 16 * 1024; // минимальный размер выделяемой памяти
begin GetStartupInfo(si); if not CreateProcess(nil, 'calc.exe', nil, nil, false, PROCESS_SET_QUOTA or CREATE_NEW_CONSOLE, nil, nil, si, pi) then begin MessageBox(0, 'Не могу запустить программу!', nil, MB_ICONERROR); exit; end; if not SetProcessWorkingSetSize(pi.hProcess, MIN_MEM_SIZE, nMaxMemSize) then begin MessageBox(0, 'Не могу задать размер памяти процесса!', nil, MB_ICONERROR); TerminateProcess(pi.hProcess, 0); exit; end; WaitForSingleObject(pi.hProcess, nTimeout); TerminateProcess(pi.hProcess, 0); end.
|
З.Ы. Вообще старайся поменьше руководить (а лучше - вовсе не руководить) объемом памяти процесса, Винда этого очень не любит. |