首先通过判断是否是64位系统,然后IsWow64Process函数判断是否是64位程序的进程。
主要代码:(判断否是64位系统不明的参考我另外一篇文章):
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程
  //打开进程并返回句柄
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程      hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pe32.th32ProcessID);
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程      if ((pe32.th32ProcessID !=0 ) && (pe32.th32ProcessID != 4) && (pe32.th32ProcessID != 8))
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程      {
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程        //64位系统执行
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程        if (CWindOS::IsWow64())
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程        {
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程          BOOL y5023=TRUE;
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程          EnumProcessModulesEx(hProcess, &hModules, sizeof(hModules), &cbNeeded,PDW);
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程          //判断是否是64或32模块进程
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程          IsWow64Process(hProcess,&y5023);
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程          if (y5023==FALSE)
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程          {
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程            //枚举第一个模块句柄也就是自身
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程            QueryFullProcessImageNameA(hProcess,0,strProcessName,&PDW);
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程          }
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程          else
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程          {  //得到自身的完整名称
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程            GetModuleFileNameExA(hProcess, hModules, strProcessName, sizeof(strProcessName));
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程          }
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程        }
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程        else
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程        {  //32位系统执行
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程          EnumProcessModules(hProcess, &hModules, sizeof(hModules), &cbNeeded);    
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程          GetModuleFileNameExA(hProcess, hModules, strProcessName, sizeof(strProcessName));
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程        }
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程        //内存信息
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程      //  GetProcessMemoryInfo(hProcess,&nc,sizeof(nc));
VC判断64位和32位模块进程、枚举进程_判断64位和32位模块进程_29