google了很多, 好像没怎么见到类似的提问
一个外部程序的消息框发送回车, 这个消息框上有个确定按钮,外部程序被hook
send是等回应再返回 和 post是不管如何执行马上返回, 请问前辈们, 这里一定不能用send吗?
应该跟被hook无关的, 我弄个临时工程发送也是同样效果还就是, 用post发送消息后就不管了, 这个消息应该也是迟早都要被执行的吧, 有没有什么情况会被忽视?
当然我也可以找到这个按钮句柄再发送点击, 但此贴就想知道这个疑问的答案, 谢谢各位路过的前辈sendmessage没反应
SendMessage(消息框Handle, WM_KEYDOWN, VK_RETURN, 0);
SendMessage(消息框Handle, WM_KEYUP, VK_RETURN, 0);postmessage可以响应
PostMessage(消息框Handle, WM_KEYDOWN, VK_RETURN, 0);
PostMessage(消息框Handle, WM_KEYUP, VK_RETURN, 0);
一个外部程序的消息框发送回车, 这个消息框上有个确定按钮,外部程序被hook
send是等回应再返回 和 post是不管如何执行马上返回, 请问前辈们, 这里一定不能用send吗?
应该跟被hook无关的, 我弄个临时工程发送也是同样效果还就是, 用post发送消息后就不管了, 这个消息应该也是迟早都要被执行的吧, 有没有什么情况会被忽视?
当然我也可以找到这个按钮句柄再发送点击, 但此贴就想知道这个疑问的答案, 谢谢各位路过的前辈sendmessage没反应
SendMessage(消息框Handle, WM_KEYDOWN, VK_RETURN, 0);
SendMessage(消息框Handle, WM_KEYUP, VK_RETURN, 0);postmessage可以响应
PostMessage(消息框Handle, WM_KEYDOWN, VK_RETURN, 0);
PostMessage(消息框Handle, WM_KEYUP, VK_RETURN, 0);
解决方案 »
- Soap问题
- 如何用delphi修改hosts的内容?
- CSDN是公认的国内最好的“程序员”的论坛,那和CSDN档次相当的“网管员”的论坛有哪些呢?
- !!!在线:1.怎样截字符串前三个字符:P 2.测试一个邮箱需要捕获哪些异常。
- 两个关于生成条形码和助记码的问题,大家帮忙,一定给分的
- !!!请问怎样把鼠标控制在一个窗口之内???
- 谁那里有delphi7.0关于报表打印方面的资料?
- 关于listview的问题
- 为什么把窗体设为子窗体后运行时窗体的大小和设计时不一样了?
- 请拉一把吧!给我一点学习delphi的入门经验!
- 求高手C转delphi 在线等
- 【求助】 初学者,这个函数式怎么用delphi实现,求源码-。-
那么该怎样改成sendmessage, 又可以响应的呢
另外, 你post的是个指针, 刚好引用了你的一个局部地址, 这个时候如果函数执行完毕的话, 这一块地址就可能乱码了. 但是用send等返回 函数才能执行完毕,就不会乱
那么是不是就是不能用send了
我就是怕post被忽略执行了
而 sendmessage返回值是个DWORD,那这作用就多了,意味着可以返回32位的无符号整数,或指针...例如下面的sendmessage可以获取一个句柄:procedure TForm1.dtp1DropDown(Sender: TObject);
var
hwn: HWND;
begin
// 需要返回一个窗口句柄,必须用sendemessage
hwn := SendMessage(dtp1.Handle, $1000 + 8, 0, 0);
if hwn > 0 then
// 最后使用这个返回的句柄做为参数,但是接下来我不再需要返回什么信息了,post即可
PostMessage(hwn, $1000 + 15, 0, ord(dowMonday));
end;
结论:post发出去就不管了,send还要等它回馈一个信息,这个信息接下来还要用。