DeusImperoMachina Posted November 1, 2011 Posted November 1, 2011 So, basically, I'm trying to create a script that will continuously check the color of a single pixel, and when it changes to a specific color, send Ctrl + Shift + Alt + Q all at once. This is what I've got so far: $Answer = MsgBox(4, "Failsafe", "Run?") If $Answer = 6 Then PixelS() Else Exit EndIf Func PixelS() While 1 Sleep(200) $Pix1 = PixelGetColor(551, 579) If Hex($Pix1) = 'FFFF00' Then Send("^+!q") MsgBox(0, "Fail saved", Hex($Pix1)) Else ContinueLoop EndIf WEnd EndFunc The msgbox output is just for my own testing purposes. Anyway, the script doesn't seem to actually do anything. Even when I start the script with the specified pixel already the required color, no message box pops up and the keys aren't sent. What am I doing wrong?
rcmaehl Posted November 1, 2011 Posted November 1, 2011 You probably don't need the ContinueLoop statement as While 1 is Infinite anyway. Secondly PixelGetColor returns a decimal value which is NOT an interger which is what Hex converts. Basically you have to do some math. My UDFs are generally for me. If they aren't updated for a while, it means I'm not using them myself. As soon as I start using them again, they'll get updated.My Projects WhyNotWin11Cisco Finesse, Github, IRC UDF, WindowEx UDF
Moderators Melba23 Posted November 1, 2011 Moderators Posted November 1, 2011 DeusImperoMachina, You need to specify the number of characters in the Hex value to be returned - if not you get a default of 8/16 and you are comparing to 6. Try this: If Hex($Pix1, 6) = 'FFFF00' Then rcmaehl, Secondly PixelGetColor returns a decimal value which is NOT an intergerA decimal value can well be an integer - and PixelGetColor is very unlikely to return a fractional value! Why not do a bit of testing before posting incorrect information? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
DeusImperoMachina Posted November 1, 2011 Author Posted November 1, 2011 (edited) Ah, thanks a ton, using the decimal form of the color solved it! Edit: Oh, seems I missed a post. That's even better, now I don't have to use a Hex>Decimal converter whenever I want to make a new one, hehe. Thanks for the help guys. Edited November 1, 2011 by DeusImperoMachina
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now