拾取的窗体是一个游戏窗体,不知道用API能否读取出某一区域的颜色?

解决方案 »

  1.   

    这要借助API函数。先使用: 
        h = CreateDC("DISPLAY", vbNullString, 0, 0) 
        得到一个hDC,实际就是整个屏幕的hDC。然后利用GetPixel(h, x, y)就可以得到任意点(x, y)的颜色值。 
        Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" _ 
         (ByVal lpDriverName As String, ByVal lpDeviceName As String, _ 
         ByVal lpOutput As String, ByVal lpInitData As Any) As Long 
         
        Private Declare Function DeleteDC Lib "gdi32" _ 
         (ByVal hdc As Long) As Long 
         
        Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As _ 
         Long, ByVal y As Long) As Long 
         
        Private Sub Command1_Click() 
         Dim nDC As Long 
         OldX = Screen.Width / Screen.TwipsPerPixelX 
         OldY = Screen.Height / Screen.TwipsPerPixelY 
         nDC = CreateDC("DISPLAY", vbNullString, vbNullString, ByVal 0&) 
         Me.BackColor = GetPixel(nDC, 0, 0) 
         DeleteDC nDC 
        End Sub 以上摘自问专家网。
      

  2.   

    不知道你这个游戏的窗体是不是DirectX做的 -_-!!!
      

  3.   

    颜色可以取出来,但是有个问题,我的代码是根据鼠标的移动来捕获当前颜色的,但我想实现的是,只捕捉游戏窗体内的颜色,并且当窗体最小化时一样能无误地取出颜色,假设我已知道窗体的hwnd