4

私はJavaのこの古いバグ/欠落機能に噛まれてきました:

http://bugs.sun.com/view_bug.do;jsessionid=b2ac8ea11f05c16d948e24d36fb5?bug_id=4673406

重要なのは、Javaの標準の印刷ダイアログの[プロパティ]ボタンは、Windowsでは常に無効になっているように見えることです。このボタンは、PrintService.getServiceUIFactory()がnullではないものを返した場合にのみ有効になります。残念ながら、Win32PrintServiceインスタンスは常にnullを返します。いつも。

グーグルで検索すると、rundll32を呼び出すことで、Windows独自の印刷プロパティダイアログを呼び出すことができることがわかりました。

rundll32 printui.dll,PrintUIEntry /e /n "name of printer here"

これを使用して、Win32PrintServiceのバグ/欠落機能を回避できることを願っています。ただし、PrintUIEntryダイアログでユーザーの選択を照会する方法がわかりません。

つまり、上記のrundll32呼び出しの結果を取得するにはどうすればよいですか?(C / JNIで何かを記述し、Windows APIを直接使用する必要がある場合は、そうしてください。ただし、そうではありません。)

または、この問題を解決するためのより良い方法はありますか?

4

1 に答える 1

4

rundll32 は戻り値を返しません。その終了コードは常にゼロです。

別の方法を見つける必要があると思います。

于 2011-02-22T12:22:59.737 に答える