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

Przejście między oknami


Rekomendowane odpowiedzi

Opublikowano

Mam problem ponieważ mam otwartą 2 razy tę samom grę i teraz chce zrobić w autoit że on przechodzi między nimi najpierw gra w 1 okienku i przechodzi do 2 okienka i coś tam robi i znowu wraca do 1 okienka jak to zrobić ???????????

stopka.webp

Opublikowano
start()
func start()
WinActivate("TYTULOKNA1")
;tutaj piszesz co ma robic na tym oknie
okno_2()
EndFunc

func okno_2()
WinActivate("TYTULOKNA2")
;tak samo tu piszesz co ma robic na tym oknie
start()
EndFunc

Opublikowano

a jak to zrobić pomóż a i mam pytanie jak zrobić pętle że kliknę button2 i się zatrzmie

 

 

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
;;;;;;;;;;;;;;;;;;;biega do prawej;;;;;;;;;;;
sleep(3000)
	send("{d down}")
		sleep(100)

send("{w down}")
		sleep(50)
			send("{w up}")
sleep(700)
send("{w down}")
		sleep(50)
			send("{w up}")
sleep(1100)
send("{w down}")
		sleep(50)
			send("{w up}")
sleep(650)
send("{d up}")
send("{w down}")
		sleep(50)
			send("{w up}")
			sleep(100)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;biega do lewej;;;;;;;;;;;;;;;;
send("{a down}")
		sleep(500)
send("{w down}")
		sleep(50)
			send("{w up}")
sleep(1050)
send("{w down}")
		sleep(50)
			send("{w up}")
sleep(750)
send("{w down}")
		sleep(50)
			send("{w up}")
			sleep(150)
send("{a up}")

sleep(1000)


Case $Button2
Exit
Case $Button3

Run("tdp4.exe")
Run("tdp4.exe")

EndSwitch
WEnd 

stopka.webp

Opublikowano
$play = false
guictrlsetdata($button2, START)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button1
if $play = true then
;;;;;;;;;;;;;;;;;;;biega do prawej;;;;;;;;;;;
	sleep(3000)
		send("{d down}")
			sleep(100)

send("{w down}")
			sleep(50)
				send("{w up}")
sleep(700)
send("{w down}")
			sleep(50)
				send("{w up}")
sleep(1100)
send("{w down}")
			sleep(50)
				send("{w up}")
sleep(650)
send("{d up}")
send("{w down}")
			sleep(50)
				send("{w up}")
				sleep(100)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;biega do lewej;;;;;;;;;;;;;;;;
send("{a down}")
			sleep(500)
send("{w down}")
			sleep(50)
				send("{w up}")
sleep(1050)
send("{w down}")
			sleep(50)
				send("{w up}")
sleep(750)
send("{w down}")
			sleep(50)
				send("{w up}")
				sleep(150)
send("{a up}")

sleep(1000)
endif



Case $Button2
$play = not $play
if $play = true then guictrlsetdata($button2, PAUZA)
else
guictrlsetdata($button2, START)
Case $Button3


Run("tdp4.exe")
Run("tdp4.exe")

EndSwitch

WEnd 

Opublikowano

a z tym jak to zrobi bo coś mi nie działa :[ a i to wyze nie działa

 

 

C:\Users\Kamil\Desktop\autoit\tdp4\12432.au3(16,31) : ERROR: syntax error

guictrlsetdata($button2, START)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

C:\Users\Kamil\Desktop\autoit\tdp4\12432.au3(70,52) : ERROR: syntax error

if $play = true then guictrlsetdata($button2, PAUZA)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

C:\Users\Kamil\Desktop\autoit\tdp4\12432.au3(71,1) : ERROR: missing EndSwitch.

else

^

C:\Users\Kamil\Desktop\autoit\tdp4\12432.au3(19,13) : REF: missing EndSwitch.

Switch $nMsg

~~~~~~~~~~~~^

C:\Users\Kamil\Desktop\autoit\tdp4\12432.au3(71,1) : ERROR: missing Wend.

else

^

C:\Users\Kamil\Desktop\autoit\tdp4\12432.au3(17,1) : REF: missing Wend.

While

^

C:\Users\Kamil\Desktop\autoit\tdp4\12432.au3 - 4 error(s), 0 warning(s)

 

 

start()
func start()
       WinActivate("TYTULOKNA1")
       ;tutaj piszesz co ma robic na tym oknie
       okno_2()
EndFunc

func okno_2()
       WinActivate("TYTULOKNA2")
       ;tak samo tu piszesz co ma robic na tym oknie
       start()
       EndFunc

stopka.webp

Opublikowano

sory juz poprawione

$play = False
GUICtrlSetData($button2, "START")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
	Case $GUI_EVENT_CLOSE
		Exit
	Case $button1

	Case $button2
		$play = Not $play
		If $play = True Then
			GUICtrlSetData($button2, "PAUZA")
		Else
			GUICtrlSetData($button2, "START")
		EndIf
	Case $Button3
		Run("tdp4.exe")
		Run("tdp4.exe")
EndSwitch
If $play = True Then ;tak masz lepiej niż pod buttonem
			;;;;;;;;;;;;;;;;;;;biega do prawej;;;;;;;;;;;
			Sleep(3000)
			Send("{d down}")
			Sleep(100)
			Send("{w down}")
			Sleep(50)
			Send("{w up}")
			Sleep(700)
			Send("{w down}")
			Sleep(50)
			Send("{w up}")
			Sleep(1100)
			Send("{w down}")
			Sleep(50)
			Send("{w up}")
			Sleep(650)
			Send("{d up}")
			Send("{w down}")
			Sleep(50)
			Send("{w up}")
			Sleep(100)
			;;;;;;;;;;;;;;;;;;;;;;;;;;;;biega do lewej;;;;;;;;;;;;;;;;
			Send("{a down}")
			Sleep(500)
			Send("{w down}")
			Sleep(50)
			Send("{w up}")
			Sleep(1050)
			Send("{w down}")
			Sleep(50)
			Send("{w up}")
			Sleep(750)
			Send("{w down}")
			Sleep(50)
			Send("{w up}")
			Sleep(150)
			Send("{a up}")

			Sleep(1000)
		EndIf
WEnd

Opublikowano

U mnie po zadeklarowaniu zmiennych wszystko działa musiałeś źle kod skopiować. Spróbuj jeszcze raz. Najwyżej wrzuć cały.

Co do zmiany okna jak są 2 takie same nazwy to nie wiem jak to zrobić. Spróbuj po prostu mouseclickiem aktywować.

Opublikowano

U mnie wszystko działa. Najpierw nic nie robi klakasz na buttona START, zmienia się na button PAUZA klikasz na niego i pauzuje. Tylko w twoim skrypcie musi przejsc przez te sleepy więc może dlatego myślisz, że nie działa. Musisz poczekać jakieś 7-8 sek

Opublikowano

jak działa w grze controlsend to na raz możesz wysyłać polecenia do obydwu okienek bez bawienia się w aktywowanie okien , ważne by każde okno miało inny tytuł albo użyć ID okienka

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

a jak mam button do zamknięcia i jest komenda

Exit

da się jakąś inna że kliknę button i wszystko się zamka bez czekania ????

stopka.webp

Opublikowano

Opt("Guisetoneventmode", 1)

guictrlsetonevent($button, "zamknij")

func zamknij()

exit

endfunc

 

;tylko wtedy musisz zmienic reszte bo z guioneventmode nie dziala guigetmsg :/

 

 

guictrlsetonevent(handle do kontrolki, "funkcja")

guisetonevent(wydarzenie globalne? (cos takiego jak $gui_event_close), "funkcja")

 

 

abo użyć odrazu guiregistermsg

wtedy reszte mozesz zostawic

GuiRegisterMsg(WM_CLOSE (chyba, nie jestem pewien), "zamknij") ;w helpie masz opisane reszte.

 

Zarówno guisetonevent jak i guiregistermsg wrzucasz po tworzeniu gui

Opublikowano

a co do controlsend to jak to zrobić możesz napisać coś więcej np jak zdobyć to całe controlID

 

EDIT

 

albo da się tak zrobić ze klikam button i on wyszukuje proces i go zabija ???????????

stopka.webp

Opublikowano

W folderze z au3 masz plik AU3Info wlączasz go i tam masz taki celowniczek z prawej. Przeciągasz go na element i ci w zakładkach pokazuje info o nim

Opublikowano

a co do controlsend to jak to zrobić możesz napisać coś więcej np jak zdobyć to całe controlID

 

EDIT

 

albo da się tak zrobić ze klikam button i on wyszukuje proces i go zabija ???????????

 

ControlSend ( "title", "text", controlID, "string" [, flag] )

title - tytuł okna z grą, do którego mają być wysłane polecenia

text - tekst okna, zazwyczaj opuszczamy tę opcję, czyli wpisujemy ""

controlID - Dany obiekt w oknie, do którego mamy wysyłać polecenia, tez zostawiamy puste

string - zawartość/instrukcje, jakie chcemy wysłać do okna

flag - argument opcjonalny, możemy za jego pomocą ustalić czy wysyłane odpowiedniki znaków typu SHIFT będą uwzględniane czy nie.

 

Jeśli chcesz wiedzieć więcej nt. controlID, odsyłam do Helpa, ew. Ctrl+V tu:

One of the best new features with AutoIt v3 is the ability to work directly with certain types of Window Controls. Almost everything you see on a window is a control of some kind: buttons, listboxes, edit fields, static text are all controls. In fact Notepad is just one big "Edit" control! Because AutoIt works directly with a control they provide a more reliable way to automate than just sending keystrokes.

 

 

 

Note: AutoIt only works with standard Microsoft controls - some applications write their own custom controls which may look like a standard MS control but may resist automation. Experiment!

 

 

 

Using the AutoIt Window Info Tool you can move your mouse around the window you are interested in and you will be given information of the control that is currently under your mouse.

 

A special description can be used as the controlID parameter used in most of the Control...() functions . This description can be used to identify a control by the following properties:

 

ID - The internal control ID. The Control ID is the internal numeric identifier that windows gives to each control. It is generally the best method of identifying controls. In addition to the AutoIt Window Info Tool, other applications such as screenreaders for the blind and Microsoft tools/APIs may allow you to get this Control ID

TEXT - The text on a control, for example "&Next" on a button

CLASS - The internal control classname such as "Edit" or "Button"

CLASSNN - The ClassnameNN value as used in previous versions of AutoIt, such as "Edit1"

NAME - The internal .NET Framework WinForms name (if available)

REGEXPCLASS - Control classname using a regular expression

X \ Y \ W \ H - The position and size of a control.

INSTANCE - The 1-based instance when all given properties match.

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

ano dobre, send w controlsend :) , w sumie to identycznie działające funkcje ale jedna bardziej rozbudowana i o większych możliwościach, w tym wysyłania polecenia do nieaktywnego okna

 

flasha tak nie obsłużysz za bardzo , chyba że dość prosty jest i jeden tylko jako przycisk, w większości przypadków nie działa

 

a i jeszcze jedno , najczęściej i bezproblemowo działa controlsend z WinGetHandle bo jest niezależny od tytułu okna czyli świetny jeśli tytuł się zmienia często , w helpie przykład

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

eh no nie działa ta komenda we flash trudno ale mam pytanie bo zrobiłem tego bota i biega skacze i nagle źle skoczył i spada ;[[ i cały bot się sypie co może być tego przyczyna ?? ta gra czy jakieś lagi ???

stopka.webp

Opublikowano

widocznie masz błąd w skrypcie , testuj w scite czytaj błędy , i dopiero kompiluj i... dalej sprawdzaj

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

koleś biega od lewej do prawej i przeskakuje przebiegnie raz dwa i np za 3 razy źle pobiegnie np o kilka mm i spada

stopka.webp

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...