使用keybd_event模拟键盘输入

转载 2012年03月28日 10:05:09
#include <windows.h>
BOOL CALLBACK GetChild(HWND hWnd,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
    HWND hWnd=::FindWindow("notepad",NULL);//获得记事本窗口句柄
    if(hWnd)//如果获得成功
    {
        ::ShowWindow(hWnd,SW_SHOW);//显示记事本窗口
        if(::SetForegroundWindow(hWnd))//窗口置顶
        {
            ::EnumChildWindows(hWnd,GetChild,0);//枚举记事本中的子窗口
        }
        return 0;
    }
    else
    {
        MessageBox(NULL,"no handle","error",MB_OK);
        return 0;
    }
}
BOOL CALLBACK GetChild(HWND hWnd,LPARAM lParam)//回调函数
{
    char temp1[256];
    ::GetClassName(hWnd,temp1,255);//获得子窗口的类名
    if(!::strcmp(temp1,"Edit"))//判断子窗口类名是否为edit
    {
        ::keybd_event(VK_CONTROL,0,0,0);//按下ctrl
        ::keybd_event('V',0,0,0);//按下c
        ::keybd_event('V',0,2,0);//放开C
        ::keybd_event(VK_CONTROL,0,2,0);//放开ctrl
        return 0;
    }
    return true;
}
程序的功能是在记事本程序中模拟按下ctrl+c,来粘贴剪贴板中的内容,程序首先将记事本窗口置顶,然后按下复制按键。
逆向了一下keybd_event函数,发现他其实是调用的user32.dll中的SendInput函数,而SendInput函数直接调用系统内核,到达系统内核以后OD便无法继续跟踪了。所以,是否keybd_event函数模拟按键足够底层了呢?如果他不能模拟就只能求助于驱动级的模拟了。

基于keybd_event函数的模拟键盘输入

在Windows大行其道的今天,windows界面程序受到广大用户的欢迎。对这些程序的操作不外乎两种,键盘输入控制和鼠标输入控制。有时,对于繁杂的,或重复性的操作,我们能否通过编制程序来代替手工输入,...

VC++模拟键盘输入(keybd_event() 、 PostMessage() /SendMessage()、SendInput())详解

详细介绍C++模拟键盘输入的三种方法,而且还带实例:keybd_event() 、 PostMessage() /SendMessage()、SendInput(),...
  • Entre_
  • Entre_
  • 2015年06月10日 17:24
  • 4469

模拟键盘、鼠标输入---玩转keybd_event

在Windows大行其道的今天,windows界面程序受到广大用户的欢迎。对这些程序的操作不外乎两种,键盘输入控制和鼠标输入控制。有时,对于繁杂的,或重复性的操作,我们能否通过编制程序来代替手工输入,...

C# 使用keybd_event()函数模拟键盘按键

今天碰到了一个需求,在一体机上按F10关闭一个应用。但一体机上如果不带键盘的话。很难按出F10.所以我必须用软件的方式模拟按下F10.于是查阅各种资料。总结出,模拟按键操作常用的方式有俩种: 使用wi...

模拟键盘API函数Keybd_event用法

http://blog.csdn.net/guyue35/article/details/11838299 模拟键盘API函数Keybd_event用法 Windows提供了一个模拟键盘API...

利用键盘事件keybd_event(Win32 API)模拟键盘按键

云平台第三次重置后,通过FTP传输文件的途径失效,因此需要其他方法向自己的云桌面发送代码。无论云桌面怎么设置,都必须支持接收键盘和鼠标的输入,因此如果可以模拟键盘输入,就可以实现发送代码的功能。 Wi...

模拟键盘、鼠标 mouse_event keybd_event

MSDN 讲解:http://msdn.microsoft.com/en-us/library/ms646304(v=vs.85).aspx 中文讲解:http://dev.firnow.com/c...
  • xuehuic
  • xuehuic
  • 2011年08月17日 10:31
  • 34178

vc使用程序模拟键盘输入

  • 2017年05月17日 23:23
  • 14KB
  • 下载

使用UI Automation实现自动化测试--7.1 (模拟键盘输入数据在自动化测试中的应用)

Chapter 7 Simulated keyboard   7.1模拟键盘输入 7.1.1 Introduction 此部分我们通过System.Windows.Forms.SendKeys...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用keybd_event模拟键盘输入
举报原因:
原因补充:

(最多只允许输入30个字)