|
马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我用的是TC4.0,最近经常遇到窗口卡死没响应的状况,听人说可以用SendMessageTimeout 这个USER32.DLL里的API解决,于是尝试DLLCALL,但是返回值总是空
附上我的DLLCALL代码
返回值=dllcall("user32.dll","int","SendMessageTimeout","int",197350,"int",61472,"int",0,"int",0,"int",1,"int",1000,"int",次数局)
其中19370是我要操作的窗口句柄,61472是我要发送的消息:最大化窗口,不过我的目的是发送一个空消息,因为不知道怎么发空消息,所以用最大化.
附上API说明:
说明 | 向窗口发送一条消息。如窗口位于不同的线程中,则利用这个函数可以指定一个超时值,以便在另一个进程挂起的时候防止调用进程也永远挂起 | 返回值 | Long,成功时返回TRUE,失败时返回FALSE。会设置GetLastError | 参数表 | 参数 | 类型及说明 | hwnd | Long,要接收消息的一个窗口的句柄 | msg | Long,消息的标识符 | wParam | Long,由消息决定 | lParam | Long,由消息决定 | fuFlags | Long,下述常数的一个或多个 | SMTO_ABORTIFHUNG | 如目标进程挂起,则函数立即返回 | SMTO_BLOCK | 除非函数返回,否则调用线程不能处理消息 | SMTO_NORMAL | 允许调用线程处理消息,同时保持函数继续执行 | uTimeout | Long,超时值,采用毫秒为单位 | lpdwResult | Long,用于装载函数结果的一个变量 |
|
|