//枚举系统进程

VOID CManageProcessDlg::ShowProcess()

{

    

     m_ListProcess.DeleteAllItems();

     HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);

     //...



     PROCESSENTRY32 Pe32 = {0};

     Pe32.dwSize = sizeof(PROCESSENTRY32);

     int bRet = Process32First(hSnap,&Pe32);

     //...

     CString strTemp;

     DWORD dwIndex = 0;

     while(bRet)

     {

          //...

          bRet = Process32Next(hSnap,&Pe32);

          strTemp.Format("%d",Pe32.th32ProcessID);

          m_ListProcess.InsertItem(dwIndex,strTemp);

          m_ListProcess.SetItemText(dwIndex,1,Pe32.szExeFile);

          dwIndex ++;

     }



}



//列表控件的初始化

void CManageProcessDlg::InitList()

{

     m_ListProcess.SetExtendedStyle(m_ListProcess.GetExtendedStyle() |

          LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);



     m_ListProcess.InsertColumn(0,_T("NO"));

     m_ListProcess.InsertColumn(1,_T("进程名"));



     m_ListProcess.SetColumnWidth(0,LVSCW_AUTOSIZE_USEHEADER);

     m_ListProcess.SetColumnWidth(1,LVSCW_AUTOSIZE_USEHEADER);



     m_ListModule.SetExtendedStyle(m_ListModule.GetExtendedStyle() |

     LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);



     m_ListModule.InsertColumn(0,_T("NO"));

     m_ListModule.InsertColumn(1,_T("DLL名"));

     m_ListModule.InsertColumn(2,_T("DLL路径"));



     m_ListModule.SetColumnWidth(0,LVSCW_AUTOSIZE_USEHEADER);

     m_ListModule.SetColumnWidth(1,LVSCW_AUTOSIZE_USEHEADER);

     m_ListModule.SetColumnWidth(2,LVSCW_AUTOSIZE_USEHEADER);



}



void CManageProcessDlg::ShowModule()

{

     DWORD  error;

     m_ListModule.DeleteAllItems();

    int nPid = GetSelectPid();

     MODULEENTRY32 Me32 = {0};

     Me32.dwSize = sizeof(MODULEENTRY32);

     HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,nPid);

     //...

     error = GetLastError();



     int bRet = Module32First(hSnap,&Me32);

    

     error = GetLastError();



     CString strTemp;

     DWORD dwIndex = 0;

     while( bRet)

     {

          //...

          bRet = Module32Next(hSnap,&Me32);

          strTemp.Format("%d",Me32.th32ProcessID);

          m_ListModule.InsertItem(dwIndex,strTemp);

          m_ListModule.SetItemText(dwIndex,1,Me32.szModule);

          m_ListModule.SetItemText(dwIndex,2,Me32.szExePath);

          dwIndex ++;

          //MessageBox(Me32.szExePath);

     }

}



int CManageProcessDlg::GetSelectPid()

{

     POSITION pos = m_ListProcess.GetFirstSelectedItemPosition();

     int nSelect = -1;



     while( pos )

     {

          nSelect = m_ListProcess.GetNextSelectedItem(pos);

     }



     if(-1 == nSelect)

     {

          MessageBox("请选择要操作的项");

          return 0;

     }



     //获取选中服务的服务名

     char szServiceName[MAXBYTE] = {0};

     m_ListProcess.GetItemText(nSelect,0,szServiceName,MAXBYTE);    

     int a = atoi(szServiceName);

     return a;

}

//查看DLL

void CManageProcessDlg::OnBtnDll()

{

     // TODO: Add your control notification handler code here

     DebugPrivilege();

     ShowModule();

}



//提升权限

void CManageProcessDlg::DebugPrivilege()

{

     HANDLE hToken = NULL;

     //打开当前进程的访问令牌

     int hRet = OpenProcessToken(GetCurrentProcess(),TOKEN_ALL_ACCESS,&hToken);



     if( hRet)

     {

          TOKEN_PRIVILEGES tp;

          tp.PrivilegeCount = 1;

          //取得描述权限的LUID

          LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tp.Privileges[0].Luid);

          tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

          //调整访问令牌的权限

          AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(tp),NULL,NULL);



          CloseHandle(hToken);

     }

}

服务管理,Dll查看的更多相关文章

  1. 服务和进程管理及查看分区和cpu

    查看分区:cat /proc/partitions   [root@lbg init.d]# cat /proc/partitions major minor  #blocks  name       ...

  2. 第11章 Linux服务管理

    1. 服务分类 (1)Linux的服务 ①Linux中绝大多数的服务都是独立的,直接运行于内存中.当用户访问时,该服务直接响应用户,其好处是服务访问响应速度快.但不利之处是系统中服务越多,消耗的资源越 ...

  3. PC管理端与评委云打分配合步骤及疑难问题汇编,即如何使用PC管理端的云服务管理功能

    一.前期环境及数据准备 A.PC管理端主要流程 1.进入菜单 编辑/选项/服务器 界面,如下图所示,采用我官方所提供的云服务,不采用自己假设的AppWeb服务. 切记:AppWeb服务和云服务只能二选 ...

  4. linux 学习 12 服务管理

      第十二讲 Linux服务管理 12.1 Linux服务管理-服务分类 ——Linux服务 ----RPM包默认安装的服务 ————独立的服务 ————基于xinetd服务 ----源码包安装的服务 ...

  5. [MySQL Reference Manual] 5 MySQL 服务管理

    5. MySQL 服务管理 5. MySQL 服务管理 5.1 The Mysql Server 5.2 Mysql 服务日志 5.2.1 选择General query log和slow query ...

  6. Powershell实例小结(服务管理)

    有关服务管理的具体实例脚本如下: #$lists="1.1.1.1","2.2.2.2" #远程ip列表 foreach ($list in $lists){ ...

  7. Linux学习笔记(19) Linux服务管理

    1. 服务的分类 Linux服务可分为RPM包默认安装的服务和源码包安装的服务.前者可细分为独立的服务(直接作用于内存中)和基于xinetd服务.xinetd本身是独立的服务,其唯一的功能是管理其他服 ...

  8. [Linux]服务管理:rpm包, 源码包

    --------------------------------------------------------------------------------------------------- ...

  9. window7 输入什么命令可以快速打开服务管理?? 虚拟机设置了NAT网络连接方式,还是无法上网?

    window7 输入什么命令可以快速打开服务管理?? 虚拟机设置了NAT网络连接方式,还是无法上网? 1.我遇到的问题? 在虚拟机安装了linux系统,并且把网络连接方式设置为NAT,如图: 意思就是 ...

  10. Linux学习 -- 服务管理

    1 服务分类 服务管理内容 启动 自启动 查询已安装的服务 RPM包安装的服务  自启动的   chkconfig --list   2345中如果是启用,代表下次开机会自启动 正在运行的服务   p ...

随机推荐

  1. XACML-条件评估(Condition evaluation),规则评估(Rule evaluation),策略评估(Policy evaluation),策略集评估(PolicySet evaluation)

    本文由@呆代待殆原创,转载请注明出处. 一.条件评估(Condition evaluation) <Condition>元素缺失时或评估结果为真时,条件值为True. <Condit ...

  2. Java基础知识强化之IO流笔记76:NIO之 Channel(通道)之间的数据传输

    1. 在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel. (1)trans ...

  3. Oracle数据库SQL优化

    SQL优化的最终目的是用户体验-在最短时间内让用户在页面数据.因此,执行时间是SQL优化的重要指标.在SQL查询中,I/O操作最占系统性能的.I/O操作量越大,时间越久.减少I/O操作量是优化SQL的 ...

  4. hdu 4411 最小费用流

    思路:主要就是要把一个每个城市拆为两个点,建一条容量为1,费用为-inf的边,保证每个城市都会被遍历. /*最小费用最大流*/ #include<iostream> #include< ...

  5. 自定义UISearchDisplayController中搜索到结果的cell的位置

    #pragma mark - UISearchBarDelegate//当搜索文本被改变的时候调用 - (void)searchBar:(UISearchBar *)searchBar textDid ...

  6. java实现Composite(组合)模式

    组合模式涉及的是一组对象,其中一些对象可能含有其他对象,这些对象也可以含有对象,因此,有些对象代表的是对象群组. Composite模式的设计意图在于:让所有的用户能够用统一的接口处理单个对象以及对象 ...

  7. 七、Android学习笔记_JNI hello world

    1.需要准备的工具,eclipse,cdt(c++)插件,cygwin(unix)和 android ndk. 在cygwin的etc目录下将ndk的路径引入到profile文件中,可以在cygwin ...

  8. HTML之背景颜色的改变

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. AMQ学习笔记 - 09. Spring-JmsTemplate之接收

    概要 JmsTemplate提供了4组*3,共计12个接收用的方法.   JmsTemplate接收所需要的资源ConnectionFactory和Destination,和发送是一致的.   接收的 ...

  10. 初探内联方式的 onload="doSomething()"为何要加"()"?而js代码的 onload="doSomething" 和 addEventListener 为何不加"()"?

    问题引入:在看<Jquery基础教程>第四版的时,P34页有这样一段话 引用函数与调用函数 这里在将函数指定为处理程序时,省略了后面的圆括号,只使用了函数名.如果带着圆括号,函数会被立即调 ...