找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 6059|回复: 7

[求助]大马..帮我改一下嘛.谢谢..怎样让窗口在游戏前面

[复制链接]

30

主题

96

回帖

0

精华

铂金会员

积分
1548
发表于 2007-3-29 16:08:15 | 显示全部楼层 |阅读模式
<p>大马..帮我改一下嘛.谢谢..怎样让窗口在游戏前面</p><p></p><p>Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer<br/>Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long<br/>Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long<br/>Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long<br/>Private Const HWND_TOPMOST&amp; = -1<br/>Private Const SWP_NOSIZE&amp; = &amp;H1<br/>Private Const SWP_NOMOVE&amp; = &amp;H2</p><p>Private Sub Timer1_Timer()<br/>&nbsp;&nbsp;&nbsp; Dim hwnd As Long&nbsp;&nbsp;&nbsp;&nbsp; '定义句柄变量<br/>&nbsp;&nbsp;&nbsp; If myhotkey(123) Then&nbsp;&nbsp;&nbsp; '当在游戏中按下F12键<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hwnd = FindWindow("游戏标题自己改以下", vbNullString)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pAssignContainer Form1.hwnd, hwnd&nbsp;&nbsp;&nbsp; '设置为子窗体<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Form1.Visible = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call SetWindowPos(Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)<br/>&nbsp;&nbsp;&nbsp; End If<br/>End Sub</p><p>Private Function pAssignContainer(lFrmPtr As Long, lPicPtr As Long) As Long '设置子窗体函数<br/>&nbsp;&nbsp;&nbsp; pAssignContainer = SetParent(lFrmPtr, lPicPtr)<br/>End Function<br/>'检测键状态的函数<br/>Private Function myhotkey(vkeycode) As Boolean<br/>&nbsp;&nbsp;&nbsp; myhotkey = GetAsyncKeyState(vkeycode)<br/>End Function</p>

30

主题

96

回帖

0

精华

铂金会员

积分
1548
 楼主| 发表于 2007-3-29 16:10:22 | 显示全部楼层
<p>你还可以看一下这里</p><p></p><p><a href="http://hack.gameres.com/showthread.asp?threadid=25797">http://hack.gameres.com/showthread.asp?threadid=25797</a></p>

275

主题

3019

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17066

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2007-3-29 17:22:40 | 显示全部楼层
<p>我这里没有游戏。。。。。。</p><p>我回去用星际魔兽等试下看看</p><p>我还有CS,红警。。。。。。</p>
我就是嗷嗷叫的老马了......

头像被屏蔽

21

主题

33

回帖

2

精华

钻石会员

积分
3299
发表于 2007-3-29 20:05:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

30

主题

96

回帖

0

精华

铂金会员

积分
1548
 楼主| 发表于 2007-3-30 13:30:27 | 显示全部楼层
<p>还有一个方法是创建一个全屏窗口,把游戏设为该全屏窗口的子窗口,然后再创建第3个窗口,就是你要呼出的窗口,这种方法也只对一部分游戏有效。</p><p></p><p></p><p>这个不行,,,游戏会变黑了..什么都看不见...</p>

275

主题

3019

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17066

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2007-3-31 13:47:43 | 显示全部楼层
<p>看来要具体问题具体处理....</p><p>每个游戏可能都有一定的不同</p><p>我记得原来搞传奇时,就是直接设置子窗体的</p><p>不过游戏我N久没搞过了,哈....</p>
我就是嗷嗷叫的老马了......

275

主题

3019

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17066

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2007-4-3 12:51:48 | 显示全部楼层
<p>因为有些游戏对焦点有处理,只能由自己的窗体得到焦点</p><p>如果焦点非自己,就恢复自己为焦点</p><p>如此N次,就会认为使用了非法程序,于是就退出程序。。。</p><p>面对这样的游戏,是否可以考虑一下输入法窗体那种不夺取焦点的窗体呢?</p>
我就是嗷嗷叫的老马了......

76

主题

375

回帖

0

精华

铜牌会员

积分
231
发表于 2008-3-24 20:41:51 | 显示全部楼层
这个有一个最简单的方法,那就是,你用setparent把你的窗体挂在游戏的窗口下,而且设为最前面
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表