Ctrl+Alt+Del

Mimo pojawiajacych sie na horyzoncie Visty i Longhorna, nadal istnieja w przyrodzie klienci, którzy uzywaja Windows NT 4.0.
Microsoft zdazyl wydac Windows2000, WindowsXP i Viste, a NT 4.0 jak zylo tak zyje... Nie jest wazny brak wsparcia, niewazne stare GUI, niewazne braki w poprawkach. Sa miejsca gdzie NT nie da sie zastapic niczym innym.

Zazwyczaj, dzieje sie tak dlatego, ze istnieje jakas superwazna aplikacja, która w NT 4.0 dziala, a w zadnym innym systemie nie chce. Aplikacja bankowa komunikujaca sie z mainframe, oprogramowanie sterujace spektrometrem, sterownik elektrodrazarki czy liczniki do pomp w rafinerii.
Program taki wymaga Windows NT 4.0 i koniec. Nie ma szans na przepisanie go, nie ma alternatywy, nie ma czesto zródel a firma, która to napisala od lat nie istnieje.

Czesto jakas nadzieja jest VirtualPC. Takie oprogramowanie, o ile nie uzywa specjalnych kart (nieraz ISA) dziala w VirtualPC zupelnie dobrze i komunikuje sie ze swiatem przez port szeregowy albo przez siec.

Dlatego, zeby dac uzytkownikom szanse na cywilizowana prace z nowymi aplikacjami, stosuje sie rozwiazania oparte wlasnie na VirtualPC. Na komputerze zainstalowany jest WindowsXP, tam VirtualPC i w nim - Windows NT 4.0.

I tu wlasnie pojawia sie problem z tytulowym Ctrl+Alt+Del... Taki NT wyswietli prosbe o nacisniecie trzech klawiszy przed zalogowaniem tyle, ze VirtualPC wcale nie na to czeka. Uzytkowników nauczyc? Wiadomo, ze nie wszystkich sie da...

Najproszym rozwiazaniem byloby wylaczenie prosby o trzy klawisze. Tyle, ze ta opcje w polisach wprowadzono dopiero w Windows2000. W Windows NT jej niestety nie ma. I tu zaczyna sie miejsce dla bardziej zaawansowanych rozwiazan. Nie jest to trudne w sumie, ale wymaga podejscia od innej strony. Zeby pozbyc sie prosby o Ctrl+Alt+Del nalezy:
zdobyc stary kompilator C++ (na przyklad 4.2)
zainstalowac go na NT
wziac z SDK przykladowy plik ginastub.c autorstwa Scotta Fielda
napisac wlasna obsluge WlxDisplaySASNotice
skompilowac we wlasna DLLke
wrzucic do %windir%\system32
dopisac do rejestru w kluczu Winlogon wartosc "GinaDLL"="moja_gina.dll"
zrestartowac komputer
Wlasna obsluga WlxDisplaySASNotice powinna wygladac tak: pWlxFuncs->WlxSasNotify(hGlobalWlx, WLX_SAS_TYPE_CTRL_ALT_DEL);

I tyle! Odtad, kazda próba wyswietlenia prosby o trzy klawisze skonczy sie przeslaniem do systemu (a dokladnie do winlogon) informacji, ze klawisze juz zostaly nacisniete.

W efekcie, uruchamiajac wirtualna maszyne uzytkownik zobaczy po prostu prosbe o haslo. A to, choc niby mniej bezpieczne, to jednak wprowadza zdecydowanie mniej zamieszania.

Autor: Grzegorz Tworek