文章目录

  • 一、幽灵键鼠:
    • 1.概述
    • 2.幽灵键鼠硬件检测
      • ①硬件检测程序
    • 3.幽灵键鼠开发文档
      • ①幽灵键鼠支持如下技术,需要能访问COM组件
      • ②功能特点
      • ③开发接口
  • 二、自定义-幽灵键鼠
    • 1. C#封装的exe程序
      • ①使用cmd或者Powershell调用封装程序
      • ②模拟按键输入
      • ③模拟人工鼠标移动
      • ③模拟滑动鼠标移动
      • ④ 鼠标滚轮滚动
      • ⑤单键按下
      • ⑥单击弹起
      • ⑦所有键弹起
      • ⑧获取键盘大写灯状态
      • ⑨鼠标左键按下
      • ⑩鼠标左键弹起
    • 2.注意
      • ①需要把COM组件程序集(kmllib.dll)存放到C盘根目录下能调用封装exe程序
  • 三、幽灵键鼠资源下载
    • 1.工具资源网盘下载:

一、幽灵键鼠:

1.概述

幽灵键鼠是一款硬件键鼠,通过编写脚本指令而模拟人工操作的一款硬件

幽灵键鼠分为两个型号KM系列和SR系列,两大系列的不同在与KM系列是只能在前台运行,而SR系列是KM系列的升级版,是可以把纯键盘鼠标按键放入硬件里的,下面我开始介绍两者是如何使用的。

  1. KM系列简介

    Km系列现在主打的产品是KM03.04它低廉的价格和优异的性能也得到了大家的信赖。

    Km系列

    我们提供COM和DLL两种形式的SDK,支持32位和64位开发、运行环境,可供所有主流开发工具调用。

    我们提供按键精灵、易语言、TC、C#、Python、VB、VC、Delphi等常开发工具调用SDK的同时我们也提供DEMO程序

    提供专用的 [幽灵键鼠集成开发环境 kmlIDE],支持脚本编写、运行、编译,供用户免费使用。(注:因涉及复杂运算km系列是有进程的)

  2. SR系列

    SR系列有两种模式可以使用

    直接使用SRIDE编辑器(注:纯键盘鼠标按键可直接写入硬件无进程),KMLIDE模式(涉及找图找色等复杂运算,有进程)

  3. KM系列和SR系列是如何使用的。

    首先把购买的硬件插入电脑的USB接口

    插入之后,硬件会亮起绿灯这说明它现在是正常的,而硬件插入之后在我的电脑是不显示U盘形式(注:我们的产品是一款无实体按键的键盘鼠标,所以,在我的电脑里不是U盘形式出现的),需要打开任务管理器才能看到,右键单击我的电脑,或者我的计算机打开设备管理找到键盘和鼠标选项。

    插入前看到,现在键盘和鼠标里只会出现一套鼠标键盘。

    插入后产品已经默认为另外一套键盘鼠标了,现在大家都可以开始操作了。SR系列和KM系列的插入方式是一样的,这里目前是我电脑使用的幽灵键鼠版本。

2.幽灵键鼠硬件检测

①硬件检测程序

  1. 打开如下程序,能够识别插入后的幽灵键鼠的【产品信息】,【硬件信息】,【支持的功能】

  1. 我这边购买的幽灵键鼠只支持【键盘,鼠标】,这两个算是最常用的功能点了。其他的根据自身业务功能情况去购买时找商家了解清楚即可。

3.幽灵键鼠开发文档

①幽灵键鼠支持如下技术,需要能访问COM组件

②功能特点

③开发接口

  1. 设备函数

  2. 时钟函数

  3. 加密锁函数

  4. 键盘函数

  5. 鼠标函数

  6. KM21专用函数

  7. 辅助函数

二、自定义-幽灵键鼠

1. C#封装的exe程序

①使用cmd或者Powershell调用封装程序

  1. 调用模拟按键输入,输入一个方法名和一个参数,如果提示如下异常内容,表示当前运行设备(电脑)未和幽灵键鼠硬件连接,建议使用检测工具检测是否连接

  1. 如果设备已连接,再次执行刚才的命令

  2. 如果调用的方法要传入多个参数,用英文逗号隔开

  1. 调用参数描述说明

    封装程序.exe的绝对路径 方法名 输入参数(单个或多个;多个用,隔开)

②模拟按键输入

/** 模拟按键输入(只支持英文,数字,特殊符号,自动识别大小写)* 传入参数类型:字符串(String):待模拟人工输入的字符串* 返回结果类型:整型数*       大于0:成功,返回输入的字符串字节数,例如1代表2个字节,即是返回2*       0:失败*/
public static extern int SimulationPressKey(String Keys);

③模拟人工鼠标移动

/* 模拟鼠标移动(单纯移动鼠标,不对鼠标的按键进行操作)* 传入参数类型:1.数字整型(int):X:整型数,屏幕的水平坐标   2.数字整型(int):Y:整型数,屏幕的垂直坐标* 返回结果类型:布尔值(Boolean)*      整型数:大于0:成功  ;0:失败*/
public static extern int Simulation_Move(int X,int Y);

③模拟滑动鼠标移动

 /* 模拟鼠标移动(左键按下后移动,适用于滑动验证码处理)* 传入参数类型:1.数字整型(int):X:整型数,屏幕的水平坐标   2.数字整型(int):Y:整型数,屏幕的垂直坐标* 返回结果类型:布尔值(Boolean)*      整型数:大于0:成功  ;0:失败*/
public static extern int Move_To(int X,int Y);

④ 鼠标滚轮滚动

/* 鼠标滚轮滚动* 传入参数类型:数字整型(int):Count 滚动次数:Count:整型数,移动次数,范围-127至127,正数向上移动,负数向下移动* 返回结果类型: 整型数->1:成功 ; 0:失败*/
public static extern int Wheels_Move(int Count)

⑤单键按下

 /*  *  单键按下*  键盘单个键按下,键码表请参考USB键盘*  传入参数类型:字符串,按下的键名*  返回结果类型:整型数*       1:成功0:失败
*/
public static extern int KeyDown(String Key);

⑥单击弹起

/*  *  单键弹起*  键盘键弹起,键码表请参考USB键盘*  传入参数类型:字符串,弹起的键名*  返回结果类型:整型数*       1:成功0:失败
*/
public static extern int KeyUp(String Key);

⑦所有键弹起

 /* 所有键盘按键弹起,在复杂的代码中容易忘记哪些键已经按下,该函数可将所有按键都弹起* 传入参数类型:无* 返回结果类型:整型数; 1:成功; 0:失败*/
public static extern int KeyUpAll();

⑧获取键盘大写灯状态

/* 获取键盘大定灯状态* 无需输入参数* 返回结果类型:整型数*     1:CapsLock灯熄灭*     2:CapsLock灯亮*     0:失败
*/
public static extern int GetCapsLock();

⑨鼠标左键按下

/*  *  鼠标左键按下*  传入参数类型:无*  返回结果类型:整型数*      1:成功*      0:失败
*/
public static extern int LeftDown();

⑩鼠标左键弹起

/*  *  鼠标左键弹起*  传入参数类型:无*  返回结果类型:整型数*      1:成功*      0:失败
*/
public static extern int LeftUp();

2.注意

①需要把COM组件程序集(kmllib.dll)存放到C盘根目录下能调用封装exe程序

三、幽灵键鼠资源下载

1.工具资源网盘下载:

工具资源网盘下载
提取码: mty9

因为有人提到是否能够提供源码,非常抱歉之前忙于其他的疏忽了,代码如下;C#语言编写,仅供参考哈。感谢大家支持。
想扩展功能参考网盘链接的开发文档哈。

using System;
using System.Reflection;
using System.Runtime.InteropServices;namespace InvokeMouceKey
{public class MouseEventFlag{/*初始化设备*  打开设备,有多个设备时默认打开第一个。使用我们的脚本开发工具时不需调用该接口,kmlIDE会自动管理设备连接。*  传入参数类型:无*  返回结果类型:整型数*      1:成功*      0:失败*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern bool OpenDevice();/*关闭设备*  检查设备是否连接,设备拔出后再次插入会自动连接*  传入参数类型:无*  返回结果类型:整型数*      1:连接*      0:未连接*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern bool CloseDevice();/** 模拟按键输入(只支持英文,特殊符号,自动识别大小写)* 传入参数类型:字符串(String):待模拟人工输入的字符串* 返回结果类型:整型数*      大于0:成功,返回输入的字符串字节数,例如1代表2个字节,即是返回2*      0:失败*/[DllImport("C:\\kmllib.dll")]public static extern int SimulationPressKey(String Keys);/*模拟人工鼠标移动*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern int SimulationMove(int X, int Y);/* 获取键盘大定灯状态* 无需输入参数* 返回结果类型:整型数*      1:CapsLock灯熄灭*      2:CapsLock灯亮*      0:失败*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern int GetCapsLock();/*鼠标滚轮滚动*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern int WheelsMove(int Count);/* 检查设备是否连接,设备拔出后再次插入会自动连接* 传入参数类型:无* 返回结果类型: 整数型:1:连接; 不为1:未连接*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern int CheckDevice();/*一次组合按键*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern int CombinationKeyPress(String key1, String key2, String key3, String key4, String key5, String key6,int count);/* 所有键盘按键弹起,在复杂的代码中容易忘记哪些键已经按下,该函数可将所有按键都弹起* 传入参数类型:无* 返回结果类型:整型数; 1:成功; 0:失败*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern int KeyUpAll();/* * 组合键按下*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern int CombinationKeyDown(String key1, String key2, String key3, String key4, String key5, String key6);/* * 组合键弹起*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern int CombinationKeyUp(String key1, String key2, String key3, String key4, String key5, String key6);/*  *  鼠标左键按下*  传入参数类型:无*  返回结果类型:整型数*      1:成功*      0:失败*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern int LeftDown();/*  *  鼠标左键弹起*  传入参数类型:无*  返回结果类型:整型数*      1:成功*      0:失败*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern int LeftUp();/*  *  单键按下*  键盘单个键按下,键码表请参考USB键盘*  传入参数类型:字符串,按下的键名*  返回结果类型:整型数*       1:成功0:失败*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern int KeyDown(String Key);/*  *  鼠标左键单击*  键盘键弹起,键码表请参考USB键盘*  传入参数类型:字符串,弹起的键名*  返回结果类型:整型数*       1:成功0:失败*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern int KeyUp(String Key);/*  *  单键弹起*  传入参数类型:Count:整型数,单击次数*  返回结果类型:整型数*       大于0:成功0:失败*/[DllImport("C:\\kmllib.dll", CharSet = CharSet.Auto)]public static extern int LeftClick(int Count);//自定义方法入口/* 鼠标滚轮滚动* 传入参数类型:数字整型(int):Count 滚动次数:Count:整型数,移动次数,范围-127至127,正数向上移动,负数向下移动* 返回结果类型: 整型数->1:成功 ; 0:失败*/public static int Wheels_Move(String Keys){//滚动次数int Count = Convert.ToInt32(Keys);return WheelsMove(Count);}/* 模拟鼠标移动(单纯移动鼠标,不对鼠标的按键进行操作)* 传入参数类型:1.数字整型(int):X:整型数,屏幕的水平坐标   2.数字整型(int):Y:整型数,屏幕的垂直坐标* 返回结果类型:布尔值(Boolean)*      整型数:大于0:成功  ;0:失败*/public static int Simulation_Move(String Keys){//横坐标int X = Convert.ToInt32(Keys.Split(',')[0]);//纵坐标int Y = Convert.ToInt32(Keys.Split(',')[1]);return SimulationMove(X, Y);}/* 模拟鼠标移动(左键按下后移动,适用于滑动验证码处理)* 传入参数类型:1.数字整型(int):X:整型数,屏幕的水平坐标   2.数字整型(int):Y:整型数,屏幕的垂直坐标* 返回结果类型:布尔值(Boolean)*      整型数:大于0:成功  ;0:失败*/public static int Move_To(String Keys){//鼠标左键按下LeftDown();//横坐标int X = Convert.ToInt32(Keys.Split(',')[0]);//纵坐标int Y = Convert.ToInt32(Keys.Split(',')[1]);//移动鼠标int i =SimulationMove(X, Y);//鼠标左键松开LeftUp();return i;}/*  一次组合按键* 传入参数类型:整型数,字符串,按下的字符键名1;字符串,按下的字符键名2* 返回结果类型:整型数; 1:成功; 0:失败**/public static int CombinationKey_Press(String Keys){var status = CombinationKeyPress(Keys.Split(',')[1], "", "", Keys.Split(',')[0], "", "",1);return status;}/* 键盘组合键按下* 传入参数类型:整型数,字符串,按下的字符键名1;字符串,按下的字符键名2* 返回结果类型:整型数; 1:成功; 0:失败**/public static int CombinationKey_Down(String Keys){var status = CombinationKeyDown(Keys.Split(',')[1],"", "", Keys.Split(',')[0], "", "");KeyUpAll();return status;}/* 键盘组合键弹起* 传入参数类型:整型数,字符串,按下的字符键名1;字符串,按下的字符键名2* 返回结果类型:整型数; 1:成功; 0:失败**/public static int CombinationKey_Up(String Keys){return CombinationKeyUp(Keys.Split(',')[0], Keys.Split(',')[1], "", "", "", "");}/***  MoveClickMouseAndInputKey  方法名*  特殊情况ukey:内置【模拟人工移动鼠标】+【鼠标点击】+【模拟按键输入】*  [Simulation_Move(keys)]+[LeftClick(1)]+SimulationPressKey(keys)*  参数输入介绍: x坐标,y坐标,要输入的字符串内容*                 100,200,验证ukey密码框输入*/public static int MoveClickMouseAndInputKey(String Keys) {//模拟人工移动鼠标//横坐标int X = Convert.ToInt32(Keys.Split(',')[0]);//纵坐标int Y = Convert.ToInt32(Keys.Split(',')[1]);SimulationMove(X, Y);//鼠标点击LeftClick(1);//模拟输入return SimulationPressKey(Keys.Split(',')[2]);}//主方法入口 static void Main(String[] args){try{Type t = typeof(MouseEventFlag);//参数为所要使用的函数所在的类的类名。MethodInfo mt = t.GetMethod(args[0]);Object successfulObj = false;if (CheckDevice() == 1){Console.WriteLine("幽灵键鼠设备已连接!");}else if (OpenDevice() != true){throw new Exception("设备未连接,请插入符合要求的幽灵键鼠硬件!!");}if (mt == null){throw new Exception($"没有获取到相应的【{args[0]}】函数!!");}else{if (args.Length >1){String Keys = "";for (int i = 1; i < args.Length; i++){if (i == 1){Keys +=args[i];}else {Keys += " " + args[i];}}successfulObj = mt.Invoke(null, new object[] { Keys });}else{successfulObj = mt.Invoke(null, null);}}Console.WriteLine(successfulObj.ToString());}catch (Exception e){Console.WriteLine($"异常内容为:{e.Message};{e.InnerException};{e.StackTrace};时间为:{DateTime.Now}\n");}}}
}

幽灵键鼠常用方法调用相关推荐

  1. python同时监控键鼠教程

    小白也能看懂的python同时监控键鼠教程 虽然pynupt模块也可以实现,但监控不完全(主要是不会) 这里我主要使用多个模块来实现互不冲突的监控 首先用到的模块就是threading#使键鼠监控同时 ...

  2. stm32cubx-usb-hid键鼠

    stm32cubx-usb-hid键鼠 发布版本: 1.0 文件密级: 公开资料 前言 概述 读者 本文档(本指南)主要使用于以下工程师: 软件开发工程师 产品版本 修订记录 日期 版本 作者/邮箱 ...

  3. Barrier多计算机共享键鼠详细教程(可跨平台)+使用感受

    满足需求 如果你希望仅用一套键鼠控制两台及以上的电脑,那么这款免费开源的工具Barrier你一定不能错过!可以在Windows.macOS和Linux之间共享同一套鼠标和键盘,不仅让你摆脱在不同键鼠间 ...

  4. 自动键鼠:全中文脚本

    自动键鼠是一个全中文编程的脚本工具.它非常的易于使用,无需任何编程知识就能创建一个功能强大的脚本.它能够录制并重复鼠标和键盘动作,让您无需手动地执行某些重复的任务.通过智能点击功能,您能够使用图片来定 ...

  5. Pygame按键编码及基本键鼠侦测

    Pygame按键编码及基本键鼠侦测 目录 Pygame按键编码 键鼠侦测 Pygame按键编码 按键 Pygame按键编码 回退 K_BACKSPACE 制表 K_TAB 清除 K_CLEAN 回车 ...

  6. C++ 模拟键鼠详细总结

    简介 需要使用user32.dll,所以项目中要引入静态链接库 user32.lib #include <Windows.h> 鼠标输入官方例程 下面这些操作,一定要看官方文档,这样能少走 ...

  7. Unity --- 基本键鼠操作

    1.我们对于键盘和鼠标的点击操作相当于在输入数据,这些输入的数据都会被存储到对应的数据缓存区中供程序读取和调用 而我们所谓的游戏程序中的键鼠操作其实就是当我们通过键盘输入了特定数据之后,游戏程序马上从 ...

  8. 2.4g 无线键鼠对码软件_富德iK8900无线键鼠套装评测:静音纤薄

    作为世界三大无线键鼠品牌之一的富德科技,自2008年成立以来就专注于无线键鼠领域.凭借扎实的品质.出色的做工以及时尚潮流的外观设计,获得了众多年轻消费者的青睐.更与时下较为流行的动漫IP合作,推出联名 ...

  9. 手机键鼠映射软件_吃鸡,我最专业!---盖世小鸡键鼠吃鸡套装评测

    Hello大家好,欢迎浏览这篇评测贴.首先很荣幸能够参与本期的评测,毕竟如此炫酷富有科技感的装备是可遇而不可求的,所以不论是得知入选还是收到快递开箱的时候,心情都是无比激动.话不多说,接下来就让我带你 ...

最新文章

  1. python使用numpy生成指定步长的浮点数序列
  2. python使用正则表达式去除句子中的重复词
  3. C++——友元 friend
  4. Java中树的存储结构实现
  5. imagecomposition工程分析
  6. Java实现回形数,只利用数组、循环和if-else语句
  7. Java 自定义排序 Comparator
  8. 颠覆与重构——戴尔助力徐工集团等行业客户实现业务转型
  9. 从安装到部署的Cordova iOS应用开发说明
  10. 初学java andriod 软件安装与配置问题
  11. python load
  12. Zabbix安装界面显示PHP time zone 为“红色”的解决办法
  13. Windows10批处理文件中用regedit导入注册表文件失败的原因和解决办法
  14. Opencv—利用findContours函数找圆环,并标出(简单层级)
  15. 读Leveraging Unimodal Self-Supervised Learning for Multimodal AVSR论文
  16. js 详解es6 let TDZ(暂时性死区)
  17. Open3d读写ply点云文件
  18. 快速进行服务接口监控
  19. 广东工业大学2017新生赛(决赛)-网络同步赛 1007 白色相簿的季节【全错位排列】
  20. 单片机外设系列之一时钟芯片DS1302

热门文章

  1. ubuntu下使用ps查看进程信息
  2. mysql mvcc实现乐观锁_MVCC-乐观锁
  3. OC置换可以混合、相乘、相加吗?多个置换贴图叠加
  4. php mysql 查询 limit,mysql limit查询优化分析_PHP
  5. 教程 | 10分钟成为简笔画达人,你也可以!3
  6. 【每日早报】2019/11/06
  7. java runnable 参数_Java向Runnable线程传递参数方法实例解析
  8. #红包节奏#领2019天猫618超级红包方法
  9. linux下批量修改文件dos格式为unix格式
  10. 手机如何能看java文件管理器_基于安卓Android的手机文件管理器的设计(AndroidStudio)...