Какую команду оболочки я могу использовать в 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, которые бесцельно спят, но это может не иметь значения.