请帮我完善这个程序,很有趣的:)(20分)

  • 主题发起人 主题发起人 南宫吹云
  • 开始时间 开始时间

南宫吹云

Unregistered / Unconfirmed
GUEST, unregistred user!
你尝试过在你的程序中的关于页中实现模拟键盘输入效果吗?如果实现将给你的程序增色
不少。以下是我实现的代码,基本实现了此功能,但还很不完善,请高手指点完善此程序
。谢谢!!

unit Unit1;

interface

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

type
; TForm1 = class(TForm)
; ; Timer1: TTimer;
; ; Panel1: TPanel;
; ; Memo1: TMemo;
; ; BitBtn1: TBitBtn;
; ; BitBtn2: TBitBtn;
; ; procedure Timer1Timer(Sender: TObject);
; ; procedure FormCreate(Sender: TObject);
; ; procedure Memo1Enter(Sender: TObject);
; ; procedure Memo1Exit(Sender: TObject);
; private
; ; { Private declarations }
; ; i:integer;
; ; s:string;
; public
; ; { Public declarations }
; end;

var
; Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
; ;inc(i);
; ;if (s=#13) then inc(i);
; ;if i<=length(s) then
; ; ; begin
; ; ; ; ;keybd_event(vkkeyscan(s),oemkeyscan(ord(s)),KEYEVENTF_EXTENDEDKEY,0);
; ; ; end
; ;else timer1.Enabled:=false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
; ;i:=0;
; ;s:=memo1.lines.text;
; ;memo1.Clear;
end;

procedure TForm1.Memo1Enter(Sender: TObject);
begin
; ;memo1.SelStart:=length(memo1.lines.text);
; ;timer1.Enabled:=true;
end;

procedure TForm1.Memo1Exit(Sender: TObject);
begin
; ;timer1.Enabled:=false;
end;

end.

Form1 上只有一个Memo1控件,且里面有已经输入的内容。现在有两个问题:
1.我的程序只能模拟字符相应的键,不能模拟上档状态。
2.不能模拟中文输入。

请高手帮忙。
 
delphi的光盘中不是有sendkey的单元吗?看完了,拿来用不就得了?
 
什么光盘?你是说DELPHI自带的例子程序吗?我怎么没有找到,既然来了,麻烦帮我
改改吧?
 
你不就要模拟键盘输入吗?就像VB中的sendkey语句。borland公司已经写好了,不是例子,
就在delphi5的光盘中,具体位置我记不清了,自己找吧!
 
Delphi 5.0 开发指南 第十三章
 
在Delphi5的安装盘中的Info/Extras/SendKeys/sndkey32.pas 有现成的函数可用。
 
可是第二个问题呢?
 
中文输入,需要IMM之类的函数~~~~~~~~~~
 
请贴出源码,大家研究一下。
 
此问题第一部份已经解决,需要的留下EMAIL,程序自动写出源代码。
 
请关注一下第二个问题。
 
后退
顶部