Автор Тема: WinWait, почему не определяет открытое окно?  (Прочитано 159 раз)

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

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн bingo [?]

  • Новичок
  • *
  • Сообщений: 8
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Добрый день.
Запускаю через Run приложение plink.exe.
Хочу проверять открытие окна по команде WinWait, а не просто по тайм-ауту.
Не работает, прохожу дальше по скрипту только по тайм-ауту.
В чем может быть дело?
Пробовал и двойные кавычки, и одинарные, и с полным путем приложения, и программой AutoIt Window Info проверял окно, и CLASS пробовал.
Пока безрезультатно.

Пример ниже:
Local $iPID = Run("plink -ssh -pw 12345 1.2.3.4")
WinWait($iPID, "plink.exe", 15)

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

WinWait, почему не определяет открытое окно?
« Отправлен: Ноябрь 14, 2017, 12:19:04 »

Оффлайн Tempo [?]

  • Осваивающий
  • **
  • Сообщений: 106
  • Репутация: 25
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: WinWait, почему не определяет открытое окно?
« Ответ #1, Отправлен: Ноябрь 14, 2017, 12:35:44 »
bingo
Не думаю что PID подойдет в качестве заголовка окна
И в тексте окна врятли будет название процесса
Заголовки и текст окон

Если нужно получить дескриптор именно по PID тогда используйте _WinAPI_EnumProcessWindows

Оффлайн bingo [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: WinWait, почему не определяет открытое окно?
« Ответ #2, Отправлен: Ноябрь 14, 2017, 12:48:06 »
Я перепробовал все, что только в голову пришло, в вопросе был последний вариант.
Более ранние:
WinWait("plink.exe", "", 15)
WinWait("plink", "", 15)
WinWait("[CLASS:ConsoleWindowClass]", "", 15)

Помечен как лучший ответ пользователем bingo Отправлен Ноябрь 14, 2017, 18:19:33

Оффлайн Tempo [?]

  • Осваивающий
  • **
  • Сообщений: 106
  • Репутация: 25
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: WinWait, почему не определяет открытое окно?
« Ответ #3, Отправлен: Ноябрь 14, 2017, 13:41:04 »
bingo
Пример

Код: AutoIt [Выделить]
#include <Array.au3>

Global $iPID = Run("plink -ssh -pw 12345 1.2.3.4")

_Example1()
_Example2()
_Example3()

Func _Example1()
    Local $hWnd = WinWait(@ScriptDir & "\plink.exe", "", 15)
    MsgBox(0, "Example 1", "HWND: " & $hWnd)
EndFunc   ;==>_Example1

Func _Example2()
    Opt("WinTitleMatchMode", -2)

    Local $hWnd = WinWait("plink.exe", "", 15)
    MsgBox(0, "Example 2", "HWND: " & $hWnd)
EndFunc   ;==>_Example2

Func _Example3()
    _ArrayDisplay(_PIDGetHWND($iPID, "plink.exe"), "Example 3: TITLE | HWND")
EndFunc   ;==>_Example3

Func _PIDGetHWND($iPID, $sTitle = Default, $iCasesense = 0)
    Local $aList = WinList(), $j = 1
    If $iCasesense = Default Then $iCasesense = 0

    For $i = 1 To $aList[0][0]
        If $iPID = WinGetProcess($aList[$i][0]) Then
            If $sTitle <> Default And Not StringInStr($aList[$i][0], $sTitle, $iCasesense) Then ContinueLoop
            $aList[$j][0] = $aList[$i][0]
            $aList[$j][1] = $aList[$i][1]
            $j += 1
        EndIf
    Next

    If $j = 1 Then Return SetError(1, 0, 0)

    $aList[0][0] = $j
    ReDim $aList[$j][2]

    Return $aList
EndFunc   ;==>_PIDGetHWND
 


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

Re: WinWait, почему не определяет открытое окно?
« Ответ #3 Отправлен: Ноябрь 14, 2017, 13:41:04 »

Оффлайн bingo [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: WinWait, почему не определяет открытое окно?
« Ответ #4, Отправлен: Ноябрь 14, 2017, 18:19:24 »
Спасибо большое.
_Example1 работает как и мой вариант, т.е. ждет тайм-аута, а остальные работают как надо.
« Последнее редактирование: Ноябрь 14, 2017, 22:11:06 от Garrett »

Оффлайн Tempo [?]

  • Осваивающий
  • **
  • Сообщений: 106
  • Репутация: 25
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: WinWait, почему не определяет открытое окно?
« Ответ #5, Отправлен: Ноябрь 14, 2017, 18:32:01 »
Спасибо большое.
_Example1 работает как и мой вариант, т.е. ждет тайм-аута, а остальные работают как надо.

А какой у вас полный заголовок у plink.exe? _Example1 расcчитан на то что в заголовке будет полный путь к файлу plink.exe относительно скрипта

Оффлайн bingo [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: WinWait, почему не определяет открытое окно?
« Ответ #6, Отправлен: Ноябрь 14, 2017, 18:45:24 »

А какой у вас полный заголовок у plink.exe? _Example1 расcчитан на то что в заголовке будет полный путь к файлу plink.exe относительно скрипта

Запускаюсь с флешки.
G:\plink.exe

Да, сам скрипт находится там же.
Все в корне.

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3989
  • Репутация: 960
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: WinWait, почему не определяет открытое окно?
« Ответ #7, Отправлен: Ноябрь 14, 2017, 22:10:15 »
bingo

ПредупреждениеЗа нарушение правил форума (пункт В.11):
Цитировать
Любые отрывки AutoIt кода необходимо заключать в тег [autoit] (подробнее), а обычный код соответственно в тег [code] (подробнее). Также большие выдержки текста помещайте под тег [spoiler] (подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.

Скорблю и помню.




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

Re: WinWait, почему не определяет открытое окно?
« Ответ #7 Отправлен: Ноябрь 14, 2017, 22:10:15 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
4719 Просмотров
Последний ответ Декабрь 04, 2009, 13:49:56
от SyDr
0 Ответов
2732 Просмотров
Последний ответ Май 01, 2010, 00:44:00
от Yuriy
7 Ответов
3948 Просмотров
Последний ответ Сентябрь 13, 2011, 00:24:43
от Zaramot
4 Ответов
4357 Просмотров
Последний ответ Декабрь 02, 2011, 22:15:01
от agikon
2 Ответов
2831 Просмотров
Последний ответ Март 19, 2012, 13:17:14
от Radik
11 Ответов
2922 Просмотров
Последний ответ Февраль 09, 2014, 12:22:07
от alex33
3 Ответов
1707 Просмотров
Последний ответ Май 17, 2017, 17:55:01
от ssvih-miaa
5 Ответов
1427 Просмотров
Последний ответ Май 20, 2015, 14:51:37
от Tapok
2 Ответов
673 Просмотров
Последний ответ Июнь 25, 2015, 10:49:05
от inververs
4 Ответов
240 Просмотров
Последний ответ Октябрь 15, 2017, 18:35:09
от n0kk