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

Pętla


QuQu97

Rekomendowane odpowiedzi

Opublikowano

Witam, proszę o pomoc odnosnie pętli, chcę aby program wykonywał pętle dopóki nie zatrzymam jej ręcznie.

 

Tu mam kawałek kodu który udało mi się napisać: :)

 Case $Button1
Do
MouseClick("primary", 553, 507)
Sleep (500)
MouseClick("primary", 936, 371)
Sleep (10000)
Until --- (Nie wiem co tu wstawić, żeby sprawdzał kiedy ma ją zakończyć)
 Case $Button2
ExitLoop 1

Weteran
Opublikowano



Global $warunek = 0
Do
...
Until $warunek = 1 ; czyli jeżeli $warunek będzie miało wartość 1, to pętla się skończy.

 

 

Dodasz do tego hotkey'a, który będzie zmieniał wartość tej zmiennej na 1 i masz zrobione.

1329036830-U154499.png
Opublikowano
HotKeySet("{F2}", "Stop")

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <timers.au3>

$Stop = 0

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 317, 175, 192, 124)
$Input1 = GUICtrlCreateInput("", 80, 24, 153, 21)
$Label1 = GUICtrlCreateLabel("Stop [F2]", 128, 112, 47, 17)
$Button1 = GUICtrlCreateButton("Start", 104, 64, 97, 33)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
       Case $GUI_EVENT_CLOSE
           Exit
       Case $Button1
           $Timer = TimerInit()
           While 1
               GUICtrlSetData($Input1, TimerDiff($Timer))
               Sleep(10)
               If $Stop = 1 Then
                   $Stop = 0
                   ExitLoop
               EndIf
           WEnd
   EndSwitch
WEnd


Func Stop()
   $Stop = 1
EndFunc

obraz24.png


Opublikowano

Ok, wszystko działa ale teraz jeszcze jedno pytanie: Jak zmienić

HotKeySet("{F2}", "Stop")

tak żeby zamiast F2 robił to Button 2?

 

Z góry dziękuje za pomoc :)

Opublikowano

Na początku daj

Opt("GUIOnEventMode", 1)

A póżniej

GUICtrlSetOnEvent($Button2, "stop")

I potem

$fRunOne = False
While 1
If $fRunOne Then
;Funkcja)
EndIf
WEnd

I dalej fukcje ;)

 

Coś takiego (na zastopowanie skryptu):

Opt("GUIOnEventMode", 1)

;GUI

GUICtrlSetOnEvent($Button2, "stop")

Global $fRunOne = True

While 1
If $fRunOne Then
; robi coś
EndIf
WEnd

Func stop()
Global $fRunOne = False ; stopuje
EndFunc

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...