Project1

标题: EnumThreadWindows这类API的第二个参数怎么定义 [打印本页]

作者: zjy807    时间: 2012-7-24 11:05
标题: EnumThreadWindows这类API的第二个参数怎么定义
EnumThreadWindows
这个API的第二个参数是代入函数的,如何定义,求解dsu_plus_rewardpost_czw
作者: 七夕小雨    时间: 2012-7-24 11:12
BOOL EnumThreadWindows(DWORD dwThreadld,WNDENUMPROClpfn,LPARAMlparam);
lpfn:指向一个应用程序定义的回调函数指针,请参看EnumThreadWndProc。
举个简单的例子
BOOL   CALLBACK   EnumProc(   
        HWND   hwnd,   
        LPARAM   lParam)   
{   
        //   Send   a   WM_CLOSE   to   destroy   the   window,   because   DestroyWindow   
        //   does   not   work   across   threads.   

        SendMessage(hwnd,   WM_CLOSE,   0,   0);   
        return   TRUE;   
}   
  
BOOL   ConsoleCtrlHandler(   
        DWORD   dwCtrlType)   
{   
        if   (dwCtrlType   ==   CTRL_LOGOFF_EVENT   &&   dwGuiThreadId   !=   0)   
        {   
                SetThreadDesktop(GetThreadDesktop(dwGuiThreadId));   
                EnumThreadWindows(dwGuiThreadId,   EnumProc,   0);   
        }   
        return   FALSE;   
}
作者: zjy807    时间: 2012-7-24 14:49

我要的是rmxp里的定义。。。vb,vc,c++里的百度一大把呀。。。。
作者: 七夕小雨    时间: 2012-7-24 15:07
本帖最后由 七夕小雨 于 2012-7-24 15:07 编辑

早说嘛= =
  1. def EnumThreadWindowsProc(hwnd,Iparam)
  2.         WM_SYSCOMMAND = 0x0112;
  3.         WM_CLOSE = 0xF060;
  4.         SendMessage = Win32API.new("user32", "SendMessage", "llll", "l")
  5.         SendMessage.call(hwnd, WM_SYSCOMMAND , WM_CLOSE,0)
  6.         return true;
  7. end

  8. callbackProc = EnumThreadWindowsProc
复制代码

作者: zjy807    时间: 2012-7-24 17:01
不行呀,这样调用没有api的功能呀,有简单的工程吗
作者: zjy807    时间: 2012-7-24 17:33
不行呀,我一点服务器的发送消息,游戏直接就崩了。。。。

其中ConnectServer这个API的第三个参数就是子程序的旨针。。。

Project7.rar (981.05 KB, 下载次数: 6)
作者: 七夕小雨    时间: 2012-7-24 17:34
-。-我来召唤大神帮你解决   @灼眼的夏娜
作者: 灼眼的夏娜    时间: 2012-7-25 10:49
如果是rmxp和rmvx默认情况下及其复杂(Win32API不支持函数指针)只有内嵌汇编那些(:
如果是ace可以使用dl库(:




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1