[Bug 34273] AutoHotKey web installer can't initialize its GUI

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Mar 15 16:46:43 CDT 2014


https://bugs.winehq.org/show_bug.cgi?id=34273

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                URL|http://l.autohotkey.net/Aut |http://ge.tt/28r9gTR/v/0?t=
                   |oHotkey_L_Install.exe       |1394918587786
                 CC|                            |focht at gmx.net
            Summary|AutoHotKey installer can't  |AutoHotKey web installer
                   |initialize its GUI          |can't initialize its GUI

--- Comment #6 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

this special 'web' installer type is no longer officially available.

Fortunately one can find the file on some other sites but no one matches the
sha1sum.

--- snip ---
$ WINEDEBUG=+tid,+seh,+relay,+jscript,+mshtml wine ./AutoHotkey_L_Install.exe
>>log.txt 2>&1
...
0029:trace:mshtml:WindowDispEx_InvokeEx (0x29b16e8)->(60000009 409 2 0x8dbc04
0x8dbbf0 0x4901818 0x4901c70)
0029:trace:mshtml:DispatchEx_InvokeEx (0x29b171c)->(60000009 409 2 0x8dbc04
0x8dbbf0 0x4901818 0x4901c70)
0029:trace:mshtml:HTMLDocument3_getElementById (0x46770b8)->(L"startmenu"
0x8db92c)
...
0029:trace:jscript:interp_str L"onblur"
0029:trace:jscript:interp_memberid 0 
...
0029:trace:mshtml:HTMLElement2_get_onblur (0x49463c8)->(0x8db9e0)
0029:trace:mshtml:HTMLDOMNode_Release (0x49463c8) ref=3
...
0029:trace:jscript:DispatchEx_QueryInterface (0x49460c0)->(IID_IDispatchEx
0x8db9a8)
0029:trace:mshtml:invoke_disp_value >>>
0029:trace:jscript:DispatchEx_InvokeEx (0x49460c0)->(0 409 1 0x8db9ac (nil)
0x4901818 0x4901c70)
0029:trace:jscript:Function_invoke func 0x49460c0 this 0x49463c8 
...
0029:trace:jscript:enter_bytecode 
0029:trace:jscript:interp_ident L"value"
0029:trace:jscript:identifier_eval L"value"
0029:trace:jscript:jsdisp_get_id not found L"value"
0029:trace:jscript:jsdisp_get_id not found L"value"
0029:trace:mshtml:dispex_query_interface (0x29b171c)->(IID_IDispatchJS
0x8db4e8) returning NULL
0029:trace:mshtml:HTMLWindow2_QueryInterface (0x29b16e8)->(IID_IDispatchEx
0x8db52c)
0029:trace:mshtml:HTMLWindow2_AddRef (0x29b16e8) ref=5
0029:trace:mshtml:WindowDispEx_GetDispID (0x29b16e8)->(L"value" 10000001
0x8db5a4)
0029:trace:jscript:JScript_GetScriptDispatch (0x49017a0)->(0x8db39c)
0029:trace:jscript:DispatchEx_QueryInterface (0x490e9a0)->(IID_IDispatchEx
0x8db3d8)
0029:trace:jscript:DispatchEx_GetDispID (0x490e9a0)->(L"value" 10000001
0x8db440)
0029:trace:jscript:jsdisp_get_id not found L"value"
0029:trace:mshtml:DispatchEx_GetDispID (0x29b171c)->(L"value" 10000001
0x8db5a4)
0029:trace:mshtml:HTMLDocument3_getElementById (0x46770b8)->(L"value" 0x8db488) 
...
0029:warn:jscript:throw_error L"'value' is undefined"
...
0029:trace:jscript:prop_get L"prototype" ret obj(0x492b538)
0029:trace:jscript:DispatchEx_QueryInterface (0x492b538)->(IID_IDispatchJS
0x8dace8)
0029:trace:jscript:init_dispex 0x4991b60 (0x492b538)
...
0029:trace:jscript:ensure_prop_name creating prop L"number" flags 0
...
0029:trace:jscript:prop_put L"number" = -2146823279.000000
0029:trace:jscript:ensure_prop_name creating prop L"message" flags 200
...
0029:trace:jscript:prop_put L"message" = str(L"'value' is undefined")
0029:trace:jscript:ensure_prop_name creating prop L"description" flags 0
...
0029:trace:jscript:prop_put L"description" = str(L"'value' is undefined")
0029:trace:jscript:enter_bytecode EXCEPTION 800a1391
...
0029:warn:mshtml:invoke_disp_value <<< 800a1391
...
0029:trace:jscript:enter_bytecode EXCEPTION 800a1391
...
0029:warn:mshtml:HTMLWindow_invoke L"initOptions" <<< 800a1391
...
0029:Call user32.MessageBoxW(00000000,008d2480 L"Error:  0x800A1391 -
\n\nSpecifically: initOptions\n\n\tLine#\n--->\t178: w.initOptions(CurrentName,
CurrentVersion, CurrentType, ProductVersion, DefaultPath, DefaultStartMenu,
DefaultType, A_Is64bitOS = 1)  \n\nContinue running the script?",008d1c80
L"setup.exe",00010004) ret=004744fa 
--- snip ---

The AHK snippet, calling 'w.initOptions':

--- snip ---
...
Gui Margin, 0, 0
Gui Add, ActiveX, vwb w600 h400 hwndhwb, Shell.Explorer
ComObjConnect(wb, "wb_")
...

InitUI() {
    local w
    SetWBClientSite()
    gosub DefineUI
    wb.Silent := true
    wb.Navigate("about:blank")
    while wb.ReadyState != 4
        Sleep 10
    wb.Document.open()
    wb.Document.write(html)
    wb.Document.Close()
    w := wb.Document.parentWindow
    if (!CurrentType && A_ScriptDir != DefaultPath)
        CurrentName := ""  ; Avoid showing the Reinstall option since we don't
know which version it was.
    w.initOptions(CurrentName, CurrentVersion, CurrentType
                , ProductVersion, DefaultPath, DefaultStartMenu
                , DefaultType, A_Is64bitOS = 1)
    if (A_ScriptDir = DefaultPath) {
        w.installdir.disabled := true
        w.installdir_browse.disabled := true
        w.installcompiler.disabled := !DefaultCompiler
        w.installcompilernote.style.display := "block"
        w.ci_nav_install.innerText := "apply"
        w.install_button.innerText := "Apply"
        w.opt1.disabled := true
        w.opt1.firstChild.innerText := "Checking for updates..."
        SetTimer CheckForUpdates, -500
    }
    w.installcompiler.checked := DefaultCompiler
    w.enabledragdrop.checked := DefaultDragDrop
    w.separatebuttons.checked := DefaultIsHostApp
    ; w.defaulttoutf8.checked := DefaultToUTF8
    if !A_Is64bitOS
        w.it_x64.style.display := "None"
    if A_OSVersion in WIN_2000,WIN_2003,WIN_XP ; i.e. not WIN_7, WIN_8 or a
future OS.
        w.separatebuttons.parentNode.style.display := "none"
    w.switchPage("start")
    w.document.body.focus()
}
--- snip ---

The relevant html part (html + jscript embedded as string in AHK script):

Input control 'startmenu' with event handler 'onblur':

--- snip ---
...
<div class="page" id="ci_location">
<label for="installdir" class="indent">Install location:<br>
<input type="text" class="textbox" id="installdir" value="C:\Program
Files\AutoHotkey" tabindex="11"> <a href="ahk://SelectFolder/installdir,Select
the folder to install AutoHotkey in." id="installdir_browse" class="button"
tabindex="12">Browse</a></label><br>
<label for="startmenu" class="indent"> Create shortcuts in the following Start
menu folder:<br>
<input type="text" class="textbox" id="startmenu" value="AutoHotkey"
tabindex="13"
    onfocus="if (style.color == '#888') value='', style.color = '';"
    onblur="if (value == '') value = '(don\'t create shortcuts)', style.color =
'#888';">
...
--- snip ---

The jscript part (html + jscript embedded as string in AHK script):

Calling 'startmenu.onblur()':

--- snip ---
function initOptions(curName, curVer, curType, newVer, instDir, smFolder,
defType, is64) {
    if (onload) onload(), onload = null;
    var opt;
    var warn;
    var types = {Unicode: "Unicode 32-bit", ANSI: "ANSI 32-bit", x64: "Unicode
64-bit"};
    var curTypeName = types[curType];
    var defTypeName = types[defType];
    curTypeName = curTypeName ? " (" + curTypeName + ")" : "";
...
    start_options.innerHTML = html.join("");
    start_warning.innerHTML = warn;
    start_warning.style.display = warn ? "block" : "none";
    start_nav.innerHTML = '<em style="text-align:right;width:100%">version ' +
newVer + '</em>';
    installtype.value = defType;
    installdir.value = instDir;
    startmenu.value = smFolder;
    startmenu.onblur();
    forEach (document.getElementsByTagName("a"), function() {
        if (/*this.className == "button" ||*/ this.parentNode.className ==
"options")
            this.hideFocus = true;
    })
}
document.onselectstart =
document.oncontextmenu =
document.ondragstart =
    function() {
        return window.event && event.srcElement.tagName == "INPUT" || false;
    };
...
--- snip ---

$ sha1sum AutoHotkey_L_Install.exe 
2c1a2faa13ddf97ea67c5dafb8aff4f8b470543a  AutoHotkey_L_Install.exe

$ du -sh AutoHotkey_L_Install.exe 
3.8M    AutoHotkey_L_Install.exe

$ wine --version
wine-1.7.14-126-g2bb1059

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list