因為我自己是玩 Visual Basic 6.0出身的當初玩 VB 玩到
很無聊,是一直到無意間買到 WinAPI on VB6 的書,才
開始繼續對 VB 有興趣。一直到接觸了 Java 之後,還是對
Windows API 抱著很大的興趣,一直想要用 Java 呼叫 WinAPI
但是都不得其門而入。過了一年多,現在想想當初真的很好笑
Java 操作 WinAPI 根本破壞了 Java 本身最大的特點:跨平台。
現在用 Java 呼叫 WinAPI 已經是不得以的情況才會用了....
如果有人想要用 Java 呼叫 Windows API,就參考看看吧。
【本文開始】
先備知識:Java、C、WindowsAPI
使用軟體:Dev C++ (Windows)
當安裝好 JDK 和 Dev C++ 之後,要先作一件事情,請到 JDK 安裝
目錄(我的例子是安裝在C:\Program Files\Java\jdk1.6.0_17)
找到 include 資料夾,並把裡面的所有檔案,都複製到 Dev C++ 安
裝目錄下的 include 中。這樣子 Dev C++ 在編譯檔案的時候,才抓的
到需要的 Header File。
因為 Java 不能透過 JNI 直接呼叫 Windows API,必須得另外撰寫一個
DLL 去連結 WinAPI。所以這邊要利用 自己撰寫的 DLL 去連結 WinAPI。
首先編寫好 Java 部分的程式,假設這邊要呼叫 Windows API 的 ShowWindow
方法,讓輸入的 hWnd 視窗隱藏起來:
/* In File WinAPI.java */
public class WinAPI
{
static{System.loadLibrary("
WinAPI");}
public static
native int setWindowVisible(int hWnd,int state);
}