Автор Тема: [Окна, Диалоги] Автоматическое нажатие клавиши при определенном состоянии окна  (Прочитано 236 раз)

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

Оффлайн elviruses [?]

  • Новичок
  • *
  • Сообщений: 2
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Версия AutoIt: 3.7.3

Описание:

Здравствуйте всем... Собственно сразу к делу.

Первая задача: Если окно Блокнота развернуто на весь экран, скрипт должен проверять существует ли в этот момент окно Paint, если существует, то ничего не делает, если нет то нажимает клавишу PAUSE на клавиатуре.

И вторая задача: Если окно Блокнота свернуто, то скрипт проверяет существует ли окно Paint, если существует, то нажимает клавишу PAUSE.

Вот до чего я дошел (это не работает):
Код: AutoIt [Выделить]
While WinActivate("Безымянный — Блокнот")
   $iState = WinGetState("Безымянный — Блокнот")
   If BitAND($iState, 32) Then
      if WinActivate("Безымянный - Paint") Then
         ContinueLoop
      Else
        Send("{PAUSE}")
      EndIf
   Else
      ContinueLoop
   EndIf
WEnd
 


Я уже устал, не могу никак сделать... Помогите плиз...

« Последнее редактирование: Ноябрь 09, 2017, 09:34:41 от elviruses, Причина: Добавление шапки »

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


Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3989
  • Репутация: 960
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0

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




Помечен как лучший ответ пользователем elviruses Отправлен Ноябрь 12, 2017, 13:47:15

Оффлайн gunter123 [?]

  • Новичок
  • *
  • Сообщений: 36
  • Репутация: 15
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Здравствуйте. Попробуйте вот так:
Код: AutoIt [Выделить]
While Sleep(100)
   If Not WinGetHandle("[REGEXPTITLE:Блокнот]") Then ContinueLoop
   $iState = WinGetState("[REGEXPTITLE:Блокнот]")
   If BitAND($iState, 32) Then
      If WinGetHandle("[REGEXPTITLE:Paint]") Then
         ContinueLoop
      Else
        Send("{PAUSE}")
      EndIf
   ElseIf BitAND($iState, 16) AND WinGetHandle("[REGEXPTITLE:Paint]") Then
      Send("{PAUSE}")
   EndIf
WEnd

Is it future or is it past?

Оффлайн elviruses [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Извините что так долго, код скрипта gunter123 зациклил его так что пока не откроешь блокнот кнопка PAUSE будет нажимается бесконечно, поэтому я сделал чуток по другому, вот код:

Код: AutoIt [Выделить]
While Sleep(100)
   If Not WinGetHandle("[CLASS:Notepad]") Then ContinueLoop
   $iState = WinGetState("[CLASS:Notepad]")
   If BitAND($iState, 32) Then
      If WinGetHandle("[CLASS:MSPaintApp]") Then
         ContinueLoop
      Else
        Send("{PAUSE}")
      EndIf
   ElseIf BitAND($iState, 16) AND WinGetHandle("[CLASS:MSPaintApp]") Then
      WinClose("[CLASS:MSPaintApp]")
   EndIf
WEnd
 


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


 

Похожие темы

  Тема / Автор Ответов Последний ответ
10 Ответов
4758 Просмотров
Последний ответ Март 25, 2011, 21:35:25
от ER0N
2 Ответов
2810 Просмотров
Последний ответ Август 23, 2011, 18:35:31
от Viktor1703
13 Ответов
5402 Просмотров
Последний ответ Август 29, 2011, 21:00:21
от madmasles
21 Ответов
15377 Просмотров
Последний ответ Март 08, 2012, 19:41:06
от d_stor
2 Ответов
2408 Просмотров
Последний ответ Июнь 29, 2012, 04:58:12
от Pat4005
4 Ответов
5236 Просмотров
Последний ответ Октябрь 09, 2013, 23:27:12
от nightfmare
3 Ответов
944 Просмотров
Последний ответ Август 17, 2014, 14:57:31
от firex
36 Ответов
8884 Просмотров
Последний ответ Март 09, 2016, 14:28:11
от Alexey
1 Ответов
1182 Просмотров
Последний ответ Февраль 06, 2015, 18:40:21
от InnI
3 Ответов
1790 Просмотров
Последний ответ Ноябрь 21, 2015, 00:07:57
от fortages