[VB.NET]调用API获取/设置键盘按键状态

1.调用GetAsyncKeyState()获取指定按键的状态,GetActiveKey()检索指定范围内的按键状态

2.调用keybd_event()可合成一次击键事件,通常两次击键事件间需要设定时间间隔

3.调用MapVirtualKey()获取指定按键的硬件扫描码,传入keybd_event()第二个参数就可以对DirectInput有效。

Public Class ImitateKeyClass
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
    Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Integer, ByVal wMapType As Integer) As Integer
    Private Declare Function GetAsyncKeyState Lib "user32 " (ByVal vKey As Integer) As Integer
    ‘‘‘ <summary>
    ‘‘‘ 发送按键
    ‘‘‘ </summary>
    ‘‘‘ <param name="CharArray"></param>
    Public Sub SendString(CharArray As String)
        For Each SubChar As Char In CharArray
            keybd_event(Asc(SubChar), MapVirtualKey(Asc(SubChar), 0), &H1 Or 0, 0) ‘按下
            System.Threading.Thread.Sleep(10) ‘延时
            keybd_event(Asc(SubChar), MapVirtualKey(Asc(SubChar), 0), &H1 Or &H2, 0) ‘弹起
            System.Threading.Thread.Sleep(10)
        Next
    End Sub
    ‘‘‘ <summary>
    ‘‘‘  获取A~Z的按键状态
    ‘‘‘ </summary>
    ‘‘‘ <returns></returns>
    Public Function GetActiveKey() As Byte
        For i = 65 To 90 ‘A~Z的ASICC码
            If CurrentKeyState(i) = True Then Return i
        Next
        Return 0
    End Function
    ‘‘‘ <summary>
    ‘‘‘ 获取键盘按键状态
    ‘‘‘ </summary>
    ‘‘‘ <param name="KeyCode"></param>
    ‘‘‘ <returns></returns>
    Private Function CurrentKeyState(ByVal KeyCode As Byte) As Boolean
        Dim temp As Integer = GetAsyncKeyState(KeyCode)
        Return (IIf(temp = -32767, True, False))
    End Function
End Class
时间: 2024-10-06 00:31:22

[VB.NET]调用API获取/设置键盘按键状态的相关文章

Unity3D获取当前键盘按键

获取当前键盘按键,代码如下: using UnityEngine; using System.Collections; public class GetCurrentKey : MonoBehaviour { KeyCode currentKey; void Start () { currentKey = KeyCode.Space; } void OnGUI() { if (Input.anyKeyDown) { Event e = Event.current; if (e.isKey) {

C++调用API获取当前时间

#include <string> #include<iostream> #include<windows.h> #include <sstream> using namespace std; string WORDToString(WORD w) {     char tmpbuff[16];     sprintf(tmpbuff,"%d",w);     string res=tmpbuff;     return res; } s

PHP通过Zabbix API获取服务器监控信息

开源监控系统Zabbix提供了丰富的API,供第三方系统调用. 基本步骤如下: 1.获取合法认证:连接对应Zabbix URL,并提供用户名和密码,HTTP方法为"POST",HTTP头部类型为"application/json" 1 public function zabbixJsonRequest($uri, $data) { 2 try{$json_data = json_encode($data); 3 $c = curl_init(); 4 curl_se

VB调用API函数

API函数快速入门--怎样在VB中声明和使用API函数-- 一.在VB中声明API函数有两种方法:如果我们只在某个窗体中使用API函数,我们可以在窗体代码的 General部分声明它: 声明的语法是: Private Declare Function ... Private Declare Sub..... 这里必须采用Private声明,因为这个API函数只能被一个窗体内的程序所调用. 如果我们的程序有多个窗体构成,而且我们需要在多个窗体中使用同一个API函数,就需要在模块中 声明了. 先添加

笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用

Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDispatcher 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <filter>     <filter-name>struts2</filter-name>     <filter-class>org.apache.struts2.di

调用ZoomEye API获取信息

最近在提高自己编程能力,拿一些实用的小工具练下.该脚本为python语言,主要涉及模块urllib,json,os模块. 功能:调用ZoomEye API获取信息 import urllib.request import json import os def login(): username = input("username:") password = input("password:") url = "https://api.zoomeye.org/

HTML5页面直接调用百度地图API,获取当前位置,直接导航目的地(转)

HTML5页面直接调用百度地图API,获取当前位置,直接导航目的地 我是应用在微信中,自定义菜单,菜单直接链接到这个HTML5页面,获取当前位置后,页面中定好目的地,这样打开页面后直接进入导航页面 可以省下先发送位置信息后,点确定再出导航,省一步, <!DOCTYPE html> <html lang="zh-cmn-Hans"> <meta charset="UTF-8"> <meta name="viewpor

调用手机在线API获取手机号码归属地信息

手机在线(www.showji.com)始创于2001年,发展至今已拥有国内最准确.号段容量最大的手机号码归属地数据库系统, 目前号段容量将近33万条,每月保持两次以上规模数据更新,合作伙伴包括:百度.淘宝.腾讯.搜狗.小米手机.宝马汽车. 神马搜索.点心OS等. 手机在线号码归属地提供WebService.HTTP API.免费调用和付费数据库四种使用方式: 可以通过URL GET超链接的方式来获取手机号归属地信息,每IP每分钟调用20次的限制,具体实现如下: import java.util

[转载]淘宝API调用 申请 获取session key

http://www.cnblogs.com/zknu/archive/2013/06/14/3135527.html 在调用淘宝的API时,我们都会用到appkey,appsecret,appsession. 1.我们申请应用就会有appkey和appsecret了 2.正式环境下获取SessionKey 注意:web插件平台应用和web其它应用在正式环境下是同样的获取方法 1).WEB应用 回调URL:http://cnblogs.com 访问http://container.open.ta