如何向其他窗口发送组合键?CTRL+F 如题,已经得到窗口的hwnd,用posemessage发,不要keyevent的那种,知道的说下。在网上查资料说发不了,我想不会吧,给个代码,要delphi的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CTRL_A=$4041; //Ctrl-a CTRL_B=$4042; CTRL_C=$4043; CTRL_D=$4044; CTRL_E=$4045; CTRL_F=$4046; CTRL_G=$4047; CTRL_H=$4048; CTRL_I=$4049; CTRL_J=$404A; CTRL_K=$404B; CTRL_L=$404C; CTRL_M=$404D; CTRL_N=$404E; CTRL_O=$404F; CTRL_P=$4050; CTRL_Q=$4051; CTRL_R=$4052; CTRL_S=$4053; CTRL_T=$4054; CTRL_U=$4055; CTRL_V=$4056; CTRL_W=$4057; CTRL_X=$4058; CTRL_Y=$4059; CTRL_Z=$405A; //Ctrl-z mastersky能不能说清楚一点点,给代码最好.以你的回复是不是这样postmessage(hwnd,wm_keydown,$4046,0) 这样吗??? 如果对memo的消息进行跟踪,发现在按下ctrl-c之类的组合键时,memo得到的消息中,第2个参数不是0,既postmessage(hwnd,wm_keydown,$4046,0)的最后这个不是0,最后这个参数到底如何设置 如果这个窗体上的Ctrl+F键对应的有一个菜单项,你可以向这个菜单发单击消息。如果你发组合键好像是不可能,以前有人提过这个问题都没法解决。 当前窗体里改写系统消息传递函数 Winprocprocedure WndProc(var Message: TMessage); override;//改写消息传递函数//改写消息传递函数procedure TFrm_Main.WndProc(var Message: TMessage);begin inherited; case Message.Msg of $4046://当前窗体捕获到的键盘值 begin postmessage(hwnd,2008,0,0);//hwnd是目标窗体的handle值 end; end;end;//目标窗体 //改写消息传递函数procedure TFrm_Main.WndProc(var Message: TMessage);begin inherited; case Message.Msg of 2008://当前窗体捕获到的消息ID值 begin // 目标窗体已经捕获到消息了 在这里进行处理 end;end;也可以用dispach()函数向目标窗体发送消息。。 向目标窗体发送 Ctrl+F 就 上面的 2008 换成Ctrl+F $4046 就可以了 不成功,请指教unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure WndProc(var Message: TMessage); override; procedure Button1Click(Sender: TObject);//改写消息传递函数 private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure tform1.WndProc(var Message: TMessage);begin inherited; case Message.Msg of $4056://当前窗体捕获到的键盘值 begin postmessage(memo1.Handle,2008,0,0);//hwnd是目标窗体的handle值 end; end; end; procedure TForm1.Button1Click(Sender: TObject);beginpostmessage(memo1.Handle,$4056,0,0);end;end. Delphi keybd_event方法模拟按下冒号(:)和反斜杠(\) 保存文件到数据库和读取文件至本地 delphi中TAPI编程的问题? 一个关于TreeView与TEDIT配使用的焦点问题》》》 delphi 2005 生成的可执行文件可以脱离.net Framework吗? TPannel、TImage的问题 两个时间段查询如何包括边界 类似OutLook左边实现菜单功能的控件 求助 求delhip编写的工业控制程序 如何不关闭将被关闭的程序? 关于数据库查询的问题,请提供思路,最好有简单代码 请问如何查到Delphi形式的API定义?
CTRL_B=$4042;
CTRL_C=$4043;
CTRL_D=$4044;
CTRL_E=$4045;
CTRL_F=$4046;
CTRL_G=$4047;
CTRL_H=$4048;
CTRL_I=$4049;
CTRL_J=$404A;
CTRL_K=$404B;
CTRL_L=$404C;
CTRL_M=$404D;
CTRL_N=$404E;
CTRL_O=$404F;
CTRL_P=$4050;
CTRL_Q=$4051;
CTRL_R=$4052;
CTRL_S=$4053;
CTRL_T=$4054;
CTRL_U=$4055;
CTRL_V=$4056;
CTRL_W=$4057;
CTRL_X=$4058;
CTRL_Y=$4059;
CTRL_Z=$405A; //Ctrl-z
postmessage(hwnd,wm_keydown,$4046,0) 这样吗???
memo得到的消息中,第2个参数不是0,既postmessage(hwnd,wm_keydown,$4046,0)的最后这个不是0,
最后这个参数到底如何设置
procedure WndProc(var Message: TMessage); override;//改写消息传递函数//改写消息传递函数
procedure TFrm_Main.WndProc(var Message: TMessage);
begin
inherited;
case Message.Msg of
$4046://当前窗体捕获到的键盘值
begin
postmessage(hwnd,2008,0,0);//hwnd是目标窗体的handle值
end;
end;
end;
//目标窗体 //改写消息传递函数
procedure TFrm_Main.WndProc(var Message: TMessage);
begin
inherited;
case Message.Msg of
2008://当前窗体捕获到的消息ID值
begin
// 目标窗体已经捕获到消息了 在这里进行处理
end;
end;
也可以用dispach()函数向目标窗体发送消息。。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure WndProc(var Message: TMessage); override;
procedure Button1Click(Sender: TObject);//改写消息传递函数
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
procedure tform1.WndProc(var Message: TMessage);
begin
inherited;
case Message.Msg of
$4056://当前窗体捕获到的键盘值
begin
postmessage(memo1.Handle,2008,0,0);//hwnd是目标窗体的handle值
end;
end;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
postmessage(memo1.Handle,$4056,0,0);
end;end.