当前位置:首页 科普知识 GetWindowThreadProcessId

GetWindowThreadProcessId

发布时间:2023-09-06 19:13:27

GetWindowThreadProcessId是一种计算机函数,功能是找出某个窗口的创建者(线程或进程),返回创建者的标志符,函数原型是DWORD GetWindowThreadProcessId。

GetWindowThreadProcessId详细介绍

GetWindowThreadProcessId是一种计算机函数,功能是找出某个窗口的创建者(线程或进程),返回创建者的标志符,函数原型是DWORD GetWindowThreadProcessId。

GetWindowThreadProcessId

GetWindowThreadProcessIdVC

--------------------------------------------------------------------------------

The GetWindowThreadProcessId function retrieves the identifier of the thread that created the specified window and, optionally, the identifier of the process that created the window.

哪个线程创建了这个窗口,返回的就是这个线程的id号 (进程只有一个线程的话,那么线程标志符与进程标志符就是指同一个标志符)

可理解为找出某栋房屋的建筑工人的名字。

1.函数原型 

DWORD GetWindowThreadProcessId(

HWND hWnd,

LPDWORD lpdwProcessId

);

2.参数

hWnd (向函数提供的)被查找窗口的句柄.

lpdwProcessId 进程号的存放地址(变量地址) Pointer to a variable that receives the process identifier. If this parameter is not NULL, GetWindowThreadProcessId copies the identifier of the process to the variable; otherwise, it does not. (如果参数不为NULL,即提供了存放处--变量,那么本函数把进程标志拷贝到存放处,否则不动作。)

3.返回值 

The return value is the identifier of the thread that created the window.

返回线程号,注意,lpdwProcessId 是存放进程号的变量。返回值是线程号,lpdwProcessId 是进程号存放处。

当然可以把答案再放到其它地方。如

DWORD dwPID, dwTID;

dwTID = GetWindowThreadProcessId( hWnd, &dwPID );

GetWindowThreadProcessId

4.函数相关信息

Header Declared in Winuser.h, include Windows.h

import library User32.lib

Minimum operating systems Windows 95, Windows NT 3.1

GetWindowThreadProcessIdVB声明

Declare Function GetWindowThreadProcessId Lib "user32" Alias "GetWindowThreadProcessId" (ByVal hwnd As Long, lpdwProcessId As Long) As Long

GetWindowThreadProcessId说明

这个函数获得指定线程的标识符,此线程创建了指定的窗口,并且随机的产生了这个标识符.

GetWindowThreadProcessId返回值

Long,拥有窗口的线程的标识符

GetWindowThreadProcessId参数表

参数 类型及说明

lpdwProcessId Long,指定一个变量,用于装载拥有那个窗口的一个进程的标识符

hwnd Long,指定窗口句柄

delphi实例:

var

t: Thandle;

begin

t := FindWindow('Notepad2', nil);

ShowMessage(IntToStr(t));

memo1.lines.Add(IntToStr(GetWindowThreadProcessId(t, nil)));

GetWindowThreadProcessIdc#声明

public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);

实例

int calcID=0;

GetWindowThreadProcessId

int calcTD=0;

calcTD = GetWindowThreadProcessId(FrmMain.mainhWnd, out calcID);

返回值calcTD为线程ID

输出值calcID为进程ID

温馨提示:
本文【GetWindowThreadProcessId】由作者 爱百科 转载提供。 该文观点仅代表作者本人, 自学教育网 信息发布平台,仅提供信息存储空间服务, 若存在侵权问题,请及时联系管理员或作者进行删除。
(c)2008-2025 自学教育网 All Rights Reserved 汕头市灵创科技有限公司
粤ICP备2024240640号-6