Archiwum
- LATANIE W KATARZE
- Przyznaj to ,przyznaj tamto ... czyli ... ?
- Telewizory 3D i odtwarzacze Blu-ray 3D w USA, czyli ogromna ofensywa marketingowa i r
- dot A i dot U, czyli nowe, cienkie notebooki od Packard Bell
- Mass Effect 3, Dragon Age II oraz Dead or Alive 5 - czyli plotek o E3 ciąg dalszy
- Bitwa z żołnierzami Imperium, czyli nowy film z gry Star Wars: The Old Republic
- AMD Fusion, czyli procesor centralny i grafika DirectX 11 w jednym układzie
- Instalowanie gier i system osiągnięć w 3DS? Czyli plotek o nowej konsolce Nintendo ci
- Sterowanie systemem Windows za pomocą programu NirCmd (Windows XP, Vista, 7)
- ASUS Eee PC 1015T, czyli netbook z AMD i ATI na pokładzie
- Hyper-X blu, czyli nowa seria modułów pamięci RAM, od firmy Kingston
- zanotowane.pl
- doc.pisz.pl
- pdf.pisz.pl
- conclusum.xlx.pl
Cytat
Długie szaty krępują ciało, a bogactwa duszę. Sokrates
I byłem królem. Lecz sen przepadł rankiem. William Szekspir (właść. William Shakespeare, 1564 - 1616)
Dalsza krewna: Czy śmierć to krewna? - życia pytasz się kochanie, tak krewna, ale dalsza, już na ostatnim planie. Sztaudynger Jan
Dla aktywnego człowieka świat jest tym, czym powinien być, to znaczy pełen przeciwności. Luc de Clapiers de Vauvenargues (1715 - 1747)
A ludzie rzekną, że nieba szaleją, a nieba rzekną: że przyszedł dzień Wiary. Cyprian Kamil Norwid (1821-1883)
aaaaLATANIE W KATARZEaaaa
Witam wszystkich!Dzisiaj miało być o kontrolowaniu standardowych urządzeń wejścia. Pod tą tajemniczą nazwą kryje się po
prostu kontrolowanie myszy i klawiatury :). Spójrzmy na funkcje Send() w pomocy AutoIT. Oto kod, który będziemy
dzisiaj analizować:
Opt("MouseCoordMode", 0) ;Do tej linijki wrócimy na końcu.
run("calc.exe")
winwaitactive("Kalkulator")
Send("{Alt}w{ENTER}")
Send("2+8*2",1)
Send("{ENTER}")
mouseclick("primary", 300,400)
Sleep(2000)
WinClose("Kalkulator")
I teraz pokolei:
run("calc.exe")
winwaitactive("Kalkulator")
Tak niemal zawsze będzie wyglądało uruchamianie aplikacji. Ponieważ kalkulator, czyli calc.exe znajduje się
w folderze system32 nie musimy podawać ścieżki do niego. Jeśli jednak jest inaczej nie wolno nam o niej zapomnieć.
Możemy zacząć od folderu, gdzie znajduje się nasz program, albo podać pełną lokalizacje. Jeśli użyjemy takiego
zapisu:
run("program.exe)
To nasz skrypt najpierw sprawdzi lokalizację, w której znajduje się nasz program, jeśli nc nie znajdzie
sprawdzi ścieżkę systemową (system32), a jeśli tam nic nie znajdzie, to nie uruchomi naszego programu :) (nie
jestem pewien, czy wywali błąd).
A co robi:
winwaitactive("Kalkulator")
Jak sama nazwa wskazuję: Czeka aż uruchmi się kalkulator, mało tego. Kalkulator musi być aktywny(jeśli
uruchomi się zminimalizowany, to musimy na niego kliknąć). A co znaczy słowo Kalkulator? Jest to po prostu nazwa
okna widoczna na pasku tytułowym(tym gdzie znajduje się nasz 'X')
Przechodząc dalej:
Send("{Alt}w{ENTER}")
Send("2+8*2",1)
Send("{ENTER}")
Zobaczmy co tu się zrobi... Hmmm... Może wcisną sie klawisze na naszej klawiaturze. Spójrzmy na klawiaturę
uruchamiając program. Nie, nic sie nie wciska ;). Ale system zachowuje sie tak jakby się wciskało i o to nam
właśnie chodziło. Ale po kolei:
Send("{lAlt}w{ENTER}")
To tak na wszelki wypadek, gdyby ktos miał włączony widok naukowy. Jak można łatwo zaobserwować wcisa nam
się Lewy alt, W, Enter. Następnie mamy:
Send("2+8*2",1)
I tu już jest ciekawiej, bo mamy dwa argumenty. Pierwszy to wciskane klawisze, a drugi? Miałem wam nie
mówić, ale nie mogę was pozostawic nieświadomych. Jest to flaga naszej funkcji. A co to jest flaga? Flaga jest to
argument, który coś określa. Flaga może określać typ danych, może określać rodzaj okna tworzonego przez funkcję,
rodzaj światła w grafice 3D i wiele, wiele innych rzeczy. u nas flaga określa, czy używamy znaków specjalnych.
Jeśli ktoś zajrzał do pomocy autoit, to zapewne wie już o czym mówię.
W pomocy mamy taki zapis, że jeśli w funkcji send użyjemy znaku + - plus, to zostanie on zastapiony przez
naciśnięcie klawisza shift wraz z następnym klawiszem. Tak więc zapis:
Send("+w")
powinien nam wyświetlić wielką literę 'W'. Ale my nie chcemy dużej cyfry 8(czyli znaku *), tylko znak +.
Dlatego właśnie ustawiamy naszą flagę na 1. Inne znaki specjalne to:
! - Alt
^ - ctrl
# - Win logo
+ - Shift
Jeśli o czymś zapomniałem to dopiszę :) wszystko macie w dokumentacji AutoIT.
Spójrzmy teraz na klikanie myszą:
mouseclick("primary", 300,400)
Oczywiście ta funkcja kliknie lewym przyciskiem myszy na współrzędnych 300, 400 (w przybliżeniu położenie '=').
Co znaczy primary? Jest to przycisk myszy którego używamy. Naturalnie można tu też wpisać left, ale co jeśli ktoś ma ustawioną mysz dla leworęcznych? Dlatego właśnie użyłem słowa primary. Inne dostępne przyciski myszy to:
left - lewy
middle - srodkowy
right - prawy
main, lub primary - głowny(lewy)
secondary, lub menu - dodatkowy(prawy)
jeśli nie podamy współrzędnych, to mysz tylko kliknie, bez przemieszczania sie. Inne funkcje myszy to:
MouseClickDrag(przycisk, x1, y1, x2, y2) - Klasyczne przeciągnięcie z wciśniętym przyciskiem myszy.
MouseDown(pzycisk) - wcisniecie przycisku myszy i nie puszczanie go
MouseUp(przycisk) - Zgadnijcie :)
MouseGetCusor() - Zwraca aktualny kursor (wartosci zwracane wypisane sa w dokumentacji) - zwraca? Pamietacie zmienne? Wklada do koperty :)
MouseGetPos(flaga) - zwraca wspolrzedne myszy w dwuelementowej tablicy(o tym pozniej). Flagi: 0 - obie, 1 -tylko x, 2 -tylko y.
MouseMove(x,y) - Przenosi mysz na dane wspolrzedne
MouseWheel(kierunek, ilosc) - Kreci kolkiem myszy w danym kierunku (up, lub down o okreslona ilosc razy)
I na zakonczenie tajemnicze Opt na poczatku kodu :) Chciałem wam na nie zrobić chrapkę. A okazuje się, że jest to zwykłe ustawianie flag i w naszym przypadku:
Opt("MouseCoordMode", 0)
Ustawia współrzędne myszy w naszym przypadku ograniczymy się do współrzędnych naszej aplikacji. Dostępne są jeszcze współrzędne Clienta(Aplikacja+Pasek tytułowy) i współrzędne pulpitu. Jak zwykle odsyłam do pomocy AutoIT. No i to by było na tyle, bo urwałem w połowie i nie pamiętam co miałem jeszcze napisa. W następnej części upragnione okienka, a później trochę prawdziwej praktyki tworzenia botów :)
Byłbym niezmiernie wdzięczny, gdyby ktoś zechciał wrzucić Screeny, bo informatycy, to z natury leniwe bestie :].
Zezwalam na kopiowanie poradnika tylko z dołączonym linkiem i BANNEREM swiata gier! (tego serwisu) i oczywiście tylko i wyłącznie z tym dopiskiem.
Pozdrawiam:
WaY