hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0) '获得进程“快照”的句柄
    Proc.dwSize = Len(Proc)
    lPid = ProcessFirst(hSnapShot, Proc) '获取第一个进程的PROCESSENTRY32结构信息数据
    i = 0
    Do While lPid <> 0 '当返回值非零时继续获取下一个进程
       
        hTSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPthread, Proc.th32ProcessID) '获得线程“快照”的句柄
        '获取进程对应的线程句柄
        lTid = ThreadFirst(hTSnapShot, Thre)
        
        '获取线程对应的Window句柄
        'Call EnumThreadWindows(Thre.th32ThreadID, AddressOf EnumThreadWndMain, 0&)
        Call CloseHandle(hTSnapShot)  '关闭线程“快照”句柄
        
        i = i + 1
        lPid = ProcessNext(hSnapShot, Proc) '循环获取下一个进程的PROCESSENTRY32结构信息数据
    Loop
    Call CloseHandle(hSnapShot)  '关闭进程“快照”句柄

解决方案 »

  1.   

    '获取进程对应的线程句柄
    lTid = ThreadFirst(hTSnapShot, Thre)
    ----------------------------------------------------
    就是这句,返回值iTid始终为0
      

  2.   

    //列出所有线程
    HANDLE snapshothandle=CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,0);
    THREADENTRY32 threadentry;
    threadentry.dwSize=sizeof(THREADENTRY32);
    BOOL finded=Thread32First(snapshothandle,&threadentry);
    while(finded!=NULL)
    {
        //threadentry中返回线程信息        
        finded=Thread32Next(snapshothandle,&threadentry);
    }
    CloseHandle(snapshothandle);
    自己翻译成vb吧。
      

  3.   

    我用C来做也没有问题,是不是VB的问题?
      

  4.   

    谢谢 bob008(冻冬)
    我的mail是[email protected]