Тема: Принтер: сменить ориентацию печати с Книжной на альбомную
Приветствую всех!
Совсем недавно мне рассказали об этой удивительной штуке AutoHotkey и я захотел решить вот такую задачку - при печати из доса некоторые программы печатают страницу в книжной ориентации, т.е. режут большие таблицы.
У себя на компе я решил задачу следующим способом:
#к:: ; вешаем скрипт на Win+к
WinMinimizeAll ;сворачиваем все окна
Run ::{2227a280-3aea-1069-a2de-08002b30309d} ; открываем окно с принтерами и факсами
Sleep 600 ; спим ибо слишком быстрая манипуляция глючит
Send {Down} ; один раз вниз
Send {Up} ; один раз вверх чтобы активировать верхний принтер
Sleep 600 ; спим ибо слишком быстрая манипуляция глючит
Send {Alt} ; активируем верхнее меню - Файл
Send {Down 12} ; выбираем свойства этого принтера
Send {Enter} ; заходим в его свойства
IfWinExist,BrotherDCP-7057 Свойства ; если окно открылось
{
WinActivate ; переходим в него и делаем активным только его
}
Sleep 600 ; спим ибо слишком быстрая манипуляция глючит
ControlClick,Button3,BrotherDCP-7057 Свойства ;выбираем кнопку перехода в настройку печати
Sleep 600 ; спим еще раз чтоб не висло
IfWinExist,Принтеры и факсы ;если предыдущее окно открыто
{
WinClose ; закрываем его
}
Sleep 600 ; опять спим...ну не выспался я
IfWinExist,BrotherDCP-7057 Настройка печати ; если окно открылось
{
WinActivate ; переходим в него и делаем активным только его
}
ControlClick,Button11,BrotherDCP-7057 Настройка печати ; выбираем нужный радиобаттн
Sleep 600 ;спим
ControlClick,Button7,BrotherDCP-7057 Настройка печати ; жмем Ок
IfWinExist,BrotherDCP-7057 Свойства ; если окно открылось
{
WinActivate ; переходим в него и делаем активным только его
}
ControlClick,Button5,BrotherDCP-7057 Свойства ; жмем Ок
этот скрипт выводит окно с принтерами выбирает верхний, заходит в свойства, потом в настройки печати, затем выбирает альбомную ориентацию, и кликает ок на всех окнах.
Но!
Хотелось бы решить более изящно ![]()
Думал подключиться к библиотеке Winprint.dll и там брать\изменять на то что надо, но пока знаний не хватает ![]()
ЗЫ: думал через реестр делать, но там я нышел только принтер по умолчанию и порт, а вот ориентация не выводится.

