Автор Тема: Заменить окно "Подождите" (ожидание запуска) на другое окно  (Прочитано 703 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн snakeru54 [?]

  • Новичок
  • *
  • Сообщений: 2
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Здравствуйте.
Я - новичок. Осилил запуск программ с помощью autoit. в скриптах научился Send('[что_нибудь]') и т. д.
Подскажите, как можно реализовать следующую задачу:
скрыть окно ожидания (или заменить на другое окно) подключения к серверу. (Ну, это просто частный случай).
При запуске программы подключения к удалённому рабочему столу появляется окно "Подключение к... бла-бла-бла".
Возможно ли скрыть это окно или заменить на что-нибудь своё?
Скажем, "прогресс-бар", статический логотип или анимированную иконку?
И чтобы при запуске программы "моё" окно закрылось.

Не жду от вас кода.
Хотелось бы получить логический алгоритм для решения задачи.
Например, для анимированной иконки мне нужна обычная ГИФ-ка, да?

С уважением.

Русское сообщество AutoIt


Оффлайн Alofa [?]

  • Скриптер
  • ****
  • Сообщений: 995
  • Репутация: 128
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
... скрыть окно ожидания...
Ну для начала его нужно дождаться, а для этого его нужно правильно определить. И лишь после того, как вы получите его дескриптор, соответственно скрыть или свернуть.
----------------------- Вы думаете, всё так просто? Да, всё просто. Но совсем не так. -----------------------
Альберт Эйнштейн.

Оффлайн snakeru54 [?]

  • Новичок
  • *
  • Сообщений: 2

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
соответственно скрыть или свернуть.

Благодарю за ответ. Просто и ясно.
Но я столкнулся с другой проблемой. Не знаю, как её решить.

Код: AutoIt [Выделить]
$sFileExe = '"специальная-супер-сложная-строка"'
Run($sFileExe)
WinWaitActive("Внимание")
Send("{TAB}")
Send("{ENTER}")
WinWaitActive("Ошибка")
Send("{ENTER}")
 

Код выполняется, всё прекрасно. Но раздражают окна с кнопками, с которыми совершаются действия.
Окно появляется на четверть секунды, получает "ENTER", закрывается, взамен появляется новое окно...
Возможно ли, чтобы пользователю не показывались окна, над которыми совершаются действия?
Вот такой код...
Код: AutoIt [Выделить]
WinWaitActive("Внимание")
WinSetState("Внимание", "", @SW_HIDE)
 

...не работает. То ли я его неправильно написал, то ли смысла во второй строке нету.
Получается, мы сначала ждём появления окна, потом его скрываем, потом жмём ему на кнопки.

Как это безобразие спрятать от пользователя?

Оффлайн Skif_off [?]

  • Новичок
  • *
  • Сообщений: 164
  • Репутация: 9
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
snakeru54
Если не изменяет память, Send() не работает со скрытыми окнами. Попробуйте сначала переместить их за границы экрана с помощью функции WinMove(), а потом шлите нажатия кнопок. Что-то типа
Код: AutoIt [Выделить]
$sFileExe = '"специальная-супер-сложная-строка"'
Run($sFileExe)
$hWnd = WinWaitActive("Внимание")
WinMove($hWnd, "", @DesktopWidth + 20, Default)
Send("{TAB}")
Send("{ENTER}")
$hWnd = WinWaitActive("Ошибка")
WinMove($hWnd, "", @DesktopWidth + 20, Default)
Send("{ENTER}")


Русское сообщество AutoIt

Re: Заменить окно "Подождите" (ожидание запуска) на другое окно
« Ответ #3 Отправлен: Апрель 09, 2017, 08:57:08 »

Оффлайн Alofa [?]

  • Скриптер
  • ****
  • Сообщений: 995
  • Репутация: 128
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
snakeru54 прочитайте всю тему Скрыть MsgBox и нажать на нем кнопку, будет полезно.


Добавлено: Апрель 09, 2017, 12:50:59
... переместить их за границы экрана с помощью функции WinMove()...
Все равно схема-то такая же: сначала ждем окно, а после того как оно прорисуется - WinMove().

Оффлайн Skif_off [?]

  • Новичок
  • *
  • Сообщений: 164
  • Репутация: 9
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Alofa
Не совсем такая же схема: скрыв окно, лишаемся возможности использовать Send(), а ControlSend() в таком случае помогает не всегда, сам сталкивался. С Opt("WinWaitDelay", N) задержки можно минимизировать (сам обычно сразу ставлю 100).

К слову, CreateDesktopEx только для WinVista+.

Оффлайн Alofa [?]

  • Скриптер
  • ****
  • Сообщений: 995
  • Репутация: 128
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
... Не совсем такая же схема...
Такая, такая - я имел в виду, то что окно все равно "маргнет".

... К слову, CreateDesktopEx только для WinVista+.
Там речь-то о _WinAPI_CreateDesktop().

Русское сообщество AutoIt

Re: Заменить окно "Подождите" (ожидание запуска) на другое окно
« Ответ #6 Отправлен: Апрель 11, 2017, 20:48:34 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
6 Ответов
3446 Просмотров
Последний ответ Май 11, 2010, 05:48:53
от Detka.i.alex
9 Ответов
5838 Просмотров
Последний ответ Апрель 05, 2011, 23:21:57
от zlo-kazan
8 Ответов
8742 Просмотров
Последний ответ Апрель 10, 2011, 11:50:11
от madmasles
2 Ответов
2965 Просмотров
Последний ответ Сентябрь 09, 2011, 22:23:19
от Kaster
7 Ответов
3124 Просмотров
Последний ответ Июль 03, 2012, 12:33:39
от j.hlebnikov
3 Ответов
1795 Просмотров
Последний ответ Ноябрь 29, 2012, 17:58:13
от Романыч
3 Ответов
3179 Просмотров
Последний ответ Август 25, 2013, 10:36:23
от Godygadu
8 Ответов
3817 Просмотров
Последний ответ Январь 04, 2014, 19:19:29
от firex
0 Ответов
1020 Просмотров
Последний ответ Январь 04, 2014, 14:58:45
от madmasles
2 Ответов
1966 Просмотров
Последний ответ Февраль 26, 2014, 07:05:04
от Trans