zoukankan      html  css  js  c++  java
  • VC中设置打开文件的权限为管理员权限

    设置当前进程的权限

    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下的非管理员账户下运行时,会弹出一个提示框,提示用户该程序要求管理员权限,是否继续运行。用户选择否,则程序退出;用户选择是,则运行的程序被赋予管理员权限。

  • 相关阅读:
    (参考)爬虫5-爬取中国大学排名情况
    005_软件安装之_常用办公软件
    004_软件安装之_Altium Designer
    001_基础硬件电路_二极管
    添加QQ群
    024_STM32程序移植之_ESP8266_TCP
    020_C语言常用函数
    004——转载C#禁止改变窗体大小
    003转载----C#打开网页
    002_Python基础学习网站
  • 原文地址:https://www.cnblogs.com/lizs/p/3642158.html
Copyright © 2011-2022 走看看