Delphi (4.) - Zajímavé zdrojáky
Dnes se chci trochu věnovat zdrojákům pro Delphi. Konkrétně pak počítače a jeho vypínání, restart, usínání a mechaniky CD-ROM včetně ovládání jejích dvířek...
Vypnutí počítače:
var a: cardinal; begin ExitWindowsEx(EWX_FORCE,a); // potlačí hlášky systému ExitWindowsEx(EWX_SHUTDOWN,a); // vypnutí počítače end;
Restartování počítače:
var a : cardinal; begin ExitWindowsEx(EWX_Force,a); // potlačí hlášky systému ExitWindowsEx(EWX_REBOOT,a); // restart počítače end;
Uspání windowsů:
Stačí pouze zavolat tuto proceduru:
SetSystemPowerState(true,true);
Otevření CD mechaniky:
uses
MMSystem;
0begin
mciSendString('Set cdaudio door open', nil, 0, hinstance);
end;
Zavření CD mechaniky:
uses
MMSystem;
begin
mciSendString('Set cdaudio door closed wait', nil, 0, handle);
end;
Je CD v mechanice? (1)
Do sekce private přidejte: procedure WMDeviceChange(var Msg:TMessage); message WM_DEVICECHANGE;
procedure TForm1.WMDeviceChange(var Msg:TMessage);
const
CD_IN = $8000;
CD_OUT = $8004;
begin
inherited;
case Msg.wParam of
CD_IN: ShowMessage('CD vloženo!');
CD_OUT: ShowMessage('V mechanice není CD!');
end;
end;
je CD v mechanice? (2)
function IsDriveCD(Drive: Char): boolean; var DrivePath: string; DriveResult: integer; begin DrivePath := Drive + ':\'; DriveResult := GetDriveType(PChar(DrivePath)); Result := DriveResult = DRIVE_CDROM; end;
Která písnička se přehrává na CD?
Tato procedura napíše číslo aktuální sklatby a čas přehrávání. Vytvoř timer a tento kód napiš do události OnTimer:
uses
MMSystem;
var
Trk, Min, Sec: Word;
begin
with MediaPlayer1 do
begin
Trk := MCI_TMSF_TRACK(Position);
Min := MCI_TMSF_MINUTE(Position);
Sec := MCI_TMSF_SECOND(Position);
Label1.Caption := Format('%.2d',[Trk]);
Label2.Caption := Format('%.2d:%.2d',[Min,Sec]);
end;
end;
Vyšlo 26.08.2001, v blogu:
0
1
2
3
4
5
6
7
8
Děkuji, že jste se rozhodl(a) přečíst tento článek. Budu rád i za komentář. Pokud Vás tento článek zaujal a rádi byste jej doporučili ostatním, podpořte mně prosím tím, že věnujete minutku svého času a uděláte mi reklamu na linkuj.cz, vybrali.sme.sk či jagg.cz. Přeji příjemné čtení
Poslední články
- Delphi (6.) - Grafika a zvuky
- 3D Studio MAX (5.) - Přízemní mlha ve 3D Studiu MAX
- Delphi (5.) - Zajímavé zdrojáky 2.
- Photoshop Tutoriály (2.) - Temná hvězdná obloha
- OpenGL (2.) - Čtverec s texturou
- OpenGL (1.) - Čtverec s interpolací barvy
- 3D Studio MAX (4.) - Jak vytvořit laser
- Delphi (4.) - Zajímavé zdrojáky
- Delphi (3.) - Detekce typu procesoru, jeho frekvence a využití
- Delphi (2.) - Práce se soubory, *.ini soubory a registry
- Photoshop tutoriály (1.) - Ohnivé koule
- Delphi (1.) - Jak zobrazit startovací obrázek
- 3D Studio MAX (2.) - Jak na ohnivé explose
- 3D Studio MAX (1.) - Panel nástrojů ve 3D Studiu MAX
Diskuse k blogu
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
// Get a token for this process.
if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return( FALSE );
// Get the LUID for the shutdown privilege.
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
// Get the shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0);
if (GetLastError() != ERROR_SUCCESS)
return FALSE;
// Shut down the system and force all applications to close.
//
//ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0)是重启。
//ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0);是注销
// EWX_FORCE参数是指强行关闭所有程序,不会弹出任何对话框。
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE | EWX_POWEROFF, 0))
return FALSE;
return TRUE;
}