win7设置打开文件的权限为管理员权限
2013-11-13 17:18
295 查看
设置当前进程的权限
BOOL CMainFrame::EnableDebugPrivilege(BOOL fEnable)
{
BOOL fOK = FALSE;
HANDLE hToken = NULL;
if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken))
{
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount = 1;
LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tp.Privileges[0].Luid);
tp.Privileges[0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED : 0;
AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(tp),NULL,NULL);
fOK = (GetLastError() == ERROR_SUCCESS);
CloseHandle(hToken);
}
return fOK;
}
以下在 VS2005 中测试可行
一般应用程序需要管理员权限时,在XP下无需特殊限定,只要使用管理员登陆系统即可正常使用应用程序。win7下因为特有的UAC验证,所以应用程序开发需要进行特别的处理。处理过程如下:
1. 在应用程序源代码目录下创建 admin.manifest 文件,粘贴进如下内容保存:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="Win7Privilege"
type="win32"/>
<description>Description of your application</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
其中红色部分请更改为相应内容:
Win7Privilege => 你的应用程序名,例如MyProcedure
Description of your application => 你的应用程序描述信息,例如this is MyProcedure
2. 在应用程序的属性——清单工具——“输入和输出”选项中,填写“附加清单文件”项为admin.manifest,点击“确定”。
3. 重新生成应用程序。
经过这样处理的应用程序,在Win7下的非管理员账户下运行时,会弹出一个提示框,提示用户该程序要求管理员权限,是否继续运行。用户选择否,则程序退出;用户选择是,则运行的程序被赋予管理员权限。
文章来源:http://www.prm8.com/a/bianchengjingyan/vc/402/
BOOL CMainFrame::EnableDebugPrivilege(BOOL fEnable)
{
BOOL fOK = FALSE;
HANDLE hToken = NULL;
if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken))
{
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount = 1;
LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tp.Privileges[0].Luid);
tp.Privileges[0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED : 0;
AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(tp),NULL,NULL);
fOK = (GetLastError() == ERROR_SUCCESS);
CloseHandle(hToken);
}
return fOK;
}
以下在 VS2005 中测试可行
一般应用程序需要管理员权限时,在XP下无需特殊限定,只要使用管理员登陆系统即可正常使用应用程序。win7下因为特有的UAC验证,所以应用程序开发需要进行特别的处理。处理过程如下:
1. 在应用程序源代码目录下创建 admin.manifest 文件,粘贴进如下内容保存:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="Win7Privilege"
type="win32"/>
<description>Description of your application</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
其中红色部分请更改为相应内容:
Win7Privilege => 你的应用程序名,例如MyProcedure
Description of your application => 你的应用程序描述信息,例如this is MyProcedure
2. 在应用程序的属性——清单工具——“输入和输出”选项中,填写“附加清单文件”项为admin.manifest,点击“确定”。
3. 重新生成应用程序。
经过这样处理的应用程序,在Win7下的非管理员账户下运行时,会弹出一个提示框,提示用户该程序要求管理员权限,是否继续运行。用户选择否,则程序退出;用户选择是,则运行的程序被赋予管理员权限。
文章来源:http://www.prm8.com/a/bianchengjingyan/vc/402/
相关文章推荐
- VC中设置打开文件的权限为管理员权限
- VC中设置打开文件的权限为管理员权限
- 取消win7管理员模式避免打开或删除文件提示需要管理员权限
- win7 打开文件提示需要管理员权限才能打开的解决方法
- win7管理员权限设置方法-修改文件
- 让win7变成无线路由(需要用管理员权限打开)最后完善.rar
- 通过试验探索Access 2000/XP 数据库的最佳 NTFS 权限设置Microsoft Jet 数据库引擎打不开文件'D:\wwwroot\test\data\'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
- 如何设置win7帐号的拥有管理员权限验证
- win7文件权限设置
- Visual Studio 2008 中的可执行文件中嵌入清单文件(manifest) Vista/win7 UAC中把应用程序标注为“需要管理员权限”
- win7中快速以管理员权限打开命令行窗口(链接型方法)
- [转]Ubuntu以管理员权限打开文件(夹)
- vs2005 生成文件与win7兼容 \ 利用manifest提升程序为WIN7管理员权限
- 如何设置Win7打开文件默认程序服从安排
- win7 exe文件打不开 获得管理员权限的注册表导入
- nagios 无法打开要更新的命令文件,外部命令文件或目录权限不对,参考FAQ设置正确的权限
- ubuntu以管理员权限打开文件(夹)
- umask设置导致的weblogic中的应用上传的文件没有权限打开
- win7管理员账户被禁用或者设置不显示后如何用标准用户解除_win7用户权限问题_administraotr账户问题
- win7升级win10后新建文件或文件夹提示需要管理员权限该怎么办?