Kezdőoldal » Számítástechnika » Programozás » Autohotkey-el kapcsolatban...

Autohotkey-el kapcsolatban lenne kérdésem. Írtam egy makrót amiben kellene egy választás parancs, ha megjelenik egy pixel adott helyen akkor továbbmenjen ha nem jelenik meg akkor inditsa újra a scriptet, ezt hogy leet megoldani?

Figyelt kérdés
Lehet olyan is hogy egy szövegrészt felismer a képernyőn és ez alapján dönt, de a címsor nem jó, mert az nem változik. Szóval a lényeg hogy valahogy ismerje fel a változást és ez alapján vagy ujrainduljon vagy továbbmenjen.

2016. ápr. 28. 16:20
 1/3 A kérdező kommentje:

Eddig jutottam el:


Loop

{

IfWinExist xxxxxxx

{

WinActivate

Sleep 1000

MouseClick, left, 635, 660

Sleep 1000

Click Down Left, 180, 265

Sleep 1000

Click Up Left, 330, 260

Sleep 1000

MouseClick, left, 95, 360

Sleep 1000

MouseClick, left, 50, 270

Sleep 1000

MouseClick, left, 340, 150

Sleep 5000


itt kellene választania, hogy újrakezdi az egészet vagy továbbmegy, a lényege az hogy ha nem jeleik meg akármi akkor ne várjon 25 másodpercet


Sleep 25000

MouseClick, left, 320, 155

}

}

2016. ápr. 28. 16:29
 2/3 coopper ***** válasza:

Szia.


Ami neked kell szerintem azok a következőek :


- While lopp : [link]

- CoordMode : [link]

- PixelGetColor : [link]


Az egész meg valahogy igy keljen hogy kinézzen :


CoordMode, Pixel ; ez csak azért kell, hogy a koordinátákat a képernyőről vegye, ne az aktuális ablakból

PixelGetColor, color, 200, 200, Slow

; MsgBox "1:" & %color%

while color=0x00DDDF {

_ _ Ide irhatod azokat az utasitásokat amiket a ciklusban kell végrehajtani

_ _ PixelGetColor, color, 200, 200, Slow

}

; MsgBox "2:" & %color%

Ide kerülnek azok a parancsok amiknek a ciklusból való kilépéskor kell végrehajtódniuk (tehát ha megváltozik a pixel szine)


a MsgBox %color% paranccsal ki tudod iratni a keresett pixel szinét és ezt az értéket be tudod irni a ciklusba az ott lévő szinkód helyett (0x00DDDF)


Kipróbáltam müködik, sima képernyőn ha betoltam a 200,200 pixelre egy ablakot akkor kilépett a ciklusból.


Ha kiveszed a pontosvesszőket a ; MsgBox-os sorok elől akkor mielőtt belép a ciklusba kiirja a szin értékét és miután kilépet a ciklusból akkor is kiirja a szin értékét.


Sok sikert.

üdv.

2016. ápr. 29. 17:21
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:

Köszönöm a segítséget de nem boldogulok vele, a szint a window spyal kerestettem meg, de akárhogy variállom, nem jó, vagy egyből a 28 másodperces késleltetéssel kezd vagy csak a másik megy de ha bejön ahol kellene a 28 mp, akkor nem vár mindig csak kattintgat,

ezt csináltam, de másr mindenhogy, forditva is a sorrend meg minden,


Loop

{

IfWinExist MShare

{

WinActivate

PixelGetColor, color, 240, 260, Slow

;MsgBox "1:" & %color%

while color=F5F5F5 {

Sleep 500

MouseClick, left, 340, 150

Sleep 28000

MouseClick, left, 322, 155

Sleep 500

MouseClick, left, 190, 240

Sleep 500

MouseClick, left, 386, 33

PixelGetColor, color, 240, 260, Slow

}

;MsgBox "2:" & %color%

MouseClick, left, 625, 740

Sleep 1000

Sleep 500

Click Down Left, 135, 265

Sleep 1000

Click Up Left, 330, 260

Sleep 5000

MouseClick, left, 95, 360

Sleep 5000

MouseClick, left, 50, 270

Sleep 1000

}

}

2016. ápr. 30. 15:48

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!