把所有的线程都遍历一遍,然后判断是否有你自己的线程。
遍历线程如下(BCB语句)
    ListView2->Items->Clear();
    TListItem *mItem;
    AnsiString ExeFile;
    Pointer pt,pt2;
    unsigned int s;
    DWORD size,size2;
    HANDLE snapshot;
    PROCESSENTRY32 processinfo;
    processinfo.dwSize = sizeof(processinfo);
    snapshot =
    CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    if (snapshot==NULL) return;
    bool flag = Process32First (snapshot,&processinfo);
    while (flag){
          
          mItem=ListView2->Items->Add();
          ExeFile=AnsiString(processinfo.szExeFile);
          mItem->Caption=ExeFile;
          mItem->SubItems->Add(
          IntToStr(int(processinfo.th32ParentProcessID)));          mItem->SubItems->Add(
          IntToHex(int(processinfo.th32ProcessID),8).UpperCase());
          size=GetFileVersionInfoSize(ExeFile.c_str(),&size2);
          pt=malloc(size);
          GetFileVersionInfo(ExeFile.c_str(),NULL,size,pt);
          if(VerQueryValue(pt,
          "\\StringFileInfo\\040904E4\\FileVersion",
          &pt2,&s))
          mItem->SubItems->Add(PChar(pt2));
          if(VerQueryValue(pt,
          "\\StringFileInfo\\040904E4\\CompanyName",
          &pt2,&s))
              mItem->SubItems->Add(PChar(pt2));
          if(VerQueryValue(pt,
          "\\StringFileInfo\\040904E4\\FileDescription",
          &pt2,&s))
              mItem->SubItems->Add(PChar(pt2));
          free(pt);
          flag = Process32Next(snapshot,&processinfo);
    }