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

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

Спасибо.

Ответы [ 2 ]

3 голосов
/ 10 марта 2011

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

2 голосов
/ 10 марта 2011

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

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

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

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

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

...