所有家当求BCB模拟键盘鼠标操作,该如何处理

所有家当求BCB模拟键盘鼠标操作
还是模拟键盘A/F1/1/2/3按下以及鼠标点击的方法,已经可以确定,程序接受SendMessage/PostMessage的模拟操作(在VB中用SendMessage/PostMessage成功了),至于那个BCB中嵌套汇编的就先放一放,把这个先给解决了吧...
我不想因为无法模拟键盘鼠标操作而转去其他开发语言啊。。。

------解决方案--------------------
模拟按键可以用keybd_event函数,模拟鼠标可以用mouse_event函数。
另外有个SendInput函数,可以完成上面2种功能。msdn说,在NT系统下,推荐使用这个函数。
------解决方案--------------------
SendMessage() 就可以,不成功多数是HWND不正确

你可以先用`记事本`做测试看看是否可以模拟打字
------解决方案--------------------
unit sndkey32;

interface

Uses SysUtils, Windows, Messages;

Function SendKeys(SendKeysString : PChar; Wait : Boolean) : Boolean;
function AppActivate(WindowName : PChar) : boolean;

{Buffer for working with PChar 's}

const
WorkBufLen = 40;
var
WorkBuf : array[0..WorkBufLen] of Char;

implementation
type
THKeys = array[0..pred(MaxLongInt)] of byte;
var
AllocationSize : integer;

(*
Converts a string of characters and key names to keyboard events and
passes them to Windows.

Example syntax:

SendKeys( 'abc123{left}{left}{left}def{end}456{left 6}ghi{end}789 ', True);

*)

Function SendKeys(SendKeysString : PChar; Wait : Boolean) : Boolean;
type
WBytes = array[0..pred(SizeOf(Word))] of Byte;

TSendKey = record
Name : ShortString;
VKey : Byte;
end;

const
{Array of keys that SendKeys recognizes.

If you add to this list, you must be sure to keep it sorted alphabetically
by Name because a binary search routine is used to scan it.}

MaxSendKeyRecs = 41;
SendKeyRecs : array[1..MaxSendKeyRecs] of TSendKey =
(
(Name: 'BACKSPACE '; VKey:VK_BACK),
(Name: 'BKSP '; VKey:VK_BACK),
(Name: 'BREAK '; VKey:VK_CANCEL),
(Name: 'BS '; VKey:VK_BACK),
(Name: 'CAPSLOCK '; VKey:VK_CAPITAL),
(Name: 'CLEAR '; VKey:VK_CLEAR),
(Name: 'DEL '; VKey:VK_DELETE),
(Name: 'DELETE '; VKey:VK_DELETE),
(Name: 'DOWN '; VKey:VK_DOWN),
(Name: 'END '; VKey:VK_END),
(Name: 'ENTER '; VKey:VK_RETURN),
(Name: 'ESC '; VKey:VK_ESCAPE),
(Name: 'ESCAPE '; VKey:VK_ESCAPE),
(Name: 'F1 '; VKey:VK_F1),
(Name: 'F10 '; VKey:VK_F10),
(Name: 'F11 '; VKey:VK_F11),
(Name: 'F12 '; VKey:VK_F12),
(Name: 'F13 '; VKey:VK_F13),
(Name: 'F14 '; VKey:VK_F14),
(Name: 'F15 '; VKey:VK_F15),
(Name: 'F16 '; VKey:VK_F16),
(Name: 'F2 '; VKey:VK_F2),
(Name: 'F3 '; VKey:VK_F3),
(Name: 'F4 '; VKey:VK_F4),
(Name: 'F5 '; VKey:VK_F5),
(Name: 'F6 '; VKey:VK_F6),
(Name: 'F7 '; VKey:VK_F7),
(Name: 'F8 '; VKey:VK_F8),
(Name: 'F9 '; VKey:VK_F9),
(Name: 'HELP '; VKey:VK_HELP),
(Name: 'HOME '; VKey:VK_HOME),
(Name: 'INS '; VKey:VK_INSERT),
(Name: 'LEFT '; VKey:VK_LEFT),
(Name: 'NUMLOCK '; VKey:VK_NUMLOCK),