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

Tipy a triky v Delphi, díl 60. - Zobrazení upozornění před logovacím dialogem; Tapeta na ploše během přihlašování

Jan Šindelář - 2.10.2002

Zobrazení upozornění před logovacím dialogem

Ve Windows existuje možnost drobnou úpravou registru zajistit to, že se ještě před samotným dialogem pro přihlášení do systému zobrazí okno s textem, které tak může uživatele upozornit na různé události. Po potvrzení dialogu kliknutím na OK pak již pokračuje přihlášení zcela běžným způsobem. Má to tu výhodu, že takto můžete jednak upozornit všechny "legální" uživatele daného systému na nějakou důležitou věc (lépe řečeno vaše aplikace může ohlásit nějakou událost), ale můžete také na cokoliv upozornit (varovat) uživatele, kteří na daném počítači svůj účet nemají.

Postup by měl fungovat ve všech Windows, i když musím přiznat, že mně osobně to na systémech 9x nepracovalo. Pod Windows 2000 však vše pracovalo bezvadně a koneckonců má tato funkce pro systémy NT/2000/XP mnohem větší opodstatnění než pro systémy 9x, které nejsou víceuživatelské v pravém slova smyslu.

Nyní tedy již k samotné implementaci v Delphi. Jelikož jsme v našem seriálu už prováděli úpravy registrů nesčetněkrát, zřejmě by stačilo pouze uvést, kterou větev a klíč upravit, ale pro jistotu si uvedeme celý kód. Snad nemusím připomínat, že je třeba do projektu přidat jednotku Registry.

procedure TForm1.Button1Click(Sender: TObject);
var
  key: string;
  Reg: TRegIniFile;
begin
  key := `\Software\Microsoft\Windows NT\CurrentVersion\Winlogon`;
  Reg := TRegIniFile.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    Reg.CreateKey(Key);
    if Reg.OpenKey(Key, False) then
      begin
        Reg.WriteString(key, `LegalNoticeCaption`, `Titulek zobrazeného okna`);
        Reg.WriteString(key, `LegalNoticeText`, `Vlastní zobrazovaný text`);
      end;
  finally
    Reg.Free;
  end;
end;

Pro systémy 9x musíte vynechat v textu klíče NT, takže klíč pak vypadá takto:

`\Software\Microsoft\Windows\CurrentVersion\Winlogon`

Zobrazovaný text může mít 256 znaků, u systémů NT s posledním service packem (a zřejmě tím pádem u všech systému 2000 a XP) až 1024 znaků.

Tapeta na ploše během přihlašování

Tapeta na ploše během přihlašování I druhý dnešní tip vzdáleně souvisí s přihlašováním do systému a rovněž využijeme registry. Možná vám vadí, že během přihlašování do systému Windows 2000 je pod přihlašovacím dialogem zobrazena jen prázdná (modrá) "pracovní plocha". Samotná tapeta (obrázek) se načte až jednotlivým uživatelům po přihlášení. To však lze změnit a vámi zvolený obrázek se může místo modré prázdné plochy zobrazit už při přihlašování. Stačí do příslušného místa registru zadat cestu k souboru s obrázkem a je to. Bylo by zřejmě zbytečné zde uvádět stejný zdrojový kód jako v předchozím případě a proto si uvedeme pouze příslušnou větev a klíč registru, který je třeba změnit. Konkrétně je to tedy tato větev:

HKEY_USERS\.DEFAULT\Control Panel\Desktop

Zde najdete položku Wallpaper, jejíž hodnotu vyplníte cestou k souboru s obrázkem a vše je hotovo. Po restartu systému již bude daný obrázek načten ihned při zobrazení přihlašovacího okna.

Offline verze ve formátu nápovědy

Soubor všech tipů a triků osažených v dílech 1 až 55 si můžete nyní také stáhnout pro offline prohlížení ve formátu nápovědy pro Windows. Velikost zip souboru je 194 kB.