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

Prawidłowosć kodu.


Rekomendowane odpowiedzi

Opublikowano

Witam.

 

Proszę o spojrzenie w kod, co jest nie tak. Nie mogę niestety odpalić niestety, ponieważ jeszcze mi trochę zajmie ustalanie sleep().

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("BMW Catalog Printer ver. 1.0", 590, 365, 240, 160)
$Pic1 = GUICtrlCreatePic("C:\Users\Hamulec\Desktop\206logobmwvelka.jpg", 0, 0, 588, 364, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Button1 = GUICtrlCreateButton("START", 432, 224, 115, 73, $WS_GROUP)
$Button2 = GUICtrlCreateButton("STOP", 448, 312, 83, 41, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Ścieżka zapisu:", 32, 24, 78, 17)
$Input1 = GUICtrlCreateInput("C:\", 40, 48, 217, 21)
$Label2 = GUICtrlCreateLabel("Ilość kart:", 320, 24, 50, 17)
$Input2 = GUICtrlCreateInput("0", 328, 48, 241, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
   $nMsg = GUIGetMsg()
	  Switch $nMsg
		 Case $Button1
			Local $i = GUICtrlRead($Input1)
			While $i
			MouseMove(711, 692)
			MouseClick("right")
			MouseMove(742, 764)
			MouseClick("left")
			MouseMove(89, 881) ;Word
			MouseClick("left")
			Send("^v")
			Send("{ENTER}")
			MouseMove(150, 881) ;Chrome
			MouseClick("left")
			Send("{PGDN}")
			MouseMove(229, 534)
			MouseClick("left")
;MouseClickDrag("left”, 229, 534, 1183, 877, 100)
			MouseMove(229, 535)
			MouseDown("left”) 
			MouseMove(1183, 877)
;sleep(scr);
			MouseMove(1190,82)
			MouseUp("left")
			Send("^C")
			MouseMove(89, 881) ;Word
			MouseClick("left")
			Send("^V")
			MouseMove(150, 881) ;Chrome
			MouseClick("left")
			Send("{PGUP}")
			Send("{PGUP}")
			Send("{PGUP}")
			Send("{PGUP}")
			Send("{PGUP}")
			Send("{PGUP}")
			Send("{PGUP}")
			Send("{PGUP}")
			MouseMove(150, 881) ;3xNazwa
			MouseClick("left")
			MouseMove(150, 881) ;3xNazwa KROTKI SLEEP
			MouseClick("left")
			MouseMove(150, 881) ;3xNazwa
			MouseClick("left")
			Send("^C")
			MouseMove(89, 881) ;Word
			MouseClick("left")
			Send("{F12}")
			Send("^V")
			MouseMove(407, 46)
			MouseClick("left")
			Send("GUICtrlRead($Input1)")
			Send("{ENTER}")
			Send("{ENTER}")
			Send("^A")
			Send("{DELETE}")
			MouseMove(150, 881) ;Chrome
			MouseClick("left")
			Send("^W")
			WEnd
			??? EndCase????
		 Case $Button2
			ExitLoop
		??? EndCase????
	  EndSwitch
WEnd

Ilosc potworzen danego Buttona jest ustalona pod While $i z inputa. Czy jest to dobrze sformułowane ?

 

Z góry dziękuje, pozdrawiam.

Kocham mpcforum.pl!!!

18706.png

Opublikowano

W tym wypadku petla bedzie sie wykonywac w nieskonczonosc bo nie podales warunku jej zakonczenia. Osobiscie zastosowal bym inna petle (For...To...Step...Next), ale i na upartego moze byc "While"

While $i > 0
...
...
...
$i -= 1
Wend

btw. "Input1" to chyba nie jest liczba powtorzen. ;>

Local $i = GUICtrlRead($Input2)

Drugie co sie rzuca w oczy to:

Send("GUICtrlRead($Input1)")

W tym wypadku nie wazne co bedzie w tym inpucie to i tak program wypisze: 

GUICtrlRead($Input1)

Jesli program ma wyslac tekst z input1 to:

Send(GUICtrlRead($Input1))

Jesli program ma wcisnac klaiwsz podany w input1 to:

Send("{" & GUICtrlRead($Input1) & "}")

 

 

Opublikowano

Wreszcie znalazłem dane do mojego konta.

 

Okej, ale chce zastosować ilość powtórzeń, zczytywanych z InPut2. To znaczy, że jeśli użytykownik wpiszę w InPut wartość załóżmy "4", to skrypt powtórzy 4x czynność wpisaną pod Button1.

579571423327107377857.png


Opublikowano

Juz napisalem wyzej jak to zrobic. ;)

Local $i = GUICtrlRead($Input2)
While $i > 0

<TUTAJ WSTAWIASZ CO MA ZROBIC>

$i -= 1
Wend

I petla wykona sie dokladnie tyle razy ile podasz w input2.

 

 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...