`
alfusen
  • 浏览: 2677 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java调用WinIO

 
阅读更多
    项目需要对安全控件进行写入,之前第一想法就是用windows自带的user32.dll接口写入,该dll中有个神器方法key_event,可以对安全控件写入,但后来发现,有些安全控件的写入就不成功,由于之前没有这方面的经验,这个问题就放下了,一直没有处理。
    最近无意中在网上看到winIO输入,于是又重新对安全控件进行研究,过程中也遇到一堵堵墙,还好是解决问题了。
    winIO也是提供对window下的驱动级输入控件,有一套dll文件接口。java要对dll进行读写,就必须先导入dll。然后才能调用。在此我还用到了jNative.jar。jnative提供了一套简单的对dll进行访问的接口,使得对调用dll变的很方便。如:
   JNative jnative = new JNative("WinIo32","InitializeWinIo");
在构造一个JNative对象指明调用WinIo32.dll中的InitialLizeWinIo方法,接着设置jNative调用该方法需要传入的参数类型和参数值,最后调用invoke后就可以拿到返回结果。
   winIo在调用之前需要先载入dll,然后进行初始化,之前在进行初始化的时候总是不成功,绕了很多弯路,原来dll文件必须放到java的bin目录下,放在工程下是调用不成功的,切记。

    然后还有一些需要注意的就是,windows分32位和64位,winIO针对这个问题,也提供了32和64位的dll。不过我试了下,在64位的win7下也不是直接调用的winIo64,好像是通过winIo32再调用winIO64的,当时做了一些实验,我删除掉winIo32,调用就不能成功,必须同时把winIO32和winIO64放一起才能成功。当然这是什么原理,我不清楚。还有一个坑,64位windows下,dll必须签名,否则调用也不能成功,从提示信息可以看出来,大概意思是该dll没有签名,调用不安全之类的,当然我们没有签名也是可以调用的,我们只要开启windows测试模式,然后引入签名文件即可,当然这些做完之后要重启,否则不生效,之前不知道,使得我被这个问题也是折磨了很久(具体过程不详述了)。附件提供了dll相关文件(所有需要的文件都在里面了)
    到此为止,世界终于清静了。。。
 
分享到:
评论

相关推荐

    C#通过调用WinIo获取CPU温度

    本文将详细探讨如何使用C#编程语言通过调用WinIo库来实现这一功能。 首先,WinIo是一个Windows驱动程序接口,它允许用户空间的应用程序直接访问计算机的I/O端口和内存地址,而无需经过系统内核的干预。这种方法可以...

    调用WinIo模拟键盘

    4. **恢复端口访问**:完成模拟输入后,应恢复I/O端口的默认访问设置,即调用DeviceIoControl,使用IOCTL_WINIO_RESET_PORT_ACCESS控制代码。 需要注意的是,模拟键盘输入可能涉及安全问题,因此在编写这类代码时要...

    C# WINIO.DLL 虚拟按键 驱动级别

    1. **P/Invoke**:由于`WINIO.DLL`是原生的动态链接库,C#需要使用Platform Invoke(P/Invoke)技术来调用其函数。这涉及到定义对应的函数原型,确保C#代码能够正确地与DLL中的函数交互。 2. **安全性和权限**:...

    VB调用WINIO实现并口通讯的小例子

    2. 在VB代码中,通过声明和调用WINIO库中的函数,如`WinIoOpenPort`来打开并口,`WinIoControl`来执行特定的端口操作,以及`WinIoClosePort`来关闭并口。这些函数需要指定端口地址、操作类型以及传输的数据。 3. ...

    VB调用WinIo.dll模拟按键的例子

    本示例探讨的是如何使用VB调用WinIo.dll这个动态链接库,以实现模拟按键的功能。WinIo.dll是一个特殊的系统级接口库,允许程序员直接与硬件交互,包括控制端口输入输出,这对于模拟键盘输入等任务非常有用。 首先,...

    调用winio实现对并口的控制

    这样,你就可以使用WinIO提供的函数,例如`WinIO_OpenPort`、`WinIO_WritePortByte`、`WinIO_ReadPortByte`等,来打开并口、写入或读取数据。 以下是一个简单的示例,演示如何使用WinIO控制并口: ```cpp #include...

    Delphi使用winio.dll驱动级读取键盘内容的简单示例

    标题中的“Delphi使用winio.dll驱动级读取键盘内容的简单示例”是指通过编程技术,使用Delphi集成开发环境以及winio.dll这个动态链接库来实现对键盘输入的实时监控。这种方法允许开发者绕过操作系统常规的键盘事件...

    vb6.0中使用WinIO.dll操作DI DO

    在《Visual Basic 6.0 使用WinIO.Dll操作IO》文档中,应该详细阐述了如何在VB6.0项目中集成和使用WinIO.dll,包括示例代码和常见问题解答。通过阅读这份文档,开发者可以更好地理解WinIO.dll的工作原理以及如何在...

    Delphi使用winio.sys驱动级读取键盘内容的简单示例

    - `WinIo.dll`:WinIO驱动的动态链接库文件,供Delphi应用程序调用。 - `KeyGet.dpr`:Delphi的项目源文件,通常包含程序的主入口点和项目初始化代码。 - `KeyGet.exe`:编译后的可执行文件,是完成键盘读取功能...

    WinIO 资源包(含winio.lib、winio.h、winio.sys、winio.dll文件)64/32 位

    当你在项目中使用WinIO时,通过链接此库,你的程序就能调用WinIO提供的接口来执行底层I/O操作。静态链接库的好处在于,所有需要的代码都会被嵌入到最终的可执行文件中,无需在运行时依赖额外的DLL。 2. winio.h:这...

    winio的使用说明及文件(winio.vxd winio.sys winio.dll)

    3. **winio.dll**:这是WinIO的用户模式动态链接库,包含了调用驱动的API接口,供应用程序使用。 ### 使用WinIO 在使用WinIO之前,通常需要安装`winio.sys`驱动,并确保`winio.dll`在系统的PATH环境变量中。`winIO....

    winio 源代码

    - **内存映射**:WinIo可以将物理地址直接映射到进程地址空间,使用户模式程序能够直接访问硬件内存,而无需通过系统调用或驱动程序。 - **硬件交互**:通过WinIo,程序员可以直接与硬件进行通信,例如配置PCI设备...

    winio的使用说明及文件 winio.vxd winio.sys winio.dll - 下载

    阅读这个文件对于理解和使用WinIO至关重要,因为它将提供如何配置、如何调用API以及如何解决可能出现的问题的具体指导。 总之,WinIO是一个强大的工具,它为开发者提供了深入操作系统底层的能力。不过,由于涉及到...

    C/C++使用WinIO读取CMOS数据代码

    本篇将详细讲解如何使用C/C++通过WinIO函数来实现CMOS数据的读取。 首先,我们需要了解WinIO是一个低级I/O库,它允许程序直接访问硬件端口,这对于与硬件交互的操作,如读写CMOS,非常有用。在Windows操作系统中,...

    WinIo3.0在64位系统下的使用

    加载动态库和调用初始化函数是使用WinIo3.0的关键步骤。通常,我们需要先加载WinIo3.0的动态链接库(dll),然后调用初始化函数,如`WinIo_Init`,以注册驱动并准备进行I/O操作。在64位系统中,可能由于权限问题导致...

    winio驱动使用库,包含winio32和winio64使用库.zip

    WinIO库是基于Windows操作系统的内核模式驱动程序,它允许用户在用户模式下直接访问硬件端口和内存地址,而无需通过传统的系统调用。这对于需要高性能、低延迟或者对硬件直接控制的应用程序来说非常有用,比如调试器...

    使用WinIo获取CPU温度

    使用WinIo获取CPU温度#include <windows.h> #include "WinIo.h" #pragma comment(lib,"WinIo.lib") int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)...

    VC 使用WinIo.dll的实例源码.rar

    VC 使用WinIo.dll的实例源码,里面包括了WinIo.dll的源码,调用实例方面,包括了C源码和VB的实例源码,如演示截图所示的是VB调用的例子界面。关于WinIo.dll组件的功能,请查阅相关资料。实例包中同时还附有WinIo.dll...

    winio_WinIo64.dll_WinIolibrary_winio32.sys_winIO32.dll_WinIo64_源

    WinIo32.dll和WinIo64.dll是用户模式下的接口库,它们提供了API供应用程序调用,以执行诸如读取、写入等基本I/O操作。这些API函数通常包括初始化、打开设备、读写端口、关闭设备等功能。开发者可以通过这些API,轻松...

Global site tag (gtag.js) - Google Analytics