c++ 提升应用程序的权限
来源:互联网 发布:js 里面加载js 编辑:程序博客网 时间:2024/05/17 01:10
1、判断当前用户权限是否管理员权限
BOOL IsRunAsAdmin(){BOOL fIsRunAsAdmin = FALSE;DWORD dwError = ERROR_SUCCESS;PSID pAdministratorsGroup = NULL;// Allocate and initialize a SID of the administrators group.SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;if (!AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &pAdministratorsGroup)){dwError = GetLastError();goto Cleanup;}// Determine whether the SID of administrators group is enabled in // the primary access token of the process.if (!CheckTokenMembership(NULL, pAdministratorsGroup, &fIsRunAsAdmin)){dwError = GetLastError();goto Cleanup;}Cleanup:// Centralized cleanup for all allocated resources.if (pAdministratorsGroup){FreeSid(pAdministratorsGroup);pAdministratorsGroup = NULL;}// Throw the error if something failed in the function.if (ERROR_SUCCESS != dwError){throw dwError;}return fIsRunAsAdmin;}
BOOL ElevateCurrentProcess(CString sCmdLine){USES_CONVERSION;TCHAR szPath[MAX_PATH] = {0}; if (::GetModuleFileName(NULL, szPath, MAX_PATH)){// Launch itself as administrator.SHELLEXECUTEINFO sei = { sizeof(SHELLEXECUTEINFO) };sei.lpVerb = _T("runas");sei.lpFile = szPath;sei.lpParameters = (LPCTSTR)sCmdLine;//sei.hwnd = hWnd;sei.nShow = SW_SHOWNORMAL;if (!ShellExecuteEx(&sei)){DWORD dwStatus = GetLastError();if (dwStatus == ERROR_CANCELLED) {return FALSE;}else if (dwStatus == ERROR_FILE_NOT_FOUND) {return FALSE;}return FALSE;}return TRUE;}return FALSE;}
- c++ 提升应用程序的权限
- c++ 提升应用程序的权限
- Vista下提升应用程序权限
- 如何提升应用程序启动权限
- 如何提升应用程序启动权限
- vc++中,怎样实现提升应用程序的操作权限
- win8-VS2008-"此任务要求应用程序具有提升的权限"
- C#应用程序的UAC控制,提升应用程序权限。获得版本号码
- 权限的提升
- 提升进程的权限
- 提升权限的方法
- Windows Via C/C++:vista下的应用程序权限控制
- 关于 WebBrowser只对浏览器外应用程序以及在Internet Explorer 中以提升权限运行的应用程序启用
- 提升JSP应用程序的绝招
- 提升JSP应用程序的效率
- 提升JSP应用程序的绝招
- 提升 web 应用程序的性能
- 提升JSP应用程序的效率
- nothing but the fucking ***
- adb uninstall卸载apk文件说明
- 自己的底层代码库(六)——对象池
- init 运行级别分析
- 如何与资源管理器互动剪切/拷贝/粘贴文件
- c++ 提升应用程序的权限
- jobdu 18 查找学生信息
- SQL SERVER 存储过程
- Android的快速开发框架 afinal
- comboBox的SelectedValue为null
- SSH框架中spring整合struts2三种技术方式
- 如何判断单链表里面是否有环?
- 深入理解JavaScript系列(5):强大的原型和原型链
- java中如何最简单的调用存储过程