Автор Тема: не работает функция WinActivate  (Прочитано 753 раз)

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

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн Hikari [?]

  • Новичок
  • *
  • Сообщений: 22
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
не работает функция WinActivate
« Создано: Январь 08, 2018, 17:52:10 »
Есть такой код
Код: AutoIt [Выделить]
#include<UIAutomate.au3>
AutoItSetOption("WinTitleMatchMode",2)
ShellExecute("Opera.exe","--force-renderer-accessibility","C:\Program Files\Opera\","open")
Global $operadescr = WinActivate("Opera")
Global $OPERA = _UIA_GetElementFromHandle($operadescr)
OpenPrivateWindow()
OpenSite()
Func OpenPrivateWindow()
WinActivate("Opera")
$menu = _UIA_FindAllElements($OPERA, "Name:","Меню Opera");
_UIA_ElementMouseClick($menu[1],"",Default,Default,1,True)
$konfclick = _UIA_FindAllElements($OPERA, "Name:","Нове конфіденційне вікно Ctrl+Shift+N");
_UIA_ElementMouseClick($konfclick[1],"",Default,Default,1,True)

EndFunc
Func OpenSite()
;Поле адреси
WinActivate("Конфіденційний")
WinActive("Конфіденційний")
$adress_type = _UIA_FindAllElements($OPERA, "Name:","Поле адреси");
_UIA_ElementMouseClick($adress_type[1],"",Default,Default,1,True)

Sleep(1000)
Send("epichero.mobi",1)
Send("{ENTER}")

EndFunc
 

Код открывает оперу затем окно инкогнито и открывает сайт.Проблема заключается в том, что скрипт пишет ссылку в обычном окне, а не в конфиденциальном

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

не работает функция WinActivate
« Отправлен: Январь 08, 2018, 17:52:10 »

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 403
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: не работает функция WinActivate
« Ответ #1, Отправлен: Январь 08, 2018, 18:07:13 »
Hikari, получите дескриптор приватного окна и уже в нем ищите поле ввода

Оффлайн Hikari [?]

  • Новичок
  • *
  • Сообщений: 22

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: не работает функция WinActivate
« Ответ #2, Отправлен: Январь 08, 2018, 18:26:46 »
Я получаю ноль с функции WinActivate, когда пытаюсь получить дескриптор окна инкогнито, думаю проблема в самой функции

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 403
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: не работает функция WinActivate
« Ответ #3, Отправлен: Январь 08, 2018, 18:27:59 »
Код: AutoIt [Выделить]
#include <UIAutomate.au3>
AutoItSetOption("WinTitleMatchMode", 2)
Global $oParent = _Opera_Start()

Func _Opera_Start()
    Local $hWnd, $oParent, $oElement
    ShellExecute("Opera.exe", "--force-renderer-accessibility", "C:\Program Files\Opera\")
    $hWnd = WinWaitActive("Opera", Null, 5)
    If Not $hWnd Then Exit ConsoleWrite(" - Окно не найдено" & @LF)
    Send("^+n")
    WinClose($hWnd)
    WinWaitClose($hWnd)
    $hWnd = WinWaitActive("Opera", Null, 5)
    If Not $hWnd Then Exit ConsoleWrite(" - Окно не найдено" & @LF)
    $oParent = _UIA_GetElementFromHandle($hWnd)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "Поле адреса") ;Поле адреси
    _UIA_ElementMouseClick($oElement)
    Sleep(250)
    Send("epichero.mobi{ENTER}")
    Return $oParent
EndFunc   ;==>_Opera_Start
 


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

Re: не работает функция WinActivate
« Ответ #3 Отправлен: Январь 08, 2018, 18:27:59 »

Оффлайн Hikari [?]

  • Новичок
  • *
  • Сообщений: 22

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: не работает функция WinActivate
« Ответ #4, Отправлен: Январь 08, 2018, 18:49:11 »
Tempo, ваш код закрывает окно до того, как откроется конфиденциалка  :o

Помечен как лучший ответ пользователем Hikari Отправлен Январь 08, 2018, 19:17:59

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 403
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: не работает функция WinActivate
« Ответ #5, Отправлен: Январь 08, 2018, 18:51:54 »
Hikari, не знаю почему у вас не успевает, но можете выставить паузы и убрать закрытие основного окна

Код: AutoIt [Выделить]
#include <UIAutomate.au3>
AutoItSetOption("WinTitleMatchMode", 2)
Global $g_hWnd, $g_oParent
_Opera_Start()

Func _Opera_Start()
    Local $hWnd, $oParent, $oElement
    ShellExecute("Opera.exe", "--force-renderer-accessibility")
    $hWnd = WinWaitActive("Opera", Null, 10)
    If Not $hWnd Then Exit ConsoleWrite(" - Окно не найдено" & @LF)
    Sleep(2000)
    Send("^+n")
    Sleep(1000)
    $g_hWnd = WinWaitActive("Opera", Null, 10)
    If Not $g_hWnd Then Exit ConsoleWrite(" - Окно не найдено" & @LF)
    $g_oParent = _UIA_GetElementFromHandle($g_hWnd)
    $oElement = _UIA_GetControlTypeElement($g_oParent, "UIA_EditControlTypeId", "Поле адреса") ;Поле адреси
    _UIA_ElementSetFocus($oElement)
    _UIA_ElementTextSetValue($oElement, "epichero.mobi")
    Sleep(1000)
    Send("{ENTER}")
EndFunc   ;==>_Opera_Start

« Последнее редактирование: Январь 08, 2018, 19:48:27 от Tempo »

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

Re: не работает функция WinActivate
« Ответ #5 Отправлен: Январь 08, 2018, 18:51:54 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
4 Ответов
3902 Просмотров
Последний ответ Октябрь 27, 2011, 03:15:34
от Yashied
9 Ответов
4160 Просмотров
Последний ответ Октябрь 29, 2011, 22:29:54
от Kaster
4 Ответов
3237 Просмотров
Последний ответ Июль 31, 2012, 11:35:21
от warezoogle3
2 Ответов
2960 Просмотров
Последний ответ Сентябрь 14, 2012, 02:09:39
от agikon
1 Ответов
3391 Просмотров
Последний ответ Декабрь 01, 2012, 06:07:32
от madmasles
4 Ответов
1622 Просмотров
Последний ответ Октябрь 07, 2014, 13:07:45
от Tuner
4 Ответов
2618 Просмотров
Последний ответ Февраль 04, 2015, 15:37:07
от babanty
5 Ответов
1778 Просмотров
Последний ответ Июль 29, 2015, 19:29:00
от alex33
3 Ответов
951 Просмотров
Последний ответ Сентябрь 24, 2015, 11:45:10
от CreatoR
2 Ответов
211 Просмотров
Последний ответ Апрель 16, 2018, 20:01:57
от mikzin