Получить Время Загрузки Рабочего Стола
Узнаём время загрузки Windows любой версии.
Программный способ получить время загрузки рабочего стола при холодном старте системы, примеры функции и простейшей утилиты.
Творчество выходного дня :)
Способ измерения длительности загрузки операционной системы программным способом.
Описание функции: получения уведомления о полной загрузке рабочего стола при старте системы.
int GetTimeLoadWorktable(){
NOTIFYICONDATA tnd = {0};
tnd.cbSize = sizeof(NOTIFYICONDATA);
tnd.hWnd = (HWND)101010;
tnd.uID = (UINT)GetModuleHandle(NULL);
//--
while (Shell_NotifyIcon(NIM_ADD, &tnd) == 0) {Sleep(1000);}
Shell_NotifyIcon(NIM_DELETE, &tnd);
return GetTickCount() / 1000;
}
Пример утилиты, язык СИ. Получить время загрузки системы и рабочего стола, при старте с Windows ОС
#include <stdio.h>
#include <windows.h>
/* Declare Windows procedure */
int GetTimeLoadWorktable();
int APIENTRY WinMain( HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow )
{
char str[64];
int re = GetTimeLoadWorktable();
sprintf(str, "%s %d %s", "Время загрузки ОС: ", re, " сек.");
MessageBox(NULL, str, "ОС полностью загрузилась", MB_OK);
return 0;
}
int GetTimeLoadWorktable(){
NOTIFYICONDATA tnd = {0};
tnd.cbSize = sizeof(NOTIFYICONDATA);
tnd.hWnd = (HWND)101010;
tnd.uID = (UINT)GetModuleHandle(NULL);
//--
while (Shell_NotifyIcon(NIM_ADD, &tnd) == 0) {Sleep(1000);}
Shell_NotifyIcon(NIM_DELETE, &tnd);
return GetTickCount() / 1000;
}
Пример функции для VB6:
Function GetTimeLoadWorktable() As Single
Dim ti As NOTIFYICONDATA
ti.cbSize = Len(ti)
ti.uId = GetModuleHandle(ByVal 0)
'--------
While Shell_NotifyIcon(NIM_ADD, ti) = 0
Sleep 1000
Wend
'--------
Call Shell_NotifyIcon(NIM_DELETE, ti)
GetTimeLoadWorktable = GetTickCount()
End Function