Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Время загрузки [D7, WinXP]


viper ©   (2005-07-14 16:34:00) 

Моя программа запускает приложение например delphi32.exe как подсчитать время загрузки  приложения?


Alexander Panov   (2005-07-14 18:03:00) [1]

function ExecCmd(const aCommand: String): Cardinal;
var
 pi:PROCESS_INFORMATION;
 si:STARTUPINFO;
 cmdLine,Path: String;
begin
 ZeroMemory(@si,sizeof(si));
 si.cb:=SizeOf(si);
 si.dwFlags := STARTF_FORCEONFEEDBACK+STARTF_USESHOWWINDOW;
 si.wShowWindow := SW_SHOWNORMAL;
 Path := ExtractFilePath(aCommand);
 cmdLine := aCommand;

 Result := GetTickCount;
 if CreateProcess( nil,
                       PChar(cmdLine),
                       nil,
                       nil,
                       False,
                       0,
                       nil,
                       PChar(Path),
                       si,
                       pi )
 then
 begin
   if WaitForInputIdle(pi.hProcess,INFINITE)=WAIT_OBJECT_0 then
   begin
     Result := GetTickCount-Result;
   end
   else Result := 0;
   CloseHandle(pi.hThread);
   CloseHandle(pi.hProcess);
 end
 else Result := 0;
end;


wal   (2005-07-14 17:14:00) [2]

Я так понял, что это промежеток между запуском, и тем моментом, когда процесс начал обработку сообщений UI, вот когда выборка сообщений из очереди началась, тогда и используй GetProcessTimes. Но не факт, что между началам обработки сообщений, и непосредственно "возможности юзера работать", что-то еще весьма долгое не будет выполняться.

С уважением.


Viper   (2005-07-14 17:09:00) [3]

>BiN ©
Запусти у себя на компе какую нибудь объемную прогу, ты можешь ею пользоваться (закрыть на худой конец мышкой по нажатию крестика) ты сможешь только тогда когда она загрузиться и будет готова к использованию, так? Так вот этот промежуток мне нужно посчитать в секундах.


BiN   (2005-07-14 16:58:00) [4]

Видимо, я неправильно понял твой вопрос. С помощью GetProcessTimes ты можешь узнать сколько времени прошло с момента создания процесса. Тебе же, очевидно, нужно нечто другое. Определись с понятиями "загрузка приложения" и что является признаком готовности приложения к "использованию".


Viper   (2005-07-14 16:50:00) [5]

>BiN ©   (14.07.05 16:44) [2]
>GetProcessTimes

Спасибо, но можно какойнибудь пример с ее использованием?


Viper   (2005-07-14 16:49:00) [6]

Когда в программе можно что-то сделать или что-то в этом духе,
вернемся опять к delphi при запуске она грузиться (лично у меня ) где-то 10 сек. все это время я наблюдаю окно загрузки но во многих программах его нет, но они тоже грузяться какое-то время, так вот его мне и нужно узнать от момента запуска команды shellexecute и до момента полной загрузки приложения для начала его использование (во накрутил :) )


BiN   (2005-07-14 16:44:00) [7]

GetProcessTimes


Чапаев   (2005-07-14 16:40:00) [8]

А какой момент считать моментом окончания загрузки?


Наверх

Титульная страница Поиск, карта сайта Написать письмо