Windows-Sztuczki.pdf

(197 KB) Pobierz
12721125 UNPDF
SZTUCZKI
"Wybrana opcja nie istnieje", "Nieprawidłowe polecenie" - kiedy przywołanie
funkcji kończy się takim komunikatem, ustalenie przyczyny błędu graniczy z
cudem. Może to być wina pomyłek programistów lub, o zgrozo,
nieudokumentowanych czy zastrzeżonych funkcji. Poniższy artykuł pomoże
dotrzeć do ukrytych funkcji oprogramowania i z nich korzystać.
"Nasza aplikacja potrafi wszystko" - gwarantują producenci oprogramowania.
Doświadczeni użytkownicy wiedzą, że nie zawsze można ufać obiecującym
sloganom reklamowym. W aplikacjach nie ma odpowiednich poleceń, a producenci
tłumaczą się, że po prostu ich nie uwzględnili. Okazuje się, że i oni nie znają do
końca możliwości własnych produktów.
Nasze porady pozwolą zminimalizować ograniczenia, z jakimi można się spotykać
podczas codziennej pracy z systemem operacyjnym. Omawiamy funkcje, o których
nie ma ani słowa w dokumentacji dołączanej do oprogramowania, które pozostają
nie wykorzystane. Na przykład opisujemy możliwości Hosta skryptów systemu
Windows, nowe opcje uruchamiania systemu operacyjnego i znosimy kilka zakazów
instalowania i odinstalowywania aplikacji. Prezentujemy plik wsadowy, który w
nadzwyczaj wygodny sposób pozwala pozbyć się Internet Explorera 4.x.
Wskazujemy nowe możliwości naprawy systemu Windows NT i proponujemy wiele
drobnych poprawek. Wykorzystane w artykule listingi oraz część omawianych
narzędzi zamieszczamy na naszej płycie.
Pomimo że dołożyliśmy wszelkich starań, aby opisywane sztuczki prawidłowo
funkcjonowały, nie gwarantujemy, że zawsze przyniosą one pożądane skutki.
Zdecydowana większość porad prezentowanych w niniejszym artykule jest
dedykowana zaawansowanym użytkownikom systemu Windows. Nie
odpowiadamy zatem za ewentualne szkody powstałe w wyniku manipulacji w
systemie operacyjnym.
95/98 - RUNDLL32 JAKIEGO NIE ZNAŁEŚ
Nieudokumentowane funkcje bibliotek DLL
Dostęp do większości funkcji mieszczących się w elementach systemowych Windows
jest zastrzeżony dla użytkowników korzystających z aplikacji programistycznych.
Niektóre z nich można przywoływać bezpośrednio za pomocą pliku
RUNDLL32.EXE. Poniżej zamieszczamy spis nieznanych dotąd, przydatnych
zastosowań RUNDLL32 ze szczegółowym opisem ich działania. Ze wszystkich
poleceń można korzystać w dwójnasób: jako ze składników własnych skryptów lub
przywoływać jako samodzielne funkcje. Dodatkową partię przywołań można
znaleźć w ramce "Nieudokumentowane polecenia Rundll32".
Funkcje w pliku USER.EXE
rundll32 user,tilechildwindows
rundll32 user,cascadechildwindows
zrobią porządek z otwartymi oknami aplikacji na pulpicie, umieszczając je obok
siebie (tile...) lub jedno pod drugim (cascade...).
Najbardziej radykalnym sposobem zamykania Windows jest z pewnością polecenie
rundll32 krnl386.exe,exitkernel
System błyskawicznie zakończy pracę mimo otwartych aplikacji i plików
udostępnionych w sieci, nie ostrzegając o utracie nie zachowanych informacji.
Ponieważ użytkownik zwykle nie ma możliwości potwierdzenia w oknie Zamknij
system Windows ani zachowania danych, polecenie to należy traktować ze
szczególną ostrożnością.
Polecenie: rundll32 msprint2.dll,RUNDLL_PrintTestPage
służy do przetestowania dowolnej drukarki podłączonej do komputera. Po wpisaniu
powyższego wiersza na ekranie pojawi się okno wyboru drukarki. Gdy zaznaczysz
odpowiednią drukarkę, system prześle do niej stronę testową.W Windows 98
możliwość manualnego wyboru instalowanych urządzeń jest dobrze ukryta, gdyż
system został zaprojektowany z myślą o urządzeniach "Plug and Play". Przydatne
okazuje się więc polecenie
rundll32.exe sysdm.cpl,InstallDevice_Rundll
Wpisanie powyższej instrukcji przywoła na ekran Kreatora dodawania nowego
sprzętu, dzięki czemu można własnoręcznie wybrać typ i model instalowanego
urządzenia.
Kolejne polecenie: rundll32 user,wnetcancelconnection fsa
przerywa połączenia komputera z podłączonymi napędami sieciowymi serwera
Novell Netware (w tym przypadku: fsa). W odróżnieniu od polecenia "net use/d *"
"wnetcancelconnection" nie odłącza wszystkich dysków sieciowych z innych
systemów (np. UNIX). Niestety, nie jest możliwe zamykanie połączeń z dyskami
serwerów Windows NT.
Niektóre instrukcje pozwalają modyfikować zachowanie myszy, klawiatury oraz
kursora. Wpisując
rundll32 user,swapmousebutton,
możesz zamienić funkcje klawiszy myszy bez konieczności korzystania z
odpowiednich opcji w Panelu sterowania. Wbrew przypuszczeniom, nie uda Ci się
przywrócić pierwotnego stanu klawiszy przez ponowne użycie funkcji
"swapmousebutton". W podobny - jednostronny - sposób działają polecenia
rundll32 user,setcaretblinktime <n>
rundll32 user,setdoubleclicktime <n>
Pierwsze zmienia częstotliwość migania kursora, drugie - prędkość dwukrotnego
kliknięcia myszą.
Sterowniki klawiatury i myszy pozwalają włączać i wyłączać oba urządzenia.
Windows akceptuje jednak tylko tę drugą opcję. Uaktywnia się ją poleceniami:
rundll32 keyboard,disable
rundll32 mouse,disable
Gdy zdecydujesz się użyć powyższych instrukcji, zablokujesz działanie klawiatury
i/lub myszy. Na nic nie zda się przywołanie z parametrem "enable". Dopiero
ponowne wczytanie systemu przywróci funkcjonowanie wyłączonych urządzeń.
"Idealny", niezmiernie złośliwy sposób, aby dokuczyć koledze.
IE4/98 - HOST SKRYPTÓW SYSTEMU WINDOWS
Większa efektywność systemu dzięki sterowaniu skryptami
W Windows 98 Microsoft wprowadził nową technologię o nazwie Host skryptów
systemu Windows (Windows Scripting Host). Dzięki niej użytkownik może,
podobnie jak w innych systemach operacyjnych, pisać własne skrypty, które działają
w obrębie całego systemu. Niestety, Windows 98 nie zawiera dokumentacji z opisem
poszczególnych instrukcji języka skryptowego. Listingi są przykładem, jak
przydatne mogą okazać się skrypty w automatyzowaniu zadań, których wykonanie
w sposób konwencjonalny wymaga mozolnego klikania myszą.
Windows Scripting Host oferuje więcej, niż można by przypuszczać po obejrzeniu
plików przykładowych umieszczonych w katalogu \Windows\Samples\Wsh.
Większość przedstawionych tu funkcji daje się zrealizować za pomocą plików
wsadowych. Poniższe porady można wykorzystać także w Windows 95 i NT 4.0,
jednak wymaga to zainstalowania zarówno hosta skryptów, jak i Internet Explorera
w wersji 4.x. lub wyżej (IE 4.0 zamieściliśmy na płycie 12/97, a IE 5.0 na płycie 7-8/99,
zaś host skryptów jest dostępny w Internecie. Można go znaleźć pod adresem
http://msdn.microsoft.com/ scripting/windowshost/download/default.htm (plik:
WSH.EXE, rozmiar: 567KB).
Drukowanie za pomocą VB-Script-u. W dokumentacji skryptów Visual Basic na
próżno szukać instrukcji drukowania. Przy odrobinie trudu można jednak przesyłać
tekst bezpośrednio ze skryptu do Internet Explorera, by korzystając z nie
udokumentowanego polecenia, zainicjować proces drukowania.
Na ilustracji zamieszczamy przykładowy plik READFLDR.VBS (także na płycie),
który odczytuje strukturę wybranego foldera i wyświetla zawarte w nim pliki i
podkatalogi. Po sporządzeniu listy w oknie Explorera skrypt zapyta, czy przesłać ją
do drukarki.
Zmienne "FolderZrodlowy" i "FiltrPlikow" - które należy modyfikować zależnie od
własnych potrzeb - w pierwszych dwóch wierszach skryptu określają typ i zakres (tj.
napęd i folder źródłowy) sczytywanych plików. Polecenia w kolejnych wierszach
uruchamiają Internet Explorera, a instrukcja
set FSys=CreateObject("Scripting.FileSystemObject")
tworzy odwołanie do obiektu systemu plików (FileSystemObject). Następnie skrypt
wstawia wiersz "<p id=idOutput>" do pustego dokumentu utworzonego przez
Internet Explorera. Tu będą umieszczane sczytywane nazwy plików i podkatalogów.
Teraz zostaje przywołana procedura "SubFolders", która z kolei odwołuje się do
"ShowFilesWithExtensionIn" wyświetlającej zawartość plików określonego typu w
danym folderze (nazwę foldera "SubFolders" przekazuje jako parametr). Procedura
"SubFolders" jest wykonywana, dopóki skrypt nie sczyta wszystkich plików i
podkatalogów. Instrukcja
ie4.ExecWB 6, 2
inicjalizuje wydruk na drukarce domyślnej. Jeżeli chcesz mieć możliwość wyboru
drukarki, zamień powyższe polecenie na "ie4.ExecWB 6, 1".
Błyskawiczne zakładanie folderów. Aby utworzyć folder z poziomu Eksploratora
Windows, musisz prawym klawiszem myszy przywołać menu kontekstowe, wybrać
polecenie Nowy element * Folder i wprowadzić żądaną nazwę. Oprócz tego, musisz
najpierw przedrzeć się do foldera, w którym ma być umieszczony nowy podfolder.
Skrypt Visual Basica przejmie część obowiązków. Plik NFOLDER.NFS (patrz
ilustracja) od razu generuje okno dialogowe, w którym możesz wprowadzić nie
tylko nazwę tworzonego folderu, lecz również napęd i ścieżkę docelową (np.
"c:\test"). Jeżeli zrezygnujesz z wyspecyfikowania ścieżki dostępu, skrypt umieści
nowy podfolder w aktualnym katalogu. Gdyby folder o podanej nazwie istniał w
docelowym miejscu na dysku, skrypt wyświetli odpowiedni komunikat i poprosi o
wybranie innej nazwy.
Aby mieć szybki dostęp do funkcji tworzenia nowego folderu, zaleca się umieścić ją
w kontekstowym menu Eksploratora. Także to zadanie można zaimplementować w
skrypcie Visual Basica. Skrypt pokazany w przykładowym pliku NEWKEY.VBS
(patrz ilustracja) zakłada w Rejestrze nowy klucz, który zawiera ścieżkę dostępu do
pliku NFOLDER.VBS. Trzeba zmodyfikować ścieżkę podaną w skrypcie
NEWKEY.VBS zgodnie z lokalizacją pliku NFOLDER.VBS na dysku. Gdy po
utworzeniu klucza, uruchomisz Eksplorator i klikniesz prawym klawiszem myszy
plik lub folder, znajdziesz w menu kontekstowym polecenie Nowy Folder. Za nim
kryje się okno dialogowe Nazwa foldera.
Sterowanie funkcjami Eksploratora za pośrednictwem skryptów. Skrypty Visual
Basica umożliwiają przywoływanie funkcji Eksploratora, które znajdziesz wyłącznie
w menu Start lub menu kontekstowym paska narzędzi. Także w tym przypadku
musisz najpierw utworzyć odwołanie do żądanego obiektu:
set Shell=Wscript.CreateObject("Shell.Application")
Zwięzła instrukcja: Shell.Open "<nazwa_katalogu>"
uruchamia Eksplorator i otwiera podany katalog. Można ją wykorzystać do wielu
zastosowań. Pozwala np. w szybki sposób otworzyć obok siebie dwa okna
Eksploratora po to, by za pomocą myszy ("przeciągnij i upuść") kopiować i przenosić
pliki. Polecenie "Shell.Open" należy przywołać w tym celu dwukrotnie (raz dla
lewego i raz dla prawego panelu). Aby zmaksymalizować okna i ustawić je obok
siebie, użyj instrukcji
Shell.TileVertically
Kompletny listing dwuokienkowego pulpitu zamieszczamy na płycie (plik
PANELE.VBS). Jak się okazuje, w obiekcie Eksploratora kryje się więcej przydatnych
poleceń. Przykładowo, instrukcja "Shell.ShutdownWindows" zamyka Windows, zaś
"Shell.Suspend" przełącza system w stan oczekiwania.
Wyszukiwanie i instalowanie nowych funkcji. Do ustalenia, które aplikacje są
Zgłoś jeśli naruszono regulamin