有时我们会遇到主窗体是DialogBox的情况,比如Windows的命令行窗体。一般我们启动主窗体时都是通过Invoke的方法实现的,但是DialogBox 是没有Invoke方法的,因此DialogBox是无法通过Invoke来启动的;因此我们只能通过点启动栏的菜单来启动窗体,或通过Run窗体来启动,但有一个问题出现了:当不同的系统(比如XP,VISTA),不同的语言系统(如中文,德文系统)的情况下,我们往往需要手工进行配置一下才可以进行操作,很不方便,而且对启动栏菜单的操作的稳定性也不是很好,所以很有可能在跑脚本的时候挂掉。
这里给朋友们分享一个如何像启动MainWin窗体一样启动DialogBox的方法。首先讲下这样做的好处:方便(无需进行任何配置,可在任何系统,语言下运行),快速(从命令行启动肯定比点击操作要快咯!),稳定(因为不涉及到对象识别的问题,因此稳定性大大提高)。然后再讲下操作流程(其实非常简单):1. 建一个虚的主窗体(即现实并不存在这样的主窗体,只是你自己设定的),目的是启动目标DialogBox。 2.在DialogBox实现一个 Invoke方法,该方法其实是通过引用上面设定的主窗体的Invoke方法实现的。
最后给大家一个关于启动命令行窗体的实例:
//*******************************************
// Description: Define a mainwin for DialogBox
// Author: LantianWei
// Date: Sep 16, 2008
// History: None
// Notice: csWinDir is dynamically getting for ‘windows’ path
//*******************************************
window MainWin System32Cmd
const sCmdLine = "{csWinDir}\system32\cmd.exe"
//*******************************************
// Description: Define method ‘Invoke’ for DialogBox
// Author: LantianWei
// Date: Sep 16, 2008
// History: None
//*******************************************
window DialogBox wSystem32Cmd
tag "*cmd.exe*"
Invoke()
do
System32Cmd.Invoke()
Except
希望以上内容对大家有点帮助!