|
#1
|
|||
|
|||
Win32&API
Прошу откликнуться тех, кто знает программирование низкого уровня
(ассемблер, питон, перл и т.п.) Не могу найти в процедуре 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*. Хотя возможно я совсем не с того края подхожу. Буду благодарен любой помощи. Код в Делфи. Последний раз редактировалось Admin, 13.04.2012 в 11:02. |