How to determine pixel's color (help GREATLY appreciated)?

bulldog

New member
Joined
Jan 2, 2005
Messages
3
Im working on a program right now where I have the need to make a function that when feed the x,y coords of a certain pixel on the screen spits out the RGB number of that pixel. The pixels will lie outside the program so I cant use functions attached to my Forms controls (i.e. find out the pixel is part of a button and use btnStart.get_BackColor()).

Im using J# .NET, and cant really find anything on MSDN or online that deals with this sort of problem (maybe Im no good at researching). I thought of using a colorpicker dialog, similar to the eyedropper on Photoshop, but cant find one (didnt they have one in Visual J++?), or even PrintScreen and enumerating through the pixels until I get to the one I want, but cant figure out a way to do a screen capture (SendKeys.Send("{PRTSC}") is not yet implemented). As you can tell I dont need an elegant solution, Im a hardcore hacker at heart. Thanks in advance, this would really help me out a lot.
 
Crap. J# doesnt let you do SendKeys? I was going to suggest you do this:

Public Function GetScreenCapture(Optional ByVal FullScreen As Boolean = False) As Image
Captures the current screen and returns as an Image
object
Dim objSK As SendKeys
Dim imgCapture As Image
If FullScreen = True Then
Print Screen pressed twice here as some systems
grab active window "accidentally" on first run
objSK.SendWait("{PRTSC 2}")
Else
objSK.SendWait("%{PRTSC}")
End If
Dim objData As IDataObject = Clipboard.GetDataObject()
Return CType(objData.GetData(DataFormats.Bitmap), Bitmap)
End Function

Try SendWait then ;). Sorry I cant help you there.

-The Pentium Guy
 
ThePentiumGuy said:
Crap. J# doesnt let you do SendKeys? I was going to suggest you do this:

Public Function GetScreenCapture(Optional ByVal FullScreen As Boolean = False) As Image
Captures the current screen and returns as an Image
object
Dim objSK As SendKeys
Dim imgCapture As Image
If FullScreen = True Then
Print Screen pressed twice here as some systems
grab active window "accidentally" on first run
objSK.SendWait("{PRTSC 2}")
Else
objSK.SendWait("%{PRTSC}")
End If
Dim objData As IDataObject = Clipboard.GetDataObject()
Return CType(objData.GetData(DataFormats.Bitmap), Bitmap)
End Function

Try SendWait then ;). Sorry I cant help you there.

-The Pentium Guy

hehe..... umm I feel dumb for saying this, but you were right. In the MSDN documentation it says that the {PRTSC} argument of SendKeys.Send() is reserved for future use, but I went ahead and tried it anyways.... low and behold it works. Thanks for the advice.
 
Back
Top