Устройства
// Чтобы программно открыть привод CD-ROM, подключите
// после vcl.h заголовочный файл mmsystem.h
// и вызовите функцию mciSendString:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
mciSendString("Set cdaudio door open wait", NULL, 0, Handle);
}
// Чтобы программно закрыть привод CD-ROM, подключите
// после vcl.h заголовочный файл mmsystem.h
// и вызовите функцию mciSendString:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
mciSendString("Set cdaudio door closed wait", NULL, 0, Handle);
}
// Следующий код выключит монитор
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
// Следующий код включит монитор
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
// Для включения/перезагрузки компьютера вызовите
// функцию ExitWindowsEx
// выключить компьютер
ExitWindowsEx(EWX_SHUTDOWN, 0);
// перезагрузить компьютер
ExitWindowsEx(EWX_REBOOT, 0);
// завершить сеанс пользователя
ExitWindowsEx(EWX_LOGOFF, 0);
// Для того чтобы узнать сколько оперативной
// памяти на компьютере введите следующий код:
MEMORYSTATUS mem;
memset((void*)&mem,0,sizeof(mem));
mem.dwLength=sizeof(mem);
GlobalMemoryStatus(&mem);
MessageDlg("Total memory:"+IntToStr(mem.dwTotalPhys),
mtInformation, TMsgDlgButtons()
// Введите следующий код:
if(GetSystemMetrics(SM_MOUSEPRESENT))
MessageDlg("Мышь подключена!", mtInformation, TMsgDlgButtons()
else
MessageDlg("Мышь не найдена!", mtError, TMsgDlgButtons()
// Введите следующий код:
AnsiString ProcessorName="Unknown";
TRegistry *reg = new TRegistry;
try {
reg->RootKey = HKEY_LOCAL_MACHINE;
reg->OpenKey("Hardware\\Description"
"\\System\\CentralProcessor\\0", false);
ProcessorName=reg->ReadString("ProcessorNameString");
}
__finally
{
delete reg;
}
MessageDlg(ProcessorName, mtInformation, TMsgDlgButtons()
// Введите следующий код:
Memo1->Lines->Add("Поддерживаемые инструкции:"); DWORD brt; bool AMD,MMX; __asm { mov eax,1 cpuid mov brt,edx } if(brt&(1Lines->Add("MMX"); } if(brt&(1Lines->Add("SSE"); } __except(EXCEPTION_EXECUTE_HANDLER){} if(brt&(1Lines->Add("SSE2"); } __except(EXCEPTION_EXECUTE_HANDLER){} } } } __asm { mov eax,0x80000000 cpuid cmp eax,0x80000000 jc notamd mov eax,0x80000001 cpuid mov brt,edx mov AMD,1 notamd: } if(AMD) if((MMX)&&(brt&(1Lines->Add("3DNOW!");
Автор:
// При помощи этой функции можно определить тактовую частоту CPU:
double CPUSpeed(void) { DWORD dwTimerHi, dwTimerLo; double dRes; asm
{ DW 0x310F mov dwTimerLo, EAX mov dwTimerHi, EDX }
Sleep (500); asm
{ DW 0x310F sub EAX, dwTimerLo sub EAX, dwTimerHi mov dwTimerLo, EAX mov dwTimerHi, EDX } dRes = dwTimerLo/(1000.0*500); return dRes; }