根据类名和标题直接找到子窗口的句柄的API

根据类名和标题直接找到子窗口的句柄的API,第1张

新年快乐,写外挂呢?我想,这是你要的解决方案,有空交流交流,在下QQ:2465690 请笑纳 (^_^)

//得到自己进程内的子窗体

HWND GetMyHwnd()

{

HWND hwnd = FindWindow(类名,窗体标题);

DWORD pid = 0;

GetWindowThreadProcessId(hwnd,&pid);

DWORD thisid = GetCurrentProcessId();

if(thisid!=pid)

{

do

{

hwnd = GetWindow(hwnd,GW_HWNDNEXT);

GetWindowThreadProcessId(hwnd,&pid);

char mytext[MAX_PATH];

GetWindowText(hwnd,mytext,MAX_PATH);

if(strcmp(mytext,窗体标题)!=0)

continue;

}while(thisid!=pid);

}

return hwnd;

}

如果是其他进程内寻找子窗体 则使用:

HWND GetMyHwnd(DWORD thisid)

{

HWND hwnd = FindWindow(类名,窗体标题);

DWORD pid = 0;

GetWindowThreadProcessId(hwnd,&pid);

if(thisid!=pid)

{

do

{

hwnd = GetWindow(hwnd,GW_HWNDNEXT);

GetWindowThreadProcessId(hwnd,&pid);

char mytext[MAX_PATH];

GetWindowText(hwnd,mytext,MAX_PATH);

if(strcmp(mytext,窗体标题)!=0)

continue;

}while(thisid!=pid);

}

return hwnd;

}

这是一个vb用findwindow等api找到其它窗口,并且更改其它窗口的文本的源码:

>

它是一个子窗口,没有标题,每次登陆时类名就变了,怎么得到它的窗口句柄呢?用Findwindow没用啊!

你是什么语言??VB还是C++?

给你个VB CODE :

Function GetQQpath()

Dim ps, s '获取QQ进程所存在的路径

s = "qqexe"

For Each ps In GetObject("winmgmts:\\\root\cimv2:win32_process")instances_ '循环进程

If UCase(psName) = UCase(s) Then

Form1Label1Caption = psexecutablepath

GoTo q

End If

Next

q:

End Function

这个可以用知道进程名就可以知道程序路径了,原理很简单。自己摸索、

(针对新手: 结果显示在label1上面。否则会出现缺少对象)

以上就是关于根据类名和标题直接找到子窗口的句柄的API全部的内容,包括:根据类名和标题直接找到子窗口的句柄的API、用VB或VB.NET用API函数FindWindow获取一个当前XX窗口句柄、通过api获取窗口句柄是通过类名和标题得到,如果我软件标题不固定。还有什么其它的方法得到窗口句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/10137878.html

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

发表评论

登录后才能评论

评论列表(0条)

保存