我用它来发送文本到一个烦人的弹出式 3G 应用程序,没有界面,这是一个黑客,我们没有留下任何选项。
procedure TForm1.TypeMessage(Msg: string);
var
CapsOn: boolean;
i: integer;
ch: char;
shift: boolean;
key: short;
begin
CapsOn := (GetKeyState( VK_CAPITAL ) and $1) <> 0;
for i:=1 to length(Msg) do
begin
ch := Msg[i];
ch := UpCase(ch);
if ch <> Msg[i] then
begin
if CapsOn then
begin
keybd_event( VK_SHIFT, 0, 0, 0 );
end;
keybd_event( ord(ch), 0, 0, 0 );
keybd_event( ord(ch), 0, KEYEVENTF_KEYUP, 0 );
if CapsOn then
begin
keybd_event( VK_SHIFT, 0, KEYEVENTF_KEYUP, 0 );
end;
end
else
begin
key := VKKeyScan( ch );
// UpperCase
if ((not CapsOn) and (ch>='A') and (ch <= 'Z')) or
((key and $100) > 0) then
begin
keybd_event( VK_SHIFT, 0, 0, 0 );
end;
keybd_event( key, 0, 0, 0 );
keybd_event( key, 0, KEYEVENTF_KEYUP, 0 );
if ((not CapsOn) and (ch>='A') and (ch <= 'Z')) or
((key and $100) > 0) then
begin
keybd_event( VK_SHIFT, 0, KEYEVENTF_KEYUP, 0 );
end;
end;
end;
end;
希望有帮助
UPDATE
编辑以允许其他字符(非字母),即移位数字!“£$等。