VC中遍历目标进程中的模块 MFC代码
win32 也可以用 在下面代码进行修改转换就可以了
CString strModule; 可以换成 char* 但是MODULEENTRY32结构中的szModule是WCHAR
由于博主基础知识较差 所以使用的MFC里的Cstring函数
#include <Tlhelp32.h>

/***************************************************/
/* 函数: 查找目标进程中是否有指定模块信息
/* 参数:DWORD 目标进程ID
/* 参数:char* 指定模块名称 例如"ntdll.dll"
/* 返回: 无
/* 创建人: 日期 内容
/* 金胖胖 2015年2月25日 新建
/***************************************************/
bool CUIConsoleDlg::GetAllModules(DWORD dWProcessId,char* szModuleName)
{
CString strModule;
BOOL bFound = FALSE;
HANDLE hModuleSnap = NULL;
MODULEENTRY32 me32 = {0};
hModuleSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,dWProcessId);
if(hModuleSnap == INVALID_HANDLE_VALUE)
{
return false;
}
me32.dwSize = sizeof(MODULEENTRY32);
if(::Module32First(hModuleSnap, &me32))
{
do
{
strModule.Format("%s",me32.szModule);
if (!strcmp(szModuleName,strModule.GetBuffer())) // 如果找到则返回true
{
::CloseHandle(hModuleSnap);
return true;
}
}
while(::Module32Next(hModuleSnap,&me32));
}
::CloseHandle(hModuleSnap);
return false;
} /***************************************************/
/* 函数: 测试按钮函数
/* 返回: 无
/* 创建人: 日期 内容
/* 金胖胖 2015年2月25日 新建
/***************************************************/
void CUIConsoleDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
this->m_list.DeleteAllItems();
DWORD dwID = ::GetCurrentProcessId(); if (this->GetAllModules(dwID,"GameHelpMfcDll.dll"))
{
AfxMessageBox("找到模块了");
}
else
{
AfxMessageBox("没找到模块");
}

VC中遍历目标进程中的模块的更多相关文章

  1. vs2015重新安装后,项目属性中的目标框架中没有framework4.6.1

    vs2015重新安装后,安装完后 项目属性中的目标框架中没有framework4.6.1,  控制面板的程序和功能中存在该安装包. 原因: NDP461-DevPack-KB3105179-CHS.e ...

  2. OAF中 遍历HGrid组件中的所有VO行

    在HGrid组件中有如下所示的HeaderVO和LineVO 需要在头上的LOV中触发事件去更新行VO中的值,LOV事件的处理方法见 getLovParameter ,但是由于HGrid的特殊性,不能 ...

  3. JS中遍历EL表达式中后台传过来的Java集合

    前言:在我的项目里有这么一个情况,后台直接model.addAttribute()存储了一个对象,此对象内部有一个集合,前端JSP处理的方法正常情况下就是直接使用EL表达式即可.但是如果在JS中需要使 ...

  4. 【微信小程序】--小程序中循环遍历(包括js中遍历和wxml中的遍历)

    文章为博主原创,纯属个人见解,如有错误欢迎指出. 如需转载,请注明出处. 在js中遍历 for (var index in res.data.infos) { res.data.infos[index ...

  5. VC下遍历文件夹中的所有文件的几种方法

    一.使用::FindFirstFile和::FindNextFile方法 #include "StdAfx.h" #include <windows.h> #inclu ...

  6. 在PHP中遍历数据库表中的数据

    数据库中的数据: //1.分别将每一行的每一列遍历出来 //mysql_fetch_row()函数在每一次遍历后会将指针向后自动移动一个单位 while($row=mysql_fetch_row($r ...

  7. Mybatis 中遍历map 参数中的 list 和 array 属性

    原文:https://blog.csdn.net/liudongdong0909/article/details/51048835 问题在项目有中遇到批量删除操作时,需要根据两个属性去删除数据,其中一 ...

  8. js中遍历删除数组中的项(项目中遇到的问题解决)

    代码如下: for (var key=0;key<$scope.pageContent.messages.length;key++){ if($scope.pageContent.message ...

  9. C++中遍历读取数组中的元素

    答案来源:https://zhidao.baidu.com/question/187071815.html 对于字符数组str[N],判断方法有以下三种: 第一种:用库函数strlen 1 len = ...

随机推荐

  1. partial修饰符,可以让同类命名空间下出现重名

    public partial class Person { } public partial class Person { } partial修饰符,可以让同类命名空间下出现重名,两个类其实是一个类, ...

  2. 矩阵链乘 hrbust 1600

    #include<string.h> //区间dp的思想#include<iostream> //将一个区间分成两段,将每一段当成是一个矩阵#include<stdio. ...

  3. mysql 5.6 参数详解

    系统变量提供的是各种与服务器配置和功能有关的信息.大部分的系统变量都可以在服务器启动时进行设置.在运行时,每一个系统变量都拥有一个全局值或会话值,或者同时拥有这两个值.许多系统变量都是动态的,也就是说 ...

  4. C++ string类及其函数的讲解

    文章来源于:http://www.cnblogs.com/hailexuexi/archive/2012/02/01/2334183.html C++中string是标准库中一种容器,相当于保存元素类 ...

  5. C程序设计语言练习题1-9

    练习1-9 编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // ...

  6. SolrCloud初识

    文章摘自:http://www.bubuko.com/infodetail-923588.html 一.概述 Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库: Solr是以Luce ...

  7. S3C2440 驱动程序开发

    转载:http://www.cnblogs.com/lishixian/articles/2999923.html

  8. cf E. Neatness

    http://codeforces.com/contest/359/problem/E 题意:要关掉所有房间的灯,一个步骤要么开灯,要么关灯,要么向有灯的方向前进一格.输出一种关掉所有灯的方案.不能关 ...

  9. LeetCode_sqrt(x)

    class Solution { public: int sqrt(int x) { // Start typing your C/C++ solution below // DO NOT write ...

  10. Linux开发工具的使用

    1.   Linux开发工具的使用 Vim编译的使用 Gdb调试工具的使用 Makefile的编写 linux跟踪调试 SSH的使用 subversion的使用 1.   Linux开发工具的使用 V ...