VC判断进程是否具有administrator权限的方法

本文实例讲述了VC判断进程是否具有admin权限的方法。是的话返回TRUE,否则为FALSE。分享给大家供大家参考。具体实现方法如下:

代码如下:

static BOOL IsAdmin(void) 

     HANDLE                   hAccessToken; 
     BYTE                     InfoBuffer[1024];    
     PTOKEN_GROUPS            ptgGroups; 
     DWORD                    dwInfoBufferSize; 
     PSID                     psidAdministrators; 
     SID_IDENTIFIER_AUTHORITY siaNtAuthority = SECURITY_NT_AUTHORITY; 
     UINT                     i; 
     BOOL                     bRet = FALSE; 
  
     if(!OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY,&hAccessToken))
        return bRet;          
     bRet = GetTokenInformation(hAccessToken, TokenGroups, InfoBuffer, 1024, &dwInfoBufferSize);
     CloseHandle(hAccessToken); 
     if(!bRet) 
        return bRet;
     if(!AllocateAndInitializeSid(&siaNtAuthority, 
                                  2, 
                                  SECURITY_BUILTIN_DOMAIN_RID, 
                                  DOMAIN_ALIAS_RID_ADMINS, 
                                  0,0,0,0,0,0, 
                                  &psidAdministrators))          
        return FALSE;                                 
     bRet = FALSE;    
     ptgGroups = (PTOKEN_GROUPS)InfoBuffer; 
     for(i=0;i<ptgGroups->GroupCount;i++)      
         if(EqualSid(psidAdministrators,ptgGroups->Groups[i].Sid))       
             bRet = TRUE;                 
     FreeSid(psidAdministrators);  
     return bRet;
}

希望本文所述对大家的VC程序设计有所帮助。

(0)

相关推荐

  • VC++获得当前进程运行目录的方法

    本文实例讲述了VC++获得当前进程运行目录的方法,分享给大家供大家参考.具体实现方法如下: 该实例主要通过利用windows API获得,具体代码如下: 复制代码 代码如下: CString GetAppPath() {   CString strAppPath;  // 保存结果   TCHAR szModuleFileName[MAX_PATH]; // 全路径名   TCHAR drive[_MAX_DRIVE];  // 盘符名称,比如说C盘啊,D盘啊   TCHAR dir[_MAX_

  • VC使用TerminateProcess结束进程实例

    本文实例讲述了VC使用TerminateProcess结束进程的方法,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: int KillProcess(LPCSTR pszClassName, LPCSTR pszWindowTitle) {     HANDLE hProcessHandle;     ULONG nProcessID;     HWND TheWindow;     TheWindow = ::FindWindow( NULL, pszWindowTitle )

  • VC++中进程与多进程管理的方法详解

    本文实例讲述了VC++中进程与多进程管理的方法,分享给大家供大家参考.具体方法分析如下: 摘要: 本文主要介绍了多任务管理中的多进程管理技术,对进程的互斥运行.子进程的创建与结束等作了较详细的阐述. 关键词: VC++6.0:进程:环境变量:子进程 进程 进程是当前操作系统下一个被加载到内存的.正在运行的应用程序的实例.每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了所有程序模块的代码和数据以及线程堆栈.堆分

  • VC创建进程CreateProcess的方法

    本文实例讲述了VC创建进程CreateProcess的方法.分享给大家供大家参考.具体实现方法如下: #include "stdafx.h" #include <windows.h> #include <stdio.h> int main (int argc,char* argv[]) { char szCommandLine[]="cmd"; STARTUPINFO si={sizeof(si)}; PROCESS_INFORMATION

  • VC实现获取当前正在运行的进程

    本文实例讲述了VC实现获取当前正在运行的进程.分享给大家供大家参考.具体实现方法如下: #include <windows.h> #include <tlhelp32.h> #include <stdio.h> int main(int argc,char* argv[]) { PROCESSENTRY32 pe32; //再使用这个结构体前先定义它的大小 pe32.dwSize=sizeof(pe32); //给系统内的所有进程拍一个快照 HANDLE hProces

  • VC下通过系统快照实现进程管理的方法

    本文实例讲述了VC下通过系统快照实现进程管理的方法,分享给大家供大家参考.具体实现方法如下: 一.引言 每一个应用程序实例在运行起来后都会在当前系统下产生一个进程,大多数应用程序均拥有可视界面,用户可以通过标题栏上的关闭按钮关闭程序.但是也有为数不少的在后台运行的程序是没有可视界面的,对于这类应用程序用户只能通过CTRL+ALT+DEL热键呼出"关闭程序"对话框显示出当前系统进程列表,从中可以结束指定的任务.显然,该功能在一些系统监控类软件中还是非常必需的,其处理过程大致可以分为两步:

  • VC实现A进程窗口嵌入到B进程窗口中显示的方法

    本文通过一个Demo示例讲述把A应用程序嵌入到B应用程序中显示的方法. 主要代码如下: //在B应用启动时创建A进程 CreateProcess(_T("A.exe"),NULL,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,NULL,NULL); Sleep(30); HWND hWndChild = FindWindow(_T("AAA"),_T("AAA")); while(!hWndChild)

  • 判断指定的进程或程序是否存在方法小结(vc等)

    一.判断指定程序名的进程是否存在     BOOL EnumWindows( WNDENUMPROC lpEnumFunc, // pointer to callback function LPARAM lParam //   application-defined value);        The EnumWindows function enumerates all top-level windows on the screen by passing the handle to each

  • VC判断进程是否具有administrator权限的方法

    本文实例讲述了VC判断进程是否具有admin权限的方法.是的话返回TRUE,否则为FALSE.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: static BOOL IsAdmin(void)  {       HANDLE                   hAccessToken;       BYTE                     InfoBuffer[1024];          PTOKEN_GROUPS            ptgGroups;    

  • android编程判断应用是否具有某个权限的方法

    本文实例讲述了android编程判断应用是否具有某个权限的方法.分享给大家供大家参考,具体如下: android在开发中有时候要判断应用中是否有某项权限,或者想获取到某个应用的权限清单,可以使用以下方法 1) 判断应用是否具有某个权限 PackageManager pm = getPackageManager(); boolean permission = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.perm

  • Android 获取判断是否有悬浮窗权限的方法

    现在很多应用都会用到悬浮窗,很多国产rom把悬浮窗权限加入控制了,你就需要判断是否有悬浮窗权限,然后做对应操作. Android 原生有自带权限管理的,只是被隐藏了.看android源码在android.app下就有个AppOpsManager类. 类说明如下: /** * API for interacting with "application operation" tracking. * * <p>This API is not generally intended

  • Shell实现判断进程是否存在并重新启动脚本分享

    简洁版: #! /bin/bash # author caoxin # time 2012-10-10 # program : 判断进行是否存在,并重新启动 function check(){ count=`ps -ef |grep $1 |grep -v "grep" |wc -l` #echo $count if [ 0 == $count ];then nohup python /runscript/working/$1 & fi } check behaviors.py

  • VC判断一个文件为目录的方法

    本文实例讲述了VC判断一个文件为目录的方法,分享给大家供大家参考.具体实现方法如下: 这是一个自定义函数,用于判断一个文件是否为目录: 复制代码 代码如下: /**  * check whether a file is a directory  @return true if is a directory, else false(if file not exists, false)  */ __declspec(dllexport) bool IsDirectory(const char* fi

  • Android如何判断手机是否有录音权限的工具类

    作用 判断手机是否有录音权限的工具类,兼容6.0以上以及以下android系统 测试环境 这篇文章是评论中的网友提出质疑后,经过重写修改与重写测试后编写的,我的调试环境是小米note3,Android7.1的系统. 记得在清单文件中配置对应的权限. 思路 检测是否有权限 -->有权限--执行相关操作 -->无权限-- 判断系统版本 --大于等于6.0 --动态申请权限 -->对申请结果的回调处理 --允许 --拒绝 代码 工具类CheckAudioPermission.java pack

  • 超全的webshell权限提升方法

    WEBSHELL权限提升技巧  c: d: e:.....  C:\Documents and Settings\All Users\「开始」菜单\程序\  看这里能不能跳转,我们从这里可以获取好多有用的信息比如Serv-U的路径,  C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere\  看能否跳转到这个目录,如果行那就最好了,直接下它的CIF文件,破解得到pcAnywhere密码,登陆  c:\Pr

  • Android5.1系统通过包名给应用开放系统权限的方法

    常用的给应用开放系统权限的方法是直接将该应用做成系统应用(即在AndroidManifest.xml文件里加上:android:sharedUserId="android.uid.system"),但是这种做法限制了应用本身的自由,也就是说经过系统签名后的系统应用只能够在对应的Android平台上安装使用,无法向其他应用一样放到Android市场里兼容所有的Android设备. 现在此介绍一种通过修改Android平台系统层代码,根据指定的应用包名给对应的应用在该平台上开放系统权限,这

随机推荐