多线程程序下,如何找到指定的窗口句柄

多线程程序下,如何找到指定的窗口句柄,第1张

关键的步骤就是获取实际窗口指针(句柄)。

不同程序和模式获取方式不同,一般可以通过参数传递、AfxGetMainWnd等MFC函数获取、全局变量、共享内存等方式获取,第一种最简单,其它的各有要求。

获取指针后GetSafeHandle可以获取句柄,然后SendMessage即可。

如果窗口是现有程序的,使用vs自带的spy++获取窗口的相关信息,然後使用winapi获取句柄,具体参考spy++的使用方法和winapi的使用

findwindow(

lpclassname,

{窗口的类名}

lpwindowname:

pchar

{窗口的标题}

):

hwnd;

{返回窗口的句柄;

失败返回

0}

//findwindowex

findwindow

多出两个句柄参数:

findwindowex(

parent:

hwnd;

{要查找子窗口的父窗口句柄}

child:

hwnd;

{子窗口句柄}

classname:

pchar;

{}

windowname:

pchar

{}

):

hwnd;

如果窗口是你的程序动态生成的,使用如下语句

form

_form=new

form();

intptr

_p

=

_formhandle;

_p就是你实例化的窗口句柄

以上就是关于多线程程序下,如何找到指定的窗口句柄全部的内容,包括:多线程程序下,如何找到指定的窗口句柄、怎样获得其它程序子窗口的句柄、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9356453.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存