- 注册时间
 - 2011-9-15
 
- 最后登录
 - 2015-10-18
 
- 在线时间
 - 2 小时
 
 
 
 
 
编程入门 
  
	- 魔鬼币
 - 38 
 
 
 
 | 
 
怎么让易语言窗口(智辅)显示在全屏游戏(天堂1)里面,前提是我已经把DLL注入进游戏进程,智辅的功能没有问题,就是智辅的窗口不能显示在游戏里,窗口置父 最前显示 都不行,求大大门指导,谢谢了。 
下面是我找到的资料:天堂内显示智辅界面,其实是很简单的事。因为,无数的智辅都已经成功的这样做了。 
基本步骤是 
1 挂钩子,检查是否天堂进程 
2 以天堂主窗口为父窗口创建智辅窗口, 智辅窗口需要具备窗口属性 WS_EX_CONTROLPARENT  
智辅DLL 的代码,大致是这样 
// 全局句柄 
#pragma data_seg("Share") 
HHOOK g_hBKHook = NULL; 
HMODULE g_hInst = NULL; 
#pragma data_seg() 
#pragma comment(linker,"/section:Share,RWS") 
BOOL g_bHookProc = -1; 
BOOL g_bAutoloaddll = -1; 
#define TEST_KEY_DOWN(X)(((X >> 30) & 0x0001) > 0) 
#define TEST_ATL_PRESS(X)(((X >> 29) & 0x0001) > 0)  
 
// 天堂主窗口位于当前进程, 则激活智辅 
HWND CheckGameProc() 
{  
    HWND hNextWnd =NULL;  
    while(hNextWnd = FindWindowEx(NULL,hNextWnd, NULL, 
        “Lineage Windows Client”))  
    {  
        DWORD dwTID, dwPID = 0;  
        dwTID = GetWindowThreadProcessId(hNextWnd, &dwPID);  
        if(dwPID == GetCurrentProcessId())  
        {  
            return hNextWnd;  
        }  
 
    } 
}  
 
// 等待热键激活智辅 
LRESULT CALLBACK _fbkbProc(int code, 
                           WPARAM wParam, 
                           LPARAM lParam) 
{  
 
    if(wParam == 'Z' && TEST_ATL_PRESS(lParam) && TEST_KEY_DOWN(lParam))  
    {  
        HWND hGameWnd = CheckGameProc();  
        if(hGameWnd)  
            CreateWindow….// 创建游戏智辅窗口  
 
    }  
 
    else if(wParam == 'X'&& 
        TEST_ATL_PRESS(lParam) && TEST_KEY_DOWN(lParam))  
    { 
        DestroyWindow(); 
        // 销毁游戏智辅  
    }  
 
    return CallNextHookEx(g_hBKHook, code,wParam, lParam); 
}  
 
// 挂全局键盘钩子 
TTHONGHK_API int hook(int nInit) 
{  
    if(nInit&& !g_hBKHook)  
    {  
        g_hBKHook = SetWindowsHookEx(WH_KEYBOARD, _fbkbProc,g_hInst, 0);  
    }  
    else if(!nInit && g_hBKHook)  
    {  
        UnhookWindowsHookEx(g_hBKHook);  
        g_hBKHook = NULL;  
    }  
    else  
    {  
        return 0;  
    }  
    return (int)g_hBKHook; 
}  
这个咱看不懂  请大大门看看怎么用易语言实现窗口显示在游戏里,谢谢。 |   
 
 
 
 |