[Цитировать]

    SunOK
  • 9
  • Стаж: 10 лет
  • Сообщений: 352
  • Репутация:32

    [+] [-]
  • Откуда: Україна, Перлина Поділля
aa Доброго здоровья, форумчане и гости сайта!
Задача сделать из старого принтера сетевой решилась по инструкции с оговорками. Но полной автоматизации нет, из за надоедлевого запроса на одобрям:
,
Кроме того, задан реальный HP LaserJet 1000 для печати, а в окне стоит выбор на виртуальном PDF-принтере:

Кто-то знает как дать положительный ответ на запрос, или как настроить связку RedMon и GhostScript для непосредственной печати на бумагу? read
Вроде имена правильно пишу, но такое впечатление, что идет перебор принтеров и останавливается на последнем в списке (коим и является PDF-XChange в том списке).
Совместимость нельзя задать у 16-битного ЕХЕшника RedMon, и прописанный в свойствах "запуск от Админа" у GhostScript не помогают.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
SunOK, aa
69926 из за надоедлевого запроса на одобрям
Если нужно просто автоматически закрывать окошко, можно это сделать Autoit скриптом
While 1
  WinClose("Обнаружение интерактивных служб")
;  WinKill("Обнаружение интерактивных служб") ; если WinClose не сработает
  Sleep(100)
WEnd
Скрипт с интервалом 100 милисекунд отслеживает окно и закрывает его.

[Цитировать]

    SunOK
  • 9
  • Стаж: 10 лет
  • Сообщений: 352
  • Репутация:32

    [+] [-]
  • Откуда: Україна, Перлина Поділля
nikzzzz, приветствую!
В диалоге печати надо нажать ОК. А вот может ли это сделать скрипт, неизвестно. PrintScreen в пользователя не передался, ходит мнение что окно открывается на рабочем столе System; по крайне мере, идет перестройка видеоадаптера, как при переходе в полноэкранные игры или отключаются Aero-эффекты у темы виндовс.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
69936В диалоге печати надо нажать ОК. А вот может ли это сделать скрипт, неизвестно.
Да, в принципе скриптом нажать нужную кнопку в окне не не проблема, даже в невидимом.
Нужно только иметь информацию об окне и кнопке, ее можно получить с помощью Autoit Windows Info.
Пример нажимания кнопки OK в окне Печать
While 1
  $hHw = WinGetHandle('Печать')
  If Not @error Then
    ControlCommand($hHw, "", '[CLASS:Button; INSTANCE:10]', "Check")
  EndIf
  Sleep(100)
WEnd
Но недостаток такого скрипта - он зависит от системы и языка, "Печать" - только для для русской системы, номер кнопки (INSTANCE:10) я привел для windows 10, в windows 7 он может быть другой.
В принципе, и эти проблемы решаемы, но скрипт сильно усложнится.

[Цитировать]

    UserX
  • 667
  • Стаж: 9 лет 7 месяцев
  • Сообщений: 858
  • Репутация:37

    [+] [-]
69937В принципе, и эти проблемы решаемы, но скрипт сильно усложнится.
Такой скрипт был бы крайне полезен в наборе.
Как-то давно решал эту проблему в батнике с нажатием кнопки "Оk" из диалогового окна одной из запускаемых в батнике программ, но так и не решил. Жму кнопку мышкой вручную. Использование по вашей рекомендации утилитки NirCmd тоже не помогло.
Таким образом, если бы для вас такое оказалось возможным, было бы здОрово, если бы вы создали такой универсальный скрипт. ah

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
UserX,
69948универсальный скрипт.
Это в принципе невозможно, откуда скрипт должен знать, что ему делать?
Можно, конечно, создать отдельно xml или ini файл с нужной информацией, но это не проще, чем просто написать скрипт для конкретной задачи, тем более, что часто нужно не просто щелкнуть по кнопке, но и ввести какую либо инфу в окно, отреагировать на сообщения и в зависимости от этого нажать нужную кнопку и т.п.

[Цитировать]

    UserX
  • 667
  • Стаж: 9 лет 7 месяцев
  • Сообщений: 858
  • Репутация:37

    [+] [-]
69949откуда скрипт должен знать, что ему делать?
Не, ну в качестве параметра, конечно, нужно задавать, например, имя окна и какую кнопку из возможных в нём нужно нажать. Если же кнопка в окне лишь одна или параметр кнопки просто отсутствует, то нажать любую кнопку. Иначе, теоретически, скрипт позакрывает все открытые окна, что не есть гуд.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
UserX,
69950имя окна
Имя окна зависит от языка системы.
69950из возможных в нём нужно нажать.
В окне может быть несколько одноименных кнопок, да и название их опять-же зависит от языка системы.
Да и нажать можно в чужом окне.
Нет, универсального скрипта не получится.

[Цитировать]

    SunOK
  • 9
  • Стаж: 10 лет
  • Сообщений: 352
  • Репутация:32

    [+] [-]
  • Откуда: Україна, Перлина Поділля
кажется навесными утилитами не решить. Это похоже на защищённый рабочий стол, куда выводится диалоговое окно и нет доступа другим прогам. Исхоя из того, что я нажал принтскрин, а вернувшись в пэинт скриншота не оказалось в буфере обмена, надо полагать что аутоит не узнает где диалоговое окно.
Надеюсь завтра будет минутка проверить окружение при диал.окне.

[Цитировать]

    SunOK
  • 9
  • Стаж: 10 лет
  • Сообщений: 352
  • Репутация:32

    [+] [-]
  • Откуда: Україна, Перлина Поділля
Это реально изолированный рабочий стол учётки System. В него/из него только файлы могут копироваться. ЕХЕшники через диалог "Открыть файл", и то если повезёт запустить ИЕ (спасибо настройкам PDF-XChange)


Показать сообщения:    

Текущее время: 13-Дек 19:48

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы