Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Skrypt dla addona [autoit]


Rekomendowane odpowiedzi

Opublikowano

Poradnik nie jest mój

Źrodło:

62533231.png

WindowsMX.pl

 

Poradnik ten przeznaczony jest dla osób które chciałyby stworzyć addona dla Windows XP lecz ów program nie posiada przełączników cichej instalacji lub standardowe ustawienia instalatora (lokalizacja instalacji, typ instalacji etc.) nam nie odpowiadają. Jeśli jesteś taką osobą lub interesuje Cię w jaki sposób taki skrypt powstaje to zapraszam dalej.

 

Na początek trochę teorii

 

Pisanie skryptów dla instalek ogranicza się do zapamiętania składni kilku poleceń języka AutoIT. Są trzy szkoły kodowania takich skryptów:

 

Klawiatura – tutaj poruszamy się po programie instalacyjnym za pomocą „klawiatury” tzn. nasz skrypt wysyła do programu odpowiednie sygnały odpowiadające wybranym klawiszom na klawiaturze (najczęściej TAB, SPACJA, ENTER),

Myszka – ta technika polega na napisaniu kodu w ten sposób by podczas instalacji nasz skrypt klikał w odpowiednie miejsca w programie instalacyjnym według mnie jest to najprostsza i najgorsza metoda ponieważ tutaj nie mamy możliwości pełnej konfiguracji naszej instalacji,

Myszka + klawiatura – to jest połączenie w/w technik w jedną i właśnie tą metodę psiania skryptów przedstawię w tym poradniku ponieważ łączy się w niej prostotę myszki i możliwość pełnej konfiguracji programu za pomocą klawiatury i dodatkowo gdyby ktoś chciał spróbować innej techniki pisania to nie będzie miał problemów bo pozna polecenia dla klawiatury i myszy.

 

Dobra teraz trochę spraw technicznych, ponieważ AutoIT jest jak to ładnie Wikipedia podaje „interpretowanym językiem skryptowym” to potrzebujemy interpretera który odczyta nasz skrypt i wykona jego polecenia lub skompiluje go do gotowej binarki (dla tych co nie znają pojęcia kompiluj polecam lekturę). Będziemy potrzebować także dobrego edytora, oczywiście notatnikiem da się napisać skrypcik ale nie polecam, gdyż autorzy pomyśleli też i o tym aspekcie i przygotowali specjalną wersję SciTE Script Editor przystosowaną dla potrzeb języka AutoIT. Będziemy potrzebować jeszcze jednego narzędzia o którym wspomnę w późniejszym czasie, na razie musisz wiedzieć, że wszystko czego potrzebujesz do pisania skryptów to pobranie tego pliku i zainstalowanie go.

 

Jeszcze tylko kilka prostych kwestii i będziemy mogli zacząć pisanie skryptu:

 

Zmienna – w naszym przypadku zmienne będą przechowywać informacje takie jak Ścieżka instalacji, Serial etc.

Plik skryptu – skrypty będziemy zapisywać do plików z rozszerzeniem *.au3

Komentarze – dobrym zwyczajem jest dodawanie komentarzy przy ważniejszych momentach i nie tylko, jak to robić dowiesz się niebawem

 

Dobra to byłoby na razie tyle teorii resztę będę tłumaczył na bieżąco.

 

 

Piszemy skrypt - Praktyka

 

Teraz przejdźmy do sedna tego poradnika czyli napisania skryptu dla instalki, przykładem będzie tutaj program Winamp 5.541 Full PL

 

Najpierw utwórz sobie na dysku jakiś folder do którego skopiujesz wersję instalacyjną programu (proponuję nazwę autoskrypt) i utworzysz nowy plik *.au3 (PPM>Nowy>AutoIT v3 Script) o nazwie winamp.au3

zrzut1ub0.jpg

Musimy otworzyć plik winamp.au3 w trybie edycji w tym celu na pliku klikamy PPM>Edit Script

zrzut2xi4.jpg

 

zrzut3ol6.jpg

i tutaj dochodzimy do sprawy komentarzy otóż jeśli chcemy wprowadzić cały blok komentarza (kilka linijek) musimy użyć do tego celu składni #cs #ce

Kod:

#cs
 Tutaj umieszczamy komentarz
 Tutaj umieszczamy komentarz
#ce

lecz gdy mamy zamiar wstawić pojedynczą linijkę komentarza wystarczy zacząć ją od znaku ;

Kod:
; to jest komentarz

Wracając do zawartości naszego pliku możemy ją usunąć lub wprowadzić odpowiednie zmiany jakie nam pasują

Teraz gdy sprawę komentarza mamy z głowy pora na zadeklarowanie kilku zmiennych w których będziemy przechowywać takie informacje jak lokalizacja instalacji, nazwa w menu start itp.

zrzut5tn5.jpg

 

jak zapewne już zauważyłeś zmienne deklaruje się przy pomocy znaczka $ (dolar) + nazwa (zupełnie jak w PHP), co do nazwy to może składać się z dowolnej kombinacji liczb i liter lecz z wyłączeniem polskich znaków diakrytycznych. Używamy tu także operatora przypisania (=) do nadania zmiennej jakiejś wartości, co do wartości jak zapewne zauważyłeś nie jest to zwyczajna ścieżka. Polecenie @ProgramFilesDir podstawia lokalizację Program Files w zależności od tego na jakim dysku został zainstalowany system w związku z czym wynikiem zapisanym do zmiennej $lokalizacjaInstalacji zostanie przypisana wartość z komentarza z tym, że literą dysku będzie aktualna litera dysku na którym instalowany jest system (domyślnie jest to C:). W tym zapisie jest jeszcze jedna rzecz o której nie wspomniałem a mianowicie ampersand (&) dzięki użyciu tego znaku możliwe jest połączenie ścieżki zwróconej przez @ProgramFilesDir i reszty dopisanej w cudzysłowie, $nazwaMenuStart przechowuje nazwę która zostanie podana w Menu Start, $instalka zawiera nazwę pliku *.exe (wraz z rozszerzeniem) którym jest instalka programu. Wartości zaczynające się od @ są często pomocne, podam i opiszę tutaj kilka najbardziej przydatnych, a resztę można znaleźć w pomocy programu po wpisaniu @ (F1>@)

zrzut6mi4.jpg

 

zrzut7vj1.jpg

 

 

@ProgramFilesDir – lokalizacja Program Files na dysku systemowym

@HomeDrive – zwraca literę dysku systemowego

@WindowsDir– zwraca lokalizację x:\WINDOWS (oczywiście zamiast x litera dysku systemowego)

@ProgramsCommonDir – zwraca lokalizację Start>Wszystkie Programy (dla All Users)

@StartupCommonDir – zwraca lokalizację Autostartu (dla All Users)

@DesktopCommonDir – zwraca lokalizację Pulpitu (dla All Users)

 

 

 

no to teraz muszę się gęsto tłumaczyć . Na początku tego kodu jest proste polecenie Run które jako wartość przyjmuje zawartość zmiennej $instalka tym samym uruchamiając plik winamp5541_full_pl.exe. Następne na liście jest polecenie WinWaitActive które jako wartości przyjmuje tytuł pierwszego okienka które pojawiło się w wyniku działania polecenia Run i jakiś tekst znajdujący się w tym okienku, a działa w ten sposób że aktywuje to okienko tak jak byśmy na nie kliknęli. Teraz zapytasz skąd wiem co wpisać jako te wartości i tutaj właśnie pora poznać to narzędzie którego nie opisałem na początku tylko o nim wspomniałem, otóż jest to AutoIT Window Info (Start>Programy>AutoIt v3>AutoIt Window Info) narzędzie to po najechaniu na okienko programu lub jakiś przycisk pokazuje jego nazwę i teksty (polecam korzystanie z zakładki Summary na której mamy wszystkie informacje o oknie lub obiekcie razem).

zrzut8ot1.jpg

 

Kolejno polecenie ControlCommand przyjmuje jako wartości tytuł okienka, jakiś tekst, nazwę obiektu ComboBox (lista rozwijalna), to co ma wykonać, i nazwę wartości którą ma wybrać (najeżdżamy kursorem na ComboBox a AutoIT Window Info podaje nam nazwę)

zrzut9xb0.jpg

 

 

SelectString – wybiera pozycję tekstową, przydaje się przy wybieraniu jakiejś wartości z ComboBoxa

Check – zaznacza wybrany radio button, przydaje się przy zaznaczaniu opcji dodatkowych lub gdy trzeba przed przejściem dalej wybrać opcję „Zaakceptowałem warunki licencji…”

UnCheck – odznacza wybrany radio button, przydaje się przy odznaczaniu dodatkowych opcji

 

Polecenie w ostatniej linijce to ControlClick w tym wypadku odpowiedzialne jest za kliknięcie w przycisk OK jako wartości przyjmuje tytuł okienka, jakiś tekst i nazwę przycisku na który ma kliknąć (najeżdżamy kursorem na przycisk a AutoIT Window Info podaje nam nazwę)

 

zrzut11sk8.jpg

 

 

w tej części naszego kodu jedynym nieznanym Ci poleceniem jest ControlSetText które po przyjęci wartości tytułu okienka, jakiegoś tekstu, i nazwy pola edycji (nazwa pojawia się w AutoIT Window Info po najechaniu kursorem na odpowiednie pole)

 

 

 

 

podmienia aktualną zawartość na treść znajdującą się w zmiennej $lokalizacjaInstalacji, WinWaitActive aktywuje okno programu instalacyjnego, a ControlClick klika odpowiednio na przyciski Dalej, Zgadzam się, Dalej.

 

 

zrzut13hj2.jpg

 

 

 

No i pojawiło się użycie wspomnianej przeze mnie techniki konfiguracji za pomocą klawiatury bez fizycznego jej użycia, a mianowicie polecenia Send wykonują odpowiednie czynności, te tutaj akurat wyłączają: Agent Winampa, Obsługa zgrywania/nagrywania Sonic, Pulpit nawigacyjny Winampa, Funkcja Auto-Tagger, Winamp DropBox (alfa), Wizualizacje. Odbywa się to przez wysyłanie odpowiednich sygnałów przez skrypt do programu instalacyjnego który rozpoznaje je tak jakby były to naciśnięcia klawiszy: TAB, Strzałka w dół, Strzałka w prawo, Strzałka w lewo, Spacja. Lista nazw dla klawiszy potrzebnych dla stworzenia skryptu techniką klawiatury i nie tylko

 

{UP} – strzałka w górę, użycie: Send("{UP}")

{DOWN} – strzałka w dół, użycie: Send("{DOWN}")

{RIGHT} – strzałka w prawo, użycie: Send("{RIGHT}")

{LEFT} – strzałka w lewo, użycie: Send("{LEFT}")

{SPACE} – spacja, przydaje się do zaznaczania i odznaczania, użycie: Send("{SPACE}")

{ENTER} – enter, przydaje się do przechodzenia dalej bez używania {TAB}, użycie: Send("{ENTER}")

{TAB} – tab, przydaje się do przechodzenia pomiędzy obiektami lub grupami obiektów programu instalacyjnego, użycie: Send("{TAB}")

 

Dodam jeszcze, że zapis tych poleceń nie musi być taki jak na obrazku może być po prostu każda instrukcja klawisza w oddzielnym poleceniu Send lub też wszystko może być w jednym takim poleceniu. WinWaitActive aktywuje okno programu instalacyjnego, a ControlClick klika na przycisk Dalej.

 

zrzut14dq3.jpg

 

Zacznijmy może od podania tych 2 uciętych linijek w całości ponieważ na obrazku się takie długie polecenia nie zmieściły poniżej znajdują się owe linijki

Kod:

ControlCommand("Instalator programu Winamp 5.541","Wykorzystaj wszystkie","Button6","UnCheck","Ustaw WinampŸ Search moim domyślnym dostawcą wyszukiwania")

ControlCommand("Instalator programu Winamp 5.541","Wykorzystaj wszystkie","Button7","UnCheck","Wykorzystaj WinampŸ Search do przeszukiwania sieci web w programie Winamp.")

 

W zasadzie ten kod powinieneś już rozumieć ale dla utrwalenia powtórzmy WinWaitActive aktywuje tutaj okna programu instalacyjnego, ControlClick klika odpowiednio na Dalej, Zainstaluj, a ControlCommand w tym przypadku odznacza zaznaczone pola dzięki poleceniu UnCheck i podaniu odpowiedniej nazwy Check boxa do odznaczenia, którą podaje AutoIT Window Info po najechaniu kursorem na odpowiedni element

 

 

 

 

dodatkowo jako ostatnia wartość podany jest tekst stojący obok check boxa lecz w tym wypadku jest to opcjonalne, ale polecam i tak to dodawać ponieważ przy edycji takiego skryptu będzie mniej problemów.

 

 

 

Kliknij na obrazek by go powiększyć

 

 

Tutaj sytuacja jest podobna jak wcześniej WinWaitActive najpierw dla pewności aktywuje okno postępu instalacji, a następnie aktywuje ostatnie okno programu instalacyjnego. ControlCommand ma za zadanie odznaczenie w ten sam sposób co wcześniej pola check box by program się po zakończeniu nie uruchomił, a ControlClick odpowiada teraz za kliknięcie w przycisk Zakończ.

 

Tak, tak to jeszcze nie koniec została nam do napisania i omówienia jeszcze jedna linijka dzięki której przy pomocy polecenia FileDelete przyjmującego ścieżkę do pliku, usuwamy z folderu Winampa w menu start link do pliku readme (Co nowego.lnk), do utworzenia prawdziwej ścieżki posługujemy się @ProgramsCommonDir i zawartością zmiennej $nazwaMenuStart bo nazwa grypy może nie być domyślna.

 

Teraz pozostaje tylko skompilować utworzony przed chwilą plik i można tworzyć addona! Są trzy sposoby kompilacji

 

1. W edytorze wybierz Tools>Build

zrzut18kr6.jpg

 

2. W edytorze wciśnij F7

3. W folderze z plikiem *.au3 kliknij na nim PPM>Compile Script

 

 

W wyniku działania każdego z tych sposobów w folderze ze skryptem pojawi się nowy plik o tej samej nazwie co plik *.au3 lecz z rozszerzeniem *.exe

 

zrzut20jo6.jpg

 

 

Panie autorze, nie podpisuję się i piszę że poradnik by BasTek. W razie czego poproś mnie o zedytowanie tematu w treść "." .

 

 

Nie musisz dawać +, ale jak chcesz podziękować bastkowi daj mi +, on to może zobaczy.

 

Myślę że można przypiąć.

 

Pozdrawiam!

Opublikowano

Ok, może się ktoś czegoś nauczy z tego :) Nie podkleję tylko dodam do nowego tematu z najważniejszymi tematami (najpierw go zrobię) :P

 

#EDIT

Takie tematy dajemy do gotowych skryptów ;) To tak na przyszłość :)

Opublikowano

Grafika .png to jeszcze nie źródło... Wklej link.

Yyy. Jest napisane "WindowsMX.pl" a jak tego nie zauważyłaś to na obrazkach jako znak wodny jest napisane źródło.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...