关于模拟击键的问题?(100分)

  • 主题发起人 主题发起人 shshshsh
  • 开始时间 开始时间
S

shshshsh

Unregistered / Unconfirmed
GUEST, unregistred user!
我想让我的程序模拟击键,如数字键,字母键,功能键!

最好举例说明!
 
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=95809

满意吧!
 
来个示例:

procedure TForm1.ButtonSnapShotClick(Sender: TObject);
var
Bitmap: TBitmap; // holds a bitmap
begin
{see which radio button is checked}
if ImageOptions.ItemIndex = 0
then keybd_event(VK_SNAPSHOT,1,0,0) {desktop window snapshot}
else keybd_event(VK_SNAPSHOT,0,0,0); {client window snapshot}

{check to see if there is a picture}
if Clipboard.HasFormat(CF_BITMAP) then

begin
{Create a bitmap to hold the contents of the Clipboard}
Bitmap := TBitmap.Create;

{trap for clipboard bitmap errors}
try
{get the bitmap off the clipboard using Assign}
Bitmap.Assign(Clipboard);

{copy the bitmap to the Image}
Image1.Canvas.Draw(0, 0, Bitmap);
finally
{the bitmap is no longer needed, so free it}

Bitmap.Free;
end;
end;
end;
 
uses windows;

keybd_event(VK_y,1,0,0);
keybd_event(VK_y,1,KEYEVENTF_KEYUP,0);

为什麽编译的时候老报错?!
[Error] Unit1.pas(40): Undeclared identifier: 'VK_y'
 
老兄,vk_y并没有预定义啊
直接写键码吧.比如$55
 
让 WIN95 模拟按了一个按键,例如按下 ENTER或者 TAB 键
PostMessage(Object.Handle, WM_KEYDOWN, VK_TAB, 0);
 
我比较同意maruixiang的回答。
but i use sendmessage.
 
用object.perform(***...)也可,
最好用PostMessage,因为SendMessage在被发消息的对象
响应之前不会继续执行。
 
用SendMessage。
 
Delphi的安装盘上有个叫Info的目录
里面有个SendKey.pas的文件
实现了一个过程,拷过来用即可
 
多人接受答案了。
 
后退
顶部