最新善领虚拟端口专用工具自动运行实用脚本操作指南

九月 1, 2009 by admin
Filed under: DSA电子狗 

    善领虚拟端口专用工具(DSA_VPORT)发布后,版本不断升级,但每次运行善领虚拟端口专用工具(DSA_VPORT)都必须手工打开虚拟端口和转入后台运行,再运行导航软件。能否让这一切都自动完成呢?下面提供的程序就可以实现。为方便GY使用与修改,特作说明如下:

    1、默认环境
⑴卡名StorageCard、原始端口为2、波特率为4800;虚拟端口3;
(测试环境:4.3吋一体机(StorageCard Mesada_2440 multi-platform WinCE 4.20.0 Com2 4800)、KLDC(P9902-C5102-08A6ZF3))
⑵卡根目录已安装凯立德C版导航软件,安装路径为StorageCard\NaviOne ;
环境与上述相同的GY安装后可以直接使用,若有不同则需按后面的说明自行修改。

    2、安装说明
⑴将附件解压后存入卡根目录(如StorageCard\,此DSA_VPORT为V5版,对修正版及后续版本见文后说明!);
⑵将AutoVport.mscr文件中的所有卡名StorageCard改为自己的卡名;
⑶根据需要修改导航软件的配置文件NaviConfig原始端口.txt和NaviConfig虚拟端口.txt中的参数;
⑷修改开机启动文件的路径或设好一机多图入口,使AutoVport.exe成为可启动文件。

    3、脚本功能
⑴提供初始化选择,可以限时提供手动配置与修改vportsave.dat中的参数;
⑵可以自动打开虚拟端口或或关闭虚拟端口并转入后台运行;
⑶自动运行凯立德C版导航软件(若已虚拟端口则使用虚拟端口运行KLD C,若已关闭虚拟则以原始端口打开KLD C).

       4、脚本清单
(附件中的AutoVport.mscr文件,修改时请用纯文本编辑软件)

#系统初始化选择
ChoiceDefault ( “初始化菜单”,”请10秒钟内选择一个初始化操作(系统异常请选择3全面初始化)”,4,10,”1、删除配置文件 vportsave.dat”,”2、删除用于检测的端口配置文件”,”3、全面初始化(同时执行第1-2项)”,”4、系统启动时自动初始化(默认)”)
Case (1)
    Delete (“\StorageCard\VPort\vportsave.dat” )
Case (2)
    Delete (“\StorageCard\NaviOne\NaviConfig原始端口.txt” )
    Delete (“\StorageCard\NaviOne\NaviConfig虚拟端口.txt” )
Case (3)
    Delete (“\StorageCard\VPort\vportsave.dat” )
    Delete (“\StorageCard\NaviOne\NaviConfig原始端口.txt” )
    Delete (“\StorageCard\NaviOne\NaviConfig虚拟端口.txt” )
Case (4)
    Copy (“\StorageCard\VPort\toolhell.dll” ,”\Windows\toolhelp.dll”,true)
    If ((NOT(ProcExists(“Vport.exe” ))) AND (fileExists (“\StorageCard\NaviOne\NaviConfig虚拟端口.txt”)))
       Delete (“\StorageCard\NaviOne\NaviConfig虚拟端口.txt” )
    Endif
EndChoice

#运行Vport.exe并等待VPort窗口出现(卡名StorageCard和路径要按实际更改)
Run(“\StorageCard\VPort\Vport.exe”)
While (NOT(WndExists(“DSA_VPORT”)))
   sleep 1000
EndWhile

#设置Vport配置文件(需修改可先删除配置文件vportsave.dat再运行本程序)
If (NOT(fileExists (“\StorageCard\VPort\vportsave.dat” )))
   Message(“    点击本窗口OK后,在20秒钟内设置好原始端口、波特率和虚拟端口并保存设置,再关闭存盘提示!”,”操作提示”)
   sleep 20000
Endif

#自动打开或关闭虚拟端口并转入后台运行(第一次运行打开虚拟端口,再次运行则关闭虚拟端口)
If (WndExists(“DSA_VPORT”))
   Show(“DSA_VPORT”)
   MouseClick( 350,90 )              #此句改为MouseClick( “DSA_VPORT”,275,85 )可避免拖动窗口点击无效
   sleep 2000
   MouseClick( 350,150 )           #此句改为MouseClick( “DSA_VPORT”,275,140 )可避免拖动窗口点击无效
   sleep 2000
Endif

#设置凯立德C版的端口配置文件(这里卡名StorageCard、原始端口2、波特率4800;虚拟端口3,可根据实际更改)
If (NOT(fileExists (“\StorageCard\NaviOne\NaviConfig虚拟端口.txt” )))
    Delete (“\StorageCard\NaviOne\NaviConfig原始端口.txt” )
    Copy (“\StorageCard\VPort\NaviConfig虚拟端口.txt” ,”\StorageCard\NaviOne\NaviConfig虚拟端口.txt”,true)
    Copy (“\StorageCard\VPort\NaviConfig虚拟端口.txt” ,”\StorageCard\NaviOne\NaviConfig.txt”,true)
    #提示当前使用虚拟端口(供调试用,调试结束建议将下一句的Message改为#Message)
    Message(“    现在使用虚拟端口!”,”当前状态”)
Else
    Delete (“\StorageCard\NaviOne\NaviConfig虚拟端口.txt” )
    Copy (“\StorageCard\VPort\NaviConfig原始端口.txt”,”\StorageCard\NaviOne\NaviConfig原始端口.txt”,true)
    Copy (“\StorageCard\VPort\NaviConfig原始端口.txt”,”\StorageCard\NaviOne\NaviConfig.txt”,true)
    #提示当前使用原始端口(供调试用,调试结束建议将下一句的Message改为#Message)
    Message(“   现在使用原始端口!”,”当前状态”)
Endif

#运行导航软件延时4秒后自动点击接受键(这里运行的是凯立德C版,对不同导航软件可按卡名、路径、导航软件名等实际进行更改)
Run(“\StorageCard\NaviOne\NaviOne.exe”)
sleep 4000
MouseClick( 360, 260 )     #此句改为SendCR更好,谢谢foshanyzq建议
Exit
补充说明的是,这是实用脚本不是通用脚本,对不同的GPS配置和不同的导航软件,需要修改和折腾的哦,愿GY在折腾中得到快乐并分享快乐!

V5修正版和V6版修改方法:
1、下载本贴附件按上述说明安装调试好(对已经安装调试的此步可忽略);
2、到 http://www.dsa8.com/archives/20.html 下载V6版,解压后拷入Vport覆盖原文件;
3、将 MouseClick( “DSA_VPORT”,275,85 )  改为   MouseClick( “DSA_VPORT”,227,64 ) ;将 MouseClick( “DSA_VPORT”,275,140 )  改为 MouseClick( “DSA_VPORT”,141,98 ) 即可(不用Vport自带的启动导航功能)。
4、若想使用Vport启动导航则需要先设置好导航路径并存盘设置,再将Run(“\StorageCard\NaviOne\NaviOne.exe”) 改为 MouseClick( “DSA_VPORT”,227,128 )和 Minimize(“DSA_VPORT”)  两个语句。注意 MouseClick( “DSA_VPORT”,275,140 )可以不改而在其前加个#号(即不执行此句)。

应部分GY要求,下面给出V5修正版和V6版退出导航软件后直接关闭虚拟端口的修改方法:
将运行导航软件的脚本(最后一段)作如下修改即可。

#运行导航软件延时4秒后自动点击接受键(这里运行的是凯立德C版,对不同导航软件可按卡名、路径、导航软件名等实际进行更改)
Run(“\StorageCard\NaviOne\NaviOne.exe”)
While ((NOT (WndExists(“CARELAND NAVI”))) AND (WndExists(“DSA_VPORT”)))
   Sleep 1000
EndWhile
If (WndExists(“CARELAND NAVI”))
   sleep 4000
   SendCR
EndIf
While ((WndExists(“CARELAND NAVI”)) AND (WndExists(“DSA_VPORT”)))
   Sleep 1000
EndWhile
If(WndExists(“DSA_VPORT”))
   Close(“DSA_VPORT”)
EndIf
Exit

V7版参考脚本如下:

#系统初始化选择
(本段同V6版,略)

#运行Vport.exe并等待VPort窗口出现(卡名StorageCard和路径要按实际更改)
(本段同V6版,略)

#设置Vport配置文件(需修改可先删除配置文件vportsave.dat再运行本程序)
(本段同V6版,略)

#自动打开或关闭虚拟端口并转入后台运行(第一次运行打开虚拟端口,再次运行则关闭虚拟端口)
If (WndExists(“DSA_VPORT”))
   Show(“DSA_VPORT”)
   MouseClick( “DSA_VPORT”,225,70 )
   sleep 2000
   MouseClick( “DSA_VPORT”,135,125 )
   sleep 2000
Endif

#设置凯立德C版的端口配置文件(这里卡名StorageCard、原始端口2、波特率4800;虚拟端口3,可根据实际更改)
(本段同V6版,略)

#运行导航软件延时4秒后自动点击接受键(这里运行的是凯立德C版,对不同导航软件可按卡名、路径、导航软件名等实际进行更改)
Run(“\StorageCard\NaviOne\NaviOne.exe”)
While (NOT (WndExists(“CARELAND NAVI”)))
   Sleep 1000
EndWhile
If (WndExists(“CARELAND NAVI”))
   sleep 4000
   SendCR
EndIf
Exit

Comments

Tell me what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

You must be logged in to post a comment.