English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

Private Sub Timer1_Timer()
If GetPixel(hdc, 823, 747) = RGB(214, 85, 33) Then
SendKeys "S"
End If
End Sub


我這樣做了 畫面也達到他的條件 可是就是不動作

2006-11-26 04:19:20 · 6 個解答 · 發問者 ? 1 in 電腦與網際網路 程式設計

還是我的語法錯誤請高手指證.........

2006-11-26 13:32:05 · update #1

那如果 我想要
R值在1-200之間可以動作
G值在1-200之間可以動作
B值在1-200之間可以動作 那我又該怎麼做

2006-11-26 14:46:16 · update #2

1.SendKeys確定遊戲不會吃掉 可以用
2.SendKeys的駐點(Focus)確認沒停在自己的程式上
3.更確定直接抓螢幕的顏色. 座標及顏色沒錯
4.If GetPixel(hdc, 823, 747)後件直接打=RGB(1,1,1)沒錯
可以的話是否可以貼出整篇完整的程式碼

2006-11-27 14:57:49 · update #3

6 個解答

完整程式碼如下:
Option Explicit
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Private Sub Command1_Click()
Me.BackColor = RGB(0, 0, 0)
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Stop
End Sub
Private Sub Form_Load()
Me.WindowState = 2
End Sub
Private Sub Timer2_Timer()
If GetPixel(GetWindowDC(0), 100, 100) = RGB(0, 0, 0) Then
SendKeys "S"
End If
Debug.Print GetPixel(hdc, 100, 100)
End Sub

2006-11-29 01:43:54 · answer #1 · answered by De-Yu, Lai 3 · 0 0

如果你要抓的畫面是動畫有使用到 DirectX
那就是不是上述的方法了!!! 得去看 DirectX 的技術手冊了喔

2006-11-30 07:26:53 · answer #2 · answered by ? 6 · 0 0

SendKeys "S"
並不是被吃掉而是純粹做輸出文字"S"的動作
在遊戲中對話方塊會出現"S"

要使用SendKeys
技能熱鍵必須為"F1~F12"之類的特殊按鍵

2006-11-29 17:04:14 · answer #3 · answered by ? 5 · 0 0

參考看看
ArColor = Array(RGB(0, 0, 0), RGB(0, 0, 255), RGB(0, 255, 0), RGB(255, 0, 0), RGB(255, 255, 255))
DrawWidth = 5
For i = 0 To UBound(ArColor)
Me.PSet (i * 200, i * 200), ArColor(i)
Next

2006-11-27 10:40:11 · answer #4 · answered by ? 1 · 0 0

用 Me.hDC 試試。

2006-11-27 09:41:34 · answer #5 · answered by shege 4 · 0 0

(1)hdc=0的話就是直接抓螢幕的顏色.
如果座標及顏色沒錯,但沒動作的話:
(2)可能你要SendKeys的目標沒穫得駐點(Focus),駐點可能還是停在自己的程式上,變成SendKeys是打給自己.
(3)很多遊戲會吃掉SendKeys,你對它送SendKeys它根本不*你.

2006-11-27 23:58:11 補充:
抱歉:之前有誤,試試
If GetPixel(GetWindowDC(0), 823, 747) = RGB(214, 85, 33) Then

2006-11-27 07:55:01 · answer #6 · answered by W.J.S. 7 · 0 0

fedest.com, questions and answers