莘庄梅园:如何向另一个程序发快捷键

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/06 04:14:24
请问如何用delphi实现向另外一个程序发送快捷键,我要实现的是定时打印另外一个程序的画面,就是要向这个程序发送快捷键ctrl+p再回车就行了!!还请赐教!!
能否详细一些!!我试过这样但是没用!!好象是不能够正确的捕捉到程序标题(这只是我个人意见也可能不是这个问题。)
var
h: THandle;
begin
h := FindWindow(nil, '应用程序标题');
PostMessage(h, WM_KEYDOWN, VK_F9, 0);//发送F9键
end;

PostMessage将消息放入其他程序消息队列.
SendMessage则越过消息队列直接调用目标窗口的窗口过程.
在此.两个api应该效果是一样的,你的代码发送消息也是正确的.

具体情况我不是很明白.但是消息处理系统我还比较清楚.应该不会错,要错也是findwindow错了,即发送的窗口不对.也有可能是快捷键定制的有问题.快捷键在windows系统中处理和定义比较麻烦,需要加载和在消息循环中翻译.也有可能是消息接收后处理代码的错误或无处理代码.好好检查一边程序的各个方面.

我以前也作过类似的程序,但已找不到了,但印象上传递消息应该是正确的.

祝你早日解决.

See MSDN platform SDK:

HWND FindWindow(
LPCTSTR lpClassName, // pointer to class name
LPCTSTR lpWindowName // pointer to window name
);

第一个参数是RegisterClass注册的ClassName,呵呵,
之前你还要知道这个

SendMessage这个api 函数试试