比如说MessageBoxA(hwnd,"HAHA",lpCaption,uType);}
现在我想对lpCaption进行判断,如果为“1”就执行一个命令,
如果为“2”就执行另一个。我自己胡乱弄的,结果总不成功。

解决方案 »

  1.   

    可以用特洛伊Dll技术,你对User32.dll进行再封装。从而对API的参数进行检查
    或者自己写一个类似于MessageBox的函数,如myMessageBox函数,对参数进行检查,好象后者跟简单
      

  2.   

    不会是这么复杂吧?
    int WINAPI MyMessageBoxA(HWND hwnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType)
    {if(lpCaption="1")
    {lpCaption="right";}
    else 
            {lpCaption="wrong";}
    return MessageBoxA(hwnd,"HAHA",lpCaption,uType);}我这样弄的,可是运行起来是不对的啊。不是我想要的结果。
    不能直接这么判断吗?
      

  3.   

    呃,学编程多长时间了?应该是这样:
    int WINAPI MyMessageBoxA(HWND hwnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType)
    {
        TCHAR szCap[MAX_PATH];    
        if(0==lstrcmp(lpCaption,_T("1")))
    lstrcpy(szCap,"right");
        else 
             lstrcpy(szCap,"wrong");    return MessageBoxA(hwnd,"HAHA",szCap,uType);
    }
      

  4.   

    LPCSTR是指针,不能和字符串直接比较。就象 Zark(金陵五月) 那样改
      

  5.   

    奇怪,你不用API HOOK怎么能得到....
      

  6.   

    int WINAPI MyMessageBoxA(HWND hwnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType)
    {
        TCHAR szCap[MAX_PATH];    
        if(0==lstrcmp(lpCaption,_T("1")))   //'_T' : undeclared identifier出错啦。
    lstrcpy(szCap,"right");
        else 
             lstrcpy(szCap,"wrong");    return MessageBoxA(hwnd,"HAHA",szCap,uType);
    }
    我是才学编程三个月,请帮忙。