我已经被Java中的这个老bug/缺失的特性所困扰:
http://bugs.sun.com/view_bug.do;jsessionid=b2ac8ea11f05c16d948e24d36fb5?bug_id=4673406
问题是,在Windows上,Java标准打印对话框中的“属性”按钮似乎总是禁用的。只有当PrintService.getServiceUIFactory()返回非null的内容时,该按钮才会被启用。不幸的是,Win32PrintService实例总是返回null。一直都是。
通过谷歌搜索,我发现你可以通过调用rundll32来调用Windows自己的打印属性对话框:
rundll32 printui.dll,PrintUIEntry /e /n "name of printer here"我希望我能用这个来绕过Win32PrintService中的bug/缺失功能。但是,我不知道如何查询PrintUIEntry-对话框来获得用户的选择。
换句话说,我怎样才能得到上面rundll32调用的结果呢?(如果我必须用C/JNI编写一些东西并直接使用Windows API,那就这样吧。不过,我宁愿不这样做。)
或者有没有更好的方法来解决这个问题?
发布于 2011-02-22 20:23:00
rundll32不会给你任何返回值,它的退出代码总是零。
我想你得另想办法了。
https://stackoverflow.com/questions/5077907
复制相似问题