2012-05-29 29 views

回答

2

您可以編寫一個批處理/ PowerShell腳本,包括它,在你的應用程序的字體文件一起。然後,你可以用

Runtime.getRuntime().exec(...) 

執行腳本,你會最有可能當你運行它來提高您的應用程序的權限。

至於傳遞密碼。有可能運行cmd.exe,這樣它彈出並支持用戶。您還可以嘗試將exec的返回值分配給Process類對象,該對象具有InputStreamOutputStream屬性。我不知道如何正確地做到這一點。我曾在一個項目中做過一次,幾年前,但我不再擁有代碼。

如果您只需要安裝一次字體,請考慮爲您的Java應用程序創建一個安裝程序來處理它。有一個名爲IzPack的整潔安裝程序生成器,它允許您使用XML創建複雜的安裝程序。它還允許您提高安裝期間運行的可執行文件的權限。這是我做這種事的方式。

+0

但是,該批處理文件必須以管理員身份運行時執行。我怎麼才能做到這一點使用Runtime.getRuntime.exec(...) – Muzy

+0

@ user1423344這將是一個很好的開始:http://stackoverflow.com/questions/1385866/java-run-as-administrator第一件事我嘗試使用runas命令執行腳本http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/runas.mspx?mfr=true – toniedzwiedz

+0

如果我們是然後在下一行使用runas爲管理員索要密碼。我們怎麼能通過這種形式java – Muzy

0

如果您在窗口中進行測試,您可以安裝這些字體的用戶System - > Fonts。 如果您嘗試將其安排在您的程序中,您必須先將它們包含在您的Java資源文件中,以便稍後參考。

希望它幫助〜

0

沒有本地管理權限,可以將自定義字體添加到字體緩存。然後,您的自定義字體將可用於所有應用程序,直到您註銷。 這樣做的Windows API是AddFontResource。通過JNI助手DLL,您可以直接調用它,或者只需執行RegisterFonts實用程序。