Živě.cz o počítačích a internetu

Tipy a triky v Delphi, díl 72. - Připojení a odpojení síťové jednotky; Přítomnost myši a počet tlačítek; Zachycení stisku klávesy PrintScreen

Jan Šindelář - 8.1.2003

Připojení a odpojení síťové jednotky

V našem seriálu už jsme si ukazovali několikrát, jak vyvolat různé systémové dialogy. Dnes si ukážeme jeden z těch méně používaných a sice dialog na připojení a odpojení síťové jednotky. Kód je velmi jednoduchý, takže již bez dalších zbytečných komentářů následuje zdrojový kód.

První procedura je na připojení, druhá na odpojení.

procedure TForm1.Button1Click(Sender: TObject);
begin
  WNetConnectionDialog(handle, RESOURCETYPE_DISK);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  WNetDisconnectDialog(handle, RESOURCETYPE_DISK);
end;

Přítomnost myši a počet tlačítek

Následují dva jednoduché tipy na práci s myší. První příklad zjistí, jestli je v systému vůbec myš k dispozici, druhý pak zjistí počet tlačítek.

procedure TForm1.Button1Click(Sender: TObject);
begin
  if (GetSystemMetrics(SM_MOUSEPRESENT) <> 0) then ShowMessage(`Mys pritomna`)
                                              else ShowMessage(`Mys neni k dispozici`);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowMessage(IntToStr(GetSystemMetrics(SM_CMOUSEBUTTONS)));
end;

Zachycení stisku klávesy PrintScreen

Klávesa PrintScreen, která má dnes již jen minimální využití (alespoň ve Windows) a na klávesnicích ji najdeme již zřejmě jen z historických důvodů, má přesto jednu funkci, kvůli které je užitečná. Pokud ji stiskneme, uloží se do schránky snímek obrazovky (screenshot) a je to tak ten nejjednodušší způsob, jak udělat kopii obrazovky bez nutnosti instalace nějakého specializovaného softwaru. V nouzi se dá tohoto postupu celkem dobře použít. My si teď ukážeme, jak stisk této klávesy odchytit a nahradit tak funkci kopírování obrazovky libovolnou vlastní funkcí. Opět nám v tom pomůže systém zpráv Windows.

.
.
.
private
    { Private declarations }
    procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
.
.
.

procedure TForm1.WMHotKey (var Msg : TWMHotKey);
begin
  if Msg.HotKey = 101 then ShowMessage(`Stisknuta klavesa PrintScreen`);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  RegisterHotKey(Form1.Handle, 101, 0, VK_SNAPSHOT);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  UnRegisterHotKey (Form1.Handle, 101);
end;

A to bude pro dnešek všechno. Do dalších programátorských pokusů vám přeji hodně štěstí.