Как получить результат от вызова rundll32? - PullRequest
4 голосов
/ 22 февраля 2011

Я был укушен этой старой ошибкой / отсутствующей функцией в Java:

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

Дело в том, что кнопка "Свойства" в стандартном диалоговом окне печати Java, по-видимому, всегдаотключено в Windows.Кнопка активна, только если PrintService.getServiceUIFactory () возвращает что-то, что не является нулевым.К сожалению, экземпляры Win32PrintService всегда возвращают ноль.Всегда.

Погуглив, я обнаружил, что вы можете вызвать диалоговое окно собственных свойств печати Windows, вызвав rundll32:

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

Я надеюсь, что смогу использовать это, чтобы обойти ошибку /отсутствует функция в Win32PrintService.Однако я не знаю, как я могу запросить диалог PrintUIEntry для выбора пользователя.

Другими словами, как я могу получить результат вышеуказанного вызова rundll32?(Если мне нужно что-то написать в C / JNI и использовать Windows API напрямую, пусть будет так. Я бы предпочел этого не делать.)

Или есть лучший способ решить эту проблему?

1 Ответ

4 голосов
/ 22 февраля 2011

rundll32 не возвращает никакого значения возврата, его код выхода всегда равен нулю.

Я думаю, тебе придется найти другой путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...