Jump to content

How do GUI and GuiCreateObj interact with or pass values to each other?


Recommended Posts

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Example()

Func Example()
    Local $idButton_Back, $idButton_Forward
    Local $idButton_Home, $idButton_Stop, $iMsg

    Local $oIE = ObjCreate("Shell.Explorer.2")

    GUICreate("Embedded Web control Test", 640, 580, (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
    GUICtrlCreateObj($oIE, 5, 5, 630, 535)
    $idButton_Back = GUICtrlCreateButton("Back", 5, 545, 70, 30)
    $idButton_Forward = GUICtrlCreateButton("Forward", 80, 545, 70, 30)
    $idButton_Home = GUICtrlCreateButton("Home", 155, 545, 70, 30)
    $idButton_Stop = GUICtrlCreateButton("Stop", 230, 545, 70, 30)
    $idinputGetdata = GUICtrlCreateInput("", 305, 545, 330, 30)

    GUISetState(@SW_SHOW) 

    $oIE.navigate("http://www.aastocks.com/en/stocks/analysis/transaction.aspx?symbol=00005")

    While 1
        $iMsg = GUIGetMsg()

        Select
            Case $iMsg = $GUI_EVENT_CLOSE
                ExitLoop
            Case $iMsg = $idButton_Home
                $oIE.navigate("http://www.autoitscript.com")
            Case $iMsg = $idButton_Back
                $oIE.GoBack
            Case $iMsg = $idButton_Forward
                $oIE.GoForward
            Case $iMsg = $idButton_Stop
                $oIE.Stop
        EndSelect

    WEnd

    GUIDelete()
EndFunc

20220112210559.png.88f9ff1a9ff9b9202fe54de7b1314b74.png

As shown above.

When click the drop-down-box or radio-box of the tag area in the web-page

how do the selected values in the web-page show in the input-box in the GUI?

thanks a lot!

Edited by Letraindusoir
Link to comment
Share on other sites

My guess is probably through the tag data or through the execution of some javascript and the resulting data.  You can scrape web pages information via downloading the source code and parsing through it.  Anything stock related is usually hidden bc so many have made stock bots.  The selling of stock trading data has turned into its own industry.   It's ridiculous really.  

Link to comment
Share on other sites

There is probably something I do not understand in your request. You get the data from the webpage in variables and you store them in GUI controls with GUICtrlSetData.

Link to comment
Share on other sites

18 hours ago, Nine said:

There is probably something I do not understand in your request. You get the data from the webpage in variables and you store them in GUI controls with GUICtrlSetData.

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Color.au3>
#include <IE.au3>

Local $idInpColor, $vGet = ""
Local $srcHtml = WebSrcHtml()
Test($srcHtml)

Func Test($html)
    Local $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc")
    #forceref $oErrorHandler
    Local $iGw = (1024 + (8 * 2)), $iGh = (256 + (8 * 2))
    Local $iMsg

    Local $oIE = ObjCreate("Shell.Explorer.2")

    GUICreate("", $iGw, $iGh, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
    GUICtrlCreateObj($oIE, 8, 8, 1024, ($iGh - 24 - (8 * 3)))
    
    $idInpColor = GUICtrlCreateInput("", 8 , ($iGh - 8 - 24),256, 24)
    
    GUISetState(@SW_SHOW) ;显示 GUI
    $oIE.navigate("about:blank")
    Sleep(1000)
    _IEDocWriteHTML($oIE, $html)
    Sleep(3000)

    ClipPut("")
    AdlibRegister("GetWebColor", 250)   
    While 1
        $iMsg = GUIGetMsg()
        Switch $iMsg
            Case $GUI_EVENT_CLOSE
                ExitLoop
        EndSwitch
        Sleep(10)
    WEnd
    AdlibUnRegister("GetWebColor")
    GUIDelete()
EndFunc   ;==>Test
Func _ErrFunc($oError)
    ConsoleWrite(@ScriptName & " (" & $oError.scriptline & ") : ==> COM error !" & @CRLF & _
            @TAB & "err.number is: " & @TAB & @TAB & "0x" & Hex($oError.number) & @CRLF & _
            @TAB & "err.windescription:" & @TAB & $oError.windescription & @CRLF & _
            @TAB & "err.description is: " & @TAB & $oError.description & @CRLF & _
            @TAB & "err.source is: " & @TAB & @TAB & $oError.source & @CRLF & _
            @TAB & "err.helpfile is: " & @TAB & $oError.helpfile & @CRLF & _
            @TAB & "err.helpcontext is: " & @TAB & $oError.helpcontext & @CRLF & _
            @TAB & "err.lastdllerror is: " & @TAB & $oError.lastdllerror & @CRLF & _
            @TAB & "err.scriptline is: " & @TAB & $oError.scriptline & @CRLF & _
            @TAB & "err.retcode is: " & @TAB & "0x" & Hex($oError.retcode) & @CRLF & @CRLF)
EndFunc   ;==>_ErrFunc
Func GetWebColor()
    $vGet = ClipGet()
    If (StringLeft($vGet, 1) = "#") Then
        GUICtrlSetData($idInpColor, $vGet)
        GUICtrlSetBkColor($idInpColor, "0x" & StringTrimLeft($vGet, 1))
    EndIf
EndFunc   ;==>GetWebColor
Func WebSrcHtml()
    Local $Str = _
        '<HTML xmlns="http://www.w3.org/1999/xhtml">' & _
        '<HEAD>' & _
        '<META content="IE=11.0000" http-equiv="X-UA-Compatible">' & _
        '<META http-equiv="Content-Type" content="text/html; charset=utf-8">' & _
        '<style>' & _
        'body {' & _
        '   background: url("bj.gif") rgb(53, 62, 68); font-size: 9pt; margin-top: 0px;' & _
        '}' & _
        'td {' & _
        '   font-size: 9pt;' & _
        '}' & _
        '.wrap {' & _
        '   margin: 0px auto; width: 990px; overflow: hidden; background-color: rgb(255, 255, 255);' & _
        '}' & _
        '</style>' & _
        '</HEAD>' & _
        '<BODY text="#333333" bgcolor="#ffffff" link="#333333" alink="#333333" vlink="#333333">' & _
        '<DIV class="wrap">' & _
        '  <DIV align="center">' & _
        '    <CENTER>' & _
        '      <TABLE width="990" class="tableborder" border="0" cellspacing="3" cellpadding="5">' & _
        '        <TBODY>' & _
        '          <TR>' & _
        '            <TD width="25%" class="tdborder" bgcolor="#f7acbc" onclick="javascript:window.clipboardData.setData(' & "'" & 'text' & "'" & ',this.currentStyle.backgroundColor);"><FONT ' & _
        '      color="#ffffff"><BR>' & _
        '              #f7acbc</FONT></TD>' & _
        '            <TD width="25%" class="tdborder" bgcolor="#deab8a" onclick="javascript:window.clipboardData.setData(' & "'" & 'text' & "'" & ',this.currentStyle.backgroundColor);"><FONT ' & _
        '      color="#ffffff"><BR>' & _
        '              #deab8a</FONT></TD>' & _
        '            <TD width="25%" class="tdborder" bgcolor="#817936" onclick="javascript:window.clipboardData.setData(' & "'" & 'text' & "'" & ',this.currentStyle.backgroundColor);"><FONT ' & _
        '      color="#ffffff"><BR>' & _
        '              #817936</FONT></TD>' & _
        '            <TD width="25%" class="tdborder" bgcolor="#444693" onclick="javascript:window.clipboardData.setData(' & "'" & 'text' & "'" & ',this.currentStyle.backgroundColor);"><FONT ' & _
        '      color="#ffffff"><BR>' & _
        '              #444693</FONT></TD>' & _
        '          </TR>' & _
        '          <TR>' & _
        '            <TD class="tdborder" bgcolor="#ef5b9c" onclick="javascript:window.clipboardData.setData(' & "'" & 'text' & "'" & ',this.currentStyle.backgroundColor);"><FONT ' & _
        '      color="#ffffff"><BR>' & _
        '              #ef5b9c</FONT></TD>' & _
        '            <TD class="tdborder" bgcolor="#fedcbd" onclick="javascript:window.clipboardData.setData(' & "'" & 'text' & "'" & ',this.currentStyle.backgroundColor);"><FONT ' & _
        '      color="#ffffff"><BR>' & _
        '              #fedcbd</FONT></TD>' & _
        '            <TD class="tdborder" bgcolor="#ea7522" onclick="javascript:window.clipboardData.setData(' & "'" & 'text' & "'" & ',this.currentStyle.backgroundColor);"><FONT ' & _
        '      color="#ffffff"><BR>' & _
        '              #ea7522</FONT></TD>' & _
        '            <TD class="tdborder" bgcolor="#9b4880" onclick="javascript:window.clipboardData.setData(' & "'" & 'text' & "'" & ',this.currentStyle.backgroundColor);"><FONT ' & _
        '      color="#ffffff"><BR>' & _
        '              #9b4880</FONT></TD>' & _
        '          </TR>' & _
        '        </TBODY>' & _
        '      </TABLE>' & _
        '    </CENTER>' & _
        '  </DIV>' & _
        '</DIV>' & _
        '</BODY>' & _
        '</HTML> '
        Return $Str
EndFunc

 As shown in the code above
The web javascript passes the value to the GUI when you double-click the color-block.
What I want to achieve is how does Gui capture the mouse or keyboard actions for a web-page and get the corresponding value for the Dom element in the web-page?

Edited by Letraindusoir
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...