Witam. Mam w planach zrobienie programu, który będzie monitorował kolor pixela z danej pozycji, i gdy się zmieni to, aby jak najszybciej zareagował nie obciążając przy tym zbytnio komputera. Wystarczy, że będzie sprawdzał kolor przynajmniej 50 ms, wiec zrobiłem coś takiego, że co 100 powtórzeń petli wykona sprawdzanie. Chciałbym, abyście sprawdzili mój skrypt i doradzili jak naj optymalniej to zrobić. Dodam tez, że dopiero zaczynam z assemblerem, więc przepraszam jeśli popełniłem jakies banalne błędy.
Kod:
Kod:
.data
szFmt db "%#08x", 0
szColor db "00F0F0F0h", 0
szTak db "Zgadza sie", 0
.data?
Buf db 12 d*p (?)
.code
mov al, 100 ; Ustawia 100 dla al
infinity:
inc bx ; zwiększa wartość bx o 1
cmp al, bx ; porównywanie al i bx
je jest ; skok do "jest" jeśli równe
jmp infinity
jest:
mov al, 0
invoke GetDC, NULL
invoke GetPixel, eax, 200, 200
invoke wsprintf, offset Buf, offset szFmt, eax
cmp szColor, offset Buf ; Sprawdzenie czy kolor się zgadza
je tak ; Skok do "tak" jeśli kolor się zgadza
tak:
invoke MessageBox, NULL, offset Buf, NULL, MB_OK