4

我被 Java 中的这个旧错误/缺失功能所困扰:

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

问题是 Java 标准打印对话框中的“属性”按钮在 Windows 上似乎总是被禁用。该按钮仅在 PrintService.getServiceUIFactory() 返回非空值时启用。不幸的是 Win32PrintService 实例总是返回 null。总是。

通过谷歌搜索,我发现您可以通过调用 rundll32 来调用 Windows 自己的打印属性对话框:

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

我希望我可以使用它来规避 Win32PrintService 中的错误/缺失功能。但是,我不知道如何查询 PrintUIEntry 对话框以获取用户的选择。

换句话说,我怎样才能得到上述 rundll32-invocation 的结果?(如果我必须用 C/JNI 编写一些东西并直接使用 Windows API,那就这样吧。不过,我宁愿不这样做。)

或者有没有更好的方法来解决这个问题?

4

1 回答 1

4

rundll32 不给你任何返回值,它的退出代码总是为零。

我认为你必须找到另一种方法。

于 2011-02-22T12:22:59.737 回答