Delphi 程序对 Windows VISTA 的支持

以前一直在 WIN XP /2003 下编程,现在有客户使用 VISTA 系统,运行程序的时候报错。我的程序用到了注册表,还是对 HKLM 进行读写,VISTA 的安全机制肯定是不让了,别人的软件在遇到这个问题的时候都有一个 WINDOWS 的安全提示,询问是否以管理员身份运行,我的程序就什么提示都没有,直接报错。后来在网上查到了解决办法,让我的程序也支持 VISTA 了。

操作步骤:

1.建立 res 文件

建立一个文本文件,名字可以自己起,我这里叫:UAC.manifest,内容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">  
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator"/>
      </requestedPrivileges>
    </security>
</trustInfo>
</assembly>

建立文本文件,名为 UAC.rc,内容:

1 24 UAC.manifest

编译成 uac.res 文件,运行:

brcc32 uac.rc -fouac.res

2.在代码中引入
打开项目文件,加入

{$R uac.res}

3.编译程序

这时程序就支持 VISTA 了,在运行的时候,会弹出 WINDOWS 的提示框,询问用户是否允许以管理员身份运行。

Windows Vista 系统下安装 BDS2006 Update 2

在 Windows Vista 系统下安装 BDS 2006 的 Update 2 时,可能会出现下面的错误:“Setup cannot continue. This is Update 2 setup for Borland Developer Studio 2006 <Edition> Edition. Please cancel this and install Edition of Update 2.”

错误

解决办法:

在开始菜单附件中,找到“命令提示符”,右键,“以管理员身份运行”,假如我把我的安装包放到了我的桌面上,我的用户名叫 mike,那我就键入“cd \Users\mike\Desktop”,然后“msiexec /update bds2006_en_arch_upd2.msp”,就可以了。

这个问题是由于 Vista 的安全机制引起的。