Прошу откликнуться тех, кто знает программирование низкого уровня
(ассемблер, питон, перл и т.п.)
Не могу найти в процедуре API которая работает с командой *defrag c: -a* её
результат в первоначальном виде работы функции .
Ну т.е 0 или 1 к примеру.
Что будет соответствовать результату анализа диска (нужна ли дефрагментация или нет)
В ниже приведённом примере hPipeOutputRead заполняет buf - строковую
переменную содержанием анализа диска в виде *дефрагментация этого тома не
требуется* или другим.
Но это не cовсем то, что нужно.
Код:
procedure fffffff ();
var
securityattributes: TSecurityAttributes;
startupinfo: TStartupInfo;
processinformation: TProcessInformation;
begin
{securityattributes.lpSecurityDescriptor:=nil;
CreatePipe(hPipeOutputRead, hPipeOutputWrite, @securityattributes, 0);
ZeroMemory(@startupinfo, SizeOf(TStartupInfo));
startupinfo.dwFlags:=STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
startupinfo.hStdOutput:=hPipeOutputWrite;
CreateProcess(nil, PChar('defrag c: -a'), nil, nil, True,
CREATE_NEW_CONSOLE,
nil, nil, startupinfo, processinformation);
hProcess:=processinformation.hProcess;
readthread:=TReadThread.Create; // запуск constructor
TReadThread.Create; }
end;
constructor TReadThread.Create;
begin
inherited Create(False);
FreeOnTerminate:=False;
end;
procedure TReadThread.Execute;
begin
while not Terminated do
if ReadFile(FormMain.hPipeOutputRead, buf, Length(buf), dummy, nil) then
Synchronize(UpdateForm);
showmessage(buf );
end;
Админ: Пользуемся тегами для оформления кода!
В связи со скудностью знаний в этой области, прошу помочь в получении
(кажется) параметра CreatePipe, который характеризует результат
выполнения команды *defrag c: -a*.
Хотя возможно я совсем не с того края подхожу.
Буду благодарен любой помощи.
Код в Делфи.