使用JNA 调用WINDOWS API

简介: 在我接触JNA之前一直以为调用本地链接库函数的时候一定要借助JNI或者SWT来实现,一日中无意看到JNA,发现它也可以实现这类调用,于是下回来按网站上的例子试试了 还不错,因此还有点兴趣了,于是又自己写了 2个发挥了一下。

在我接触JNA之前一直以为调用本地链接库函数的时候一定要借助JNI或者SWT来实现,一日中无意看到JNA,发现它也可以实现这类调用,于是下回来按网站上的例子试试了 还不错,因此还有点兴趣了,于是又自己写了 2个发挥了一下。

GetLogicalDriveStringsA【获取本地系统逻辑盘符】

GetSystemDirectoryA 【获取系统目录】

public   interface  Kernel32  extends  Library {

    Kernel32 INSTANCE 
=  (Kernel32) Native.loadLibrary( " kernel32 " , Kernel32. class );
  
int  GetLogicalDriveStringsA( int  length, byte [] buffer);
    
int  GetSystemDirectoryA( byte [] buffer, int  size);
}

 调用的方式为:

 

public   class  MainDemo  ... {

    
public static void main(String[] args) ...{
        Kernel32 lib 
= Kernel32.INSTANCE;
        
byte[] buffer2=new byte[100];
        lib.GetLogicalDriveStringsA(buffer2.length
/2,buffer2);
               
for(byte bt : buffer2)
       
...{
            System.out.print((
char)bt);
       }

         System.out.println();

        
byte[] buffer = new byte[50];

 lib.GetSystemDirectoryA(buffer, 
50);
          
for(byte bt : buffer)
       
...{
            System.out.print((
char)bt);
       }



}



}

 

 

 

目录
相关文章
|
6月前
|
监控 编译器 API
[笔记]Windows核心编程《二十二》注入DLL和拦截API(一)
[笔记]Windows核心编程《二十二》注入DLL和拦截API
143 0
|
3月前
|
API Python Windows
python3应用windows api对后台程序窗口及桌面截图并保存的方法
python3应用windows api对后台程序窗口及桌面截图并保存的方法
93 1
|
6月前
|
存储 缓存 API
[总结]Windows Crypto API 自动更新根证书问题原因及解决方案
[总结]Windows Crypto API 自动更新根证书问题原因及解决方案
|
6月前
|
API Windows
[笔记]Windows核心编程《番外篇》常用的NT API及使用示例
[笔记]Windows核心编程《番外篇》常用的NT API及使用示例
|
6月前
|
安全 API Windows
[笔记]Windows核心编程《二十二》注入DLL和拦截API(三)
[笔记]Windows核心编程《二十二》注入DLL和拦截API(三)
133 0
|
6月前
|
消息中间件 编解码 安全
[笔记]Windows核心编程《二十二》注入DLL和拦截API(二)
[笔记]Windows核心编程《二十二》注入DLL和拦截API(二)
103 0
|
6月前
|
API C++ Windows
Windows API Hooking 学习
Windows API Hooking 学习
|
10月前
|
缓存 安全 Unix
C/C++使用Windows的API实现共享内存以及同步
C/C++使用Windows的API实现共享内存以及同步
764 0
|
10月前
|
安全 Java 编译器
如何用 Go 调用 Windows API | 青训营笔记
如何用 Go 调用 Windows API | 青训营笔记
810 0
|
11月前
|
API Windows
刘金玉的零基础VB教程073期:windows API使用入门 sleep
刘金玉的零基础VB教程073期:windows API使用入门 sleep
133 0