今天在网上搜索到一个文华转飞狐盘后数据 期货修正版 这样一个autoit 源代码 目的是自动在盘后将日线 5分钟线有文华财经转入飞狐中分析, 用的是autoit, 其中可以自动将文华数据专至文本 这个过程 我想 那位可以将这个代码改一下 只要转文本这一段 每5分钟转换一次 然后将文本数据再由hypertools 转至xpo供ts使用 或许也算实时接收 可以将你的ts策略用在在5或10分钟k线上 。 以下是网址 http://www.55188.com/thread-2662970-1-1.html 这是autoit代码 #Region AutoIt3Wrapper 预编译参数(常用参数) #AutoIt3Wrapper_UseAnsi=n ;编码 #AutoIt3Wrapper_Icon=norton3.ico ;图标 #AutoIt3Wrapper_OutFile= ;输出文件名 #AutoIt3Wrapper_OutFile_Type=exe ;文件类型 #AutoIt3Wrapper_Compression=4 ;压缩等级 #AutoIt3Wrapper_UseUpx=y ;使用压缩 #AutoIt3Wrapper_Res_Comment=证券自动操盘系统 ;注释 #AutoIt3Wrapper_Res_Description=操盘辅助程序 ;详细信息 #AutoIt3Wrapper_Res_Fileversion=2.9.1.87 #AutoIt3Wrapper_Res_FileVersion_AutoIncrement=y ;自动更新版本 #AutoIt3Wrapper_Res_LegalCopyright=@一二基金 林清白 ;版权 ;#AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer% ;自定义资源段 ;#AutoIt3Wrapper_Run_Tidy= ;脚本整理 ;#AutoIt3Wrapper_Run_Obfuscator= ;代码迷惑 ;#AutoIt3Wrapper_Run_AU3Check= ;语法检查 ;#AutoIt3Wrapper_Run_Before= ;运行前 ;#AutoIt3Wrapper_Run_After= ;运行后 #EndRegion AutoIt3Wrapper 预编译参数设置完成 #cs ____________________________________ AutoIt 版本: 3.3.0.1 (第一版) 脚本作者: 林清白 Email: linqbzqx@163.com QQ/TM: 393986160 脚本版本: 一二基金自动操盘系统V2.0 脚本功能: 自动从易盛或者财顺软件获取行情数据,进行判断加仓和平仓,可以设置止赢止损箱体 #ce _______________脚本开始_________________ #RequireAdmin ;Vista使用管理员权限 #Include <Date.au3> #include <Timers.au3> #include <Math.au3> Opt("WinTextMatchMode", 2) ;1=完整, 2=快速 更改窗口函数在执行搜索操作时的窗口文本匹配模式. Opt("WinTitleMatchMode", 1) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase 更改窗口函数在执行搜索操作时的标题匹配模式 Opt("TrayIconDebug", 1) ;0=无信息, 1=调试信息 $g_szVersion = "@文华转飞狐盘后数据@" ;只运行一个进程 If WinExists($g_szVersion) Then Exit AutoItWinSetTitle($g_szVersion) Sleep(200) HotKeySet("!,", "BuRiXian") ;按{Alt+,}补相应品种日线历史K线! HotKeySet("!.", "BuFenShi") ;按{Alt+.}补飞狐交易师当前品种分时 HotKeySet("!/", "Bu5FenZhong") ;按{Alt+/}补相应品种5分钟历史K线! HotKeySet("!'", "ToggleExit") ;按{Alt+'} 该休息了,退出飞狐交易师和文华软件吧! Global $Paused,$feiHuMaA Global $titleWH = "文华财经 - " Global $textWH = "Tab" Global $titleFH = "飞狐交易师" Global $textFH = "菜单条" Global $buShuJu = 0 ,$zhuangTai = "分时" Global $pathWH,$pathFH While True ; 自动刷新文华代码 If Not WinExists($titleWH,$textWH) Then $wenHuaRuanJian = IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","文华财经软件","") ;文华软件完整路径 If Not FileExists($wenHuaRuanJian) Then MsgBox(0,"提示","默认目录下找不到文华财经软件,请启动文华财经软件!",5) ContinueLoop EndIf Run($wenHuaRuanJian,StringLeft($wenHuaRuanJian,StringInStr($wenHuaRuanJian,"\",0,-1))) WinWait("登录","请选择服务器",8) Sleep(100) ControlClick("登录","请选择服务器","[CLASS:Button;TEXT:登录]","left",1) WinWaitClose("登录","请选择服务器",3) ControlClick("登录","请选择服务器","[CLASS:Button;TEXT:登录]","left",1) WinWait($titleWH,$textWH,8) Sleep(300) $pathWH = Processpath(WinGetProcess($titleWH,"")) ;取得文华软件的目录 ElseIf Not WinExists($titleFH,"菜单条") Then $feiHuRuanJian = IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","飞狐交易师专业版","") ;飞狐交易师软件完整路径 If Not FileExists($feiHuRuanJian) Then MsgBox(0,"提示","默认目录下找不到飞狐交易师,请启动飞狐交易师专业版!",5) ContinueLoop EndIf Run($feiHuRuanJian,StringLeft($feiHuRuanJian,StringInStr($feiHuRuanJian,"\",0,-1))) WinWait($titleFH,$textFH,6) Sleep(300) Send("^g") ;启动飞狐交易师接收系统 Sleep(300) If WinExists("请确认","是") Then ControlClick("请确认","是","是") EndIf WinClose("消息") If Not $Paused Then ToolTip("") Sleep(200) $feiHuMaA = "" ContinueLoop EndIf $text = WinGetText($titleFH,$textFH) If StringInStr($text,"数据列表") == 1 Then $text = StringMid($text,StringInStr($text,@LF)+1) $text = StringLeft($text,StringInStr($text,@LF)-1) $text = StringStripWS($text,4) $text = StringStripWS($text,2) $pingZhongDaiMa = StringMid($text,StringInStr($text," ",0,-1)+1) $feiHuMa = $pingZhongDaiMa $wenHuaDaiMa = WenHuaJiaoYiMa($feiHuMa) ;获得交易代码 $wHandWH = WinGetHandle($titleWH,"") $whTitle = WinGetTitle($wHandWH) $wHand = WinGetHandle("Active") If $feiHuMaA == $feiHuMa Then ToolTip($wenHuaDaiMa& ' 文华补' & $zhuangTai & '数据完成,暂停请按"Alt+."') BlockInput(0) Sleep(300) ContinueLoop EndIf ToolTip("正在后台补" & $wenHuaDaiMa& $zhuangTai & ",请稍候……") BlockInput(0) WinActivate($wHandWH,"") WinWaitActive($wHandWH,"",1) Sleep(300) Opt("SendKeyDelay", 100) ;5 毫秒 ControlSend($wHandWH,"","Edit1",StringLeft($wenHuaDaiMa ,StringLen($wenHuaDaiMa)-1)) ;输入文华码 Opt("SendKeyDelay", 100) ;100 毫秒 ControlSend($wHandWH,"","Edit1",StringRight($wenHuaDaiMa,1)) ;输入文华码 Sleep(50) ControlSend($wHandWH,"","Edit1","{Enter}" ) Opt("SendKeyDelay", 5) ;5 毫秒 BlockInput(0) Sleep(300) If $wHand <> $wHandWH Then WinActivate($titleFH,"") WinWaitActive($titleFH,"",1) Sleep(300) EndIf WinMove($titleWH,"",1,@DesktopHeight-10,"","",1) ;把文华藏起来,让您看不到! For $i=1 To 30 If Not ControlGetHandle($wHandWH,"","msctls_progress321") Then ExitLoop ToolTip("正在后台补" & $wenHuaDaiMa& $zhuangTai & ",请稍候……") Sleep(100) If Not $Paused Then ;加快“退出此功能”的速度! ExitLoop EndIf Next If Not $Paused Then ;加快“退出此功能”的速度! ContinueLoop EndIf Sleep(300) ToolTip($wenHuaDaiMa& ' 补数据完成,暂停请按"Alt+."') $feiHuMaA = $feiHuMa ;如果需要补日线或者5分钟历史数据执行…… If $buShuJu == 6 Then WHToFoxtraderTXT_Day() ;补日线 If $buShuJu == 2 Then WHToFoxtraderTXT_Min5() ;补5分钟线 If Not $Paused Then ContinueLoop EndIf ControlSend($titleFH,$textFH,"","{PGDN}") WEnd Func BuRiXian() ;补日线 $Paused = Not $Paused $buShuJu = 6 $zhuangTai = "日线" ZhunBeiBuShuJu($buShuJu) EndFunc Func Bu5FenZhong() ;补5分钟线 $Paused = Not $Paused $buShuJu = 2 $zhuangTai = " 五分钟线" ZhunBeiBuShuJu($buShuJu) EndFunc Func BuFenShi() ;脚本暂停 $Paused = Not $Paused $buShuJu = 0 $zhuangTai = "分时线" ZhunBeiBuShuJu($buShuJu) Return EndFunc Func ZhunBeiBuShuJu($buShuJu) If $Paused Then $state = WinGetState($titleWH,"") WinMove($titleWH,"",1,@DesktopHeight-10,"","",1) ;把文华藏起来,让您看不到! Sleep(600) WinActivate($titleWH,"") WinWaitActive($titleWH,"",1) ControlSend($titleWH,"","Edit1","{F5}") ;换到分时线或者K线 Sleep(200) WinSetState($titleWH,"",$state) $pathWH = Processpath(WinGetProcess($titleWH,"")) ;取得文华软件的目录 $pathFH = Processpath(WinGetProcess($titleFH,"")) ;取得文华软件的目录 If $buShuJu == 0 Then ControlClick($titleWH,"","ToolbarWindow326","left",1,13,12) ;补分时线 ElseIf $buShuJu == 2 Then ControlClick( $titleWH,"","ToolbarWindow326","left",1,82,11) ;补5分钟线 ElseIf $buShuJu == 6 Then ControlClick($titleWH,"","ToolbarWindow326","left",1,218,11) ;补日线 EndIf ;Sleep(200) ;WinMove($titleWH,"",1,@DesktopHeight-20,40,20) ;Sleep(500) Else ToolTip("") Sleep(200) MouseClick("left") WinMove($titleWH,"",0,0,@DesktopWidth,@DesktopHeight-40,1) WinSetState($wHandWH,"",@SW_MAXIMIZE) ;记住文华财经和飞狐交易师软件路径供小次使用! $wenHuaRuanJian = IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","文华财经软件","") ;文华软件完整路径 $feiHuRuanJian = IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","飞狐交易师专业版","") ;飞狐交易师软件完整路径 If $wenHuaRuanJian <> $pathWH Then IniWrite(@ScriptDir & "\使用说明.TXT","飞狐→文华","文华财经软件",$pathWH) If $feiHuRuanJian <> $pathFH Then IniWrite(@ScriptDir & "\使用说明.TXT","飞狐→文华","飞狐交易师专业版",$pathFH) EndIf EndFunc Func ToggleExit() ;退出程序 ControlSend($titleFH,"","","!{F4}") Sleep(100) ProcessClose(WinGetProcess($titleWH,"")) Exit EndFunc Func TEXT2FOX($shuJuGeShi,$filePath,$daiMaFH) ;自动从文本文件格式导入到飞狐交易师 Local $title = "数据管理" Local $text = "确定" WinActivate($titleFH,$textFH) WinWaitActive($titleFH,$textFH) Sleep(300) BlockInput(1) ;按下组合键,Ctrl+D 调入 “数据管理模块” Send("^d") WinWait($title,$text,1) ;选择导入 $size = WinGetPos($title,$text) ControlClick($title,$text,"SysTabControl321","left",2,190,9) Sleep(100) ;选择数据类型 ControlCommand($title,$text,"ComboBox1","SelectString", $shuJuGeShi) ;选择数据格式为文本 ControlCommand($title,$text,"ComboBox2","SelectString", "文本数据") ;输入数据来源路径 ControlSetText($title,$text,"Edit1",$filePath) ;文本格式设置” ControlClick($title,$text,"[CLASS:Button;TEXT:文本格式设置]","left",1) $title = "数据文本格式" $text = "确定" WinWait($title,$text,1) ;不需要跳过文件头一行 ControlSetText($title,$text,"Edit3","7") ControlSetText($title,$text,"Edit2","0") ControlSetText($title,$text,"Edit4","TXT") ;输入文件后缀 TXT ;选择分隔符为空格 ControlCommand($title,$text,"ComboBox8","SelectString", "空格") ;日期格式 年/月/日 ControlCommand($title,$text,"ComboBox14","SelectString", "Y/M/D,Y-M-D,Y.M.D") ; 文本格式设置完成退出 ControlFocus($title,$text,"[CLASS:Button;TEXT:确定]") Sleep(100) ControlSend($title,$text,"[CLASS:Button;TEXT:确定]","{Space}") Sleep(200) $title = "数据管理" $text = "确定" ;选择覆盖补充方式 If $shuJuGeShi == "日线数据" Then ControlClick($title,$text,"[CLASS:Button;TEXT:补充方式]","left",1) Else ControlClick($title,$text,"[CLASS:Button;TEXT:覆盖方式]","left",1) EndIf ;输入当前品种代码,可能会加快导入速度 ControlClick($title,$text,"[CLASS:Button;TEXT:加入个股]","left",1) WinWait("选择证券","确定",1) Send($daiMaFH) Sleep(100) Send("{Enter}") WinWaitClose("选择证券","确定",1) Sleep(100) ;开始执行导入 $wHand = WinGetHandle($title,$text) If Not $wHand Then BlockInput(0) Return EndIf $size = WinGetPos($wHand) $XX = $size[0]+$size[2]*0.554 $YY = $size[1]+$size[3]*0.832 $oldColor=PixelGetColor($XX,$YY,$wHand) ControlClick($title,$text,"[CLASS:Button;TEXT:执行导入]","left",2) Sleep(300) ;超过3秒退出 For $i=1 To 15 Sleep(200) $nowColor = PixelGetColor($XX,$YY,$wHand) MouseMove($XX,$YY,1) If $oldColor<> $nowColor Then ;延时100*i毫秒,等待导入确实完成 Sleep(10*$i) ControlSend($title,$text,"","{ESC}") ;飞狐数据导入完成则退出 WinClose($title,$text) ;退出循环 ExitLoop EndIf Next BlockInput(0) Return EndFunc ;文华数据结构 ;struct WHDay ;{ ; time_t Date; //日期 ; float Open; //开盘价 ; float Close; //收盘价 ; float High; //最高价 ; float Low; //最低价 ; float Vol; //成交量 ; float Position; //持仓量 ;} wenhuaday; ;5分钟线和上面的差不多,但日线加了密。加密处理:用0表示每天的间隔。 Func WHToFoxtraderTXT_Day() ;日线转换程序 Local $jiaGe[10],$chars[10],$shuChu="" $text = WinGetText($titleFH,$textFH) If StringInStr($text,"数据列表") == 1 Then $text = StringMid($text,StringInStr($text,@LF)+1) $text = StringLeft($text,StringInStr($text,@LF)-1) $text = StringStripWS($text,4) $text = StringStripWS($text,2) $daiMaFH = StringMid($text,StringInStr($text," ",0,-1)+3) $shiChangFH = StringMid($text,StringInStr($text," ",0,-1)+1,2) $shiChangWH = WenHuaMa($daiMaFH,3) ;文华市场代码 $daiMaWH = WenHuaMa($daiMaFH,1) ;获得文华自定义内部码 $fileName ="C:\TXTDAY\" & $shiChangFH & $daiMaFH & ".TXT" ;导出飞狐交易师标准文本文件 $dateNum = Number(IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","导出日K线数量","1000")) $wenHuaRuanJian = IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","文华财经软件","") ;文华软件完整路径 $fileWH = StringLeft($wenHuaRuanJian,StringInStr($wenHuaRuanJian,"\",0,-1)) $fileWH = $fileWH & "Data\" & $shiChangWH & "\day\" & StringRight("00000000" & $daiMaWH,8) & ".dat" ;文华数据存放位置 $fileHand = FileOpen($fileWH,16) ;使用2进制读取 If $fileHand = -1 Then ;文件不存在,退出吧! Return EndIf $K_LineNum = FileGetSize($fileWH)/37 ;K线数量 If $K_LineNum>$dateNum Then FileRead($fileHand,($K_LineNum-$dateNum)*9*4) Else $dateNum = $K_LineNum EndIf For $i = 1 To $dateNum If Not $Paused Then ;加快“退出此功能”的速度! ContinueLoop EndIf ;数据结构为浮点数,暂时支持整数部分的转换输出! $dat = Int(FileRead($fileHand, 1))+Int(FileRead($fileHand, 1))*0x100+Int(FileRead($fileHand, 1))*0x10000+Int(FileRead($fileHand, 1))*0x1000000 ;读取4个字节,时间 $riQi = _DateAdd( 's',$dat+28800, "1970/01/01 00:00:00") ;文华时间转为文本格式,G+8区加28800秒(8小时) For $j=1 To 6 $dat = Int(FileRead($fileHand, 1))+Int(FileRead($fileHand, 1))*0x100+Int(FileRead($fileHand, 1))*0x10000+Int(FileRead($fileHand, 1))*0x1000000 ;读取4个字节 $fd1 = BitAND($dat,0x40000000) /0x40000000 ;按位"与"运算取得浮点结构的符号位, 证券类一般是正数(用高位1位表示数据的正负号) $fd2 = BitAND($dat,0x7F800000)/0x800000-0x7F ;取得阶码(用8位数来表示) If $fd2 <= 0 Then ;这个可能是数值小于1的情况吧! $fd2 = 0 $fd3 = 0 Else ;期货数据一般都是大于2以上的。 $fd3 = Mod($dat,0x800000) ;浮点中的小数部分(用23位数来表示) $fd3Z =($fd3+0x800000) /2^(23-$fd2) ;取得价格的整数部分,小数目前先不处理,如燃油为2938.50元,取2938元,0.5元先不取。 EndIf $jiaGe[$j] = $fd3Z &" " Next $shuChu = $shuChu & $riQi & " " & $jiaGe[1] & $jiaGe[3] & $jiaGe[4] & $jiaGe[2] & $jiaGe[5] & $jiaGe[6] & @CRLF $riQi="" FileRead($fileHand, 9) ;跳过最后9个字节 Next FileClose($fileHand) If DirGetSize("C:\TXTDAY") = -1 Then DirCreate("C:\TXTDAY") EndIf $fileHand = FileOpen($fileName,2) ;清除原来的内容 FileWrite($fileHand,$shuChu) FileClose($fileHand) TEXT2FOX("日线数据","C:\TXTDAY",$daiMaFH) ;激活飞狐交易师窗口自动导入数据 Return EndFunc Func WHToFoxtraderTXT_Min5() Local $jiaGe[10],$chars[10],$shuChu="" $text = WinGetText($titleFH,$textFH) If StringInStr($text,"数据列表") == 1 Then $text = StringMid($text,StringInStr($text,@LF)+1) $text = StringLeft($text,StringInStr($text,@LF)-1) $text = StringStripWS($text,4) $text = StringStripWS($text,2) $daiMaFH = StringMid($text,StringInStr($text," ",0,-1)+3) $shiChangFH = StringMid($text,StringInStr($text," ",0,-1)+1,2) $shiChangWH = WenHuaMa($daiMaFH,3) ;文华市场代码 $daiMaWH = WenHuaMa($daiMaFH,1) ;获得文华自定义内部码 $fileName ="C:\TXTMIN5\" & $shiChangFH & $daiMaFH & ".TXT" ;导出飞狐交易师标准文本文件 $dateNum = Number(IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","导出5分钟K线数量","1000")) $wenHuaRuanJian = IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","文华财经软件","") ;文华软件完整路径 $fileWH = StringLeft($wenHuaRuanJian,StringInStr($wenHuaRuanJian,"\",0,-1)) $fileWH = $fileWH & "Data\" & $shiChangWH & "\min5\" & StringRight("00000000" & $daiMaWH,8) & ".dat" ;文华数据存放位置 $fileHand = FileOpen($fileWH,16) ;使用2进制读取 If $fileHand = -1 Then ;文件不存在,退出吧! Return EndIf $K_LineNum = Int(FileRead($fileHand, 1))+Int(FileRead($fileHand, 1))*0x100+Int(FileRead($fileHand, 1))*0x10000+Int(FileRead($fileHand, 1))*0x1000000 ;K线数量 If $K_LineNum>$dateNum Then FileRead($fileHand,($K_LineNum-$dateNum)*9*4) Else $dateNum = $K_LineNum EndIf For $i = 1 To $dateNum If Not $Paused Then ;加快“退出此功能”的速度! ContinueLoop EndIf ;数据结构为浮点数,暂时支持整数部分的转换输出! $dat = Int(FileRead($fileHand, 1))+Int(FileRead($fileHand, 1))*0x100+Int(FileRead($fileHand, 1))*0x10000+Int(FileRead($fileHand, 1))*0x1000000 ;读取4个字节,时间 $riQi = _DateAdd( 's',$dat+28800+3000, "1970/01/01 00:00:00") ;文华时间转为文本格式,G+8区加28800秒(8小时)+飞狐交易师收盘和文华差差5分钟(3000秒) For $j=1 To 6 $dat = Int(FileRead($fileHand, 1))+Int(FileRead($fileHand, 1))*0x100+Int(FileRead($fileHand, 1))*0x10000+Int(FileRead($fileHand, 1))*0x1000000 ;读取4个字节 $fd1 = BitAND($dat,0x40000000) /0x40000000 ;按位"与"运算取得浮点结构的符号位, 证券类一般是正数(用高位1位表示数据的正负号) $fd2 = BitAND($dat,0x7F800000)/0x800000-0x7F ;取得阶码(用8位数来表示) If $fd2 <= 0 Then ;这个可能是数值小于1的情况吧! $fd2 = 0 $fd3 = 0 Else ;期货数据一般都是大于2以上的。 $fd3 = Mod($dat,0x800000) ;浮点中的小数部分(用23位数来表示) $fd3Z =($fd3+0x800000) /2^(23-$fd2) ;取得价格的整数部分,小数目前先不处理,如燃油为2938.50元,取2938元,0.5元先不取。 EndIf $jiaGe[$j] = $fd3Z &" " Next $shuChu = $shuChu & $riQi & " " & $jiaGe[1] & $jiaGe[3] & $jiaGe[4] & $jiaGe[2] & $jiaGe[5] & $jiaGe[6] & @CRLF $riQi="" FileRead($fileHand, 8) ;跳过最后8个字节 Next FileClose($fileHand) If DirGetSize("C:\TXTMIN5") = -1 Then DirCreate("C:\TXTMIN5") EndIf $fileHand = FileOpen($fileName,2) ;清除原来的内容 FileWrite($fileHand,$shuChu) FileClose($fileHand) TEXT2FOX("5分钟数据","C:\TXTMIN5",$daiMaFH) ;激活飞狐交易师窗口自动导入数据 Return EndFunc Func WenHuaMa($feiHuMa,$num) ;获得文华自定义内部码 $wenHuaMaA = FileRead(@ScriptDir & "\使用说明.TXT") $wenHuaMaA = StringReplace($wenHuaMaA,@CR,@TAB) $wenHuaMaA = StringReplace($wenHuaMaA,@LF,@TAB) $wenHuaMaA = StringReplace($wenHuaMaA,@TAB & @TAB,@TAB) $wenHuaMaA = StringReplace($wenHuaMaA,@TAB & @TAB,@TAB) $wenHuaMaB = StringSplit($wenHuaMaA,@TAB) For $i=1 To $wenHuaMaB[0] If Not StringCompare($wenHuaMaB[$i],$feiHuMa) Then Return StringLower($wenHuaMaB[$i+$num]) ExitLoop EndIf Next Return " " EndFunc Func WenHuaJiaoYiMa($feiHuMa) ;计算交易代码→备用程序 If StringInStr($feiHuMa,"SQ") Or StringInStr($feiHuMa,"DL") Or StringInStr($feiHuMa,"ZZ") Or StringInStr($feiHuMa,"ZJ") Then ; 交易代码的计算 $jiaoYiMa = StringMid($feiHuMa,3,StringLen($feiHuMa)-4) $heYueYueFen = StringRight($feiHuMa,2) $now_Year = @YEAR $now_Month = @MON ;跨年度合约 If Number($now_Month)>Number($heYueYueFen) Then $now_Year = Number($now_Year )+1 EndIf If StringInStr($feiHuMa,"ZZ") Then $jiaoYiDaiMa = $jiaoYiMa & Number(StringRight($now_Year,2)) & $heYueYueFen Else $jiaoYiDaiMa = $jiaoYiMa & StringRight($now_Year,2) & $heYueYueFen EndIf Return StringLower($jiaoYiDaiMa) Else Return StringMid($feiHuMa,3) EndIf EndFunc ;获得进程路径 (By sanhen) Func Processpath($iPID) Local $aProc = DllCall('kernel32.dll', 'hwnd', 'OpenProcess', 'int', BitOR(0x0400, 0x0010), 'int', 0, 'int', $iPID) If $aProc[0] = 0 Then Return SetError(1, 0, '') Local $vStruct = DllStructCreate('int[1024]') DllCall('psapi.dll', 'int', 'EnumProcessModules', 'hwnd', $aProc[0], 'ptr', DllStructGetPtr($vStruct), 'int', DllStructGetSize($vStruct), 'int_ptr', 0) Local $aReturn = DllCall('psapi.dll', 'int', 'GetModuleFileNameEx', 'hwnd', $aProc[0], 'int', DllStructGetData($vStruct, 1), 'str', '', 'int', 2048) If StringLen($aReturn[3]) = 0 Then Return SetError(2, 0, '') Return $aReturn[3] EndFunc Func OnAutoItExit ( ) BlockInput(0) ;允许用户输入 Return EndFunc ;==>脚本结束时调入此函数