delphi以管理员权限运行的主题问题

时间:2021-03-26 15:29:45
程序需要以管理员权限运行,是通过在资源里面嵌入MANIFEST信息实现的,可是会带来一个问题.
以管理员权限运行,程序的界面就会扛看起来像98的主题啊,应该怎么解决啊?delphi的版本是2010,系统是win7
没加uac.res的界面
delphi以管理员权限运行的主题问题
加uac.res,以管理员权限运行的界面
delphi以管理员权限运行的主题问题

3 个解决方案

#1


把使用系统默认主题的选项去掉试下
project->application->runtime themes设置成none

#2


不行啊,把Enable runtime themes 勾去掉后还是不行啊.

#3


问题解决了,是之前参考http://www.cnblogs.com/delphi7456/archive/2011/01/20/1940637.html做的.应该是里面的内容不够.参考了http://bbs.csdn.net/topics/320071356# 里27楼unsigned僵哥的方法做的.
在Source\VCL目录下应该有这样两个文件sample.manifest和WindowsXP.rc,可以通过如下方法处理:

1.可以通过修改sample.manifest把其中的
XML code<trustInfoxmlns="urn:schemas-microsoft-com:asm.v3"><security><requestedPrivileges><requestedExecutionLevellevel="asInvoker"
          uiAccess="false"/></requestedPrivileges></security></trustInfo>
改为
Delphi(Pascal) code<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"><security><requestedPrivileges><requestedExecutionLevel
          level="requireAdministrator"
          uiAccess="false"/></requestedPrivileges></security></trustInfo>
另存为requireAdmin.manifest

2.打开WindowsXP.rc,将内容编辑成
引用1 24 "requireAdmin.manifest"
并另存为requireAdmin.rc

3.通过命令行编译成requireAdmin.res
引用brcc32 requireAdmin.rc

4.把编译出来的文件requireAdmin.res放到$(BDS)\lib目录下

5.在需要的程序当中,打开Project菜单下的Options...菜单项,将Application下面的"Enable runtime themes"的勾选去掉.

6.打开Project菜单下的View Source菜单项,然后在
Delphi(Pascal) code{$R *.res}
下面添加一行
Delphi(Pascal) code{$R requireAdmin.res}

7.重新编译即可.

#1


把使用系统默认主题的选项去掉试下
project->application->runtime themes设置成none

#2


不行啊,把Enable runtime themes 勾去掉后还是不行啊.

#3


问题解决了,是之前参考http://www.cnblogs.com/delphi7456/archive/2011/01/20/1940637.html做的.应该是里面的内容不够.参考了http://bbs.csdn.net/topics/320071356# 里27楼unsigned僵哥的方法做的.
在Source\VCL目录下应该有这样两个文件sample.manifest和WindowsXP.rc,可以通过如下方法处理:

1.可以通过修改sample.manifest把其中的
XML code<trustInfoxmlns="urn:schemas-microsoft-com:asm.v3"><security><requestedPrivileges><requestedExecutionLevellevel="asInvoker"
          uiAccess="false"/></requestedPrivileges></security></trustInfo>
改为
Delphi(Pascal) code<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"><security><requestedPrivileges><requestedExecutionLevel
          level="requireAdministrator"
          uiAccess="false"/></requestedPrivileges></security></trustInfo>
另存为requireAdmin.manifest

2.打开WindowsXP.rc,将内容编辑成
引用1 24 "requireAdmin.manifest"
并另存为requireAdmin.rc

3.通过命令行编译成requireAdmin.res
引用brcc32 requireAdmin.rc

4.把编译出来的文件requireAdmin.res放到$(BDS)\lib目录下

5.在需要的程序当中,打开Project菜单下的Options...菜单项,将Application下面的"Enable runtime themes"的勾选去掉.

6.打开Project菜单下的View Source菜单项,然后在
Delphi(Pascal) code{$R *.res}
下面添加一行
Delphi(Pascal) code{$R requireAdmin.res}

7.重新编译即可.