Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.04.2012, 10:56
Moxa Moxa вне форума
Прохожий
 
Регистрация: 02.03.2012
Сообщения: 7
Репутация: 10
Стрелка 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.
Ответить с цитированием
  #2  
Старый 13.04.2012, 15:46
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

можно найти функцию GetDosOutput, она вернёт весь текст, при помощи Pos например решить, что имелось ввиду 0 или 1
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter