Podstawy pracy z AutoHotkey

> Dodaj do ulubionych

Tworzenie skryptu

Skrypt jest plikiem tekstowym zawieraj─ůcym zestaw polece┼ä do wykonania przez program (AutoHotkey.exe). Skrypt mo┼╝e zawiera─ç skr├│ty klawiszowe i skr├│ty ┼éa┼äcuchowe, a nawet w ca┼éo┼Ťci si─Ö z nich sk┼éada─ç. Je┼Ťli nie ma ┼╝adnych z tych skr├│t├│w, skrypt zostaje wykonany liniowo od pocz─ůtku do ko┼äca w chwili uruchomienia.

Aby utworzy─ç nowy skrypt:

  1. Pobierz i zainstaluj program AutoHotkey.
  2. Kliknij prawym przyciskiem myszy puste miejsce na pulpicie albo w dowolnym folderze.
  3. W menu, kt├│re si─Ö pojawi wybierz opcj─Ö Nowy -> AutoHotkey Script (mo┼╝na te┼╝ klikn─ů─ç pozycj─Ö Nowy -> Dokument tekstowy).
  4. Wpisz nazwę pliku i dodaj rozszerzenie .ahk. Na przykład: Test.ahk
  5. Kliknij utworzony plik prawym przyciskiem myszy, aby otworzy─ç skrypt.
  6. W pustym wierszu wpisz poni┼╝sze polecenie:
    #space::Run www.google.pl

W przedstawionym powy┼╝ej skrypcie znak # oznacza klawisz Windows, a wi─Öc #space oznacza skr├│t klawiszowy sk┼éadaj─ůcy si─Ö z klawisza Windows i spacji. Znaki :: oznaczaj─ů, ┼╝e to co znajduje si─Ö za nimi powinno zosta─ç wykonane w reakcji na naci┼Ťni─Öcie zdefiniowanego przed nimi skr├│tu klawiszowego. W tym przypadku nast─Öpuje otwarcie wyszukiwarki Google. Aby wypr├│bowa─ç dzia┼éanie tego skryptu, wykonaj nast─Öpuj─ůce czynno┼Ťci:

  1. Zapisz i zamknij plik.
  2. Kliknij dwukrotnie plik, aby go uruchomić. W obszarze powiadomień pojawi się nowa ikona.
  3. Naci┼Ťnij klawisz Windows i trzymaj─ůc go naci┼Ťnij spacj─Ö. Nast─ůpi otwarcie strony internetowej w domy┼Ťlnej przegl─ůdarce.
  4. Aby wy┼é─ůczy─ç lub zmodyfikowa─ç skrypt, kliknij prawym przyciskiem myszy znajduj─ůc─ů si─Ö w obszarze powiadomie┼ä zielon─ů ikon─Ö z liter─ů H.

Uwagi:

Uruchamianie program├│w i otwieranie dokument├│w

Do uruchamiania programów oraz otwierania dokumentów, adresów URL i skrótów służy polecenie Run. Oto kilka przykładów jego użycia:

Run Notepad
Run C:Moje dokumentyAdresy.doc
Run C:Moje dokumentyM├│j skr├│t.lnk
Run www.yahoo.com
Run mailto:kto┼Ť@gdzie┼Ť.com

Ka┼╝demu z powy┼╝szych polece┼ä mo┼╝na przypisa─ç skr├│t klawiszowy reprezentowany w skrypcie przez tzw. etykiet─Ö skr├│tu klawiszowego. Pierwsze z poni┼╝szych polece┼ä definiuje skr├│t Win+N, a drugie — Control+Alt+C:

#n::Run Notepad
^!c::Run calc.exe

Powy┼╝ej przedstawione s─ů przyk┼éady skr├│t├│w jednowierszowych, czyli takich kt├│re mieszcz─ů si─Ö w jednej linijce tekstu. Aby spowodowa─ç wykonanie kilku polece┼ä przez jeden skr├│t klawiszowy, ka┼╝de z nich nale┼╝y umie┼Ťci─ç w osobnym wierszu pod definicj─ů skr├│tu klawiszowego, a ca┼éo┼Ť─ç zako┼äczy─ç s┼éowem kluczowym return. Na przyk┼éad:

#n::
Run http://www.google.com
Run Notepad.exe
return

Je┼Ťli program lub dokument nie jest integraln─ů cz─Ö┼Ťci─ů systemu, nale┼╝y poda─ç do niego pe┼én─ů ┼Ťcie┼╝k─Ö:

Run %A_ProgramFiles%WinampWinamp.exe

Napis %A_ProgramFiles% to jedna ze zmiennych wbudowanych. Dzi─Öki u┼╝yciu jej zamiast ┼Ťcie┼╝ek typu C:Program Files zwi─Öksza si─Ö szanse, ┼╝e skrypt b─Ödzie dzia┼éa┼é tak┼╝e na innych komputerach. Uwaga: w nazwach polece┼ä i zmiennych nie s─ů rozr├│┼╝niane wielkie i ma┼ée litery. Na przyk┼éad „Run” to to samo, co „run”, a „A_ProgramFiles” jest tym samym, co „a_programfiles”.

Aby skrypt pozwalał programowi lub dokumentowi na zamknięcie przed kontynuowaniem działania, należy zamiast Run użyć polecenia RunWait. Na przykład poniższy skrypt wykona polecenie MsgBox dopiero, gdy użytkownik zamknie program Notatnik:

RunWait Notepad
MsgBox Użytkownik zakończył pracę (Notatnik został zamknięty).

Generowanie zdarze┼ä naci┼Ťni─Öcia klawisza i przycisk├│w myszy

Do generowania zdarze┼ä naci┼Ťni─Öcia klawisza do aktywnego (b─Öd─ůcego na wierzchu) okna s┼éu┼╝y polecenie Send. Poni┼╝ej znajduje si─Ö przyk┼éadowy skrypt powoduj─ůcy automatyczne wpisanie podpisu wiadomo┼Ťci e-mail po naci┼Ťni─Öciu skr├│tu klawiszowego Ctrl+Alt+S (aby to zadzia┼éa┼éo, musi by─ç aktywne okno edytora tekstu albo edytora wiadomo┼Ťci klienta pocztowego).

^!s::
Send Z powa┼╝aniem,{Enter}Jan Kowalski
return

Wszystkie znaki opr├│cz ci─ůgu {Enter}, kt├│ry reprezentuje naci┼Ťni─Öcie klawisza Enter, zostan─ů wys┼éane na wyj┼Ťcie dos┼éownie. Poni┼╝szy przyk┼éad ilustruje spos├│b wstawiania innych cz─Östo u┼╝ywanych znak├│w specjalnych:

Send ^c!{tab}wklejono:^v

Ten skrypt wysy┼éa naci┼Ťni─Öcia klawiszy Ctrl+C, po nich Alt+Tab, a p├│┼║niej ┼éa┼äcuch „wklejono:”, po kt├│rym nast─Öpuje wys┼éanie klawiszy Ctrl+V. Pe┼éna lista znak├│w specjalnych i klawiszy znajduje si─Ö w opisie polecenia Send.

Naci┼Ťni─Öcia klawiszy mo┼╝na tak┼╝e wysy┼éa─ç w reakcji na wpisanie w tek┼Ťcie wybranych skr├│t├│w. S─ů to tzw. skr├│ty ┼éa┼äcuchowe. Poni┼╝szy skrypt na przyk┼éad zamienia wszystkie wyst─ůpienia skr├│tu MM, po kt├│rych znajduje si─Ö spacja lub przecinek na napis „Marilyn Manson”:

::MM::Marilyn Manson

Naci┼Ťni─Öcia przycisk├│w myszy: aby wys┼éa─ç do okna naci┼Ťni─Öcie przycisku myszy, najpierw trzeba pozna─ç wsp├│┼érz─Ödne X i Y miejsca, w kt├│rym to klikni─Öcie ma nast─ůpi─ç. Informacj─Ö t─Ö mo┼╝na zdoby─ç przy u┼╝yciu dost─Öpnych wraz z programem AutoHotkey narz─Ödzi AutoScriptWriter i Window Spy. Poni┼╝ej znajduje si─Ö opis metody z wykorzystaniem narz─Ödzia Window Spy:

  1. Uruchom narz─Ödzie Window Spy z poziomu ikony w zasobniku systemowym albo z menu Start.
  2. Aktywuj interesuj─ůce Ci─Ö okno klikaj─ůc jego pasek tytu┼éu, przechodz─ůc do niego za pomoc─ů klawisza Tab lub korzystaj─ůc z dowolnego innego sposobu (okno narz─Ödzia Window Spy jest domy┼Ťlnie zawsze na wierzchu).
  3. Przesu┼ä kursor w ┼╝─ůdane miejsce w oknie docelowym i zanotuj wsp├│┼érz─Ödne, kt├│re zostan─ů wy┼Ťwietlone w oknie narz─Ödzia Window Spy (w systemie Windows XP i starszych nale┼╝y nacisn─ů─ç kombinacj─Ö klawiszy Shift-Alt-Tab, aby aktywowa─ç okno Windows Spy i skopiowa─ç „zamro┼╝one” wsp├│┼érz─Ödne).
  4. Użyj zdobytych współrzędnych w poleceniu Click. Poniższy przykładowy skrypt wysyła kliknięcie lewym przyciskiem myszy:
    Click 112, 223

Aby przesun─ů─ç kursor bez klikania, nale┼╝y u┼╝y─ç polecenia MouseMove. Aby dokona─ç przeci─ůgni─Öcia mysz─ů, nale┼╝y u┼╝y─ç polecenia MouseClickDrag.

Aktywowanie okien i manipulowanie nimi

Aby aktywowa─ç okno (przenie┼Ť─ç je na wierzch), nale┼╝y u┼╝y─ç polecenia WinActivate. Do sprawdzania czy dane okno istnieje, s┼éu┼╝─ů polecenia IfWinExist i WinWait. Poni┼╝ej znajduj─ů si─Ö przyk┼éady zastosowania tych polece┼ä:

IfWinExist Bez tytu┼éu — Notatnik
{
    WinActivate
}
else
{
    Run Notepad
    WinWait Bez tytu┼éu — Notatnik
    WinActivate
}

Przedstawiony powy┼╝ej skrypt najpierw sprawdza czy istnieje okno, kt├│rego tytu┼é zaczyna si─Ö od s┼é├│w „Bez tytu┼éu — Notatnik” (wielko┼Ť─ç liter jest rozpoznawana) i je┼Ťli je znajdzie, to je aktywuje. W przeciwnym przypadku zostaje uruchomiony program Notatnik (Notepad) i skrypt czeka na pojawienie si─Ö okna bez tytu┼éu, aby je aktywowa─ç. W skrypcie tym zosta┼éo tak┼╝e wykorzystane ostatnie znalezione okno w celu unikni─Öcia konieczno┼Ťci okre┼Ťlania tytu┼éu okna dla ka┼╝dej instrukcji WinActivate.

Inne cz─Östo u┼╝ywane polecenia dotycz─ůce okien to:

  • IfWinActive: sprawdza czy dane okno jest aktywne.
  • WinWaitActive: zmusza program do poczekania, a┼╝ dane okno stanie si─Ö aktywne (zazwyczaj u┼╝ywane po wys┼éaniu skr├│tu klawiszowego aktywuj─ůcego okno, np. Ctrl+F w┼é─ůczaj─ůcego funkcj─Ö wyszukiwania).
  • WinClose: zamyka okno.
  • WinMove: przenosi okno i ewentualnie zmienia jego rozmiar.
  • WinMinimize, WinMaximize, WinRestore: odpowiednio minimalizuje, maksymalizuje lub przywraca okno.

Pobieranie danych od u┼╝ytkownika za pomoc─ů polece┼ä MsgBox, InputBox itp.

Poni┼╝szy skrypt powoduje wy┼Ťwietlenie okna dialogowego z przyciskami Tak i Nie:

MsgBox, 4, , Czy chcesz kontynuowa─ç?
IfMsgBox, No
    return
; W przeciwnym przypadku użytkownik wybrał Tak.
MsgBox Naci┼Ťni─Öto Tak.

Aby umożliwić użytkownikowi wpisanie tekstu, należy użyć polecenia InputBox. Aby umożliwić użytkownikowi wybranie pliku lub folderu, należy użyć odpowiednio polecenia FileSelectFile lub FileSelectFolder. Aby utworzyć niestandardowy formularz i interfejs użytkownika, należy posłużyć się poleceniem Gui.

Wskaz├│wka: na podstawie przedstawionych wcze┼Ťniej przyk┼éad├│w mo┼╝na si─Ö domy┼Ťli─ç, ┼╝e pierwszy przecinek w ka┼╝dym poleceniu jest nieobowi─ůzkowy (z wyj─ůtkiem sytuacji, gdy pierwszy parametr jest pusty lub zaczyna si─Ö od znak├│w := lub = albo polecenie znajduje si─Ö na pocz─ůtku sekcji kontynuacji). Na przyk┼éad:

MsgBox To jest poprawne.
MsgBox, To te┼╝ jest poprawne (tu nie opuszczono przecinka).

Stosowanie zmiennych i u┼╝ywanie schowka

Zmienna to obszar pami─Öci, w kt├│rym skrypt przechowuje tekst lub liczby. Zmienna zawieraj─ůca tylko cyfry (ewentualnie z punktem dziesi─Ötnym) jest automatycznie interpretowana jako liczba, je┼Ťli zostanie u┼╝yta w dzia┼éaniu matematycznym lub wymagaj─ůcej tego operacji por├│wnania.

Wszystkie zmienne opr├│cz zdefiniowanych lokalnie w funkcjach s─ů globalne, tzn. ich zawarto┼Ť─ç mo┼╝na odczyta─ç i zmodyfikowa─ç w dowolnym miejscu skryptu. Zmiennych nie trzeba deklarowa─ç. Zaczynaj─ů istnie─ç w momencie ich pierwszego u┼╝ycia (ka┼╝da zmienna pocz─ůtkowo jest pusta).

Poni┼╝ej znajduj─ů si─Ö przyk┼éadowe instrukcje przypisania zmiennej ┼éa┼äcucha znak├│w:

MyVar1 = 123
MyVar2 = mój łańcuch
Poni┼╝ej znajduje si─Ö przyk┼éad operacji por├│wnania zawarto┼Ťci zmiennej z liczb─ů lub ┼éa┼äcuchem:
if MyVar2 = mój łańcuch
{
    MsgBox MyVar2 zawiera ┼éa┼äcuch „m├│j ┼éa┼äcuch”.
}
if MyVar1 >= 100
{
    MsgBox MyVar1 zawiera %MyVar1% — liczb─Ö wi─Öksz─ů lub r├│wn─ů 100.
}

W wierszu z instrukcj─ů MsgBox nazwa zmiennej MyVar1 zosta┼éa zapisana mi─Ödzy znakami procentu. Powoduje to wy┼Ťwietlenie zawarto┼Ťci tej zmiennej w tym miejscu. W ten sam spos├│b mo┼╝na skopiowa─ç zawarto┼Ť─ç jednej zmiennej do innej. Na przyk┼éad:

MyVarConcatenated = %MyVar1% %MyVar2%

Powy┼╝sza instrukcja zapisuje ┼éa┼äcuch „123 m├│j ┼éa┼äcuch” (bez cudzys┼éow├│w) w zmiennej MyVarConcatenated.

Aby por├│wna─ç zawarto┼Ť─ç jednej zmiennej z inn─ů, mo┼╝na napisa─ç kod podobny do poni┼╝szego:

if (ItemCount > ItemLimit)
{
    MsgBox Warto┼Ť─ç przechowywana w zmiennej ItemCount, kt├│ra wynosi %ItemCount%, jest wi─Öksza ni┼╝ %ItemLimit%.
}

Nale┼╝y zauwa┼╝y─ç, ┼╝e w pierwszym wierszu powy┼╝szego skryptu znajduj─ů si─Ö nawiasy. Oznacza to, ┼╝e instrukcja if zawiera wyra┼╝enie. Bez nawias├│w wiersz ten zosta┼éby potraktowany jako „instrukcja if bez wyra┼╝enia”, w zwi─ůzku z czym nazw─Ö zmiennej ItemLimit trzeba by by┼éo uj─ů─ç w nawias (w tego typu instrukcjach if mo┼╝na u┼╝y─ç najwy┼╝ej jednego operatora por├│wnywania; tzn. instrukcje te nie mog─ů zawiera─ç operator├│w arytmetycznych ani logicznych, jak AND i OR).


Działania matematyczne
: wynik wyra┼╝enia matematycznego nale┼╝y przypisa─ç do zmiennej za pomoc─ů operatora sk┼éadaj─ůcego si─Ö z dwukropka i znaku r├│wno┼Ťci :=, jak pokazano w poni┼╝szym przyk┼éadzie:

NetPrice := Price * (1 – Discount/100)

Pełna lista operatorów matematycznych znajduje się w dokumentacji wyrażeń.


Schowek: istnieje specjalna zmienna o nazwie Clipboard, kt├│ra przechowuje aktualn─ů zawarto┼Ť─ç schowka systemu Windows. Mimo to mo┼╝na jej u┼╝ywa─ç tak samo, jak ka┼╝dej innej zmiennej. Na przyk┼éad poni┼╝sza instrukcja wy┼Ťwietla bie┼╝─ůc─ů zawarto┼Ť─ç schowka:

MsgBox %clipboard%

Poni┼╝ej znajduje si─Ö przyk┼éadowy skrypt ilustruj─ůcy modyfikowanie schowka. Skrypt ten zast─Öpuje aktualn─ů zawarto┼Ť─ç schowka nowym tekstem:

clipboard = Wiersz tekstu.`r`nDrugi wiersz tekstu.`r`n

Napisy `r i `n (akcent i litera „r” lub „n”) reprezentuj─ů dwa znaki specjalne: powr├│t karetki i znak nowego wiersza. Znaki te oznaczaj─ů rozpocz─Öcie nowego wiersza tak, jakby zosta┼é naci┼Ťni─Öty klawisz Enter.

Aby doda─ç tekst do schowka (lub innej zmiennej), mo┼╝na napisa─ç instrukcj─Ö podobn─ů do poni┼╝szej:

clipboard = %clipboard% Tekst, kt├│ry ma zosta─ç dodany.

Aby dowiedzie─ç si─Ö wi─Öcej, zobacz cz─Ö┼Ťci dokumentacji po┼Ťwi─Öcone schowkowi i zmiennym.

Wielokrotne wykonywanie czynno┼Ťci

Aby wykona─ç jakie┼Ť dzia┼éanie kilka razy po kolei, nale┼╝y u┼╝y─ç p─Ötli. Poni┼╝sza p─Ötla trzy razy wy┼Ťwietla okno MsgBox:

Loop 3
{
    MsgBox To okno zostanie wy┼Ťwietlone trzy razy.
}

Za s┼éowem kluczowym Loop mo┼╝na umie┼Ťci─ç zmienn─ů, co jest przydatne w sytuacjach, gdy o liczbie powt├│rze┼ä decyduje jaka┼Ť inna cz─Ö┼Ť─ç skryptu:

Loop %RunCount%
{
    Run C:Check Server Status.exe
    Sleep 60000  ; Czeka 60 sekund.
}

Powy┼╝sza p─Ötla zostanie wykonana okre┼Ťlon─ů liczb─Ö razy, pod warunkiem, ┼╝e zmienna RunCount nie b─Ödzie mia┼éa warto┼Ťci 0, w kt├│rym to przypadku p─Ötla ta zosta┼éaby w og├│le pomini─Öta.

P─Ötla mo┼╝e tak┼╝e samoczynnie zako┼äczy─ç dzia┼éanie, gdy zmieni si─Ö jeden warunek lub wi─Öcej. Poni┼╝szy skrypt wysy┼éa klikni─Öcia lewym przyciskiem myszy przez ca┼éy czas, gdy u┼╝ytkownik trzyma wci┼Ťni─Öty klawisz F1:

$F1::  ; Zamiana klawisza F1 w skr├│t klawiszowy (znak $ umo┼╝liwia zastosowanie trybu „P” u┼╝ytego poni┼╝ej polecenia GetKeyState).
Loop  ; Poniewa┼╝ nie podano ┼╝adnej liczby, p─Ötla ta b─Ödzie dzia┼éa─ç w niesko┼äczono┼Ť─ç albo do napotkania w swoim kodzie instrukcji „break” lub „return”.
{
    if not GetKeyState("F1", "P")  ; Je┼Ťli warto┼Ťci─ů tej instrukcji jest prawda, oznacza to, ┼╝e u┼╝ytkownik zwolni┼é klawisz F1.
        break  ; Wyj┼Ťcie z p─Ötli.
    ; W przeciwnym przypadku (poniewa┼╝ nie nast─ůpi┼éo przerwanie) klikanie jest kontynuowane.
    Click  ; Klikni─Öcie lewym przyciskiem myszy w miejscu, w kt├│rym znajduje si─Ö kursor.
}
return

Gdy u┼╝ytkownik zwolni klawisz F1, p─Ötla to wykryje i zatrzyma si─Ö dzi─Öki instrukcji break. Break powoduje przeniesienie sterowania do wiersza znajduj─ůcego si─Ö za klamr─ů zamykaj─ůc─ů p─Ötli.

Ten sam efekt mo┼╝na tak┼╝e uzyska─ç przy u┼╝yciu p─Ötli while:

$F1::
while GetKeyState("F1", "P")  ; Dop├│ki klawisz F1 jest wci┼Ťni─Öty.
{
    Click
}
return

Powyżej zostały przedstawione pętle o zastosowaniu ogólnym. Istnieje też kilka rodzajów pętli o specjalnych zastosowaniach:

Odczyt i zapis plik├│w: p─Ötla s┼éu┼╝─ůca do pobierania z pliku tekstowego tekstu po jednej linijce. Za jej pomoc─ů mo┼╝na na przyk┼éad przekszta┼éci─ç plik na inny format, zmieniaj─ůc ka┼╝d─ů linijk─Ö osobno. Mo┼╝na te┼╝ u┼╝y─ç jej do wyszukiwania wierszy tekstu spe┼éniaj─ůcych okre┼Ťlone kryteria.

P─Ötla dzia┼éaj─ůca na plikach i folderach: p─Ötla s┼éu┼╝─ůca do pobierania po jednym okre┼Ťlonych plik├│w lub folder├│w. Za jej pomoc─ů mo┼╝na wykona─ç wybrane dzia┼éania na ka┼╝dym pliku lub folderze spe┼éniaj─ůcym zadane kryteria.

P─Ötla parsuj─ůca: pobiera pojedynczo fragmenty ┼éa┼äcuch├│w. Za jej pomoc─ů mo┼╝na ┼éatwo rozbi─ç ┼éa┼äcuch „czerwony, zielony, niebieski” na trzy elementy.

P─Ötla rejestru: pobiera po jednym elemencie zawarto┼Ťci okre┼Ťlonego podklucza rejestru.

Praca na plikach i folderach

Do dodawania tekstu na ko┼äcu plik├│w (i tworzenia nowych plik├│w) s┼éu┼╝y polecenie FileAppend, kt├│rego przyk┼éad u┼╝ycia pokazano poni┼╝ej. U┼╝yto w nim symbolu `n (nowy wiersz), aby po zako┼äczeniu dzia┼éania rozpocz─ů─ç nowy wiersz:

FileAppend, Linijka tekstu, kt├│ra ma zosta─ç dodana.`n, C:Moje dokumentyM├│j plik tekstowy.txt

Aby zast─ůpi─ç istniej─ůcy plik nowym, nale┼╝y przed poleceniem FileAppend u┼╝y─ç polecenia FileDelete. Na przyk┼éad:

FileDelete, C:Moje dokumentyM├│j plik tekstowy.txt

Inne cz─Östo u┼╝ywane polecenia dotycz─ůce plik├│w i folder├│w to:

5 komentarzy do “Podstawy pracy z AutoHotkey”

  1. Hej
    czy m├│g┼éby┼Ť mi napisa─ç jak przez .ahk podmieni─ç kombinacje klawiszy na inny pojedy┼äczy klawisz, dok┼éadnie jest to Fn+PgUp chc─Ö zamieni─ç na Home.

    Czy tym programem mo┼╝na przypisa─ç do klawisza funkcje z menu w przegl─ůdarce, je┼Ťli tak to jak, dzieki.

  2. Proszee powied┼║cie mi jak zrobi─ç ,aby klikaj─ůc klawisz ,,insert” komputer odczyta┼é to jako nastepujace klikni─Öcia
    ,,Klawisz T , strza┼éka w g├│r─Ö , enter”

  3. Witam, potrzebuje skryptu od jakiego┼Ť magika. Przy przytrzymaniu prawego przycisku funkcyjnego windowsa, przytrzymuj─ů sie lewy alt i lewy ctrl. Pozdrawiam, jest szansa na to ?

  4. ucz─Ö sie powoli ­čÖé
    otwiera mi stron─Ö internetow─ů ale gdy pr├│buje zeby klik┼éo na wyszukiwark─Ö na stronie nic si─Ö nie dzieje .
    Ale gdy uda mi się to zrobić będę chciał żeby tam wpisało teks i zaczęło wyszukiwać .

Mo┼╝liwo┼Ť─ç komentowania zosta┼éa wy┼é─ůczona.