![]() |
![]()
![]()
![]() ![]() ![]() ![]() ![]() ![]()
![]() ![]()
![]() | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
Ve skutečnosti nejde o nic jiného než usnadnit použití nepohodlného povelu pro příkazový řádek ve Windows NT/2K/XP (možnosti Windows 9x/Me jsou odlišné a popíšeme je dále). Při výchozí instalaci je aktivní tzv. Kurýrní služba (Messenger Service), systém je tedy stále připraven přijímat zprávy. Přijatá zpráva je zobrazena v popředí, takže není možné ji přehlédnout. Zprávy se nikam neukládají, jakmile uživatel potvrdí její přečtení tlačítkem OK nebo zprávu nelze doručit (adresát není dostupný), zpráva zanikne. Zde tedy žádný problém není, horší je to s odesíláním. Zprávu lze odeslat pomocí systémové konzoly v ovládacích panelech nebo povelem Net Send z příkazového řádku, což je velmi diskomfortní, je nutné si pamatovat přesné zadání parametrů, navíc řada uživatelů už ani nezná prostředí příkazového řádku.
Řešením je usnadnění odesílání dávkovým souborem. Ten pohodlně převezme od uživatele adresáta a text zprávy, odešle ji a podá zprávu o úspěšnosti doručení. Jde o klasický dávkový soubor pro MS-DOS, což je dnes sice historie, ale pro naši potřebu oněch pár bajtů textu skvěle poslouží, aniž by bylo nutné cokoli instalovat.
Cls
Echo.
If %USERNAME%XXX == XXX GoTo WinPopUp
Set ADDRESS=%1
If not %ADDRESS%XXX == XXX GoTo IsAddress
Echo +++ Odeslat zprávu uživateli nebo na počítač +++
Echo - pro nápovědu zadejte jako příjemce ?
Echo.
Set /p ADDRESS=Příjemce zprávy:
GoTo SetMessage
:IsAddress
Echo +++ Odeslat zprávu pro %ADDRESS% +++
Echo.
:SetMessage
If %ADDRESS%==? GoTo Help
Set /p MESSAGE=Text zprávy:
Echo.
Net.exe Send %ADDRESS% Od %USERNAME%: %MESSAGE% > nul
Echo.
If ErrorLevel 1 GoTo Error
Echo Zpráva byla úspěšně doručena příjemci %ADDRESS%
GoTo End
:Help
Echo.
Echo Touto aplikací můžete zaslat zprávu, která bude doručena přímo na obrazovku.
Echo.
Goto End
:Error
Echo Zpráva nebyla doručena, příjemce %ADDRESS% není dostupný!
:End
Set ADDRESS=
Set MESSAGE=
Echo.
Echo.
Echo Pro pokračování stiskněte libovolnou klávesu...
Pause > nul
GoTo End2
:WinPopUp
WinPopUp.exe
:End2
Dávkový soubor nejprve zjistí, zda je k dispozici uživatel v proměnné USERNAME. Pokud ne, dojde k pokusu o spuštění aplikace WinPopUp (popsáno dále), protože nejde o systém WinNT/2K/XP, kde se tato proměnná nachází. Dále se ověří, zda je zadán nějaký parametr. Pokud ano, použije jej jako jméno adresáta. To se hodí pro případ, kdy chceme připravit různé zástupce pro předem definované uživatele. Pokud není zadán žádný parametr, zobrazí se výzva pro zadání adresáta. Adresát je poté dočasně uložen do systémové proměnné ADDRESS (jedině takto lze totiž od uživatele v dávkovém souboru převzít a uložit nějaký údaj). Dále zjistíme, zda jako adresát není zadán znak „?“, pokud ano, jen se zobrazí nápověda použití. Pokud ne, zobrazí se výzva pro zadání textu zprávy. Ta je poté dočasně uložena do systémové proměnné MESSAGE. Následně jsou zadané údaje předány povelu Net Send, navíc je k textu zprávy přidáno jméno odesílatele, které je dostupné v proměnné USERNAME.
Výstup je přesměrován do zařízení NUL, takže pokud nedojde k chybě, příkaz na obrazovku odesílatele nic nezobrazí. Výslednou zprávu o odeslání si zobrazíme sami díky otestování hodnoty ERRORLEVEL. Pokud není 0, došlo k chybě a zprávu se nepodařilo odeslat. Nakonec zrušíme dočasné proměnné adresáta a textu zprávy, zobrazíme výzvu pro stisk klávesy pro pokračování a použijeme povel Pause. Jeho výstup je také přesměrován do NUL, díky tomu můžeme mít výzvu zobrazenou česky i pokud máme anglickou verzi Windows.
Následující obrázek ukazuje, jak to může vypadat, pokud zkušebně pošlete zprávu sami sobě:

Dávkový soubor tedy máme, ovšem hlavní práce nás teprve čeká. Nejprve umístíme náš dávkový soubor do sdílené složky, aby jej mohli všichni uživatelé použít. Vytvoříme k němu zástupce a původní dávkový soubor nastavíme jako skrytý. Ve složce tak zůstane viditelný jen zástupce. Ve vlastnostech zástupce pak nastavíme velikost okna, vhodnou ikonu, písmo a barvy. Částečně tím napravíme nepřívětivost výchozího černobílého příkazového řádku. Dobré je zvolit barvy, které používáme i na ostatních stránkách našeho intranetu. Dále si zkopírujeme zástupce třeba na Plochu, tam jej přejmenujeme na jméno uživatele a do cesty (Target) přidáme parametr jména uživatele. Vznikne tak zástupce, kterým budeme odesílat zprávy přímo danému uživateli. Upraveného zástupce zkopírujeme do sdílené složky a zástupce, kterého máme zkopírovaného na ploše, upravíme pro dalšího uživatele a opět nakopírujeme do sdílené složky a tak opakovaně, dokud nebudeme mít zástupce všech uživatelů. Ve větších sítích bude asi dobré vytvořit pro různé týmy zvlášť složky se zástupci uživatelů jen z daného týmu.
Výsledné okno složky potom může vypadat následovně (jsou vidět zástupci „předchystaných“ uživatelů a zástupce pro poslání zprávy komukoli):

Do stránky v intranetu potom přidáme odkaz směřující ke složce s našimi zástupci. Pokud se na intrantetu používá Internet Explorer, bez problémů se takovým odkazem otevře složka pro odesílání zpráv:
K našemu dávkovému souboru lze jen dodat, že zadáním adresáta „*“ se zpráva odešle všem uživatelům v síti. Zadat můžete také počítač pomocí IP adresy.
Na závěr doplněk pro systémy s Windows 9x/Me, v kterých Kurýrní služba není a vestavěný povel Net nezná službu Send. V tomto systému musíme použít aplikaci WinPopUp (přidá se v ovládacích panelech), která zprávy umožňuje odesílat i přijímat. Aby byla tato služba k dispozici, je nejlepší přidat do složky Po spuštění zástupce programu WinPopUp a ve vlastnostech zástupce nastavit, aby se spouštěl v minimalizovaném okně, nestraší tak na ploše, avšak je připraven přijímat zprávy. Bohužel tato služba nedovede v sítích bez doménového řadiče určit, zda byla zpráva korektně doručena. Jinak lze ovšem naprosto transparentně posílat zprávy mezi systémy s WinPopUpem a Kurýrní službou. Aby se WinPopUp choval co nejvíce jako Kurýrní služba, je dobré nastavit možnosti podle obrázku. Bohužel uživatelé tohoto programu si nebudou moci vybrat z předvolených uživatelů, jméno adresáta budou muset vždy vypisovat ručně.

Navíc můžete použít soubor winpopup.reg a winpopup.adm, kterými lze uvedená nastavení vnutit pomocí editoru registru nebo editoru systémové politiky přímo po síti. Všechny zde zmíněné soubory si můžete také stáhnout a použít, aniž byste je museli upravovat.