找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 277|回复: 2

看了下重楼视屏,VS2008里怎么获取窗口PID?

[复制链接]

3

主题

12

回帖

0

积分

新手上路

积分
0
发表于 2013-8-18 12:08:46 | 显示全部楼层 |阅读模式
新手学习VC++。
拿了 重楼的 Myhook 源码。不知道怎么获取窗口PID的。。。

以前在VB里知道怎么获取,但在VC++就不知道了,就想实现简单的 载入窗口 就直接显示下

游戏人物的一些基本属性。。。。

知道的大大 能贴个源码么? 武林外传的。。。

0

主题

21

回帖

0

积分

新手上路

积分
0
发表于 2013-8-18 12:37:42 | 显示全部楼层
GetWindowThreadProcessId()

5

主题

15

回帖

0

积分

版主

积分
0
发表于 2013-8-21 19:35:10 | 显示全部楼层
LRESULT CALLBACK Gameproc(int nCode,WPARAM wParam, LPARAM lParam)
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());

    PMSG pMsg = (PMSG)lParam;

    if(pMsg->message == WM_KEYUP)
    {
        if(pMsg->wParam == VK_HOME)
        {
            if(GameDLL == NULL)
            {

                GameHwnd = pMsg->hwnd;
                GameDLL = new CWGDLG();
                GameDLL->Create(IDD_DLG_MIAN);
                GameDLL->ShowWindow(TRUE);

            }
            else
            {
                if(GameDLL->IsWindowVisible())
                    GameDLL->ShowWindow(FALSE);
                else
                    GameDLL->ShowWindow(TRUE);
            }
        }
    }



    return CallNextHookEx(0,nCode,wParam,lParam);
}


void StartHook()
{
    static BOOL IsSetwindowsHook=FALSE;
    if (IsSetwindowsHook)
    {
        AfxMessageBox("辅助程序已经注入游戏,请按Home 呼出辅助界面");
            return ;
    }
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    HWND gameh=FindWindow("XAJHElementClient Web Window",NULL);
    if (gameh==0)
    {
        AfxMessageBox("未找到游戏");
        return;
    }
    DWORD tid=::GetWindowThreadProcessId(gameh,NULL);

    ::SetWindowsHookEx(WH_GETMESSAGE,Gameproc,::GetModuleHandle("GameDll.dll"),tid);
    IsSetwindowsHook=TRUE;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

果子博客
扫码关注微信公众号

Archiver|手机版|小黑屋|风叶林

GMT+8, 2026-2-1 03:26 , Processed in 0.131393 second(s), 20 queries .

Powered by 风叶林

© 2001-2026 Discuz! Team.

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