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

楼主 |
发表于 2012-6-23 02:06
|
显示全部楼层
Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Integer, ByVal X As Integer, ByVal Y As Integer) As Integer
Public Declare Function ReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As Integer, ByVal hdc As Integer) As Integer
Public Declare Function GetDC Lib "user32" (ByVal hwnd As IntPtr) As Integer
'查找与指定文件关联在一起的程序的文件名(用来启动exe文件)
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As IntPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Integer) As Integer
'设置鼠标的位置
Public Declare Function SetCursorPos Lib "user32" (ByVal X As Integer, ByVal Y As Integer) As Integer
Public Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtraInfo As Integer)
Public Const MOUSEEVENTF_ABSOLUTE = &H8000 'dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元
Public Const MOUSEEVENTF_MOVE = &H1 '移动鼠标
Public Const MOUSEEVENTF_LEFTDOWN = &H2 '模拟鼠标左键按下
Public Const MOUSEEVENTF_LEFTUP = &H4 '模拟鼠标左键抬起
Public Const MOUSEEVENTF_RIGHTDOWN = &H8 '模拟鼠标右键按下
Public Const MOUSEEVENTF_RIGHTUP = &H10 '模拟鼠标右键按下
Public Const MOUSEEVENTF_MIDDLEDOWN = &H20 '模拟鼠标中键按下
Public Const MOUSEEVENTF_MIDDLEUP = &H40 '模拟鼠标中键按下
Public Const MOUSEEVENTF_WHEEL = &H800 '滑动:
'dx 根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动
'dy 根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动
'cButtons未使用
'dwExtraInfo 通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序
'使窗口显示的函数ShowWindow
Public Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hWnd As IntPtr, ByVal nCmdShow As Int32) As Boolean
' 以下是nCmdShow的常数
Public Const SW_HIDE = 1 '隐藏窗口,活动状态给令一个窗口
Public Const SW_MINIMIZE = 2 ' 最小化窗口,活动状态给令一个窗口
Public Const SW_RESTORE = 3 '用原来的大小和位置显示一个窗口,同时令其进入活动状态
Public Const SW_SHOW = 4 '用当前的大小和位置显示一个窗口,同时令其进入活动状态
Public Const SW_SHOWMAXIMIZED = 5 '最大化窗口,并将其激活
Public Const SW_SHOWMINIMIZED = 6 '最小化窗口,并将其激活
Public Const SW_SHOWMINNOACTIVE = 7 '最小化一个窗口,同时不改变活动窗口
Public Const SW_SHOWNA = 8 '用当前的大小和位置显示一个窗口,不改变活动窗口
Public Const SW_SHOWNOACTIVATE = 9 ' 用最近的大小和位置显示一个窗口,同时不改变活动窗口
Public Const SW_SHOWNORMAL = 10 '与SW_RESTORE相同
'下面是遍历所有举兵的函数EnumChildWindows 和EnumChildProc
Public Delegate Function EnumChildProc(ByVal hWnd As IntPtr, ByVal lParam As Integer) As Boolean
Public Declare Unicode Function EnumChildWindows Lib "user32.dll" (ByVal hWndParent As IntPtr, ByVal lpEnumFunc As EnumChildProc, ByVal lParam As Integer) As Boolean
'获取类名的函数GetClassName
Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Integer, ByVal lpclassname As String, ByVal nMaxCount As Integer) As Integer
Public Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Integer, ByVal lpString As String) As Integer
Declare Function RedrawWindow Lib "user32 " (ByVal hwnd As Integer, ByVal lprcUpdate As Integer, ByVal hrgnUpdate As Integer, ByVal fuRedraw As Integer) As Integer
Public Const NULLAPI = 0&
Public Const RDW_INVALIDATE = &H1
Public Const RDW_ERASE = &H4
'根据窗体名称获取句柄的api函数声明,其形式如:hwnd = FindWindow(vbNullString, "QQ用户登录")** 如果我们事先知道该控件的类名或是标题,可以使用 API 函数 FindWindow 来得到该控件的句柄,一般我们只会用到其中一个参数,那么另外一个参数写为空字符串 vbNullString 就可以了。
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As Integer
'常量
Public Const MF_BYPOSITION = &H400&
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_HIDEWINDOW = &H80
Public Const SWP_SHOWWINDOW = &H40
Public Const Flag = SWP_NOMOVE Or SWP_NOSIZE '不移动和改变窗口大小
Public Const WS_EX_LAYERED = &H80000
Public Const GWL_EXSTYLE = (-20)
Public Const LWA_ALPHA = &H2
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
'控件的父控件的句柄
Public Declare Function GetParent Lib "user32" (ByVal hwnd As Integer) As Long
Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Integer) As Long
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Public Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Integer, ByVal wMapType As Integer) As Long '
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Public Const MAX_PATH = 260
Public Const VK_C = &H43
Public Const WM_F1 = 112
Public Const WM_F2 = 113
Public Const WM_F3 = 114
Public Const WM_F4 = 115 '&H73
Public Const WM_F = 70
Public Const WM_C = 67
Public Const WM_P = 80
Public Const WM_Q = 81
Public Const WM_X = 88
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_CHAR = &H102
Public Const WM_SYSKEYDOWN = &H104
Public Const WM_SYSKEYUP = &H105
Public Const VK_Q = 81
Public Const VK_ALT = 18
Public Const WM_SETFOCUS = &H7
Public Const KEYEVENTF_EXTENDEDKEY = &H1
Public Const KEYEVENTF_KEYUP = &H2
Public Const WM_LBUTTONDOWN = &H201 '窗口中按下鼠标左键
Public Const WM_LBUTTONUP = &H202 '窗口中松开鼠标左键
Public Const WM_MOUSEMOVE = &H200 '窗口中移动鼠标
Public Const WM_RBUTTONDOWN = &H204 '窗口中按下鼠标右键
Public Const WM_RBUTTONUP = &H205 '窗口中松开鼠标右键
Public Const WM_MOUSEWHEEL = &H20A '鼠标滚轮
Public Const WM_NCLBUTTONDOWN = &HA1 '窗口标题栏中按下鼠标左键
Public Const WM_NCLBUTTONUP = &HA2 '窗口标题栏中左开鼠标左键
Public Const WM_NCMOUSEMOVE = &HA0 '窗口标题栏中移动鼠标
Public Const WM_NCRBUTTONDOWN = &HA4 '窗口标题栏中按下鼠标右键
Public Const WM_NCRBUTTONUP = &HA5 '窗口标题栏中松开鼠标右键
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)
Public Declare Function NumberOcr Lib "d:\NumberOcr.dll" (ByVal CompareA As Integer, ByVal CompareB As Integer, ByVal CompareC As Integer, ByVal CompareD As Integer) As Double '"c:\NumberOcr.dll"
Public Declare Function NumberYellowOcr Lib "d:\NumberOcr.dll" (ByVal CompareA As Integer, ByVal CompareB As Integer, ByVal CompareC As Integer, ByVal CompareD As Integer) As Double '"d:\NumberOcr.dll"
Public Declare Function HangQingJiaGeOcr Lib "d:\NumberOcr.dll" (ByVal CompareA As Integer, ByVal CompareB As Integer, ByVal CompareC As Integer, ByVal CompareD As Integer) As Double 'e:\NumberOcr.dll
Public Declare Sub HangQingHeYueOcr Lib "d:\NumberOcr.dll" (ByVal CompareA As Integer, ByVal CompareB As Integer, ByVal CompareC As Integer, ByVal CompareD As Integer, ByVal a As String) 'c"c:\NumberOcr.dll"
Public Declare Sub GetString2 Lib "d:\MyShiYan\StrSamp\Debug\StrSamp.dll" (ByVal x1 As Integer, ByVal y1 As Integer, ByVal x2 As Integer, ByVal y2 As Integer, ByVal a As String) 'Alias "_GetString@5" "E:\MyShiYan\StrSamp\Debug\StrSamp.dll"
Public Declare Function YiShengNumberOcr Lib "I:\临时炒单\YiShengNumberOcr\Debug\YiShengNumberOcr.dll" (ByVal CompareA As Integer, ByVal CompareB As Integer, ByVal CompareC As Integer, ByVal CompareD As Integer) As Double
Public Declare Function YiShengNumberOcrA Lib "I:\临时炒单\YiShengNumberOcr\Debug\YiShengNumberOcr.dll" (ByVal CompareA As Integer, ByVal CompareB As Integer, ByVal CompareC As Integer, ByVal CompareD As Integer) As Double '"d:\NumberOcr.dll"
Public Declare Function YiShengJiaGeOcr Lib "I:\临时炒单\YiShengNumberOcr\Debug\YiShengNumberOcr.dll" (ByVal CompareA As Integer, ByVal CompareB As Integer, ByVal CompareC As Integer, ByVal CompareD As Integer) As Double
Public Declare Function YiShengHeYueOcr Lib "I:\临时炒单\YiShengNumberOcr\Debug\YiShengNumberOcr.dll" (ByVal x1 As Integer, ByVal y1 As Integer, ByVal x2 As Integer, ByVal y2 As Integer, ByVal a As String, ByVal charactersNum As Integer, ByVal ab As String, ByVal charactersNumB As Integer) As Integer
Public Declare Function YiShengStrOcr Lib "I:\临时炒单\YiShengNumberOcr\Debug\YiShengNumberOcr.dll" (ByVal x1 As Integer, ByVal y1 As Integer, ByVal x2 As Integer, ByVal y2 As Integer, ByVal a As String, ByVal charactersNum As Integer) As Integer
'Public Declare Function GetString2 Lib "c:\NumberOcr.dll" (ByVal x1 As Integer, ByVal y1 As Integer, ByVal x2 As Integer, ByVal y2 As Integer, ByVal a As String)
Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As IntPtr) As Integer
'Public Declare Function lstrcpyn Lib "kernel32" Alias "lstrcpynA" (ByVal lpString1 As String, ByVal lpString2 As Integer, ByVal iMaxLength As Integer) As Integer
Public Declare Function lstrcpyn Lib "kernel32" Alias "lstrcpynA" (ByVal lpString1 As String, ByVal lpString2 As Integer, ByVal iMaxLength As Integer) As Integer
Public Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Integer, ByVal yPoint As Integer) As Integer
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As IntPtr, ByVal lpString As String, ByVal cch As Integer) As Integer
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
'声明行情软件各指标的变量及坐标变量
Public PB1dif(10, 2), PB6dea(10, 2) As Double '设置行情软件瀑布线PB1、PB6和macd的def、dea变量
Public PB1dif_X1(10, 2), PB1dif_Y1(10, 2), PB1dif_X2(10, 2), PB1dif_Y2(10, 2), PB6dea_X1(10, 2), PB6dea_Y1(10, 2), PB6dea_X2(10, 2), PB6dea_Y2(10, 2) As Long '设置行情软件瀑布线PB1、PB6和macd的def、dea变量读取的坐标值
Public HangQingHeYue(5) As String
Public HangQingMaiJia1(5), HangQingMaiJia2(5) As Double '设置行情软件价格、卖价、买价变量
Public HangQingHeYue_X1(5), HangQingHeYue_Y1(5), HangQingHeYue_X2(5), HangQingHeYue_Y2(5) As Long '设置行情软件价格坐标
Public HangQingMaiJia1_X1(5), HangQingMaiJia1_Y1(5), HangQingMaiJia1_X2(5), HangQingMaiJia1_Y2(5) As Long '设置行情软件卖价坐标
Public HangQingMaiJia2_X1(5), HangQingMaiJia2_Y1(5), HangQingMaiJia2_X2(5), HangQingMaiJia2_Y2(5) As Long '设置行情软件买价坐标
'声明交易软件各指标的变量及坐标变量
Public ZiXuanHeYue(5) As String '定义“自选合约”
Public ZiXuanHeYue_X1(5), ZiXuanHeYue_Y1(5), ZiXuanHeYue_X2(5), ZiXuanHeYue_Y2(5) As Long '定义“自选合约”的4个坐标、
Public BiaoQianMing(5) As String '定义“标签名”,6个标签分别为“上海”“大连”“中金”“郑州”“自选1”“自选2”
Public BiaoQianMing_X1(5), BiaoQianMing_Y1(5), BiaoQianMing_X2(5), BiaoQianMing_Y2(5) As Long '定义“标签名”的4个坐标、
Public ZiJinXiangMu(7) As String '定义“资金项目”,7个项目分别为“今日初始资金”“总权益”“可用资金”“持仓盈亏”“手续费”“今日盈亏”“今日盈亏比例”
Public ZiJinXiangMu_X1(7), ZiJinXiangMu_Y1(7), ZiJinXiangMu_X2(7), ZiJinXiangMu_Y2(7) As Long '定义“资金项目”的4个坐标、
Public DangQianHeYue As String '定义“当前合约”
Public DangQianHeYue_X1, DangQianHeYue_Y1, DangQianHeYue_X2, DangQianHeYue_Y2 As Long '定义“当前合约”的4个坐标
Public BiaoQianHeYue(2) As String '定义“标签合约”
Public BiaoQianHeYue_X1(2), BiaoQianHeYue_Y1(2), BiaoQianHeYue_X2(2), BiaoQianHeYue_Y2(2) As Long '定义“标签合约”的4个坐标、
Public KaiPingAnNiu(3) As String '定义“开平按钮”,共4个“开多”“平多”“开空”“平空”
Public KaiPingAnNiu_X1(3), KaiPingAnNiu_Y1(3), KaiPingAnNiu_X2(3), KaiPingAnNiu_Y2(3) As Long '定义“开平按钮”的4个坐标、
Public ChiCangLan(11, 7) As String '定义“持仓栏”
Public ChiCangLan_X1(11, 7), ChiCangLan_Y1(11, 7), ChiCangLan_X2(11, 7), ChiCangLan_Y2(11, 7) As Long '定义“持仓栏”的4个坐标、
Public WeiTuoLan(9, 5) As String '定义“委托栏”
Public WeiTuoLan_X1(9, 5), WeiTuoLan_Y1(9, 5), WeiTuoLan_X2(9, 5), WeiTuoLan_Y2(9, 5) As Long '定义“委托栏”的4个坐标、
Public ChiCangLanAnNiu(2) As String '定义“持仓栏按钮”,共3个“平仓”“清仓”“反手”
Public ChiCangLanAnNiu_X1(2), ChiCangLanAnNiu_Y1(2), ChiCangLanAnNiu_X2(2), ChiCangLanAnNiu_Y2(2) As Long '定义“持仓栏按钮”的4个坐标
Public WeiTuoLanAnNiu(1) As String '定义“持仓栏按钮”,共3个“平仓”“清仓”“反手”
Public WeiTuoLanAnNiu_X1(1), WeiTuoLanAnNiu_Y1(1), WeiTuoLanAnNiu_X2(1), WeiTuoLanAnNiu_Y2(1) As Long '定义“持仓栏按钮”的4个坐标
Public ChengJiaoLan(7, 15) As String '定义“成交栏”
Public ChengJiaoLan_X1(7, 15), ChengJiaoLan_Y1(7, 15), ChengJiaoLan_X2(7, 15), ChengJiaoLan_Y2(7, 15) As Long '定义“成交栏”的4个坐标、
Public EMA_MACD(10, 2), QuShiTiaoJianXuHao, CeLueTiaoJianXuHao, JiaGeTiaoJianXuHao, JianJieTiaoJianXuHao, ShiJianTiaoJianXuHao, HaoCha(), QuShiTiaoJianXuHao2, CeLueTiaoJianXuHao2, JiaGeTiaoJianXuHao2, JianJieTiaoJianXuHao2, ShiJianTiaoJianXuHao2 As Integer ' 趋势条件序号、策略条件序号、价格条件序号、简捷条件序号、时间条件序号、流号序号差
Public My1MACD(,), My1EMA(,), ChuFa1(,), KongChuFa(,) As Integer
Public ZhiXing1, ZhiXing2, ShouShu(), LiuHao, HangHao1, HangHao2, HangHao3 As Integer '执行标识、策略、手数、执行状态标识、流号、行号
Public hqhwnd, jyhwnd, cjhwnd, byhwnd, yishenghwnd, jinshidahwnd, Myhwnd(0 To 8) As Long '行情句柄、交易句柄、成交栏句柄
Public JiaGe() As Double
Public ZhiLingLeiBie(), HeYue(), FangXiang(), TiaoJian1(), ZhiBiao1(,), ZhiXingZhuangTai(), XiaDan_Time(), ZhouQi(), ZhiBiaoZhuangTai(), JianJieZhiBiaoZhuangTai(), JianJieZhiBiao1(), JianJieZhouQi() As String '指令类别、合约、方向、条件1、指标、状态标识
Public MaiRuMaiChu(), DaYuXiaoYu(), ShiJianTiaoJianDan_time() As String '买入卖出、大于小于
Public Function GetIni(ByVal SectionName As String, ByVal KeyWord As String, ByVal DefString As String, ByVal FileName As String) As String
Dim ResultString As String = Nothing
ResultString = LSet(ResultString, 256)
If GetPrivateProfileString(SectionName, KeyWord, vbNullString, ResultString, Len(ResultString), FileName) > 0 Then
GetIni = Left(ResultString, InStr(ResultString, Chr(0)) - 1)
Else
WritePrivateProfileString(SectionName, KeyWord, DefString, FileName)
GetIni = DefString
End If
End Function
Public Function GetINI2(ByVal Section As String, ByVal AppName As String, ByVal lpDefault As String, ByVal FileName As String) As String
Dim Str As String = Nothing
Str = LSet(Str, 256)
GetPrivateProfileString(Section, AppName, lpDefault, Str, Len(Str), FileName)
Return Microsoft.VisualBasic.Left(Str, InStr(Str, Chr(0)) - 1)
End Function
Public Function GetINIW(ByVal Section As String, ByVal AppName As String, ByVal lpDefault As String, ByVal FileName As String) As String
Dim MyEncoder As System.Text.Encoding = System.Text.Encoding.Default
Dim strResult As String
Dim chars(2048) As Char
strResult = CStr(chars)
GetPrivateProfileString(Section, AppName, lpDefault, strResult, Len(strResult), FileName)
Dim rByte() As Byte = System.Text.Encoding.Default.GetBytes(strResult.ToCharArray)
strResult = New String(MyEncoder.GetChars(rByte))
Return Microsoft.VisualBasic.Left(strResult, InStr(strResult, Chr(0)) - 1)
End Function
Public Sub MySleep(ByVal n As Long) '延时函数,不会假死
Dim sTime As Long
'MsgBox(n)
sTime = 1
While sTime <= n
sTime = sTime + 1
System.Windows.Forms.Application.DoEvents()
' DoEvents()
Sleep(10)
End While
End Sub
Function MakeKeyLparam(ByVal VirtualKey As Long, ByVal flag As Long) As Long
'参数VirtualKey表示按键虚拟码,flag表示是按下键还是释放键,用WM_KEYDOWN和WM_KEYUP这两个常数表示
Dim s As String
Dim Firstbyte As String 'lparam参数的24-31位
If flag = WM_SYSKEYDOWN Then '如果是按下键
Firstbyte = "00 "
Else
Firstbyte = "C0 " '如果是释放键
End If
Dim Scancode As Long
'获得键的扫描码
Scancode = MapVirtualKey(VirtualKey, 0)
Dim Secondbyte As String 'lparam参数的16-23位,即虚拟键扫描码
Secondbyte = Right("00 " & Hex(Scancode), 2)
MsgBox("!" & Secondbyte)
s = Firstbyte & Secondbyte & "0001 " '0001为lparam参数的0-15位,即发送次数和其它扩展信息
MakeKeyLparam = Val("&H " & s)
End Function
'封装成函数,这里用来启动调用exe文件
Public Sub ShellEx(ByVal Path As String)
Dim splitpos As Long
splitpos = InStrRev(Path, "\")
ShellExecute(0, "open", Path, "", Mid(Path, 1, splitpos - 1), 1)
End Sub
End Module |
|
|