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

  • 相关阅读:
    模式识别 之 BP算法
    仪器开发 之 DICOM 三维重建 HPP
    模式识别 之 BP算法 (二)
    病理分析 之 细胞分析
    脉搏血氧仪 之 算法原理
    模式识别 之 初学
    机器学习 之 模糊神经(失败总结)
    冲刺第二天
    冲刺第三天
    团队项目计划
  • 原文地址:https://www.cnblogs.com/lizs/p/3642158.html
Copyright © 2020-2023  润新知