DOS-owy zawrót głowy

W AM~39 ukazał się art Ano.nim'a pt. "Poradnik hackera", w którym autor przedstawia czytelnikom różne zastosowania systemu DOS. Tekst ten zawierał również małe programy wsadowe, na przykład zapisujące do pliku aktualną datę i godzinę. Podczas czytania tego arta, zaraz przypomniały mi się stare, dobre czasy, kiedy to sam babrałem się w tego typu programikach. Szczególnie mile wspominam te długie godziny, spędzone na bezskutecznych poszukiwaniach sposobu na zapisanie daty i godziny do pliku, grrr... ;) Zacząłem nawet robić stronę internetową o DOS-ie... Ech, stare dzieje.

W każdym razie, sprowokowany artem Ano.nim'a, zacząłem przeglądać programy wsadowe, które kiedyś pisałem. I odkryłem jeden, który ma całkiem praktyczne zastosowanie i może przyda się niejednemu z Szanownych Czytelników. A służy on do... automatycznego zmieniania tapet w Windowsie! Dzięki niemu tapeta zmienia się po każdorazowym uruchomieniu komputera.

Program (kod programu) wygląda tak:

CD C:\zmiana
IF EXIST aktual01.tap SET AKTUAL=02
IF EXIST aktual02.tap SET AKTUAL=03
IF EXIST aktual03.tap SET AKTUAL=01

REN aktual*.tap aktual%AKTUAL%.tap
COPY tapeta%AKTUAL%.bmp ustawion.bmp

Jeśli nie miałeś zbyt dużo do czynienia z DOS-em, program może wydawać Ci się niezrozumiały, ale tak naprawdę jest całkiem prosty. Sprawmy, aby działał. Najpierw należy utworzyć kilka plików i folerów. Zróbmy to w systemie DOS, tak dla treningu. W tym celu włącz DOS-a (np. przez C:\Windows\command.com) i wpisz kilka komend, zatwierdzając każdą enterem:

mkdir c:\zmiana
echo. > c:\zmiana\aktual03.tap
echo. > c:\zmiana\zmiana.bat
echo c:\zmiana\zmiana.bat >> C:\autoexec.bat

Nie musisz jednak wpisywać tych komend ręcznie w DOS-ie. Zamiast tego można utworzyć z nich program wsadowy, wklejając je do pliku z rozszerzeniem *.bat (czyli nazwa.bat) i uruchamiając go.

Następnie edytuj Notatnikiem plik C:\zmiana\zmiana.bat (kliknij na niego prawym przyciskiem myszy i kliknij opcję "edytuj"), wklej tam kod programu do zmieniania tapet i zapisz.

Teraz pozostaje jeszcze skopiować do folderu C:\zmiana jakieś trzy tapety (niech będą to bitmapy) i nazwać je: tapeta01.bmp, tapeta.02.bmp i tapeta03.bmp. Oczywiście, jeśli chcesz użyć plików JPG, nazwij je tapeta01.jpg itd. W takim wypadku pamiętaj jednak, żeby w kodzie programu do zmieniania tapet zamienić wszystkie "bmp" na "jpg".

A teraz uruchom komputer ponownie i... nic się nie stało. Ale to tylko pozory. W folderze C:\zmiana pojawił się nowy plik o nazwie ustawion.bmp (albo ew. ustawion.jpg). Teraz wystarczy tylko, że ustawisz go jako tapetę pulpitu. Uruchom komputer ponownie jeszcze kilka razy i rozkoszuj się efektami :)


W tym momencie mógłbym zakończyć arta, ale zakładam, że jesteś dociekliwym czytelnikiem i chcesz dowiedzieć się, jak mój program działa. Po pierwsze, uruchamia się on za każdym razem, kiedy włączysz Windowsa. Dzieje się tak dlatego, że za pomocą komendy echo c:\zmiana\zmiana.bat >> C:\autoexec.bat do pliku autoexec.bat zostało dopisane polecenie uruchamiające program.

Zajmijmy się kodem mojego programu. Komenda CD C:\zmiana informuje program, że wszystkie operacje przeprowadzane będą w katalogu C:\zmiana. Następne trzy linie sprawiają, że "wie" on, która tapeta jest aktualnie ustawiona. Mówi mu o tym nazwa pliku aktual...tap. Np. jeśli plik nazywa się akurat aktual01.tap, to znaczy, że na pulpicie wyświetlona jest tapeta z pliku tapeta01.bmp. Jeśli znasz trochę angielski, pewnie wiesz, że linia IF EXIST aktual01.tap SET AKTUAL=02 tłumaczy się: JEŚLI ISTNIEJE (plik) aktual01.tap, USTAW (zmienną) AKTUAL NA 02. Zmiennej o nazwie AKTUAL zostanie nadana wartość 02.

Wartość ta zostanie następnie wykorzystana w ostatnich dwóch liniach programu. Skoro w naszym przykładzie zmienna została ustawiona na 02, polecenie:

REN (czyli zmień nazwę pliku) aktual*.tap (na nazwę) aktual%AKTUAL%.tap
będzie miało postać: REN aktual*.tap aktual02.tap, a polecenie:
COPY (kopiuj zawartość pliku) tapeta%AKTUAL%.bmp (do pliku) ustawion.bmp
będzie wyglądało tak: COPY tapeta02.bmp ustawion.bmp.

W ten prosty sposób nazwa pliku aktual01.tap zmieni się na aktual02.tap, a w pliku ustawion.bmp (który jest ustawiony na tapetę pulpitu i wygląda jak plik tapeta01.bmp) znajdzie się grafika z tapety o nazwie tapeta02.bmp.

To już wszystko. Jeśli chcesz dodać jeszcze jedną tapetę, wystarczy, że dokopiujesz plik o nazwie tapeta04.bmp do folderu C:\zmiana, i zmienisz pierwsze linie programu na:
IF EXIST aktual01.tap SET AKTUAL=02
IF EXIST aktual02.tap SET AKTUAL=03
IF EXIST aktual03.tap SET AKTUAL=04
IF EXIST aktual04.tap SET AKTUAL=01
I tak dalej, jeśli chcesz więcej tapet...
 

napisał:
 
WUNDŻUN
wundzunhome@wp.pl
 
 

PS. Słuchałem V Symfonii c-moll Ludwika van Beethovena.