利用racbf.dbc动态库怎么找梦幻诛仙官网窗口句柄啊!

一个进程有多个窗口怎么才能找到主框架窗口句柄?
[问题点数:20分,无满意结帖,结帖人tiger9991]
一个进程有多个窗口怎么才能找到主框架窗口句柄?
[问题点数:20分,无满意结帖,结帖人tiger9991]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。VC++,知道窗口句柄,但窗口类名与其它窗口的一样,如何找到该窗口并聚焦?_百度知道
提问者采纳
BOOL BringWindowToTop(
HWND hWnd);HWND SetFocus(
穿粻扁救壮嚼憋楔铂盲HWND hWnd);
如何根据窗口句柄找到该窗口hWnd呢?
hWnd就是窗口的句柄。如果是cWnd类,用GetSafeHandle方法获取hWnd。
我用WIN SPY++查到了窗口句柄是00E70B98,没有通过FindWindow()去找,因为类名有重名,那这里的SetFocous()里面写怎么写法,“00E70B98”么?
强制转化为HWND
呃,给个实例吧,小弟昨天才刚刚接触这一块……用SendMessage么?应该怎么写?谢谢了
HWND FindWindow(
LPCTSTR lpClassName,
LPCTSTR lpWindowName);第一个参数如果不确定就传NULL,使用第二个参数。如果你不知道classname,又不知道windowname,那你知道这个窗口的什么呢?
我只知道窗口的句柄的值是00E70B98,所以应该不用findwindow,只是不知道如何通过句柄获得HWND类型~
其他类似问题
按默认排序
其他3条回答
窗口句柄就是窗口的唯一标识,用Bri穿粻扁救壮嚼憋楔铂盲ngWindowToTop可以将窗口移到最前面,,用SetFocus使其拥有焦点
句柄值是00E70B98,我知道它的父窗体的一切信息,只是SetFocus()里不知道怎么写,里面应该是个HWND类型,如何通过句柄值获得HWND类型,或者SetFocus()里面怎么写?
每一个变量都对应有唯一的ID,运行时鼠标放于句柄上,可以看到它们的内存地址,与定义相同的就是同一个句柄啦
内存地址指的是窗口进程么?
根据窗口ID
您可能关注的推广
窗口句柄的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁用VB模板制作按键精灵插件(获取梦幻诛仙的窗口句柄插件) - 插件界面 - 按键精灵论坛 -
Powered by Discuz! Archiver
用VB模板制作按键精灵插件(获取梦幻诛仙的窗口句柄插件)
本帖最后由 yinfeng04 于
20:09 编辑
前两天刚开始学习按键精灵,想编个梦幻诛仙自动师门脚本。以前玩过一段时间的VB入门,在论坛里翻了翻按键精灵的教程,发现和VB各有优缺点。
现在因为梦幻诛仙屏蔽了一些函数,如果当前窗口是梦诛,脚本就无法运行。满天下的找资料。郁闷中想写点什么。
首先在按键精灵插件模板、官方教程更新]里下载VB用的模板.
QMPlugin插件制作模版(VB 6.0).zip
解压后用VB打开QMPlugin.vbp
在类模块MyPluginName的代码页添加如下API函数声明:Private Declare Function GetNextWindow Lib &user32& Alias &GetWindow& (ByVal hwnd As Long, ByVal wFlag As Long) As Long
Private Declare Function GetWindowText Lib &user32& Alias &GetWindowTextA& (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function FindWindowa Lib &user32& Alias &FindWindowA& (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetForegroundWindow Lib &user32& () As Long
然后修改函数Public Function Test1() 的内容为:
Public Function findWinName(strName As Variant) As String
Dim hwnd As Long
Dim str1 As String, len1 As Long, i As Integer
hwnd = GetForegroundWindow
findWinName = &&
str1 = Space(255) '定义接收字串.
GetWindowText hwnd, str1, 1024
Do While hwnd && 0
hwnd = GetNextWindow(hwnd, 2) '只有2才表示找下一个窗口
len1 = GetWindowText(hwnd, str1, Len(str1))
If (InStr(1, str1, strName, 1) & 0) Then
findWinName = hwnd
End Function
然后修改类模块MyPluginName的名称为你想要的插件名称,例如”aojiansoft”
再然后点”文件”里的”生成….dll”来生成aojiansoft.dll,并把它复制到按键精灵的plugin目录里,
现在用按键精灵新建一个按键脚本来试试这个插件吧,
//查找有&梦幻诛仙[&文字的窗口,返回值为找到的第一个窗口句柄
//注意&梦幻诛仙[&后面的&[&,因为如果单单用&梦幻诛仙&四个字,可能找到的第一个是&梦幻诛仙更新程序&
Plugin jubing = aojiansoft.findWinName(&梦幻诛仙[&)
//用找到的句柄返回窗口标题
Plugin capwin = Window.GetText(jubing)
MessageBox &句柄:& & jubing & &窗口标题:& & capwin
这只是一个很简单的例子,实现的功能也很简单,仅仅只是找到第一个窗口,如果想遍历全部窗口,只要在VB类模块MyPluginName里修改一下Function findWinName()函数:
MyPluginName里修改一下Function findWinName()函数:
Public Function findWinName(strName As Variant) As String
& & Dim hwnd As Long
& & Dim str1 As String, len1 As Long, i As Integer
& & hwnd = GetForegroundWindow
& & findWinName = &&
& & str1 = Space(255)& && && && & '定义接收字串.
& & GetWindowText hwnd, str1, 1024
& & Do While hwnd && 0
& && &&&hwnd = GetNextWindow(hwnd, 2) '只有2才表示找下一个窗口
& && &&&len1 = GetWindowText(hwnd, str1, Len(str1))
& && &&&If (InStr(1, str1, strName, 1) & 0) Then
& && && && &findWinName = findWinName & hwnd & &|&
& && &&&End If
End Function
这样插件就能返回以&|&符号分隔的找到的全部句柄的字符串,然后在按键精灵里用Split 函数处理一下就可以得到多个窗口的句柄了。Split 函数用法具体可参考按键宝典。
希望能抛砖引玉,对刚入门的新手有点帮助,高手不要笑。
没人???速度沙发.
来个板凳看看可以不
jinlei_0528
虽然 看不懂,顶一个还是可以的~学习~
汗,是不是权限太小,怎么不能编辑帖子啊.
RE: 用VB模板制作按键精灵插件(获取梦幻诛仙的窗口句柄插件)
又发现可以添加附件。怎么没脑子老是不看清楚。
这是编译后的aojiansoft.dll插件,复制到按键精灵的plugin目录后,可以直接用
格式为:aojiansoft.findWinName(&查找的窗口标题片段&) 如:
Plugin jubing = aojiansoft.findWinName(&梦幻诛仙[&)
哥们顶你一个````虽然不懂``学习中
学习一下,可以做个《功夫世界》的后台脚本吗?
zhaojin002
这个好,顶下
顶~~~~~~~~~~~,我现在1台机器1天能刷300万的游戏币~用的是自己写的脚本:victory:
好东西咱没多少人来顶下
奇怪还有这样的事情啊,莫非VB和按键精灵走的途径不一样,按键精灵找不到,VB可以找到啊,那下回要细细继续学了。
谢谢分享!
学习了,谢谢哥们的插件了,改天再学吧!
happysky1989
如果用VB生成程序后放到桌面会找不到句柄 =.= 晕死 最后发现是这里..
hwnd = GetForegroundWindow
在桌面运行后取当前句柄就是桌面..返回0..郁闷奥..后来改掉后成功了..改成..
hwnd = Form1.hwnd
OK勒 =.= 晕死 纳闷了半天
jecicapapa
回帖是一种美德。。。。。。。。。。。。。。。。。。
tigeryang163
不支持变量啊!
zhuque5810
不支持变量啊!!!哪个大大指点一下如果解决啊!!!
zhuuuu5555
有难度 所以不大会
下载了再学习
查看完整版本:VC如何获取自身窗口句柄?
VC如何获取自身窗口句柄?
09-08-09 & 发布
this就是他自己
请登录后再发表评论!
AfxGetMainWnd
请登录后再发表评论!求解,C#里面已经知道窗口句柄,怎么隐藏这个窗口呢?跪求高手指点!_百度知道
求解,C#里面已经知道窗口句柄,怎么隐藏这个窗口呢?跪求高手指点!
要隐藏的是外部窗口,我想应该有这个方法或者API,只是我找不到,跪谢!请支持新手,有知道的请把代码打上!,不是我自制的程序窗体
1楼谢谢,可是我要的是隐藏外部窗口的,比如隐藏1个TXT文件的窗口
提问者采纳
user32,隐藏
private const int SW_SHOWNORMAL = 1;常量;&#47.dll&quot, SW_HIDE);/
&#47,回复原状
private const int SW_SHOWDEFAULT = 10;&#47,最小化
private const int SW_SHOWMAXIMIZED = 3;
private static extern bool ShowWindowAsync(IntPtr hW常量;
/常量,显示;
private const int SW_HIDE = 0;
ShowWindowAsync(p;//
&#47, int nCmdShow),不激活
private const int SW_RESTORE = 9;
&#47, bool isboolean)
if (isboolean)
ShowWindowAsync(p;//常量, SW_SHOWNORMAL),显示;常量,显示;常量,标准状态
private const int SW_SHOWMINIMIZED = 2public class WindowChange
[DllImport(&quot,默认public static void ToChange(IntPtr p,显示,显示,最大化
private const int SW_SHOWNOACTIVATE = 4,显示;
提问者评价
感谢大哥指教,非常满意!!谢谢
其他类似问题
窗口句柄的相关知识
其他1条回答
隐藏窗口那不就是设置visible吗Theform.visible = false这样?
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 梦幻诛仙电视剧 的文章

 

随机推荐