传奇宝宝外挂能把全屏的《传奇》客户端变成窗口运行,不那位大虾知道是怎么实现的?500分赠送! ( 积分: 200 )

  • 主题发起人 主题发起人 山东好汉
  • 开始时间 开始时间

山东好汉

Unregistered / Unconfirmed
GUEST, unregistred user!
查了一下以前的贴子对这个也没有答案。让让《传奇》由全屏变成窗口应该可以吧?
 
有种方法或许可以做到,先查找传奇的窗口句柄或从进程列表中查找进程ID,再用API函数,把传奇嵌入到你的窗口中来,要用到以下的几个函数吧
GetWindowRect
SetWindowPos
SetParent
 
hook dx create,把参数改为窗口
 
搞不懂,谁能贴一段代码呀[?]
 
算了吧,没有一定分析程序水平很难做到的.
 
DirectX的创建接口的时候可以指定是全屏或窗口还有分辨率等.
可以动态的修改代码或者用hook方式接管函数都可以达到这个效果.
 
带参数运行主程序,我见过一个游戏的登录器是这么做的
 
我以前有个程序是把泡泡堂放进去运行的,不过分辨率就调不回来了,
用IT书生的方法
 
执行加一个参数吧
你试试-window等等
 
TO IT书生:
传奇的Window用SetParent()不能窗口化,不知道为什么。一些近来出品的全屏游戏倒是可以用SetParent()来窗口化,比如《热血江湖》。
 
需要个DirectDraw单元
先获得窗口句柄
然后
uses DirectDraw;
var
m_pDD : IDIRECTDRAW7;
begin
DirectDrawCreateEx( nil, m_pDD, IID_IDirectDraw7, nil );
m_pDD.SetCooperativeLevel( h_Wnd, DDSCL_NORMAL ); //就这句了
//全屏幕是
//m_pDD.SetCooperativeLevel( h_Wnd, DDSCL_EXCLUSIVE or DDSCL_FULLSCREEN );
//m_pDD.SetDisplayMode( 640, 480, 16, 0, 0 ); //设置全屏尺寸等
end;
 
好贴不要沉
顶顶顶顶顶顶顶顶顶顶顶
 
var
pHWND : HWND;
Model : DEVMODE;
Style,ExStyle:longint;
begin
pHWND := FindWindow(ClassName,WindowName);
if EnumDisplaySettings(0,0,Model) then
begin
Model.dmPelsWidth := 1024;
Model.dmPelsHeight := 768;
ChangeDisplaySettings(Model,0);
end;
Style := GetWindowLong(pHWND,GWL_STYLE);
Style := WS_OVERLAPPEDWINDOW or WS_VISIBLE';
SetWindowLong(pHWND,GWL_STYLE,Style);
ExStyle := GetWindowLong(pHWND,GWL_EXSTYLE);
Exstyle := WS_EX_APPWINDOW or WS_EX_WINDOWEDGE;;
SetWindowLong(pHWND,GWL_EXSTYLE,ExStyle);
SetWindowPos(pHWND,HWND_NOTOPMOST,0,0,800,600,SWP_SHOWWINDOW);
ShowWindow(pHWND,SW_SHOWNORMAL);
end;
 
后退
顶部