![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Время загрузки [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]А какой момент считать моментом окончания загрузки?