知道ThreadId如何得到Thread HANDLE?

ultraboy 2002-07-14 02:56:57
我需要这个句柄来调用WaitForSingleObject,大家帮帮忙。
...全文
218 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ultraboy 2002-07-15
  • 打赏
  • 举报
回复
可是这个线程不是我的进程创建的,要是我的进程创建的,我当然能知道。
Wargod2002 2002-07-14
  • 打赏
  • 举报
回复
那你可以用这个函数得到句柄啊
HANDLE GetCurrentThread(VOID);
ultraboy 2002-07-14
  • 打赏
  • 举报
回复
哦,看到了,要新的MSDN才有,可是不能用啊,用了以后我的程序只能在2000跟ME下用了。。
Requirements
Windows NT/2000/XP: Included in Windows 2000 and later.
Windows 95/98/Me: Included in Windows Me.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Kernel32.lib.

我是用CreateProcess新建进程打开一个文件的,可是很多程序如果系统里已经有一个进程,新开的进程就会马上结束,原来的进程会新开一个线程来打开这个文件,我就想要得到这个线程的句柄。我现在是枚举窗口,找到打开我的文件的窗口以后调用GetWindowThreadProcessId来得到线程的Id,可是我必须要有线程的句柄才能用来调用WaitForSingleObject..
Wargod2002 2002-07-14
  • 打赏
  • 举报
回复
有啊,看msdn
HANDLE OpenThread(
DWORD dwDesiredAccess, // access right
BOOL bInheritHandle, // handle inheritance option
DWORD dwThreadId // thread identifier
);
你是怎么创建线程的?如果是afxbeginthread
那么cwinthread就有m_hThread这个成员啊,它就
是个handle
ultraboy 2002-07-14
  • 打赏
  • 举报
回复
555,不行啊,没这个函数,这是知识库里的文章说的
There is no way to get the thread handle from the thread ID. While there is an OpenProcess() API that takes a PID and returns the handle to the process, there is no corresponding OpenThread() that takes a thread ID and returns a thread handle.

Wargod2002 2002-07-14
  • 打赏
  • 举报
回复
可以由OpenThread得到

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧