模拟键盘按键,将字符转换为虚拟键码

通过oemKeyScan和MapVirtualKey函数

oemKeyScan可以获得扫描码以及转换状态,状态有shift被按下,ctrl被按下,alt被按下等等。

MapVirtualKey将一虚拟键码翻译(映射)成一扫描码或一字符值,或者将一扫描码翻译成一虚拟键码。

 1 DWORD   sc, shift;
 2 unsigned   char   vkey;
 3 char   a;
 4 CString str = "abc";
 5 for (int i = 0; i<str.GetLength(); i++)//模拟键盘输出str中的字符
 6 {
 7     a = str.GetAt(i);
 8     sc = OemKeyScan(a);
 9     shift = sc >> 16;
10     vkey = MapVirtualKey(sc & 0xffff, 1);
11     if (shift)
12         keybd_event(VK_SHIFT, 0, 0, 0);
13     keybd_event(vkey, 0, 0, 0);
14     keybd_event(vkey, 0, KEYEVENTF_KEYUP, 0);
15     if (shift)
16         keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
17 }
时间: 2024-08-27 22:17:04

模拟键盘按键,将字符转换为虚拟键码的相关文章

golang实现模拟键盘按键

公司前段时间要我写个小项目需要可以局域网内一个ipad控制另一台pc上的键盘输入,github上找了找,居然有个robotgo库这么神级的存在,感觉go的库真是越来越多了,虽然大部分都是第三方的.https://github.com/go-vgo/robotgo 原理很简单,时间有限boss要一天就搞出来,所有没有采用我不熟悉的局域网广播技术,而是直接在在目标pc上用go启了个服务器,ipad端按下某个按键之后发送协议到pc的服务器上,服务器监听到协议后交给robotgo库来模拟键盘按键即可.

C# 模拟键盘按键操作

[DllImport("user32.dll")] public static extern IntPtr keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtralnfo); private void KeyTab() { keybd_event(9, 0, 0, 0); // keybd_event(9, 0, 1, 0); }//百度百科地址:http://baike.baidu.com/view/1080077.htm

输入法切换小程序(js模拟键盘按键输入成功版)

花了半天时间写了个小程序,基本满足最初需求(但目前只支持IE浏览器). 需求: 在输入汉字的时候没有切换出中文输入法而导致输入了拼音,我们要做的是:将输入的拼音删除并且切换出中文输入法,重新自动在输入法中打出相应的字母. 我的电脑上默认只有两个输入法,中文输入法和美式键盘,所以模拟出”ctrl+空格键“即可在两个输入法之间进行切换. 做的过程和想法: 最初想的是使用网页配合js来做,毕竟界面好做一些.首先想到的就是用js来模拟键盘的输入,想法很好,但是却很难,主要是因为浏览器为了考虑安全性,所以

js模拟键盘按键事件

1 var WshShell = new ActiveXObject('WScript.Shell') 2 WshShell.SendKeys('{ }'); 说明:大括号内的是键盘上的按键如: 空格:{ } A:{A}

python 模拟windows键盘按键的封装

代码:在执行的时候,把光标放在指定的地方,在此例中,点击运行后把光标放到结果区域,粘贴的时候是粘贴到光标所在的问题,如过是运行脚本在web元素输入框中输入的话,不能移动光标到其他位置 #encoding=utf-8import win32apiimport win32con class KeyboardKeys(object):    #模拟键盘按键类    VK_CODE={        'enter':0x0D,        'ctrl':0x11,        'v':0x56} @

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系统下的虚拟键盘码等等. 有时我们希望能以程序

模拟键盘输入

微软有个软键盘,可以通过命令行输入osk调出来. 有时候我们想自己模拟几个键盘按键,怎么办?其实Win32 API中有一个keybd_event可以模拟键盘按键的输入.以C#语言为例. 首先引用namesapce,并导入API. using System.Runtime.InteropServices; [DllImport("user32.dll")]private static extern void keybd_event(byte bVk, byte bScan, int dw

Python + Selenium + AutoIt 模拟键盘实现另存为、上传、下载操作详解

前言 在web页面中,可以使用selenium的定位方式来识别元素,从而来实现页面中的自动化,但对于页面中弹出的文件选择框,selenium就实现不了了,所以就需引用AutoIt工具来实现. AutoIt介绍 AutoIt简单介绍下,AutoIt 目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务.而这是其它语言不可能做到或无可靠方法实现的(例如VBSc