- 金币:
-
- 奖励:
-
- 热心:
-
- 注册时间:
- 2002-1-24
|
|

楼主 |
发表于 2012-7-7 23:51
|
显示全部楼层
啥也不说了,上酸(栓)菜!
'遍历窗口句柄并存储在动态数组中(这段前面有过,重复一下)
Public Function EnumWindowProc(ByVal hWnd As Long, ByVal lParam As Long) As Long
If BianLiJuBing = 1 Then
BianLiJuBing = 0
g_nWndCount = 0
ReDim MysTitle(g_nWndCount) ' MsgBox("标题" & sTitle)
ReDim MysClass(g_nWndCount) ' MsgBox("类名" & sClass)
ReDim Myshwnd(g_nWndCount) 'MsgBox("hWnd" & hWnd)
Else
ReDim Preserve MysTitle(g_nWndCount) ' MsgBox("标题" & sTitle)
ReDim Preserve MysClass(g_nWndCount) ' MsgBox("类名" & sClass)
ReDim Preserve Myshwnd(g_nWndCount) 'MsgBox("hWnd" & hWnd)
End If
MysTitle(g_nWndCount) = Space$(MAX_PATH)
MysClass(g_nWndCount) = Space$(MAX_PATH)
Call GetClassName(hWnd, MysClass(g_nWndCount), MAX_PATH)
Call GetWindowText(hWnd, MysTitle(g_nWndCount), MAX_PATH)
MysTitle(g_nWndCount) = Strings.Left(RTrim(LTrim(MysTitle(g_nWndCount))), Len(LTrim(RTrim(MysTitle(g_nWndCount)))) - 1)
Myshwnd(g_nWndCount) = hWnd
g_nWndCount = g_nWndCount + 1
EnumWindowProc = 1
End Function
Private Sub HuoQuJuBing() '获取句柄子程序(仅供参考)
Dim i As Integer
Dim yisheng As String
yisheng = TextBox11.Text
TongYongHand = FindWindow(vbNullString, "通用下单")
TextBox13.Text = TongYongHand
YiShengHand = FindWindow(vbNullString, yisheng)
TextBox12.Text = YiShengHand
If TongYongHand > 0 Then
' 开始遍历软件的所有句柄
Call EnumChildWindows(TongYongHand, AddressOf EnumWindowProc, &H0)
BianLiJuBing = 1 '当为1时,遍历句柄函数被调用过,再次调用时,要初始化值为0
'通过遍历出来的句柄标题获取
For i = 0 To g_nWndCount - 1
' MsgBox(MysTitle(i))
' MsgBox(i)
' MsgBox(Myshwnd(i))
If i = 0 Then '
ZhuiJiaHand = Myshwnd(i)
TextBox1.Text = ZhuiJiaHand
ElseIf i = 2 Then '
ZhiYingZhiSunJiaGeHand = Myshwnd(i) '止赢价格
TextBox2.Text = ZhiYingZhiSunJiaGeHand
ElseIf i = 6 Then '
WeiTuoShuLiangHand = Myshwnd(i) '委托数量
TextBox3.Text = WeiTuoShuLiangHand
ElseIf i = 7 Then '
WeiTuoJiaGeHand = Myshwnd(i) '委托价格
TextBox4.Text = WeiTuoJiaGeHand
ElseIf i = 13 Then '
DingDanLeiXingHand = Myshwnd(i) '订单类型
TextBox5.Text = DingDanLeiXingHand
ElseIf i = 15 Then '
KaiPingHand = Myshwnd(i) '开平
TextBox6.Text = KaiPingHand
ElseIf i = 16 Then '
QingChuHand = Myshwnd(i) '清除
TextBox7.Text = QingChuHand
ElseIf i = 17 Then '
MaiMaiHand = Myshwnd(i) '买卖
TextBox8.Text = MaiMaiHand
ElseIf i = 18 Then '
HeYueHand = Myshwnd(i) '合约
TextBox9.Text = HeYueHand
ElseIf i = 20 Then '
QueDingHand = Myshwnd(i) '确定
TextBox10.Text = QueDingHand
End If
Next i
Else
MsgBox("没有发现通用下单窗口,请打开窗口!")
Exit Sub
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '开多
' Dim Ctr1, Ctr2, Freq As Decimal
' QueryPerformanceFrequency(Freq)
' QueryPerformanceCounter(Ctr1)
PostMessage(MaiMaiHand, WM_KEYDOWN, WM_1, 0)
PostMessage(MaiMaiHand, WM_KEYUP, WM_1, 0)
PostMessage(KaiPingHand, WM_KEYDOWN, WM_1, 0)
PostMessage(KaiPingHand, WM_KEYUP, WM_1, 0)
SendMessage(WeiTuoShuLiangHand, WM_SETTEXT, 0, CStr(NumericUpDown2.Value)) '发送委托数量
StrA = CStr(charsA) '给合约字符串申请内存空间
StrB = CStr(charsB) '给合约品种字符串申请内存空间
pinzhongDianCha = YiShengHeYueYellowOcr(3414, 526, 3478, 540, StrA, 12, StrB, 6) '识别合约,获取合约和品种点差
SendMessage(HeYueHand, WM_SETTEXT, 0, Trim(StrA)) '发送合约消息
If ZhuBeiDongChengJiao = "对价成交" Then
hangqingMaiChu = YiShengNumberOcr(3458, 617, 3525, 636)
SendMessage(WeiTuoJiaGeHand, WM_SETTEXT, 0, CStr(hangqingMaiChu + NumericUpDown3.Value * pinzhongDianCha)) '发送按卖价主动买入消息
ElseIf ZhuBeiDongChengJiao = "挂单成交" Then
hangqingMaiRu = YiShengNumberOcr(3458, 638, 3525, 655)
SendMessage(WeiTuoJiaGeHand, WM_SETTEXT, 0, CStr(hangqingMaiRu + NumericUpDown3.Value * pinzhongDianCha)) '发送买价被动买入消息
End If
Call PostMessage(QueDingHand, WM_LBUTTONDOWN, 0, 0) '发送消息
Call PostMessage(QueDingHand, WM_LBUTTONUP, 0, 0) '发送消息
' QueryPerformanceCounter(Ctr2)
' MsgBox((Ctr2 - Ctr1) / Freq * 1000000 / 1000 & "微妙")
System.Windows.Forms.Application.DoEvents()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '平多
PostMessage(MaiMaiHand, WM_KEYDOWN, WM_3, 0)
PostMessage(MaiMaiHand, WM_KEYUP, WM_3, 0)
PostMessage(KaiPingHand, WM_KEYDOWN, WM_3, 0)
PostMessage(KaiPingHand, WM_KEYUP, WM_3, 0)
SendMessage(WeiTuoShuLiangHand, WM_SETTEXT, 0, CStr(NumericUpDown2.Value)) '发送委托数量
StrA = CStr(charsA) '给合约字符串申请内存空间
StrB = CStr(charsB) '给合约品种字符串申请内存空间
pinzhongDianCha = YiShengHeYueYellowOcr(3414, 526, 3478, 540, StrA, 12, StrB, 6) '识别合约,获取合约和品种点差
SendMessage(HeYueHand, WM_SETTEXT, 0, Trim(StrA)) '发送合约消息
If ZhuBeiDongChengJiao = "对价成交" Then
hangqingMaiRu = YiShengNumberOcr(3458, 638, 3525, 655)
SendMessage(WeiTuoJiaGeHand, WM_SETTEXT, 0, CStr(hangqingMaiRu - NumericUpDown3.Value * pinzhongDianCha)) '发送按买价主动平卖消息
ElseIf ZhuBeiDongChengJiao = "挂单成交" Then
hangqingMaiChu = YiShengNumberOcr(3458, 617, 3525, 636)
SendMessage(WeiTuoJiaGeHand, WM_SETTEXT, 0, CStr(hangqingMaiChu - NumericUpDown3.Value * pinzhongDianCha)) '发送按卖价被动平卖消息
End If
Call PostMessage(QueDingHand, WM_LBUTTONDOWN, 0, 0) '发送消息
Call PostMessage(QueDingHand, WM_LBUTTONUP, 0, 0) '发送消息
System.Windows.Forms.Application.DoEvents()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click '开空
PostMessage(MaiMaiHand, WM_KEYDOWN, WM_3, 0)
PostMessage(MaiMaiHand, WM_KEYUP, WM_3, 0)
PostMessage(KaiPingHand, WM_KEYDOWN, WM_1, 0)
PostMessage(KaiPingHand, WM_KEYUP, WM_1, 0)
SendMessage(WeiTuoShuLiangHand, WM_SETTEXT, 0, CStr(NumericUpDown2.Value)) '发送委托数量
StrA = CStr(charsA) '给合约字符串申请内存空间
StrB = CStr(charsB) '给合约品种字符串申请内存空间
pinzhongDianCha = YiShengHeYueYellowOcr(3414, 526, 3478, 540, StrA, 12, StrB, 6) '识别合约,获取合约和品种点差
SendMessage(HeYueHand, WM_SETTEXT, 0, Trim(StrA)) '发送合约消息
If ZhuBeiDongChengJiao = "对价成交" Then
hangqingMaiRu = YiShengNumberOcr(3458, 638, 3525, 655)
SendMessage(WeiTuoJiaGeHand, WM_SETTEXT, 0, CStr(hangqingMaiRu - NumericUpDown3.Value * pinzhongDianCha)) '发送买价主动卖出消息
ElseIf ZhuBeiDongChengJiao = "挂单成交" Then
hangqingMaiChu = YiShengNumberOcr(3458, 617, 3525, 636)
SendMessage(WeiTuoJiaGeHand, WM_SETTEXT, 0, CStr(hangqingMaiChu - NumericUpDown3.Value * pinzhongDianCha)) '发送按买价被动卖出消息
End If
Call PostMessage(QueDingHand, WM_LBUTTONDOWN, 0, 0) '发送消息
Call PostMessage(QueDingHand, WM_LBUTTONUP, 0, 0) '发送消息
System.Windows.Forms.Application.DoEvents()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click '平空
PostMessage(MaiMaiHand, WM_KEYDOWN, WM_1, 0)
PostMessage(MaiMaiHand, WM_KEYUP, WM_1, 0)
PostMessage(KaiPingHand, WM_KEYDOWN, WM_3, 0)
PostMessage(KaiPingHand, WM_KEYUP, WM_3, 0)
SendMessage(WeiTuoShuLiangHand, WM_SETTEXT, 0, CStr(NumericUpDown2.Value)) '发送委托数量
StrA = CStr(charsA) '给合约字符串申请内存空间
StrB = CStr(charsB) '给合约品种字符串申请内存空间
pinzhongDianCha = YiShengHeYueYellowOcr(3414, 526, 3478, 540, StrA, 12, StrB, 6) '识别合约,获取合约和品种点差
SendMessage(HeYueHand, WM_SETTEXT, 0, Trim(StrA)) '发送合约消息
If ZhuBeiDongChengJiao = "对价成交" Then
hangqingMaiChu = YiShengNumberOcr(3458, 617, 3525, 636)
SendMessage(WeiTuoJiaGeHand, WM_SETTEXT, 0, CStr(hangqingMaiChu + NumericUpDown3.Value * pinzhongDianCha)) '发送按卖价被动平买消息
ElseIf ZhuBeiDongChengJiao = "挂单成交" Then
hangqingMaiRu = YiShengNumberOcr(3458, 638, 3525, 655)
SendMessage(WeiTuoJiaGeHand, WM_SETTEXT, 0, CStr(hangqingMaiRu + NumericUpDown3.Value * pinzhongDianCha)) '发送按买价主动平买消息
End If
Call PostMessage(QueDingHand, WM_LBUTTONDOWN, 0, 0) '发送消息
Call PostMessage(QueDingHand, WM_LBUTTONUP, 0, 0) '发送消息
System.Windows.Forms.Application.DoEvents()
End Sub |
|
|