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

[Problemy]Pisanie w IE.au3


Rekomendowane odpowiedzi

Opublikowano

Cześć,

Dzisiaj zacząłem naukę IE.au3 i od razu wziąłem się za pisanie bocika do gry przeglądarkowej.

Oczywiście już na początku złapałem błąd.

 

Od razu dam wam kod, który edytuje (by Phoenix_PL)

Chcę na razie zrobić aby bot wpisał ID, hasło i nacisnął przycisk Zaloguj się.

Ja zacząłem pisanie od naciśnięcia Zaloguj się.

 

#include <ButtonConstants.au3> ;przyciski
#include <EditConstants.au3> ;inputy
#include <GUIConstantsEx.au3> ;gui
#include <WindowsConstants.au3> ;okienko
#include <StaticConstants.au3>
#include <IE.au3> ;internet explorer

Opt ("GuiOnEventMode", 1) ;ustawienie GUI w trybie OnEvent
$forma = GUICreate("GangsterGYM BOT by dawio966 v.1.0", 676, 266, 189, 120)
$MenuItem1 = GUICtrlCreateMenu("Opcje")
$MenuItem2 = GUICtrlCreateMenuItem("Instrukcja", $MenuItem1)
$MenuItem3 = GUICtrlCreateMenuItem("Zamknij", $MenuItem1)
$Pic1 = GUICtrlCreatePic("C:\Users\Zapasowe\Desktop\bot\gangster.jpg", 0, 0, 675, 257, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUICtrlSetState(-1, $GUI_DISABLE)
$Input = GUICtrlCreateInput("Ilosc", 312, 128, 57, 21) ;input, do którego wpisujemy zapytanie dla Google
$sgoogle = GUICtrlCreateButton("Wszystkie atrybuty", 368, 112, 289, 41, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Uruchom Mozille Firefox", 380, 48, 115, 17)
GUICtrlSetBkColor(-1, 0x99B4D1)
$Label7 = GUICtrlCreateLabel("Instrukcja na rozdzielczosc 1366x768", 432, 5, 186, 14)
GUICtrlSetBkColor(-1, 0x808000)
$Label2 = GUICtrlCreateLabel("Ustaw rozdzielczosć ekranu na 1366 x 768", 376, 24, 207, 17)
GUICtrlSetBkColor(-1, 0x99B4D1)
$Label3 = GUICtrlCreateLabel("Zaloguj się na gangsters.pl i wejdź w zakładkę Siłownia", 384, 72, 268, 17)
GUICtrlSetBkColor(-1, 0x99B4D1)
$Label4 = GUICtrlCreateLabel("Oddal stronę tak, aby input był w kordach 708, 696 ", 392, 96, 250, 17)
GUICtrlSetBkColor(-1, 0x99B4D1)
$Label5 = GUICtrlCreateLabel("by dawio966", 608, 232, 64, 17)
$Label6 = GUICtrlCreateLabel("Aby program przestał działać wcisnij klawisz F8", 408, 208, 228, 17)
GUICtrlSetBkColor(-1, 0x008000)
GUISetOnEvent ($GUI_EVENT_CLOSE, "endp") ;przypisanie do przycisku 'x' na belce tytułowej okna funkcji "endp"
GUICtrlSetOnEvent ($sgoogle, "main") ;przypisanie do przycisku szukania funkcji "main"
GUISetState(@SW_SHOW) ;pokazanie gui


HotkeySet("{F8}","Koniec")
Func Koniec()
MsgBox(0,"Wyłączenie programu skrótem", "Wcisnąłeś F8, program wyłączony.")
Exit
EndFunc

Func main() ;funkcja "main"
$in = GUICtrlRead ($input) ;odczytanie tekstu z inputa
If $in = "" Then ;instrukcja warunkowa - jesli ten tekst jest pusty, to...
MsgBox (16, "", "Wpisz od 1 do 100!") ;...wyswietl okienko z informacja...
Exit ;...i zamknij program
EndIf ;koniec instrukcji warunkowej
$clip = ClipGet() ;zapisanie aktualnej zawartosci schowka do zmiennej
ClipPut ($in) ;'włozenie' tekstu z inputa do schowka
$ie = _IECreate("gangsters.pl", 0, 1) ;stworzenie okienka Internet Explorera z uchwytem $ie
$oButton = _IEGetObjById ($ie, "Zaloguj się") ;przypisanie zmiennej $oButton do obiektu o nazwie "btnK" w okienku $ie
$oInput = _IEGetObjByName ($ie, "login") ;przypisanie zmiennej $oImput do obiektu o nazwie "q" w okienku $ie
_IEAction ($oInput, "paste") ;wpisanie zawartosci schowka do obiektu $oInput
_IEAction ($oButton, "click") ;polecenie klikniecia obiektu $oButton
ClipPut ($clip) ;'wlozenie' zawartoscie zmiennej $clip do schowka
_IELoadWait ($ie) ;czekamy az strona się załaduje
$msg = MsgBox (32+4, "", "Wyłączyć?") ;msgbox z pytaniem, i przyciskami "Tak" i "Nie" i uchwytem $msg
If $msg = 6 Then ;instrukcja warunkowa - jesli w msgboxie kliknieto "Tak", to...
_IEQuit($ie) ;...zamknij okienko Internet Explorera i...
Exit ;...wyjdz z programu
EndIf ;koniec instrukcji warunkowej
EndFunc ;znacznik zamykajacy funkcje "main"

Func endp() ;funkja "endp"
Exit ;wylaczenie programu
EndFunc ;znacznik zamykajacy funkcje "endp"

While 1 ;nieskonczona petla
Sleep(100) ;czekaj 100ms na polecenie od GUI
WEnd ;znacznik zamykajacy petle

 

 

Czytałem poradnik obiektów ale tutaj jest inny kod, niż w poradniku.

Więc na co mam zwracać uwagę?

htmlr.jpg

 

Za każdą pomoc jak na razie wręczam ***** w profilu bo limit Like'ów się skończył :(.

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

ten kod wygląda mi dobrze.

Ale zamiast bawić się ze schowkiem użyj _IEFormElementSetValue.

 

Musisz dostać uchwyty do

- pola email

- pola Hasło

- przycisku Zaloguj

 

i potem _IEFormElementSetValue ustawia napis w polach Email i Hasło i klikasz Zaloguj przez _IEAction.

Zadziała o ile strona nie ma zabezpieczeń przed takimi zabawami.

846331404756772371599.jpeg
Opublikowano

ten kod wygląda mi dobrze.

Ale zamiast bawić się ze schowkiem użyj _IEFormElementSetValue.

 

Musisz dostać uchwyty do

- pola email

- pola Hasło

- przycisku Zaloguj

 

i potem _IEFormElementSetValue ustawia napis w polach Email i Hasło i klikasz Zaloguj przez _IEAction.

Zadziała o ile strona nie ma zabezpieczeń przed takimi zabawami.

Dopiero się uczę AutoIT'a więc wiele z tego nie rozumiem, możesz mi powiedzieć jak wydobyć te uchwyty?

Bo wziąłem Zbadaj Element na Zaloguj się i tam jest to co na screenie wyżej, no i nie wiem co mi jest potrzebne :).

@Jak odnowi mi się limit Like'ów to dam Ci wszystkie :D.

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

Kolejne próby i dalej się mi nic nie udaje.

 

Stworzyłem sobie takie coś:

beztytuupec.png

 

Chcę aby Input1 wpisał dane ID

W Input2 wpisał hasło

No i po naciśnięciu Naciśnij Zaloguj się kliknie w przeglądarce zaloguj się.

 

Ja się tak ucze, że gdy zobaczę pasujący mi kod to go zapamiętuje :D.

 

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\users\zapasowe\desktop\bot\form1.kxf
$Form1_1_1 = GUICreate("GangsterGYM BOT by dawio966", 678, 279, 201, 117)
$MenuItem1 = GUICtrlCreateMenu("&Opcje")
$MenuItem3 = GUICtrlCreateMenuItem("Instrukcja", $MenuItem1)
$MenuItem2 = GUICtrlCreateMenuItem("Zamknij", $MenuItem1)
$Pic1 = GUICtrlCreatePic("C:\Users\Zapasowe\Desktop\bot\gangster.jpg", 0, 0, 675, 257, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUICtrlSetState(-1, $GUI_DISABLE)
$Button1 = GUICtrlCreateButton("Nacisnij zaloguj sie", 432, 96, 193, 25, $WS_GROUP)
$Label5 = GUICtrlCreateLabel("by dawio966", 608, 232, 64, 17)
$Label6 = GUICtrlCreateLabel("Aby program przestał działać wcisnij klawisz F8", 368, 232, 228, 17)
GUICtrlSetBkColor(-1, 0x008000)
$Input1 = GUICtrlCreateInput("Email", 456, 40, 121, 21)
$Input2 = GUICtrlCreateInput("Hasło", 456, 72, 121, 21)
GUISetState(@SW_SHOW)
Dim $Form1_1_1_AccelTable[1][2] = [["^a", $MenuItem2]]
GUISetAccelerators($Form1_1_1_AccelTable)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

No to opiszę ci algorytm sytuacji:

- Pobierasz dane z inputów do zmiennych

- Uzyskujesz uchwyty do inputów na stronie przez _IEGetObjById/_IEGetObjByName

- Ustawiasz wartości inputów poprzez funkcję takie cuś (już nie męczmy się z funkcjami, zrobimy to 'na chama'):

$obiekt.value = $wartosc

gdzie $obiekt to uchwyt do danego inputa a $wartosc to odczytany login czy hasło.

na przykład masz $login jako uchwyt do inputa loginu i $read_login jako zmienna z odczytanym loginem. Wtedy robisz tak:

$login.value = $read_login

 

Cała filozofia.

Potem tylko _IEAction($zaloguj, 'click') i tyle.

(rzecz jasna $zaloguj to uchwyt do buttona)

846331404756772371599.jpeg
Opublikowano

Nie wiem, napisałem coś takiego i nie działa ;/

Na razie próbuje napisać coś, żeby tylko zadziałało na stronie (niech kliknie chociaż raz na przycisk zaloguj się).

#include <IE.au3>

;ZMIENNE
$adreswww = "http://g2.gangsters.pl/"
;FUNKCJA LOGOWANIA :
ToolTip("Rozpoczynam działanie skryptu",1,1)
$oie = _IECreate($adreswww) ;włączam Internet i wpisuje adres
_IELoadWait($oie) ;oczekuje na załadowanie się strony
$login.value = $read_login
_IEAction($zaloguj, 'click')
;ZALOGOWANO
_IELoadWait($oie) ;oczekuje na załadowanie się strony

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

Dobra, zobrazuję ci to na moim samplu.

Oto adres do przykładowego formularzu logowanie 2inputy+button: http://phoenixpl.ugu.pl/poradniki/autoit/ie_tut.php

A teraz kodzik który to obsłuży:

#include <IE.au3>

;przykładowy kod logowania
;tworzenie IE
$IE = _IECreate('http://phoenixpl.ugu.pl/poradniki/autoit/ie_tut.php', 0, 1, 1, 1)

;pokazanie GUI programu
Opt('GuiOnEventMode', 1)
$GUIForm = GUICreate("Test", 137, 99)
$in_imie = GUICtrlCreateInput("Imię", 8, 8, 121, 21)
$in_nazwisko = GUICtrlCreateInput("Nazwisko", 8, 40, 121, 21)
$b_ok = GUICtrlCreateButton("OK!", 32, 72, 75, 25)

GUISetOnEvent(-3, 'knc')
GUICtrlSetOnEvent($b_ok, 'login')

GUISetState(@SW_SHOW)

;funkcje GUI
Func knc() ;wychodzenie z programu
;zamykanie przeglądarki
_IEQuit($IE)
Exit
EndFunc

Func login() ;logowanie do programu
;pobranie uchwytów do inputów i buttona
$ie_imie = _IEGetObjById($IE, 'imie')
$ie_nazwisko = _IEGetObjById($IE, 'nazwisko')
$ie_ok = _IEGetObjById($IE, 'ok')

;odczytywanie danych z GUI
$read_imie = GUICtrlRead($in_imie)
$read_nazwisko = GUICtrlRead($in_nazwisko)

;wsadzenie danych do inputów na stronie
$ie_imie.Value = $read_imie
$ie_nazwisko.Value = $read_nazwisko

;kliknięcie w przycisk
$ie_ok.Click()
EndFunc

While 1
Sleep (100)
WEnd

846331404756772371599.jpeg
Opublikowano

Teraz już rozumiem co mam rozumieć xD, tylko jest problem z buttonem zaloguj się, na tej stronie http://g2.gangsters.pl/ button nie ma name, jest tylko input class i type.

Co można na to poradzić?

Email i hasło dobrze program wpisuje.

 

#include <IE.au3>

;przykładowy kod logowania
;tworzenie IE
$IE = _IECreate('http://g2.gangsters.pl', 0, 1, 1, 1)

;pokazanie GUI programu
Opt('GuiOnEventMode', 1)
$GUIForm = GUICreate("GangsterLogin", 137, 99)
$in_imie = GUICtrlCreateInput("Email", 8, 8, 121, 21)
$in_nazwisko = GUICtrlCreateInput("Haslo", 8, 40, 121, 21)
$b_ok = GUICtrlCreateButton("Loguj!", 32, 72, 75, 25)

GUISetOnEvent(-3, 'knc')
GUICtrlSetOnEvent($b_ok, 'login')

GUISetState(@SW_SHOW)

;funkcje GUI
Func knc() ;wychodzenie z programu
;zamykanie przeglądarki
_IEQuit($IE)
Exit
EndFunc

Func login() ;logowanie do programu
;pobranie uchwytów do inputów i buttona
$ie_imie = _IEGetObjById($IE, 'email')
$ie_nazwisko = _IEGetObjById($IE, 'pass')
$ie_ok = _IEGetObjById($IE, 'login')

;odczytywanie danych z GUI
$read_imie = GUICtrlRead($in_imie)
$read_nazwisko = GUICtrlRead($in_nazwisko)

;wsadzenie danych do inputów na stronie
$ie_imie.Value = $read_imie
$ie_nazwisko.Value = $read_nazwisko

;kliknięcie w przycisk
$ie_ok.Click()
EndFunc

While 1
Sleep (100)
WEnd]

 

Phoenix - aplikuj na codersa ;p.

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

Aplikowałem na codersa, ale rekrutacja chyba chwilowo wstrzymana, reorganizują się.

No cóż, wygląda na to że ID i nazwa jest ukryta.

Próbuj z tym:

_IEFormElementGetCollection

Formę wyszukasz tym:

_IEFormGetObjByName

846331404756772371599.jpeg
Opublikowano

Zrobiłem tym i nic ;[

 

Msg też dodawałem i pokazywało 0...


; *******************************************************
; Example 1 - Get a reference to a specific form element by 0-based index.
;               In this case, submit a query to the Google search engine
; *******************************************************

#include <IE.au3>

Local $oIE = _IECreate("http://g2.gangsters.pl")
Local $oForm = _IEFormGetCollection($oIE, 0)
Local $oQuery = _IEFormElementGetCollection($oForm, 2)
_IEFormElementSetValue($oQuery, "AutoIt IE.au3")
_IEFormSubmit($oForm)

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...