为Delphi编写的屏幕保护程序增加描述

虽说屏幕保护程序只是个相对特殊的exe(会接受/C、/P、/S等启动参数,具体可见诸多博文,在此不赘述),但是却让一个小小的描述卡住了。

我们知道,作为屏幕保护程序,安装后会在系统的“显示”对话框的列表里出现,而进而我们发现,现有的屏幕保护程序显示的并不是文件名,而是一行描述,而使用Delphi编写的exe却无法具备这个特性。

向搜索引擎寻求帮助后,得到了如下的描述:

You can define the text that will appear in the Control Panel Desktop
list of screen savers by adding a {$D text} directive to the project
source file. The $D directive inserts the given text into the module
description entry of the executable file. For the Control Panel to
recognize the text you must start with the term “SCRNSAVE”, followed
by your description.

Select Project Source from the Delphi View menu so you can edit the
source file. Beneath the directive “{$R *.RES}”, add the following
line:

{$D SCRNSAVE Spheres Screen Saver}

The text “Spheres Screen Saver” will appear in the Control Panel
list of available screen savers when we complete the project.

 

http://burks.brighton.ac.uk/burks/language/pascal/uddf/pages/scrnsave.htm

 

大意是在dpr文件中写入{$D SCRNSAVE [要显示的描述]},就可以在编译之后的exe内加入屏幕保护程序描述字符。

而就是因为这个仅有的说明(貌似疯狂的转载并不是好事,连已经无效的方法都被这样流传着)让我走了很多弯路,以这个说明为前提,我险些否定了自己的工作。

直到一天研究无果后,我决定另辟蹊径,既然里面说了是字符串,那么估计应该在程序内能找到。

于是我将系统内置的屏幕保护程序用eXeScope打开,赫然发现了新大陆:

在字符串节点下,key为1的值就是SCRNSAVE +空格+屏幕保护程序描述字符串。

那么那个{$D text}是什么呢?进而通过仔细查询,发现,这个关键字是生成应用程序描述的,而非字符串资源(找到这个说明后才猛然醒悟,为啥不深究一下这个$D呢,都怪自己太不自信了)

既然知道了描述字符串的规则,那就动手搞定。

新建一个.rc文件,设置如下格式:

 

stringtable
begin
1, “SCRNSAVE  [要显示的描述字符串]“
End

 

具体编译、连接过程见此连接:http://www.blogjava.net/badboyryan/archive/2009/02/06/253555.html

之后在工程中使用{$R [资源文件名]}引入,编译,OK,搞定。

标签:
文章分类 FK Coding

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

点赞
如果您觉得很赞,我将非常乐意接受虚拟币的捐赠,以示您对我的肯定。

比特币钱包地址:
1PqpqA8FyH3NbfCrbcRd1YxQk3LEsSEYDV
莱特币钱包地址:
LRTdmovGGVEHCKWz7JdL9aiB7VZkuNycJf
站点勋章
网站统计