Какую команду оболочки я могу использовать в Windows (XP или старше), чтобы открыть диалоговое окно печати изображения?

В Python, если я хочу открыть / запустить браузер по умолчанию с помощью оболочки, я могу импортировать os и выполнить "www.google.com". Есть ли подобный способ открыть диалоговое окно печати изображений для данного image.jpg, как если бы он щелкнул правой кнопкой мыши по нему и выбрал печать в контекстном меню, который я могу использовать для вызова этой подпрограммы из python???

Спасибо.

2 ответа

Ты можешь позвонить win32api.ShellExecute с "print" глагол. Пример: http://timgolden.me.uk/python/win32_how_do_i/print.html

По крайней мере, в моей системе Windows (Windows 7), кажется, нет тривиального способа достичь этого. Я обнаружил, что наивный вызов ShellExecute, похоже, ничего не сделал. Тогда я попробовал это:

import time, win32api
win32api.ShellExecute(0, "print", "test.jpg", None, None, 0)
time.sleep(5)

С добавлением звонка sleep() диалоговое окно появилось, но когда процесс python завершился, диалоговое окно печати также закрылось.

Так как диалоговое окно печати работает в процессе, я не вижу сложного ожидания, чтобы ждать его. Если бы он запускался как отдельный процесс, ждать этого процесса было бы тривиально.

Я полагаю, что хакерское решение было бы запустить это через pythonw так что никакой консоли не появилось, и долго не спал. Вы можете столкнуться с некоторыми случайными процессами Python, которые бесцельно спят, но это может не иметь значения.

Другие вопросы по тегам