Что нового

[Окна, Диалоги] Автоматическое нажатие клавиши при определенном состоянии окна

elviruses

Новичок
Сообщения
3
Репутация
0
Версия AutoIt: 3.7.3

Описание:

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

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

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

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


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

gunter123

Продвинутый
Сообщения
159
Репутация
69
Здравствуйте. Попробуйте вот так:
Код:
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
 
Автор
E

elviruses

Новичок
Сообщения
3
Репутация
0
Извините что так долго, код скрипта gunter123 зациклил его так что пока не откроешь блокнот кнопка PAUSE будет нажимается бесконечно, поэтому я сделал чуток по другому, вот код:

Код:
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
 
Верх