101

Re: AHK: Использование - GUI Control Types ActiveX

Тут нужно у знатоков html спрашивать.

Редко они в AutoHotkey появляются. Можно конечно в Windows Script Host, HTA (VBScript, JScript) их найти, но всё будет упиратся в то, что в AutoHotkey примеры не будут работать.
Кстати, span можно выделить целиком.
И в чём отличие Doc.body.innerHTML и Doc.write? Так понял что при innerHTML не подгружаются скрипты, так как в примере ниже срабатывает только по клавише (хотя это можно и привязать к onclick через ComObjConnect).


html = 
(   
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9" /> <!--Force IE9 mode --> 
    <script type="text/javascript">
        function SelectSomeText() { 
            var range = document.body.createTextRange(); 
            range.moveToElementText(document.getElementById("Textbox"));
            range.select();
        }
    </script>
</head>
<body>  
    <span id='Textbox'>The text selection appears here</span>
    <p><button onclick="SelectSomeText()">See selection</button></p>  
</body>
</html> 
)    
 
Gui, Add, ActiveX, w450 h350 vDoc, HTMLFile     
Gui, Show 
  Doc.body.innerHTML := html    ;  Doc.write(html)   ;
return  

1::         
    Range := Doc.body.createTextRange()
    Range.moveToElementText(Doc.getElementById("Textbox"))
    Range.select() 
    return

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

102

Re: AHK: Использование - GUI Control Types ActiveX

Дошло. Пример выделения с 4 по 18 символ в нужном элементе, либо нужной подстроки.


html = 
(    
<body>  
    <span id='Textbox'>The text selection appears here</span>
    <p><button onclick="SelectSomeText()">See selection</button></p>  
    <span id='Textbox2'>The text selection appears here</span>
</body>
</html> 
)    

Gui, Add, ActiveX, w450 h350 vDoc, HTMLFile     
Gui, Show
Doc.body.innerHTML := html    

1::         
    R := Doc.body.createTextRange()
    R.moveToElementText(Doc.getElementById("Textbox2"))  
    R.moveEnd("character", 18-StrLen(R.text)) 
    R.moveStart("character", 4) 
    R.select() 
    return

2::         
    R := Doc.body.createTextRange()
    R.moveToElementText(Doc.getElementById("Textbox2"))  
    R.findText("text selection")
    R.select() 
    return

Теперь интересно - возможно ли установить несколько выделений? Оно же - мульти выделение.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

103

Re: AHK: Использование - GUI Control Types ActiveX

Или так:

html = 
(   
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9" /> <!--Force IE9 mode -->
<title>Example of setSelectionRange()</title>
    <script type="text/javascript">
        function SelectSomeText () {
            var range = document.body.createTextRange(); 
            range.moveToElementText(document.getElementById("Textbox"))
            range.collapse(true);
            range.moveEnd('character', 13);
            range.moveStart('character', 4);
            range.select();            
        }
    </script>
</head>
<body> 
    <p><button onclick="SelectSomeText ()">See selection</button></p>
    <span id="Textbox">The text selection appears here</span> 
</body>
</html> 
)   
  
Gui, -DPIScale +ReSize 
Gui, Margin, 0, 0 
Gui, Add, ActiveX, w450 h350 vDoc, HTMLFile     
Gui, Show 
Doc.write(html)
return  
serzh82saratov пишет:

Теперь интересно - возможно ли установить несколько выделений? Оно же - мульти выделение.

Так элемент ещё должен его поддерживать.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

104

Re: AHK: Использование - GUI Control Types ActiveX

Или так:

Ну так это тоже самое.

Так элемент ещё должен его поддерживать.

А есть инфо что не поддерживает, я ничего не нашёл ни за, ни против.

По большому счёту мне интересно как подсвечивать фрагменты текста.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

105

Re: AHK: Использование - GUI Control Types ActiveX

serzh82saratov пишет:

А есть инфо что не поддерживает, я ничего не нашёл ни за, ни против.

К примеру, в тексте на форуме можно выделить несколько фрагментов, используя Ctrl. В элементе span из примера так сделать не получится.

По большому счёту мне интересно как подсвечивать фрагменты текста.

Выделение и подсвечивание — не одно и то же. Выделение — это подготовка к копированию с помощью Ctrl+C.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

106

Re: AHK: Использование - GUI Control Types ActiveX

Интересует подсвечивание.
Например в IE при поиске текста найденные совпадения подсвечиваются жёлтым.
Конечно есть вариант использовать pasteHTML для TextRange. Но в IE вроде как код элементов при этом не меняется.
Да и как потом обратно откатить подсветку? Нужно создавать массив в котором указано какой "жёлтый" элемент, в каком заменил, и плюсом заносить цвет текста и фона оригинала. Есть попроще варианты?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

107

Re: AHK: Использование - GUI Control Types ActiveX

Создать массив изменённых элементов и записать оригинальный цвет. Проще вряд ли.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

108 (изменено: serzh82saratov, 2014-10-20 00:14:01)

Re: AHK: Использование - GUI Control Types ActiveX

Проще вряд ли.

Думаю что докопался до истины


html = 
(      
  <span id='Textbox'>
    The text selection appears here
    <br>The text selection appears here
    <br>The text selection appears here
    <br>The text selection appears here
    <br>The text selection appears here
  </span>   
)    

Gui, Add, ActiveX, w350 h250 vDoc, HTMLFile     
Gui, Show
Doc.body.innerHTML := html 
findText = select
return  
     
1::  
    R := Doc.body.createTextRange()
    R.moveToElementText(Doc.getElementById("Textbox"))  
    sR := R.duplicate() 
    While R.findText(findText)
        R.execCommand("BackColor", false, "3399FF")
        , R.execCommand("ForeColor", false, "FFEEFF") 
        , R.moveStart("character", 1)
    Sleep 1000   
    sR.execCommand("RemoveFormat")
    return

Немного смущает описание RemoveFormat - http://msdn.microsoft.com/en-us/library … moveformat. Не понимаю почему оно подходит, и не портит ли чего ещё.

Теперь интересно - возможно ли установить несколько выделений? Оно же - мульти выделение.

Так элемент ещё должен его поддерживать.

Увидел такое - http://msdn.microsoft.com/en-us/library … eselection. Пробовал только в HTMLFile, не работает. А может и не оно.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

109

Re: AHK: Использование - GUI Control Types ActiveX

serzh82saratov пишет:

Думаю что докопался до истины

Ага, работает, только R.duplicate() лишнее:

html = 
(      
  <span id='Textbox'>
    The text selection appears here
    <br>The text selection appears here
    <br>The text selection appears here
    <br>The text selection appears here
    <br>The text selection appears here
  </span>   
)    

Gui, Add, ActiveX, w350 h250 vDoc, HTMLFile     
Gui, Show
Doc.body.innerHTML := html 
findText = select
return  
     
1::  
    R := Doc.body.createTextRange()
    R.moveToElementText(Doc.getElementById("Textbox"))
    While R.findText(findText)
        R.execCommand("BackColor", false, "3399FF")
        , R.execCommand("ForeColor", false, "FFEEFF") 
        , R.moveStart("character", 1)
    Sleep 1000   
    R.moveStart("textedit", -1)
    R.execCommand("RemoveFormat")
    return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

110

Re: AHK: Использование - GUI Control Types ActiveX

Ещё вопрос возник. Почему у вложенного span, цвет шрифта остаётся зелёным.

html = 
(       
    <span id='span'><span id='param'>Text </span> Text</span> 
    <style> 
      #param {color: '189200'} 
    </style>
)    

Gui, Add, ActiveX, w350 h250 vDoc, HTMLFile     
Gui, Show
Doc.body.innerHTML := html  
return  

2::           
    R := Doc.body.createTextRange()
    R.moveToElementText(Doc.getElementById("span"))  
    R.execCommand("BackColor", false, "3399FF")
    R.execCommand("ForeColor", false, "FFEEFF")   
    return 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

111

Re: AHK: Использование - GUI Control Types ActiveX

Ну это уж точно к знатокам.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

112 (изменено: serzh82saratov, 2014-10-28 21:22:12)

Re: AHK: Использование - GUI Control Types ActiveX

По случаю того, что здесь вопрос со звуком почему то решился, то есть внезапно появилась речь. Выкладываю перепиленную много раз, мою версию GoogleTranslater, может кому понравится.


#SingleInstance Force
#NoEnv
SetBatchLines -1
ListLines Off
OnExit, ExitApp
Menu, Tray, UseErrorLevel
Menu, Tray, Icon, Shell32.dll, 239
Menu, Tray, NoStandard
Menu, Tray, Click, 1 
Menu, Tray, Add, Hide/Show, GuiClose
Menu, Tray, Add, ExitApp
Menu, Tray, Default, Hide/Show
URL = https://translate.google.ru/#auto/ru/ 
TrayTip, GoogleTranslater, Запуск 
FixIE(0)
Gui +ReSize -DPIScale +HWNDhGui +Owner -MINIMIZEBOX  
Gui Add, ActiveX, w815 h436 voIE HWNDhoIE, Shell.Explorer   
oIE.Silent := 1, ComObjError(false)
  
Update:
    oIE.Navigate(URL), IEBusy(oIE)
    oIE.document.querySelector("#gt-appbar").style.display := "none"  
    oIE.document.querySelector("#ft-r").style.display := "none" 
    oIE.document.querySelector("#gt-ft-mkt").style.display := "none" 
    oIE.document.querySelector("#gb").style.display := "none"  
    oIE.document.querySelector("#gt-logo").style.display := "none"   
    oIE.document.querySelector("#gt-lang-left").style.display := "none" 
    oIE.document.querySelector("#gt-lang-tgt").style.display := "inline"  
    oIE.document.querySelector("#gt-submit").style.display := "inline"   
    ; oIE.document.querySelector("#gt-tl-gms").style.display := "none"    
    
    Gui Show, , GoogleTranslater
    GoSub Paste  
    PostMessage, 0x50,, 0x4190419,, ahk_id %hoIE% ; Russian  
    TrayTip  
    Return   

+f1::
    Gui Show
    GoTo Paste 
    
#If WinActive("ahk_id " hGui)

NumpadDiv::
^vk43:: Clipboard := oIE.document.selection.createRange().text 

NumpadMult::
^vk56::  oIE.document.selection.createRange().execCommand("Paste") 

Enter:: oIE.document.selection.createRange().text := "`n"             

Paste:
f1::   
    If (oIE.document.querySelector("#gt-logo").style.display != "none" || !InStr(oIE.document.Url, URL))
        GoTo Update 
    oIE.document.querySelector("#source").value := Clipboard
    Return
    
f2::
f5:: GoTo Update

#If
 
GuiSize: 
    If A_EventInfo = 1
        GoTo GuiClose 
    WinMove, ahk_id %hoIE%, , 0, 0, A_GuiWidth, A_GuiHeight 
    Return
    
GuiClose:
GuiEscape:
    Gui, % DllCall("IsWindowVisible", "uint", hGui) ? "Hide" : "Show" 
    Return 

ExitApp: 
    oIE.Quit(), oIE := ""
    ExitApp
    
IEBusy(O)  {  
    While !(O.readyState=4 && O.document.readyState="complete" && !O.busy)
        Sleep, 50
} 

FixIE(Fix)  {
    Static Key := "Software\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"
    If A_IsCompiled
        ExeName := A_ScriptName
    Else
        SplitPath, A_AhkPath, ExeName
    If Fix
        RegWrite, REG_DWORD, HKCU, %Key%, %ExeName%, 0
    Else
        RegDelete, HKCU, %Key%, %ExeName%
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

113

Re: AHK: Использование - GUI Control Types ActiveX

У меня на x64 не работает. Не набираются слова в поле (появляется только последняя набранная буква), не переводится фокус на другие окна, невозможно закрыть окно. Кнопки озвучивания так и не появилось, FlashPleer, вроде, обновлялся.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

114

Re: AHK: Использование - GUI Control Types ActiveX

На x64 у меня всё также работает. По поводу кнопки озвучивания, я и сам не знаю.
Так что тут на "удачу".

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

115

Re: AHK: Использование - GUI Control Types ActiveX

Зацикливается в этом месте:


Update:
    ...
    GoSub Paste
    ...
    Return

    ...

Paste:
f1::   
    If (oIE.document.querySelector("#gt-logo").style.display != "none" || !InStr(oIE.document.Url, URL))
        GoTo Update
    ...
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

116

Re: AHK: Использование - GUI Control Types ActiveX

Эти строки не критичны, попробуй убрать:

    If (oIE.document.querySelector("#gt-logo").style.display != "none" || !InStr(oIE.document.Url, URL))
        GoTo Update

У меня вот вопрос - как запускать, чтобы слева сверху всегда были только два нужных языка.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

117

Re: AHK: Использование - GUI Control Types ActiveX

Всё таки никак недокопаюсь. Почему Shell.Explorer в AutoHotkey какой то недофункциональный!
Например при запуске этого html в IE, картинка круглая, а в AutoHotkey отказывается скруглятся.


html = 
(     
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Круглые изображения</title>
  <style>
   .round {
    border-radius: 100px; /* Радиус скругления */
    border: 3px solid green; /* Параметры рамки */
    box-shadow: 0 0 7px #666; /* Параметры тени */
   }
  </style>
 </head>
 <body>
   <p><img src="file://localhost/D:\AutoIt\images\thumb1.jpg" alt="" class="round"></p>
 </body>
</html>
) 
 
Gui, -DPIScale +ReSize 
Gui, margin, 0, 0 
Gui, Add, ActiveX, hwndhActiveX w222 h222 vIE, Shell.Explorer  
IE.Navigate("about:blank")
IE.document.write( html ) 
Gui, show, na
return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

118

Re: AHK: Использование - GUI Control Types ActiveX

У меня в IE:

http://i.imgur.com/a7L3a6P.jpg

В GUI:

http://i.imgur.com/jXLLXFB.jpg

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

119

Re: AHK: Использование - GUI Control Types ActiveX

Ну я ведь не знаю где у тебя картинка.

<img src="file://localhost/D:\AutoIt\images\thumb1.jpg" alt="" class="round">

file://localhost/D:\AutoIt\images\thumb1.jpg

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

120

Re: AHK: Использование - GUI Control Types ActiveX

А какая разница, рамка-то всё равно круглая:

http://i.imgur.com/5CVtw1G.jpg

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

121

Re: AHK: Использование - GUI Control Types ActiveX

Значит снова тот же вопрос- почему у всех по разному? Версии IE у нас с тобой одинаковые.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

122

Re: AHK: Использование - GUI Control Types ActiveX

Ну, может настройки какие-нибудь...

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

123

Re: AHK: Использование - GUI Control Types ActiveX

Сбросил на стандартные. Зная то, что ты им не пользуешся, то врядли у тебя другие?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

124

Re: AHK: Использование - GUI Control Types ActiveX

Стандартные, должно быть. А на 64-bit пробовал запускать?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

125

Re: AHK: Использование - GUI Control Types ActiveX

А на 64-bit пробовал запускать?

Пробовал.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

126

Re: AHK: Использование - GUI Control Types ActiveX

А у тебя в C:\Program Files (x86)\Internet Explorer тоже есть файлы Internet Explorer, как и в C:\Program Files\Internet Explorer?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

127

Re: AHK: Использование - GUI Control Types ActiveX

Да, есть.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

128

Re: AHK: Использование - GUI Control Types ActiveX

У меня на 4 компьютерах круглишка нету.
Teadrinker, а какие add-ons у тебя установлены?

129

Re: AHK: Использование - GUI Control Types ActiveX

FlashPlayer и Java. А какие ещё бывают?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

130

Re: AHK: Использование - GUI Control Types ActiveX

Ну их там много. Например у меня не читался ответ с сервера, пока не сделал:

Должен быть установлен либо Adobe Acrobat и соответственно в Current loaded add-ons быть запущенным Adobe PDF Link Helper либо установлен оффис и соответственно в Current loaded add-ons быть запущенным Office Document Cache Handler.

http://forum.script-coding.com/viewtopi … 898#p85898

131 (изменено: Malcev, 2014-10-28 16:59:49)

Re: AHK: Использование - GUI Control Types ActiveX

Может это поможет?
http://www.autohotkey.com/board/topic/9 … er-engine/
У меня помогло.
Непонятно почему у teadrinker без фикса все показывало...

132

Re: AHK: Использование - GUI Control Types ActiveX

Может это поможет?

Помогло с картинкой. Но теперь остальное поломалось. Например в AhkSpy шрифт который был зелёным и синим, стал чёрным.

Вообщем при старте каждого такого скрипта, надо писать нужный ключ реестра.
В функции FixIE думаю достаточно этого:


FixIE(Fix)  {
    static Key := "Software\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"  
    if A_IsCompiled
        ExeName := A_ScriptName
    else
        SplitPath, A_AhkPath, ExeName 
    if Fix
        RegWrite, REG_DWORD, HKCU, %Key%, %ExeName%, 0
    else
        RegDelete, HKCU, %Key%, %ExeName%
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

133 (изменено: serzh82saratov, 2014-10-28 21:22:44)

Re: AHK: Использование - GUI Control Types ActiveX

teadrinker пишет:

У меня на x64 не работает. Не набираются слова в поле (появляется только последняя набранная буква), не переводится фокус на другие окна, невозможно закрыть окно. Кнопки озвучивания так и не появилось, FlashPleer, вроде, обновлялся.

С FixIE(0) переводчик заработает.
Код поправил.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

134

Re: AHK: Использование - GUI Control Types ActiveX

Ещё выяснилось что с FixIE(1), ComObjConnect не поддерживается, а это печалька.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

135

Re: AHK: Использование - GUI Control Types ActiveX

Сейчас работает.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

136 (изменено: serzh82saratov, 2017-11-22 23:34:03)

Re: AHK: Использование - GUI Control Types ActiveX

Немного переделал пример wisgest. Так понимаю capturer.click(); вызывает onclick в привязанном объекте, а хочется чтобы EventsCommonHandler() мог вызывать методы MyEvents с моими именами, а не только onclick, в прмере ниже по кнопке.


Gui HTML: -DPIScale
Gui, HTML: margin, 20, 20
Gui, HTML: Add, ActiveX, w333 h222 vIE, HTMLFile
Gui, HTML: show
global IE

html =
(
<html>
 <body>
  <p id='p1'>Обрабатываются события щелчка по кнопке ниже.</p>
  <button id='btn1'>Кнопка</button>
  
  <script language='JavaScript'>
  document.getElementById('btn1').onclick = function() {
     EventsCommonHandler();
	}
	</script>
  <script id='capturer' language='JavaScript'>
   var saved_event_context = null;
   function EventsCommonHandler() {
     saved_event_context = document.createEventObject(window.event);
     capturer.click();
	 alert("Сейчас будет error");
	 capturer.myevent();
   }
  </script>
 </body>
</html>
)
IE.Write(html)
IE.Close()
capturer := IE.getElementById("capturer")
ComObjConnect(capturer, MyEvents)
return

Class MyEvents {
	onclick() {
	  event := IE.Script.saved_event_context
	  MsgBox % "Произошло событие '" . event.type . "'"
		  . " в элементе '" . event.srcElement.id . "'."
	}
	myevent() {
		MsgBox myevent
	}
	onmyevent() {
		MsgBox onmyevent
	}
}

HTMLGuiClose:
    capturer := ""
    IE := ""
    ExitApp

АП:
Вроде дошло, click() это стандартный click() вызывающий событие onclick, а не вызов метода,
Есть варианты другой обратной связи?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

137

Re: AHK: Использование - GUI Control Types ActiveX

serzh82saratov пишет:

Есть варианты другой обратной связи?

http://help.dottoro.com/larrqqck.php

138

Re: AHK: Использование - GUI Control Types ActiveX

Ты про то что задавать имена существующих? Например onmessage так не вызывается capturer.message();

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

139

Re: AHK: Использование - GUI Control Types ActiveX

Я так понял, что ты спрашивал, какие есть еще события в джаваскрит помимо click().

140

Re: AHK: Использование - GUI Control Types ActiveX

Кстати не в курсе как отключить ошибки javascript, onerror не работает.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

141

Re: AHK: Использование - GUI Control Types ActiveX

Не, я про то как вызвать метод у которого будет то имя, которое я захочу.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

142

Re: AHK: Использование - GUI Control Types ActiveX

serzh82saratov пишет:

Кстати не в курсе как отключить ошибки javascript, onerror не работает.

У htmlfile не знаю.
У webbrowser есть свойство silent для этого.

serzh82saratov пишет:

как вызвать метод у которого будет то имя, которое я захочу.

А зачем?

143

Re: AHK: Использование - GUI Control Types ActiveX

Просто интересно, ну и было бы удобнее.
Конечно и благодаря примеру можно осуществить всё необходимое.

По твоему есть плюсы webbrowser перед htmlfile?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

144

Re: AHK: Использование - GUI Control Types ActiveX

У webbrowser есть методы, свойства, если оин нужны, а в document такого не добиться, значит это плюсы:
https://msdn.microsoft.com/en-us/librar … s.85).aspx

serzh82saratov пишет:

как вызвать метод у которого будет то имя, которое я захочу.

Приведи пример, а то нпонятно.

145

Re: AHK: Использование - GUI Control Types ActiveX

А каких методы, свойства нет в htmlfile?

Malcev пишет:

Приведи пример, а то нпонятно.

Так в 136 всё очень подробно.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

146

Re: AHK: Использование - GUI Control Types ActiveX

serzh82saratov пишет:

А каких методы, свойства нет в htmlfile?

Например silent.

serzh82saratov пишет:

Так в 136 всё очень подробно.

То есть ты хочешь заменить capturer.click() на capturer.nazhal()?
Тогда можно через customevent, только он вряд ли поддерживается с FixIe(0).
https://developer.mozilla.org/ru/docs/W … ustomEvent

147 (изменено: serzh82saratov, 2017-11-25 22:24:58)

Re: AHK: Использование - GUI Control Types ActiveX

Не могу разобратся с customevent IE=9.


Gui, Add, ActiveX, w333 h222 vIE, about:<!DOCTYPE html><meta http-equiv="X-UA-Compatible" content="IE=9">
Gui, show
global IE, oDoc

oDoc := IE.document
  ;	IE.Silent := 1
  
html =
(
<script id='capturer' language='JavaScript'>
   var saved_event_context = null;
  function EventsCommonHandler() {
     saved_event_context = document.createEventObject(window.event);
     capturer.click();
	 alert("Сейчас будет error");
	 capturer.dispatchEvent("myevent");
   }
   window.onclick = function() {
		EventsCommonHandler();
   }
</script>
  
<script language='JavaScript'>
	capturer.addEventListener("myEvent", function() {alert('Спасибо!')});

</script>
	
)

oDoc.Write(html)
oDoc.Close()
capturer := oDoc.getElementById("capturer")
ComObjConnect(capturer, MyEvents)

html =
(
<button id='btn1'>Кнопка</button>
)

oDoc.body.InnerHtml := html
return

1:: msgbox % oDoc.documentMode 

Class MyEvents {
	onclick() {
	  event := oDoc.Script.saved_event_context
	  MsgBox % "Произошло событие '" . event.type . "'"
		  . " в элементе '" . event.srcElement.id . "'."
	}
	myevent() {
		MsgBox myevent
	}
}

Escape:: 
GuiClose:
    ExitApp
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

148

Re: AHK: Использование - GUI Control Types ActiveX

При вводе текста, после автоперевода, снимается фокус с поля ввода, в IE такого не происходит. Кто подскажет как лечить?

URL = https://translate.google.ru/#auto/ru/ 

Gui Add, ActiveX, w900 h520 voIE HWNDhoIE, Shell.Explorer 
oIE.Navigate(URL) 
Gui, Show
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

149

Re: AHK: Использование - GUI Control Types ActiveX

У меня на win 10 отображает только это:

https://i.imgur.com/8pocwKa.png

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

150

Re: AHK: Использование - GUI Control Types ActiveX

У меня на win10 при таком коде фокус не снимается:

FixIE()
URL = https://translate.google.ru/#auto/ru/ 

Gui Add, ActiveX, w900 h520 voIE HWNDhoIE, Shell.Explorer 
oIE.Navigate(URL) 
Gui, Show


FixIE() {
	Key := "Software\Microsoft\Internet Explorer\MAIN"
	. "\FeatureControl\FEATURE_BROWSER_EMULATION", ver := 11000
	If A_IsCompiled
		ExeName := A_ScriptName
	Else
		SplitPath, A_AhkPath, ExeName
	RegRead, value, HKCU, %Key%, %ExeName%
	If (value != ver)
		RegWrite, REG_DWORD, HKCU, %Key%, %ExeName%, %ver%
}

151

Re: AHK: Использование - GUI Control Types ActiveX

Спасибо, забыл про версию IE.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui