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

[Pytanie]OnEventMode


Rekomendowane odpowiedzi

Opublikowano

Cześć. Jakiś czas tematu Phoenix_PL zaprezentował mi funkcję OnEventMode dzięki której mogę zatrzymać/wznowić pracę programu po kliknięciu buttona. Dziś chciałbym dowiedzieć się w jaki sposób można zatrzymać wykonywanie działania drugiego programu(oba w jednym oknie). Czyli najpierw uruchamiam załóżmy spambota, zatrzymuję, a za chwilę chcę by wciskał mi jakiś przycisk. Mam ten kod :

 

 

#include <GuiConstantsEx.au3>
Opt("GuiOnEventMode", 1)
$Form1 = GUICreate("Test", 250, 300, 60, 60)
$Input1 = GUICtrlCreateInput("2.Co mam wpisać", 20, 8, 200, 21)
$Input2 = GUICtrlCreateInput("2.Co mam wcisnąć", 20, 30, 200, 21)
$Button1 = GUICtrlCreateButton("1.Start/Stop", 70, 70, 100, 21)
$Button2 = GUICtrlCreateButton("2.Start/Stop", 70, 100, 100, 21)
GUISetOnEvent($GUI_EVENT_CLOSE, "knc")
GUICtrlSetOnEvent($Button1, "spam")
GUISetState(@SW_SHOW)
Global $SPAM = False
Func knc()
Exit
EndFunc
Func spam()
$SPAM = Not $SPAM
EndFunc
While 1
If $SPAM Then Send(GUICtrlRead($Input1))
Sleep (10)
WEnd

 

 

Chcę by po po wpisaniu nazwy przycisku w

$Input2 = GUICtrlCreateInput("2.Co mam wcisnąć", 20, 30, 200, 21)

 

został on wciśnięty. Próbowałem użyć

Switch
EndSwitch

 

lecz po naciśnięciu buttona nic się nie działo. Próbowałem również tworzyć drugą zmienną globalną i używając OnEventMode tworzyć po prostu drugą pętle lecz to również nie przynosiło rezultatów.

Opublikowano

Po pierwsze to zmień zmienne z uchwytami, bo dwóch Button1 nie obsłużysz.

 

hm... switcha użyj, ale zrób taki myk.

Do każdego przycisku podporządkuj komendę. Czyli żeby kliknąć przycisk Button1 wpisujesz Przycisk 1, a Button2 to Przycisk 2.

W sumie lepiej użyć do tego ComboBoxa.

Potem GUICtrlRead i switch do tekstu z Inputa - jeśli tekst to Przycisk 1 to wywołaj funkcję która jest przypisana do Button1, jeśli Przycisk 2 to wykonaj funkcję Button2

 

Proste i fajne.

846331404756772371599.jpeg
Opublikowano

Do każdego przycisku podporządkuj komendę. Czyli żeby kliknąć przycisk Button1 wpisujesz Przycisk 1, a Button2 to Przycisk 2.

 

$Button1 = $Przycisk1
$Button2 = $Przycisk2

 

Tak ?

 

W sumie lepiej użyć do tego ComboBoxa.

 

W jaki sposób ? Gdzie umieścić.

 

 

Potem GUICtrlRead i switch do tekstu z Inputa - jeśli tekst to Przycisk 1 to wywołaj funkcję która jest przypisana do Button1, jeśli Przycisk 2 to wykonaj funkcję Button2

 

If $Przycisk1 Then Send(GUICtrlRead($Input2))

 

Tak ?

Opublikowano

co IF ?

 

dokładnie masz napisane : JEŚLI PRZYCISK TO WYŚLIJ

 

zaglądnij do helpu , to ma być jakiś WARUNEK

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

If $button Then

To jest to samo co:

If $button = True Then

A ogólnie to:

$inputvalue = GUICtrlRead($Input1)
Switch $inputvalue
Case "Przycisk1"
_funkcjapierwszegoprzycisku()
Case "Przycisk2"
_funkcjadrugiegoprzycisku()
EndSwitch

Opublikowano

Jak zdefiniować "Przycisk1". Bo na razie nic on nie robi.

 

Pod

Case "Przycisk1"

 

można dać

Func spam()
$SPAM = Not $SPAM
EndFunc
While 1
If $SPAM Then Send(GUICtrlRead($Input1))
Sleep (10)
WEnd

 

czy to samo siebie wyklucza ?

Opublikowano

Przycisk 1 to jest STRING.

Jeżeli "Przycisk1" będzie w Inpucie, to GUICtrlRead zwróci stringa "Przycisk1"

Opublikowano

I nie wstawisz tam deklaracji funkcji, czyli

Func spam()
$SPAM = Not $SPAM
EndFunc
While 1
If $SPAM Then Send(GUICtrlRead($Input1))
Sleep (10)
WEnd

tylko jej wywołanie

spam()

bo wstawienie deklaracji kompilator uzna jako błąd, co oczywiście błędem jest.

846331404756772371599.jpeg

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...