BBS建站上网365问/154.什么是自动菜单命令?
菜单功能一般在用户按下分配给菜单项目的热键时执行。但菜单功能也可以自动执行,每个菜单项目包含自动执行字段。默认情况下,这个字段为No,但切换为Yes后,当RemoteAccess显示菜单项目时将自动执行它。
当你阅读到描述的菜单功能类型时,你可以发现这是一个非常强大的功能。例如,先使用文本文件画图工具设计出非常精致、图形化的显示文件,然后在菜单中加入自动显示这个文件的项目,这样选择该菜单时自动显示它,这是自动菜单命令的主要用途之一。
在RemoteAccess中,你可以对整个系统或一个用户决定是否可以关闭热键。当热键无效时,用户有命令堆栈功能。如何使这个功能与热键无效的用户配合是一个重要技巧,应该注意。
当热键有效时,用户通过按给定菜单项目中分配的热键来选择菜单命令,这时将打断正显示的文本文件,并立刻执行与热键关联的命令。当热键无效时(命令堆栈模式),要求用户在热键后按回车。此外,当用户在命令堆栈模式时,几个命令可以一次输入最后按回车,这允许用户越过一些菜单到指定的命令。
当用户通过使用堆栈菜单命令越过一个菜单时,你仍然可以控制菜单系统将如何反应。一些情况下,你可能想执行一个自动命令,例如重新指向用户到另外一个菜单。另一方面,如果命令只是为装饰目的(可能是来显示用户统计的文本文件),越过这个命令并继续直接到下个菜单会更好。规则是当命令堆栈用来越过一个菜单时,自动菜单命令将只在以下条件才执行:如果它是菜单中的第一个项目并且不是显示文本文件类型功能。如果你使用自动执行功能并且允许用户关闭热键,你要记住这个规则。
自动执行也可以用于许多其它例子。这里给你一些主意,它可以用来显示文本文件给等于或大于特定级别的用户,也可以用来对有特别权限旗标设置的用户执行外部程序,还有一个用法是只按下一个命令键时执行几个功能来执行多个功能菜单。
例如,我们假设你运行投票室外部程序,并且希望每次从菜单选择投票室时完成3个独立功能。你可以创建一个新的包含3个自动菜单命令的多功能菜单:
* 创建一个记录项目指示用户进入投票室。
* 运行外部投票室程序。
* 返回主菜单。
当用户从主菜单选择投票室选项时,调用这个多功能菜单(象一个Gosub),写一个记录项目、运行投票室并返回主菜单。