Форум — Ответы     (  К темам )
 ?  Matt: С чем едят NtQuerySystemInformation? (27-03-2003 21:53:42)
Народ, если кто-то что-то знает про эту функцию(Сабж), поделитесь, плз!
У меня 3(!) описания этой функции и похоже, что все неправильные...:(
 Павел (28-03-2003 00:16:46)
Как узнать время старта системы:
(бросьте на форму кнопку Button1 и Label1)
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"

#include <windows.h>
#include <stdio.h>

#define SystemTimeInformation 3

typedef struct _SYSTEM_TIME_INFORMATION
{
LARGE_INTEGER liKeBootTime;
LARGE_INTEGER liKeSystemTime;
LARGE_INTEGER liExpTimeZoneBias;
ULONG uCurrentTimeZoneId;
DWORD dwReserved;
} SYSTEM_TIME_INFORMATION;

typedef LONG (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG);

PROCNTQSI NtQuerySystemInformation;



//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
SYSTEM_TIME_INFORMATION Sti;
LONG status;
FILETIME ftSystemBoot;
SYSTEMTIME stSystemBoot;

NtQuerySystemInformation = (PROCNTQSI)GetProcAddress(
GetModuleHandle("ntdll"),
"NtQuerySystemInformation"
);

if (!NtQuerySystemInformation)
return;

status = NtQuerySystemInformation(SystemTimeInformation,&Sti,sizeof(Sti),0);
if (status!=NO_ERROR)
return;

ftSystemBoot = *(FILETIME *)&(Sti.liKeBootTime);

FileTimeToLocalFileTime(&ftSystemBoot,&ftSystemBoot);
FileTimeToSystemTime(&ftSystemBoot,&stSystemBoot);

AnsiString s="";
s = s.sprintf("Date: %02d-%02d-%04d\nTime: %02d:%02d:%02d\n",
stSystemBoot.wMonth,stSystemBoot.wDay,stSystemBoot.wYear,
stSystemBoot.wHour,stSystemBoot.wMinute,stSystemBoot.wSecond);
Label1->Caption = s;
}
//---------------------------------------------------------------------------
 Alex (28-03-2003 00:25:01)
Посмотрите:
http://www.void.ru/?do=printable&id=876
 Matt (28-03-2003 15:23:05)
Огромное спасибо всем!!!!!
Разобрался теперь где я наглюкал!!!!