Что нового

[Окна, Диалоги] Работа с окнами которые содержат символ #

Onbiz

Новичок
Сообщения
2
Репутация
1
Добрый день подскажите сталкивался ли кто с такой проблемой и есть ли решение. При наличии в title символов [hide] Autoit не находит этого окна. К примеру окна запущенные в Sandboxie имеют заголовок [#] [1] Form [[/hide]]. Данный функционал Sandboxie я отключить не могу и нумерация мне необходима для идентификации запущенных копий. Как решить проблему?
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Onbiz
Дело не в #. Соорудил тестовый скрипт, проблема в символа [ и ] в начале и в конце заголовка, убери один из них и окно определяется. Эти символы являются служебными для определения класса окна, видимо в этом проблема. Попробуй использовать класс окна вместо имени заголовка.

Код:
$sTitle = '[[hide]] [1] Form [[/hide]]'
$hGui = GUICreate($sTitle, 250, 260)
$iButton = GUICtrlCreateButton('Проверить', 10, 10, 120, 22)
$iStatusBar = GUICtrlCreateLabel('StatusBar', 5, 260 - 25, 150, 22)
GUICtrlSetFont(-1,15)
GUISetState()
While 1
	Switch GUIGetMsg()
		Case $iButton
			GUICtrlSetData($iStatusBar, WinExists($sTitle))
		Case -3
			Exit
	EndSwitch
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Onbiz,
Можно так попробовать.
Код:
#include <GUIConstantsEx.au3>

$sTitle = '[[hide]] [1] Form [[/hide]]'
$hGui = GUICreate($sTitle, 250, 260)
$nButton = GUICtrlCreateButton('Проверить', 10, 10, 120, 22)
$nStatusBar = GUICtrlCreateLabel('StatusBar', 5, 260 - 25, 150, 22)
GUICtrlSetFont(-1, 15)
GUISetState()
While 1
	Switch GUIGetMsg()
		Case $nButton
			GUICtrlSetData($nStatusBar, WinExists('[REGEXPTITLE:\Q' & $sTitle & '\E]'))
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
Перенести бы тему надо, ИМХО.
 
Автор
O

Onbiz

Новичок
Сообщения
2
Репутация
1
Да все отлично теперь находит по второму варианту, спасибо за помощь.
 
Верх