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

  • Май 20, 2012, 11:49:19 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Открыт новый раздел Полезняшки - Полезные решения, функции и скрипты в помощь кодеру

:Typing:

Реклама

Автор Тема: Активировать окно русской справки по хэнделу  (Прочитано 1231 раз)

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

AZJIO [?]

Хочу сделать скрипт чтобы активировать окно справки. Если сделать по имени окна, то эксплорер тоже может иметь такое же имя, нужно активировать по хенделу.

Код: AutoIt [Выделить]
#include <Array.au3>

If $CmdLine[0]>1 Then
    Opt("WinTextMatchMode", 3) ; точный поиск окна
    Opt("WinTextMatchMode", 2) ; быстрый режим
    $sAutoIt_Path = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt", "InstallDir")
    ; в ком-строке параметром 1-3 вызываем соответствующую справку
    Switch $CmdLine[2]
        Case 1
            _call('AutoIt', 'AutoIt3.chm')
        Case 2
            _call('AutoIt Help', 'AutoIt3_EN.chm')
        Case 3
            _call('AutoIt UDFs Help', 'UDFs3.chm')
    EndSwitch
    ClipPut ( $CmdLine[1] ) ; отправляем в буфер
    Send("^+{LEFT}") ; выделяем
    Send("{BACKSPACE}") ; очищаем
    Send("+{ins}") ; вставляем из буфера
    Send("{ENTER}")
Else
    MsgBox(0, "Ошибка", "Выделите текст, который требуется отправить в справку")
EndIf

Func _call($Win, $name)
;$Win = WinGetHandle($Win)
;MsgBox(0, 'Message', $Win&@CRLF&$name)
$WinR='[TITLE:'&$Win&';CLASS:HH Parent]'
$Handle=''
$AllWindows = WinList('[REGEXPTITLE:AutoIt*;CLASS:HH Parent]')
;_ArrayDisplay( $AllWindows, "Смотрим текущий массив" )
For $i = 1 To $AllWindows[0][0]
    If $AllWindows[$i][0]=$Win Then
        $Handle=WinGetHandle($AllWindows[$i][0])
        ;MsgBox(0, 'Message', $AllWindows[$i][0]&@CRLF&$Win&@CRLF&$Handle)
    EndIf
Next


If $Handle<>'' Then $WinR=$Handle

;MsgBox(0, 'Message', $WinR)

;While WinExists($WinR) And WinGetTitle($WinR)<>$Win
;   WinClose($WinR)
;WEnd
    ;If WinExists($WinR) And WinGetTitle($WinR)=$Win Then
    If WinExists($WinR) Then
        WinActivate($WinR)
    Else
        ShellExecute($sAutoIt_Path&'\'&$name)
    EndIf
    WinWaitActive($WinR)
    ; Если справка открыта на другой вкладке, то выполняем переключение на вкладку "Указатель"
    If WinExists($WinR, '&Добавить') Then Send("^+{TAB 2}")
    If WinExists($WinR, 'Пред&ыдущий поиск') Then Send("^+{TAB}")
    If WinExists($WinR, 'В&ыберите раздел для вывода:') Then Send("^+{TAB}")
    If Not WinExists($WinR, 'Вв&едите ключевое слово для поиска:') Then Send("^{TAB}")
EndFunc  ;==>_addses
« Последнее редактирование: Май 04, 2010, 12:46:14 от AZJIO »



  Записан
Вытащи сначала бревно из своего глаза, тогда поймёшь как вытащить сучёк из глаза брата своего.

snoitaleR [?]

  • AutoIt Гуру
  • *****
  • Репутация: 172
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 729
  • Версия AutoIt: 3.3.8.0
    • Награды
AZJIO
Посмотри вот эту тему...
Мне нужно было изменить размеры окна, но я в него не попадал...




  Записан
Главное в жизни человека - это отношение...

AZJIO [?]

snoitaleR
Спасибо, помогло.

Обновил пример, в котором теперь не работает "точное сопоставление" Opt("WinTextMatchMode", 3). То есть вопрос остался тем же, решение работает но не при всех условиях.
В функцию передаются параметры окна, но если закрыть одну из справок, то скрипт открывает активизирует другое окно справки, хотя в параметре функции точно указано имя окна [TITLE:AutoIt;CLASS:HH Parent], а вместо него активизируется [TITLE:AutoIt UDFs Help;CLASS:HH Parent].
Для теста стартовать скрипт так:
C:\Program Files\AutoIt3\AutoIt3.exe HELP_AutoIt3.au3 MsgBox 1
т.о. скрипту передаётся слово для открытия его в справке.

Может ли пробел в имени окна '[TITLE:AutoIt UDFs Help;CLASS:HH Parent]' влиять на неспособность WinExists определить точное имя?

Даже получив точный хэндл из массива невозможно открыть окно русской справки, в то время как англ. справка и UDF-справка открываются по хэндл.
« Последнее редактирование: Май 04, 2010, 12:48:09 от AZJIO »



  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
Когда будет обновление русской справки?
Общение
VitAl2013 20 3013 Последний ответ Март 23, 2010, 10:47:44
от Loopback
Перенесено: Когда будет обновление русской справки?
AutoIt для новичков
Kaster 0 889 Последний ответ Март 19, 2010, 14:07:48
от Kaster
[Автоматизация] Как активировать и выбрать элемент меню в ControlTreeView
AutoIt для новичков
achumagin 5 1105 Последний ответ Октябрь 04, 2010, 16:27:12
от achumagin
[Баг] Не отлавливается всплывающее окно в русской версии Windows XP. Решение ?
AutoIt для новичков
Houl777 1 1329 Последний ответ Октябрь 11, 2010, 14:48:23
от Yashied
Не работают буквенные хоткеи при русской раскладке по умолчанию
AutoIt для новичков
Medved 15 1073 Последний ответ Январь 05, 2012, 14:30:06
от CreatoR
[RegExp] Как в SciTE удалить все апострофы, стоящие рядом с русской буквой?
Регулярные выражения и прочее
seriych 14 1059 Последний ответ Январь 24, 2012, 01:20:11
от CreatoR
[Сеть, интернет] Как активировать неактивную вкладку Google Chrome?
Автоматизация IE и Web-интерфейса
Leanna 2 388 Последний ответ Январь 27, 2012, 23:55:25
от Leanna
Как активировать два окна с одинаковым заголовком и классом
AutoIt для новичков
at 8 415 Последний ответ Февраль 22, 2012, 16:49:54
от at
Можно активировать окно, зная его Handle, Class, Style, ExStyle ?
AutoIt для новичков
Vampire 13 856 Последний ответ Февраль 27, 2012, 14:06:48
от Kaster
 Закреплено  Развитие русской справки
Инструменты и помощь по AutoIt
AZJIO 5 237 Последний ответ Сегодня в 00:02:03
от CreatoR


Реклама

* Последние сообщения на форуме
post Проблема с циклами While
[AutoIt для новичков] Andeangl Сегодня в 11:03:15
post Уроки программирования и автоматизации посредством AutoIt для чайников
[AutoIt для новичков] aak Сегодня в 09:41:45
post Re: Как спарсить ссылку внутри тега "td" определенного класса
[Регулярные выражения и прочее] eropov Сегодня в 05:27:00
post Re: Ограничение доступа(блокировка) к компьютеру если не вставлен носитель с ключом
[AutoIt для новичков] Pat4005 Сегодня в 01:02:55
post Re: Развитие русской справки
[Инструменты и помощь по AutoIt] CreatoR Сегодня в 00:02:03
post Re: Развитие русской справки
[Инструменты и помощь по AutoIt] CreatoR Май 19, 2012, 23:55:37
post Узнать значение возвращаемое функцией javascript
[Автоматизация IE и Web-интерфейса] Viktor1703 Май 19, 2012, 23:25:05
post Re: Проверка запущенного процесса на удаленной машине
[AutoIt для новичков] sngr Май 19, 2012, 23:06:52
post Re: Проверка запущенного процесса на удаленной машине
[AutoIt для новичков] Dm666 Май 19, 2012, 22:38:13
post Re: Иконка AutoIt3 для разных Dock-ов
[Графика и творчество в рамках AutoIt] Ganibal95 Май 19, 2012, 22:21:35

* Пользователи онлайн
  • Dot Гостей: 79
  • Dot Скрыт: 0
  • Dot Пользователей: 21
  • Dot Пользователи Online: