Что нового

[Окна, Диалоги] Использование функций WinActive, WinWaitActive

m0nax

Новичок
Сообщения
2
Репутация
0
Подскажи пожалуйста, как сделать, чтобы программа работа в определенном окне?
Пробовал WinActive, не получается, может что-то не так делаю.

К примеру, возьмем вот этот код.
Код:
#include <Misc.au3>

Local $hDll = DllOpen("user32.dll"), $iPaused = False
HotKeySet("!{ESC}", "_Terminate")
HotKeySet("!{PAUSE}", "_Pause")

While 1
    Sleep(10)
    If $iPaused <> True And _IsPressed("20", $hDll) Then
        Send("{SPACE UP}")
        Send("{SPACE DOWN}")
        Sleep(10)
    EndIf
WEnd

Func _Pause()
    $iPaused = Not $iPaused
EndFunc

Func _Terminate()
    Exit 0
EndFunc


Как сделать, чтобы он работал в определенном окне?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Работа в окне.

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"Работа в окне." - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

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









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


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

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Код:
$i=0
While WinActive("Имя окна")
$i=$i+1
tooltip($i)
WEnd
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
m0nax
Работа скрипта с окном ввода текста в Блокноте.
Код:
#include <Misc.au3>

Run("notepad.exe")  
$hWnd = WinWait("[CLASS:Notepad]", "", 5)
If  Not $hWnd  Then 
   MsgBox(48, "Инфо", "Окно не найдено. Выход")
   Exit
EndIf

Local $hDll = DllOpen("user32.dll"), $iPaused = False
HotKeySet("!{ESC}", "_Terminate")
HotKeySet("!{PAUSE}", "_Pause")

While 1    
   Sleep(10)
   If $iPaused <> True And _IsPressed("20", $hDll) And $hWnd Then	  
	  ControlSend($hWnd, "", "Edit1", "{SPACE UP}")	  
	  ControlSend($hWnd, "", "Edit1", "{SPACE DOWN}")
	  Sleep(10)	  
	  If Not WinExists($hWnd) Then
		 MsgBox(48, "Инфо", "Окно не существует. Выход")  
		 Exit
	  EndIf     
   EndIf
WEnd

Func _Pause()
   $iPaused = Not $iPaused
EndFunc
 
Func _Terminate ()
	Exit 0
EndFunc
 
Верх