模拟键盘发送文字(使用SendInput函数)

嗯...老生常谈的话题, 不过系统的总结了一下, 找了个相对简单的实现方式, 可以方便的发送任何文字

参考另一片文章: http://www.cnblogs.com/-clq/archive/2011/10/01/2197047.html

直接贴代码:

var
  nInputs: array[0..1] of tagINPUT;
  nData: WideChar;
  nStr: WideString;
  i: Integer;
begin
  nStr := ‘测试内容123‘;
  for I := 1 to Length(nStr) do
  begin
    nData := nStr[i];
    with nInputs[0] do
    begin
      Itype := INPUT_KEYBOARD;
      ki.wVk := 0;
      ki.wScan := Word(nData);
      ki.dwFlags := KEYEVENTF_UNICODE;
    end;
    SendInput(1, nInputs[0], SizeOf(nInputs[0]));
    with nInputs[1] do
    begin
      Itype := INPUT_KEYBOARD;
      ki.wVk := 0;
      ki.wScan := Word(nData);
      ki.dwFlags := KEYEVENTF_KEYUP or KEYEVENTF_UNICODE;
    end;
    SendInput(1, nInputs[1], SizeOf(nInputs[1]));
  end;
end;

http://www.cnblogs.com/hs-kill/p/4761297.html

时间: 2024-10-12 03:24:15

模拟键盘发送文字(使用SendInput函数)的相关文章

模拟键盘发送文字

嗯...老生常谈的话题, 不过系统的总结了一下, 找了个相对简单的实现方式, 可以方便的发送任何文字 参考另一片文章: http://www.cnblogs.com/-clq/archive/2011/10/01/2197047.html 直接贴代码: var nInputs: array[0..1] of tagINPUT; nData: WideChar; nStr: WideString; i: Integer; begin nStr := '测试内容123'; for I := 1 to

keybd_event模拟键盘发送组合键

keybd_event模拟键盘发送组合键 如需要模拟发送“@”键 正常真实键盘发送时需要先按下Shift键,然后在没有弹出来的情况下按左键盘的数字“2”按键,然后松开键盘,即起按键. 代码中操作如下: keybd_event(VK_SHIFT,0,0,0);                                     //模拟先按下Shift键   keybd_event(0x32,0,0,0);                                            

VB模拟键盘输入的N种方法

VB模拟键盘输入的N种方法http://bbs.csdn.net/topics/90509805hd378发表于: 2006-12-24 14:35:39用VB模拟键盘事件的N种方法 键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作.但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样可以把很多重复性的键盘操作交给程序来模拟,省了很多精力,按键精灵就是这样的一个软件.那么我们怎样才能用VB来写一个程

SendInput模拟键盘输入的问题

SendInput模拟键盘输入的问题 http://www.cnblogs.com/yedaoq/archive/2010/12/30/1922305.html 最近接触到这个函数,因此了解了一下,总结一下列在这. 我了解它的出发点是如何通过它向活动窗口输入字符,这是很多程序都有的功能(我猜Visual Assist X就用了这个功能). 根据MSDN,此函数模拟按键操作,将一些消息插入键盘或鼠标的输入流中,Windows对它进行处理,生成相应的WM_KEYDOWN或WM_KEYUP事件,这些事

vc+如何实现模拟键盘输入,自动输入文字(创世纪篇)

键盘对于每个操作电脑的人员来说是最熟悉不过的了.键盘上的按键可分为两类: 按下后会在电脑的输入窗口上出现对应字符的按键,如字母键和数字键等,我们称之为字符键:按下后虽然看不到字符但会产生控制作用的按键,如回车键.光标键等,我们称之为控制键. 对于vc+程序员来说,键盘上的每个按键都一样,无非是不同按键产生的键盘扫描码不同.在不同的操作系统下,键盘扫描码常常被转换为不同的编码以方便应用程序调用,比如在Windows系统下的ASCII码,在Windows系统下的虚拟键盘码等等. 有时我们希望能以程序

C++模拟键盘消息

实现功能:在现有DLL程序中向特定的EXE窗口中发送模拟键盘的消息 使用API根据窗口标题递归查找特定的窗口句柄,之后模拟调用. 注意:keybd_event函数不能在VS下使用,所以用SendInput代替使用: 1 int SelfFindWindows(HWND hMainWnd, char* lpName, BYTE keyvalue) 2 { 3 HWND hChildWnd = GetWindow(hMainWnd, GW_CHILD); 4 5 while (hChildWnd !

远程控制篇:用Delphi模拟键盘输入/鼠标点击

模拟键盘我们用Keybd_event这个api函数,模拟鼠标按键用mouse_event函数. Keybd_event函数能触发一个按键事件,也就是会产生一个WM_KEYDOWN或WM_KEYUP消息,一般用这两个消息来模拟一 次按键(按键的过程是:按下,然后弹起),但是没有直接用这个函数方便.Keybd_event共有四个参数:第一个为按键的虚拟键值,如回车键为vk_return, tab键为vk_tab;第二个参数为扫描码,一般不用设置,用0代替就行;第三个参数为选项标志,如果为keydow

C#拓展练习之模拟键盘录入

摘自<31天学会CRM项目开发<C#编程入门级项目实战>> 使用C#调用Windows API使程序模拟键盘输入,也可模拟按下快捷键.本例中,单击“模拟输入”按钮,可录入字符“abcde123456”,单击“Ctrl+V”按钮可实现粘贴功能,效果如图16-2所示. 主要开发步骤如下:(1)    引用Windows API函数keybd_event(),通过它可模拟键盘录入.代码片段16-12 [DllImport("user32.dll")] private

用Delphi模拟键盘输入

在Windows大行其道的今天,windows界面程序受到广大用户的欢迎.对这些程序的操作不外乎两种,键盘输入控制和鼠标输入控制.有时,对于繁杂的,或重复性的操作,我们能否通过编制程序来代替手工输入,而用程序来模拟键盘及鼠标的输入呢?答案是肯定的.这主要是通过两个API函数来实现的. 下面以Delphi为例来介绍一下如何实现这两个功能.模拟键盘我们用Keybd_event这个api函数,模拟鼠标按键用mouse_event函数.大家不用担心,在delphi里调用api函数是很方便的事. 先介绍一