首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

Vista或win7下,有没有办法让dll文件默认以管理员的身份运行?该怎么处理

2012-02-02 
Vista或win7下,有没有办法让dll文件默认以管理员的身份运行?我的dll文件是通过regsvr32.exe注册后运行的,

Vista或win7下,有没有办法让dll文件默认以管理员的身份运行?
我的dll文件是通过regsvr32.exe注册后运行的,注册调用的语句是:
ShellExecute(Application->Handle, TEXT("Open"), "regsvr32.exe",("/s "+FileName3).c_str(),FilePath.c_str(),SW_HIDE);
其中FileName3就是dll的文件名。但这样调用,不是以管理员的身份运行的,一些写权限受到了限制,比如,这句拷贝文件的操作都不能运行:
CopyFile(TempPathFile,FileName,false);
其中TempPathFile是临时文件夹下的一个临时文件,FileName是程序安装目录下的一个dat文件。
exe文件我知道如何让它默认以管理员身份运行,dll文件就不知道了,期待高手解答。顶帖者有分。


[解决办法]
DLL本身就不能单独运行,本身无所谓权限的问题,它的特权等级和宿主程序是一样的,
你让它的宿主程序以管理员身份运行就行了。

具体地说ShellExecute是在哪个程序中执行的,你就让这个程序以管理员身份运行,
或者哪个程序需要加载这个DLL,就让这个程序以管理员身份运行。
[解决办法]

[解决办法]
之前我也在做类似的工作,直接在当前目录下加一个Mainfest文件,里面是如下的内容
<?xml version="1.0" encoding="utf-8"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
<security> 
<requestedPrivileges> 
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
</requestedPrivileges> 
</security> 
</trustInfo> 
</assembly> 
在运行的时候就是管理员权限了
[解决办法]
用runas试试
runas可以在命令行下以其它用户身份运行某一程序(包括以管理员身份),具体使用看一下
runas /?

热点排行