java修改windows註冊表設置程序自動運行

需要修改的註冊表項 
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run]  開機自動運行程序
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunOnce] 開機自動運行程序 且 僅運行一次
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunServices] 開機自動運行服務

JDK 從1.4開始提供操作 Windows 的 API 是 Preferences,因爲這個 API 也是跨平臺的,所功能比較弱,在 Win32 下只能用來操作 HKCU/Software/JavaSoft 和 HKLM/Software/JavaSoft 下及子節點的數據。

自由訪問註冊表其他鍵的值光用 Java 是做不到的,必然方案就是 JNI,這裏我使用的是Windows Registry API Native Interface http://www.trustice.com/java/jnireg/index.shtml 下的 registry-3.1.3.zip(包含源代碼)。可以利用它訪問、修改、導出註冊表項到文件等。解開 registry-3.1.3.zip,在 bin 目錄中可以看到兩個文件 ICE_JNIRegistry.dll 和 registry.jar,動態庫就是本地代碼實現。

com.ice.jni.registry.Registry.main() 就是 registry 的示例代碼,動態庫 ICE_JNIRegistry.dll 也是在這個類的靜態塊中被加載的,記得要把 ICE_JNIRegistry.dll 放在它能夠被加載的位置上,比如你把 registry-3.1.3.zip 解壓到 c:/registry-3.1.3,在命令行下你可以進入到這個目錄中,並執行。

代碼:

發佈了15 篇原創文章 · 獲贊 20 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章