当前位置: 首页 > news >正文

影视剪辑泰州网站排名seo

影视剪辑,泰州网站排名seo,wordpress 登录页,嘉兴企业网站排名今天我们来枚举系统中的进程和结束系统中进程。 认识几个API 1#xff09;CreateToolhelp32Snapshot 用于创建系统快照 HANDLE WINAPI CreateToolhelp32Snapshot( __in DWORD dwFlags, //指定快照中包含的系统内容__in DWORD th32P…今天我们来枚举系统中的进程和结束系统中进程。 认识几个API 1CreateToolhelp32Snapshot 用于创建系统快照 HANDLE WINAPI CreateToolhelp32Snapshot( __in DWORD dwFlags, //指定快照中包含的系统内容__in DWORD th32ProcessID //指定将要快照的进程ID。如果该参数为0表示快照当前进程。 ); 2 Process32First 当我们利用函数CreateToolhelp32Snapshot()获得当前运行进程的快照后,我们可以利用process32First函数来获得第一个进程的句柄.其原型为(用的是vfp) BOOL WINAPI Process32First(__in HANDLE hSnapshot, //CreateToolhelp32Snapshot 返回的句柄__in_out LPPROCESSENTRY32 lppe //PROCESSENTRY32 结构提的指针 ); 3 Process32Next 当我们利用函数CreateToolhelp32Snapshot()获得当前运行进程的快照后,我们可以利用Process32Next函数来获得下一个进程的句柄 BOOL WINAPI Process32Next(__in HANDLE hSnapshot, //CreateToolhelp32Snapshot 返回的句柄__out LPPROCESSENTRY32 lppe //PROCESSENTRY32 结构提的指针 ); 4OpenProcess 用来打开一个已存在的进程对象,并返回进程的句柄。  HANDLE WINAPI OpenProcess(__in DWORD dwDesiredAccess, //打开的标识__in BOOL bInheritHandle, //是否继承句柄__in DWORD dwProcessId //被打开的进程句柄 ); 5 EnumProcessModules 枚举进程里的模块 BOOL WINAPI EnumProcessModules(__in HANDLE hProcess, //进程句柄__out HMODULE* lphModule, //返回进程里的模块__in DWORD cb, //模块的个数__out LPDWORD lpcbNeeded //存储的模块的空间大小 ); 6GetModuleFileNameEx 得到模块的名字 DWORD WINAPI GetModuleFileNameEx(__in HANDLE hProcess, //进程的句柄__in HMODULE hModule, //模块的句柄__out LPTSTR lpFilename, //返回模块的名字__in DWORD nSize //缓冲区大小 ); 7关闭进程 BOOL WINAPI TerminateProcess(__in HANDLE hProcess, //进程的句柄__in UINT uExitCode //进程的退出值 ); 创建一个ProcessDemo 基于对话框的工程 选择基于对话框和在静态库中使用MFC 拖出来一个listCtrl然后为变量命名m_list 添加函数initList 添加代码 // 初始化列表 void CProcessDemoDlg::initList() {m_list.SetExtendedStyle(LVS_EX_FLATSB | LVS_EX_FULLROWSELECT);m_list.InsertColumn(0, 映像名称, LVCFMT_LEFT, 100);m_list.InsertColumn(1, PID, LVCFMT_LEFT, 50);m_list.InsertColumn(2, 程序路径, LVCFMT_LEFT, 340);EnumProcess(); } 结果报错参数不匹配 这是因为第二个参数的编码问题我们将项目的字符集修改为多字节即可  添加EnumProcess函数 添加函数实现的代码 #includeWindows.h #includeTlHelp32.h #includePsapi.h #pragma comment(lib,Iphlpapi.lib) #pragma comment(lib,Psapi.lib)// 遍历进程 void CProcessDemoDlg::EnumProcess() {m_list.DeleteAllItems();DebugPrivilege(SE_DEBUG_NAME, TRUE);HANDLE hSnapshot NULL;HANDLE hProcess NULL;HMODULE hModules NULL;PROCESSENTRY32 pe32 { 0 };DWORD cbNeeded;char strProcessName[MAX_PATH] { 0 };LPBYTE lpBuffer NULL;DWORD dwOffset 0;DWORD dwLength 0;CString strProcessID;hSnapshot CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //创建系统快照 if (hSnapshot INVALID_HANDLE_VALUE)return;pe32.dwSize sizeof(PROCESSENTRY32);if (Process32First(hSnapshot, pe32)) //枚举首个系统进程句柄{do{//打开进程句柄hProcess OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pe32.th32ProcessID);if ((pe32.th32ProcessID ! 0) (pe32.th32ProcessID ! 4) (pe32.th32ProcessID ! 8)){//枚举进程的第一个模块其实就是自身EnumProcessModules(hProcess, hModules, sizeof(hModules), cbNeeded);//根据模块得到模块的名字GetModuleFileNameEx(hProcess, hModules, strProcessName, sizeof(strProcessName));m_list.InsertItem(0, pe32.szExeFile); //进程的名字strProcessID.Format(%d, pe32.th32ProcessID);m_list.SetItemText(0, 1, strProcessID); //进程的IDm_list.SetItemText(0, 2, strProcessName); //进程 的完整名称}} while (Process32Next(hSnapshot, pe32)); //得到快照中下一个进程}DebugPrivilege(SE_DEBUG_NAME, FALSE);CloseHandle(hSnapshot); //关闭快照 }添加提权函数以便获取更高的权限可以遍历系统进程 // 提权 bool CProcessDemoDlg::DebugPrivilege(const char* PName, bool bEnable) {BOOL bResult TRUE;HANDLE hToken;TOKEN_PRIVILEGES TokenPrivileges;if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, hToken)){bResult FALSE;return bResult;}TokenPrivileges.PrivilegeCount 1;TokenPrivileges.Privileges[0].Attributes bEnable ? SE_PRIVILEGE_ENABLED : 0;LookupPrivilegeValue(NULL, PName, TokenPrivileges.Privileges[0].Luid);AdjustTokenPrivileges(hToken, FALSE, TokenPrivileges, sizeof(TOKEN_PRIVILEGES), NULL, NULL);if (GetLastError() ! ERROR_SUCCESS){bResult FALSE;}CloseHandle(hToken);return bResult; } 添加刷新 按钮并添加消息代码:  EnumProcess(); 添加结束按钮并添加 代码: void CProcessDemoDlg::OnBnClickedButtonTerminate() {HANDLE hProcess NULL;CString strProcessID;DWORD dwProcessID;int nSelect m_list.GetSelectionMark(); //得到选中的条目if (nSelect 0){return;}DebugPrivilege(SE_DEBUG_NAME, TRUE);strProcessID m_list.GetItemText(nSelect, 1); //得到要结束进程的IDdwProcessID atoi(strProcessID);hProcess OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessID); //打开进程获得其句柄TerminateProcess(hProcess, 0); //结束进程CloseHandle(hProcess); //关闭打开的句柄DebugPrivilege(SE_DEBUG_NAME, FALSE);// 稍稍Sleep下防止出错Sleep(100);EnumProcess(); } 此时运行项目还是显示不出来条目我们需要将2个列表的属性》视图ICon 改为 Report 同时不要忘记调用函数 这样我们的进程遍历工具就做好了而且也可以刷新和结束指定进程 如果你也想修改MFC的图标可以看我这篇文章修改MFC图标  好了今天的内容就到这里了喜欢的话记得多多关注噢
http://www.w-s-a.com/news/211527/

相关文章:

  • 网络工程师和做网站哪个难网络建站如何建成
  • 网站建设需要哪些项目游民星空是用什么做的网站
  • 旅游网站建设要如何做百度商城网站建设
  • destoon 网站搬家中国企业500强都有哪些企业
  • 商城网站前端更新商品天天做吗哈尔滨做网站优化
  • 新乡网站开发wordpress 产品分类侧边栏
  • 网站自己做自己的品牌好做互联网企业分类
  • 项目网站建设方案石家庄网站快速排名
  • 网站开发大作业报告做电商网站的参考书
  • Apache局域网网站制作wordpress外链自动保存
  • 网站备案号要怎么查询千锋教育培训机构地址
  • 门户网站建设要求几款免费流程图制作软件
  • 花生壳域名可以做网站域名吗wordpress内链工具
  • 猎头公司网站模板网站伪静态作用
  • 工程建设教育网站html成品网页模板下载
  • 同一ip 网站 权重wordpress 菜单 小图标
  • 网站没有icp备案wordpress d8主题 4.1
  • 手机网站建设推荐企业宣传页模板
  • 杭州市富阳区建设局网站动态域名做网站
  • 网站如何免费做SEO优化靖安县城乡规划建设局网站
  • 室内设计网站平台学新媒体运营最好的培训学校
  • 招聘网站建设工作总结湘潭seo
  • 台山网站设计哈尔滨网站建设外包公司
  • 常州城投建设招标网站网页设计入门教学视频
  • 石家庄教育平台网站建设wordpress 访问量统计
  • 为什么买的网站模版不好用ftp网站建设
  • 做网站办公照片crm系统视频
  • 网站建设 招标文件南昌做网络推广的
  • 增城电子商务网站建设浙江省住房和城乡建设部网站
  • 企业网站宽度给多少手机软件开发公司排名