スポンサーリンク

JNA JavaからWin32API

JNAを使用し、JavaからWin32APIのメッセージボックスを表示する

 

import com.sun.jna.Native;
import com.sun.jna.win32.StdCallLibrary;
 
public class Hello {
    public interface User32 extends StdCallLibrary {
        User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);
        int MessageBoxA(int hwnd, byte[] text, byte[] caption, int type);   //①
        int MessageBoxA(int hwnd, String text, String caption, int type);   //②
    }
 
    public static void main(String[] args) {
        User32 user32 = User32.INSTANCE;
    	try{
	        user32.MessageBoxA(0, "こんにちは".getBytes(), "◎★♪".getBytes(), 0);
	        user32.MessageBoxA(0, "Hello World", "MessageBox", 0);
    	}
    	catch( Exception e ){
    		
    	}
    }
}

 

※全角文字を表示するときは①、半角英数の時は②を使用する。さもないと文字化けする。

 

 

前準備

.;C:\dev\JNA\jna.jar;C:\dev\JNA\jna-platform.jar;

のように、jna.jar,jna-platform.jarをCLASSPATHに追加する。

※コンパイル時・実行時に -cpオプションで追加しただけでは不十分な場合がある

 

コンパイル

javac Hello.java

 

実行

java Hello

 

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: