如"金山游侠III"和"GameExpert"游戏修改器一样,修改窗口可以直接从DirectX游戏中直接弹出
初步猜想:
1.拦截改变分辨率和窗口最小化的相关函数,使其无效,游戏就不会被系统最小化,分辨率也会保持游戏分辨率
2.拦截改变分辨率和窗口最小化的相关消息,目的一样
3.自己窗口在最上层..通过研究金山,发现它的窗口是通过CreateDialogIndirectParamA函数创建,不知有没关系...上面仅仅是猜想,还没实验成功...感兴趣的大家讨论讨论,揭穿这个技术 :)
初步猜想:
1.拦截改变分辨率和窗口最小化的相关函数,使其无效,游戏就不会被系统最小化,分辨率也会保持游戏分辨率
2.拦截改变分辨率和窗口最小化的相关消息,目的一样
3.自己窗口在最上层..通过研究金山,发现它的窗口是通过CreateDialogIndirectParamA函数创建,不知有没关系...上面仅仅是猜想,还没实验成功...感兴趣的大家讨论讨论,揭穿这个技术 :)
具体实现方法就是把弹出窗口写在DLL里,
再用SetWindowsHookEx把DLL注入到游戏进程,
这就可以弹啦。-----------------------------------
回复人: zyl910(910:分儿,我来了!) ( ) 信誉:146 2002-11-27 23:10:00 得分:0
游戏使用的是DirectX全屏
是独立于Windows窗口管理系统之外的----------------------------------------------------------------弹出的窗口属于Windows窗口管理系统
为了使它显示
就必须回到Windows窗口管理系统所以游戏会最小化####################################################################注意到楼主的要求没有:----------------------------------------------------------------
回复人: yangsiwei(100%菜鸟) ( ) 信誉:100 2002-11-27 21:01:00 得分:0
就是在游戏窗口中弹自己程序的窗口,
象金山游侠3一样,但金3好象是拷屏了设置为全屏幕后再弹的窗口,
我要的是直接在游戏中弹窗口出来,但游戏画面不静止,就象游戏自己的子窗口一样。
----------------------------------------------------------------
阿..谢谢zy兄阿..
那我原来的猜测也没有错..
看来还是要进入其程序的进程..
至于hookapi的问题,也是很有趣的.
不过鉴于vb的限制,hookapi我想是不能实现了..
要想hookapi,,必须写个标准的外部dll挂接到目标程序的进程..
vb的activxdll似乎是不能实现的..
不知道我的想法对不对..
Top
回复人: myblind(盲人) ( ) 信誉:100 2002-10-25 23:37:00 得分:0
唉,我不知道。
Top
回复人: myhfit() ( ) 信誉:100 2002-10-26 09:30:00 得分:0
dll用C或Delphi写
ActiveX Dll是不可能的
因为ActiveX不是真正的Dll是不能全系统可读的
------------------------------------------------------参考这个:
http://www.csdn.net/Develop/article/15/15381.shtm