根据消息提示框进行流程不同处理

在实际应用中会出现,流程运行遇到异常情况,需要用户确定下面的处理方式,此时可弹出消息提示窗口(消息提示窗口弹出前,可先使用邮件等方式通知用户),根据用户选择按下的按钮,进行相应的流程处理。

设计器 5.0 版本的消息窗口组件(6.0 版本似乎已无消息窗口组件),返回值与点击的按钮无关,且部分参数在界面上只有进行有限的选择,所以把组件对应的函数拷贝出来,放到自定义函数中,在进行部分修改后,即可实现函数根据消息窗口中点击不同按钮,返回不同的值,然后再根据不同的返回值进行后续不同的处理流程。

消息窗口组件对应的模块文件 C:\ueba\plugin\Com.Isearch.Func.Python\Lib\ubpa\ibox.py 中,把除最后两行之外的内容拷贝的自定义函数文件中,然后对关键的需调用的函数 msg_box 内容进行部分修改:

把下面函数返回值这一行:

return iresult

替换为下面三行(从 AU3 脚本运行返回值中提取按钮返回值,然后转化成整数返回):

stdout_str=re.findall(r’.'(\d)'’,str(stdout_string))

stdout=int(stdout_str[0])

return stdout

然后在流程中调用 msg_box 函数即可,因为 5.0 版本的消息窗口组件的“消息模式”这个参数只有有限的几个可选择,而直接调用 msg_box 函数,传递的 box_mode 这个参数,会在函数内部直接传递给 AU3 脚本,所以 AU3 脚本的 MsgBox 可使用的消息框的类型及可能的按钮组合都可使用,即可以使用下面四类参数值:

l 第一类,按钮组合:

0 “确定”

1 “确定” 与 “取消”

2 “终止” + “重试” + “忽略”

3 “是” + “否” + “取消”

4 “是” + “否”

5 “重试” + “取消”

6 “取消” + " 重试 + “继续” 

l 第二类,图标形式:

0 (无图标)

16 终止图标

32 问号图标

48 感叹号图标

64 由一个 i 和圆圈组成的信息图标

l 第三类,默认按钮:

0 第一按钮为默认按钮

256 第二按钮为默认按钮

512 第三按钮为默认按钮

768 第四按钮为默认按钮

l 第四类,消息窗口相关属性:

131072 在桌面上显示交互式窗口站消息框

524288 标题及文本右对齐

1048576 希伯来语和阿拉伯语系统使用从右到左的阅读顺序显示消息和标题文本. 

65536 消息框成为前台窗口.

262144 有置顶属性

2097152 即使没有用户登录到计算机, 函数仍然在当前活动桌面上显示一个消息框.

这几类参数值使用的方式为,以“+”相连,或者直接使用几类参数值相加后的值。

调用 msg_box 函数的一个参数组合示例如下:

box_mode=6+32+256+262144,title=‘测试题目’,msg=‘测试消息’ ,timeout=0

这些参数代表的意思是:消息窗口有 "取消" + "重试 +" 继续 "三个按钮,消息窗口中会显示问号图标,第二按钮" 重试”为默认按钮,消息窗口会置顶显示,窗口题目为’测试题目’,窗口显示提示文字为’测试消息’,窗口在人为操作前会一直显示,不自动关闭。

弹出窗口如下图:

根据消息提示框进行流程不同处理

点击不同按钮,此函数不同返回值如下:

确定 1

取消 2

中止 3

重试 4

忽略 5

是 6

否 7

继续 11

  根据不同的返回值就可以进行不同的流程处理。