Что нового

Активация окна по наличию конкретного слова в Title

SergVrn

Новичок
Сообщения
87
Репутация
2
Версия AutoIt: 3.3.14.2

Описание:
Добрый вечер.
У меня есть скрипт, активирующий определенное окно по названию процесса.
Подскажите - как при помощи скрипта - активировать окно не по названию процесса, а по наличию конкретного слова в Title ?
Код:
#include <WinAPIEx.au3>

$sProg = "TOTALCMD64-3.EXE"
$hWnd = _WinGetForProc($sProg, 'TTOTAL_CMD') ; Второй параметр это Класс окна, если его не указать, то вы получите информацию о всех окнах процесса
If @error = 1 Then Exit MsgBox(262144 + 16, Default, 'Процесс не существует')

WinSetState($hWnd, '', @SW_SHOW)
WinActivate($hWnd)
If (Not WinActive($hWnd) Or Not BitAND(WinGetState($hWnd), 2)) And (Not IsAdmin()) Then MsgBox(262144 + 16, Default, 'Запустите скрипт От Имени Администратора')
_WinGetForProc($sProg) ; Тест

Func _WinGetForProc($sProcName, $vWinClass = False)
    Local $iPID = ProcessExists($sProcName)
    If Not $iPID Then Return SetError(1, 0, 0)

    Local $aData = _WinAPI_EnumProcessWindows($iPID, False) ; Если вы не хотите принимать во внимание свернутые окна, тогда ставьте "True"
    If @error Then Return SetError(2, 0, 0)

    If $vWinClass Then
        For $i = 1 To $aData[0][0]
            If $aData[$i][1] == $vWinClass Then Return $aData[$i][0]
        Next
    Else
        Local $sText = 'Всего количество окон процесса: ' & $sProcName & ' = ' & $aData[0][0] & @CR
        $sText &= 'Handle:      | Class:' & @CR & '---------------------------------------------' & @CR
        For $i = 1 To $aData[0][0]
            $sText &= $aData[$i][0] & ' | ' & $aData[$i][1] & @CR
        Next


        Exit
    EndIf
    Return SetError(3, 0, 0)
EndFunc   ;==>_WinGetForProc
Это слово "расчет".
Полный title : "Книга расчетов.xls [Режим совместимости] - My Personalized Workbook"

Примечания:
 
A

Alofa

Гость
Код:
Opt('WinTitleMatchMode', -2)
WinActivate('расчет')
 
Автор
S

SergVrn

Новичок
Сообщения
87
Репутация
2
Alofa, спасибо.
Вы настоящий гений в области программирования.
 
Верх