如何模拟键盘输入‘CTRL+X’的组合键(我只有这么多分数了,拜托了)(55分)

  • 主题发起人 主题发起人 winamp皮肤
  • 开始时间 开始时间
W

winamp皮肤

Unregistered / Unconfirmed
GUEST, unregistred user!
我以只按‘CTRL+X’作为试验
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL,0), 0,0); //关键
keybd_event(byte('x'), MapVirtualKey(byte('x'),0), 0,0); //关键
keybd_event(byte('x'),MapVirtualKey(byte('x'),0), KEYEVENTF_KEYUP,0); //关键
keybd_event( VK_CONTROL, MapVirtualKey(VK_CONTROL,0),KEYEVENTF_KEYUP,0);//关键
END;
procedure TForm1.Button1Click(Sender: TObject);
begin
if button1.Caption='开始' then
begin
button1.Caption:='停止';
form1.Timer1.Enabled:=true;
end
else
begin
form1.Timer1.Enabled:=false;
button1.Caption:='开始';
end;
end;
end.
程序运行后我打开一个文本文件把光标点在文本编辑区内,等了半天没出来一个“X”
这是怎么回事?各位请各显神通吧,谢谢了!
 
各位帮帮小弟啊,急用
 
哎~~~怎么还是没人,斑竹,你来看看啊
 
3天了,怎么还没人能帮我改一下代码,我真的不行了。
 
使用sendmessage 来实现模拟键盘输入,我现在试过,不过当时没用到ctrl键。
 
delphi光盘上有一个sndkey32.pas,考到lib目录下。
use sndkey32

procedure TForm1.Timer1Timer(Sender: TObject);
begin
SendKeys('X',true);
END;
对当前的活动窗口有效,如果需要模拟组合键ctrl+x
SendKeys('^X',true);
 
接受答案了.
 
后退
顶部