GetWindowThreadProcessId,它根据窗口的句柄来获取进程和线程ID,VB原型如下
'Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
'参数:
'hwnd:目标窗口的句柄
'lpdwProcessId:一个接受返回进程ID的Long变量,
'顺便提一下,在我们调用API的时候,如果一个变量不是ByVal传递,则表示这个变量是用来接受返回值的(但也不是绝对的)
'返回值:
'窗口的线程ID
DLL命令 _取窗口进程ID, 整数型, , "GetWindowThreadProcessId", , user32dll获取与指定窗口关联在一起的一个线程和进程标识符
参数 窗口句柄, 整数型, , hwnd,指定窗口句柄
参数 进程标识符, 整数型, 传址, lpdwProcessId,指定一个变量,用于装载拥有那个窗口的一个进程的标识符
貌似你是创建了一个线程,然后在这个线程里面调用AfxGetMainWnd~~~~这样是无法获得主窗口句柄的,这个函数只能获得当前线程的窗口句柄
MSDN的说明:
If the function is called from a secondary thread in the application, the function returns the main window associated with the thread that made the call
正确做法是:你在创建线程时把窗口的的句柄以参数形式传入去
以上就是关于vb中怎么获得一个句柄的进程或线程全部的内容,包括:vb中怎么获得一个句柄的进程或线程、[易语言]如何通过进程名取窗口句柄、获取窗口句柄失败等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)