AppRunner:桌面快捷方式的替代方案

在日常工作中,经常需要运行多个程序、打开不同的目录和文件、测试多个应用程序版本等。对于这样的小团队来说,维护许多不同版本的项目是一项挑战。使用不同版本的开发工具(如Visual Studio 10, 12, 13, Texas Instruments CCS 3.0, 5.0, 6.0)的频率各不相同——有的每天使用,有的每周使用。为了应对这些挑战,开发了AppRunner,以简化这些操作。

AppRunner的优势

与桌面图标相比,AppRunner具有以下优势:

  • 图标可以通过标签页进行组织
  • 图标说明可以完整显示(没有省略号!)
  • 文档、文件夹和应用程序路径可以完整显示

为了跟上这些需求,之前使用桌面快捷方式指向项目文件、目录、测试程序等。这种方法在多台计算机和多种配置上维护起来相当繁琐。AppRunner的开发旨在简化这些操作。

快速浏览

以下是一些快捷方式页面的示例:

...以及另一个

图标被组织在左侧自定义标签控件选择的标签页中。每个标签页包含多个“快捷方式”,可选地由水平线分隔。每个快捷方式代表一个文件夹、文件或可执行文件,可选地附带命令行参数。

每个快捷方式的图标是自动检索的,使用应用程序特定的图标。无效的快捷方式显示为红色“X”图标。

配置工具

AppRunner通过外部.xml文件进行配置,可以作为命令行参数提供,或者命名为AppRunner.xml并位于与AppRunner.exe相同的目录中。xml文件包含几个部分,如下所述。

各部分包含在名为AppRunner的主要根目录中:

<AppRunner>   ... </AppRunner>

有两种不同类型的部分:

  • CommandPage
  • Defines

每个命令页面部分包含有关每个标签页中快捷方式的信息。以下是上述第二页的CommandPage定义:

<CommandPage name="DarkStar">       <Item name="Darkstar Folder->" cmd="%DarkStar%"/>       <Item name="Darsktar Solution" cmd="%VStudio2013% %DarkStar%\DarkStar.sln"/>         <Separator name="TI Compilers"/>       <Item name="TI CCS 6.0" cmd="C:\TI\ccsv6\eclipse\ccstudio.exe"/>       <Item name="TI CCS 3.0" cmd="C:\TI\CCS33\cc\bin\cc_app.exe"/> </CommandPage>

该页面包含4个快捷方式和一个分隔线。分隔线有一个可选属性(name),用于指定分隔线的标题。如果没有指定名称,则绘制一个简单的分隔线。

最后两个快捷方式是简单的命令,指向可执行文件的完整路径,当点击图标时运行。第一个快捷方式指向由%DarkStar%指定的文件夹。DarkStar要么定义为环境变量,要么在下面描述的Defines部分中定义。

以下是xml文件的一部分,显示了一些定义:

<Defines computer="Posidon">       <Item name="Proj" value="C:\_Proj"/>       <Item name="Data" value="C:\Data"/> </Defines> <Defines>       <Item name="Program" value="C:\Program Files (x86)"/>                    <Item name="Proj" value="D:\_Proj"/>       <Item name="Data" value="D:\Data"/>                 <Item name="DarkStar" value="%Proj%\_Active\Chronotek\Darkstar"/> </Defines>

定义被组织在一个或多个部分中。一个可选属性(computer)用于将定义限制在特定的计算机上。每个部分包含多个变量定义。遇到特定变量的第一个定义是使用的那一个。例如,变量Proj对于名为Posidon的计算机将具有值C:\_Proj,对于所有其他计算机将具有值D:\_Proj。

变量值可以使用之前定义的变量。例如,上述变量DarkStar将具有值D:\_Proj\_Active\Chronotek\Darkstar(对于不名为Posidon的任何计算机)。

使用代码

包含Visual studio 2013解决方案。最新版本可在以下网址获取:

最新版本的boost和WTL是唯一需要的外部库。设置Visual Studio项目最复杂的部分是所需的外部库配置。这是许多开发人员面临的问题,也不例外——团队的典型解决方案有20多个项目,其中大多数需要boost、wtl、opencv等。本节的其余部分描述了正在使用的方法,该方法基于导入解决方案和项目级设置(注意:随源代码包含的项目已经按照下面描述进行了修改)。

手动编辑解决方案中的每个项目,并添加以下行:

<Import Condition="Exists('$(SolutionPath).props')" Project="$(SolutionPath).props"/> <Import Condition="Exists('$(ProjectName).props')" Project="$(ProjectName).props"/>

这将导入(如果存在)来自解决方案级文件(命名为‘AppRunner.sln.props’,位于与解决方案相同的目录中)的设置,然后是项目级文件(命名为‘AppRunner.props’,位于与项目相同的目录中)。手动编辑项目最简单的方法是在解决方案资源管理器中右键单击项目,选择“卸载项目”,然后右键单击并选择“编辑”。

这些‘props’文件指定了额外的包含和库目录以及任何其他设置(在这个项目中修改了目标目录)。有关详细信息,请参见源代码中包含的文件AppRunnder.props。

这种方法的另一个优点是,可以在同一个解决方案中的不同项目中使用不同版本的外部库。在一个解决方案中,一个项目需要boost 1.36.0,另一个需要boost 1.57.0。

联系

如果对代码进行了更改、改进或有更好的想法,非常愿意听到意见。请联系:thanko [at] outlook [dot] com。评论和建议总是受欢迎的!

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485