问题描述
我有一个代码告诉我父进程是否在任务管理器中运行      
I have a code which tells me whether my parent process is running in task manager or not
int main(无效)
{
  bool bCallForMain = true;
  CheckIfApplicationAlreadyRunning(bCallForMain);
    if(bCallForMain)
    {
        _tprintf(TEXT(" true - app alredy runnin"));
    }
    else
    {
        _tprintf(TEXT(" false - not running"));
    }
$
}
bool CheckIfApplicationAlreadyRunning(bool& appRunning)
{
$
  HANDLE hProcessSnap;
 处理hProcess;
  PROCESSENTRY32 pe32;
  DWORD dwPriorityClass;
  //拍摄系统中所有进程的快照。
  hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap == INVALID_HANDLE_VALUE)
{
    _tprintf(TEXT(" CreateToolhelp32Snapshot(of processes)"));
     返回(FALSE);
}
  //在使用之前设置结构的大小。
  pe32.dwSize = sizeof(PROCESSENTRY32);
  //检索有关第一个流程的信息,
  //如果不成功则退出
if(!Process32First(hProcessSnap,& pe32))
{
    _tprintf(TEXT(QUOT; Process32First")); //显示失败原因
    CloseHandle的(hProcessSnap);          //清理快照对象
   返回(FALSE);
}
  //现在浏览流程快照,并以
  //依次显示每个流程的信息
  while(Process32Next(hProcessSnap,& pe32))
  {
$
      std :: wstring进程(L" VeracityNXT.exe");
      if(pe32.szExeFile == processs)
      {
          appRunning = true;
         休息;
      }¥b $ b      否则
      {
          appRunning = false;
      }¥b $ b   }
  CloseHandle(hProcessSnap);
 返回(TRUE);
}
int main(void)
{
bool bCallForMain=true;
CheckIfApplicationAlreadyRunning(bCallForMain);
if (bCallForMain)
{
_tprintf(TEXT("true - app alredy runnin"));
}
else
{
_tprintf(TEXT("false - not running"));
}
}
bool CheckIfApplicationAlreadyRunning(bool& appRunning)
{
HANDLE hProcessSnap;
HANDLE hProcess;
PROCESSENTRY32 pe32;
DWORD dwPriorityClass;
// Take a snapshot of all processes in the system.
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
_tprintf(TEXT("CreateToolhelp32Snapshot (of processes)"));
return(FALSE);
}
// Set the size of the structure before using it.
pe32.dwSize = sizeof(PROCESSENTRY32);
// Retrieve information about the first process,
// and exit if unsuccessful
if (!Process32First(hProcessSnap, &pe32))
{
_tprintf(TEXT("Process32First")); // show cause of failure
CloseHandle(hProcessSnap); // clean the snapshot object
return(FALSE);
}
// Now walk the snapshot of processes, and
// display information about each process in turn
while (Process32Next(hProcessSnap, &pe32))
{
std::wstring processs(L"VeracityNXT.exe");
if (pe32.szExeFile == processs)
{
appRunning = true;
break;
}
else
{
appRunning = false;
}
}
CloseHandle(hProcessSnap);
return(TRUE);
}
我想获取父进程的子进程。并创建它的实例
My i want to get the child process of the parent one. and create its instance
我该怎么做?
请帮帮我
推荐答案
另一种选择是使用WMI获取ParentProcessid 的属性b $ b
Another option is to use WMI to obtain the ParentProcessid property of Win32_Process class
这篇关于我想使用cpp从任务管理器的父进程名称中获取子进程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!