Форум: "WinAPI";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
ВнизПомогите отследить завершение процесса архивирования Найти похожие ветки
← →
Arhangel_isa (2006-03-14 15:58) [0]У меня задача архивирования документов по сети, мне необходимо отслеживать окончание архивирования для продолжения цикла
← →
kaZaNoVa © (2006-03-14 16:03) [1]
program Project1;
{$APPTYPE CONSOLE}
{$I-}
uses
Windows;
var
f: TextFile;
si: STARTUPINFO;
pi: PROCESS_INFORMATION;
cmdline: string;
p: cardinal;
ProcessID: DWORD;
ProcessHandle: THandle;
ThreadHandle: THandle;
begin
UseInputOutput;
ProcessID := GetCurrentProcessID;
ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION, False, ProcessID);
SetPriorityClass(ProcessHandle, REALTIME_PRIORITY_CLASS);
ThreadHandle := GetCurrentThread;
SetThreadPriority(ThreadHandle, THREAD_PRIORITY_TIME_CRITICAL);
CloseHandle(ProcessHandle);
ZeroMemory(@si, sizeof(si));
si.cb := SizeOf(si);
cmdline := "cmd.bat";//тут команды на архивирование например
p := gettickcount;
if not CreateProcess(nil, // No module name (use command line).
PChar(cmdline), // Command line.
nil, // Process handle not inheritable.
nil, // Thread handle not inheritable.
False, // Set handle inheritance to FALSE.
0, // No creation flags.
nil, // Use parent"s environment block.
nil, // Use parent"s starting directory.
si, // Pointer to STARTUPINFO structure.
pi) // Pointer to PROCESS_INFORMATION structure.
then
begin
Writeln("CreateProcess failed.");
Readln;
Exit;
end;
WaitForSingleObject(pi.hProcess, INFINITE);
Writeln((gettickcount - p));
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
//Writeln("Press Enter Key !");
AssignFile(f, "Result.txt");
Append(f);
if IOResult <> 0 then begin
CloseFile(f);
RewRite(f);
end;
Writeln(f, (gettickcount - p));
CloseFile(f);
Sleep(750);
end.
← →
arhangel_isa (2006-03-15 08:41) [2]Спасибо!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.051 c