| 最近在写一个Windows后台服务程序的过程中,遇到这样一个问题:后台服务运行时只需要在桌面右下角系统托盘中显示一个图标,而不需要显示前面板和任务栏中的程序入口。这里暂且不谈托盘图标的问题,先看一下如何隐藏程序前面板及任务栏的程序入口。 在NI的网站上提到两种方法:一是利用NT的一个工具SRVANY.EXE把编程好的EXE程序安装为NT系统服务,这种情况下只要前面板上不放任何控件,服务运行时将不显示前面板;二是直接在程序中添加一些隐藏窗口的代码。第一种方法我还没有尝试,下面主要谈谈第二种实现方法。 在编写程序的过程中,添加如下代码,就可以实现前面板的隐藏。
PS:论坛上有朋友说可以用VI的close属性来关闭前面板,尝试后发现不行,关闭前面板程序也会退出。 在添加了以上代码后,程序运行的过程中将会把前面板隐藏掉,但任务栏中依然会有程序入口。要同时隐藏任务栏中的程序入口,还需要在编译的EXE文件的配置文件中添加代码:HideRootWindow=True 例如,程序编译后生成APP.EXE,将会有相应的APP.INI,将HideRootWindow=True添加到APP.INI文件中的[APP]下方即可。 通常情况下,在编译的过程中会自动生成APP.INI文件,那是因为在生成可执行程序的配置里有这么一个选项:
从上图中可以看出,默认情况下勾选了“use the default labview configuration file (labview.ini)”一项,这样LabVIEW就会为生成的EXE程序自动添加一个配置文件。这种情况下,需要在生成的INI文件中手动添加HideRootWindow=True。另外一种方法,就是在这个配置中把前面的勾去掉,然后通过下面的对话框选择自己事先写好的配置文件(其中包含HideRootWindow=True),这样在生成EXE程序后,就会自动包含此配置文件了。 有了这两个步骤,就可以实现隐藏程序前面板及任务栏程序入口的功能了。但这个方法也有一个缺点:打开程序的时候会闪一下。应该就是因为先打开后隐藏的缘故吧。 参考:http://digital.ni.com/public.nsf/allkb/EFEAE56A94A007D586256EF3006E258B |
博客秀 版权所有

