1

Тема: Принтер: сменить ориентацию печати с Книжной на альбомную

Приветствую всех!
Совсем недавно мне рассказали об этой удивительной штуке 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 и там брать\изменять на то что надо, но пока знаний не хватает
ЗЫ: думал через реестр делать, но там я нышел только принтер по умолчанию и порт, а вот ориентация не выводится.

2

Re: Принтер: сменить ориентацию печати с Книжной на альбомную

ребят, я конечно не ханжа, но вы тут натасканы поболее - неужели ни у кого варианта нет сделать это получше?))

3

Re: Принтер: сменить ориентацию печати с Книжной на альбомную

А что в этом удивительного? Задача у вас решена. Понятно, что вы хотите лучше и изящнее, но что конкретно это означает? Если вы пытались использовать Winprint.dll, то как именно и что именно не получилось? Давайте конкретные вопросы.

4

Re: Принтер: сменить ориентацию печати с Книжной на альбомную

YMP пишет:

А что в этом удивительного? Задача у вас решена. Понятно, что вы хотите лучше и изящнее, но что конкретно это означает? Если вы пытались использовать Winprint.dll, то как именно и что именно не получилось? Давайте конкретные вопросы.

Познания мои не очень глубоки, посему вопрос - Как корректно сделать DllCall? Какие аргументы прописать?

5

Re: Принтер: сменить ориентацию печати с Книжной на альбомную

Это зависит от того, какую функцию вы вызываете.

6

Re: Принтер: сменить ориентацию печати с Книжной на альбомную

YMP пишет:

Это зависит от того, какую функцию вы вызываете.

Хорошо, тогда возникают следующие вопросы:
1.Какие ф-ии нужны для работы с данной длл
2.Как\где их вычитать или вычислить
3.Какие аргументы пиать в ДллКол

7

Re: Принтер: сменить ориентацию печати с Книжной на альбомную

Где-то должно быть описание функций из этой библиотеки. Вам нужно его найти, почитать описание функций и выяснить, есть ли там пригодные для решения вашей задачи. Согласитесь, что программированием тут никаким не пахнет, это чистый гуглёж.

Или можно подождать человека, который работал с этой DLL и уже всё это знает. Не факт, что он здесь есть, так что я бы посоветовал действовать пока самостоятельно. А с оформлением вызова функций вам помогут, конечно.

Кстати, раз вы уже думали про использование этой библиотеки, то ведь не просто так. Какая-то инфа у вас есть.