如何从rundll32调用中捕获结果?

时间:2011-02-22 12:07:26

标签: java windows printing rundll32

我被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调用的结果? (如果我必须在C / JNI中编写一些内容并直接使用Windows API,那就这样吧。但我宁愿不这样做。)

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

1 个答案:

答案 0 :(得分:4)

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

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