Wie führe ich zwei Scripte zusammen?

  • Hallo liebe Mitglieder,

    wie führe ich folgende zwei Scripte zusammen?

    Script 1 ist ein Browser im Vollbildmodus der eine Seite aufruft:

    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    HotKeySet("{ESC}","Kill")
    Global Const $WS_EX_COMPOSITED = 0x02000000
    $gui = GUICreate("",300,300,0,0, BitOR($WS_SIZEBOX, $WS_POPUPWINDOW, $WS_CLIPCHILDREN), BitOR($WS_EX_TOOLWINDOW, $WS_EX_COMPOSITED));Erstellt ein GUI
    GUISetState();Macht es sichtbar
    GUISetState(@SW_MAXIMIZE);maximiert es, und...

    [/autoit][autoit][/autoit][autoit]

    $GUISize = WinGetPos($gui) ;fragt pos. und grösse deines Fensters ab
    ;~ $GUISize[0] wäre x-position
    ;~ $GUISize[1] wäre y-position
    ;~ $GUISize[2] wäre breite
    ;~ $GUISize[3] wäre höhe
    $eIE = _IECreateEmbedded()
    GUICtrlCreateObj($eIE, $GUISize[0], $GUISize[1], $GUISize[2], $GUISize[3])
    _IENavigate($eIE,"www.google.de")
    Func Kill()
    Exit
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    While 1
    sleep(200)
    WEnd

    [/autoit]

    Script 2 ist eine Funktion die diesen Browser wieder schliessen soll wenn nach einer bestimmten Zeit der Inaktivität der Maus nix geschieht:

    [autoit]

    #Include <Timers.au3>
    $maxIdle_min = IniRead(@ScriptDir & "\shutdown.ini", "Tireconfig", "Time", "" )
    $prog = IniRead(@ScriptDir & "\shutdown.ini", "Tireconfig", "Path", "" )
    $pid = Run($prog)
    Do
    Sleep(100)
    Until _Timer_GetIdleTime() > $maxIdle_min*60*1000
    ProcessClose ($pid)

    [/autoit]

    lieben Dank
    ePole

  • Nimm den include auch nach oben und setze das andere unten in die whileschleife musste hald testen

  • Das ist echt nur Copy & Paste... >.>
    und ein bsischen graue Zellen anstrengen ^^

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #Include <Timers.au3>

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{ESC}","Kill")
    Global Const $WS_EX_COMPOSITED = 0x02000000
    $gui = GUICreate("",300,300,0,0, BitOR($WS_SIZEBOX, $WS_POPUPWINDOW, $WS_CLIPCHILDREN), BitOR($WS_EX_TOOLWINDOW, $WS_EX_COMPOSITED));Erstellt ein GUI
    GUISetState();Macht es sichtbar
    GUISetState(@SW_MAXIMIZE);maximiert es, und...

    [/autoit] [autoit][/autoit] [autoit]

    $GUISize = WinGetPos($gui)
    $eIE = _IECreateEmbedded()
    GUICtrlCreateObj($eIE, $GUISize[0], $GUISize[1], $GUISize[2], $GUISize[3])
    _IENavigate($eIE,"www.google.de")

    [/autoit] [autoit][/autoit] [autoit]

    $maxIdle_min = 3 ; <---- Hier deine Minutenzahl eintragen

    [/autoit] [autoit][/autoit] [autoit]

    Do
    sleep(200)
    Until _Timer_GetIdleTime() > $maxIdle_min*60*1000

    [/autoit] [autoit][/autoit] [autoit]

    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func Kill()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    sleep(200)
    WEnd

    [/autoit]

    Das schaffste das nächste mal aber auch alleine ^^

  • Da kann man dann die letzten Zeilen, also die While-Schleife, weglassen, und außerdem würde ich (auch an deinen anderen Thread gedacht ^^ ), nicht einfach "Exit" aufrufen, sondern die "Kill"-Funktion.

  • Hallo ePole.

    ok...danke erstmal...ich mache dann im anderen post weiter, sonst werd ich total irre ;)

    dachtest du an soetwas?

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #Include <Timers.au3>

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{ESC}","Kill")
    Global Const $WS_EX_COMPOSITED = 0x02000000
    ;$gui = GUICreate("",300,300,0,0, BitOR($WS_SIZEBOX, $WS_POPUPWINDOW, $WS_CLIPCHILDREN), BitOR($WS_EX_TOOLWINDOW, $WS_EX_COMPOSITED));Erstellt ein GUI
    $gui = GUICreate("",300,300,0,0, BitOR($WS_SIZEBOX,$WS_CAPTION,$WS_MINIMIZEBOX,$WS_MAXIMIZE,$WS_SYSMENU));Erstellt ein GUI
    GUISetState();Macht es sichtbar

    [/autoit] [autoit][/autoit] [autoit]

    #cs
    $GUISize = WinGetPos($gui) ;fragt pos. und grösse deines Fensters ab
    ;~ $GUISize[0] wäre x-position
    ;~ $GUISize[1] wäre y-position
    ;~ $GUISize[2] wäre breite
    ;~ $GUISize[3] wäre höhe
    $eIE = _IECreateEmbedded()
    GUICtrlCreateObj($eIE, $GUISize[0], $GUISize[1], $GUISize[2], $GUISize[3])
    #ce

    [/autoit] [autoit][/autoit] [autoit]

    $GUISize = WinGetClientSize($gui) ;fragt grösse deines Fensters ab
    ;~ $GUISize[0] wäre breite
    ;~ $GUISize[1] wäre höhe
    $eIE = _IECreateEmbedded()
    GUICtrlCreateObj($eIE, 0,0,$GUISize[0], $GUISize[1])
    _IENavigate($eIE,"www.google.de")

    [/autoit] [autoit][/autoit] [autoit]

    $maxIdle_min = IniRead(@ScriptDir & "\shutdown.ini", "Tireconfig", "Time", "1" )
    $prog = IniRead(@ScriptDir & "\shutdown.ini", "Tireconfig", "Path", "calc.exe" )
    $pid = Run($prog)
    Do
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_Close
    Kill()
    EndSwitch
    $IdleTime = _Timer_GetIdleTime()
    ConsoleWrite($maxIdle_min & " " & $IdleTime & @CRLF)
    Until $IdleTime > $maxIdle_min*60*1000
    Kill()

    [/autoit] [autoit][/autoit] [autoit]

    Func Kill()
    ProcessClose ($pid)
    Exit
    EndFunc

    [/autoit]


    mfg (Auto)Bert

  • Danke AutoBert,

    bei dieser letzten Scriptzusammenführung von Dir geht der Browser nicht im kompletten Vollbild auf sondern wieder mit dem blauen Balken oben...woran liegt das?

    lg ePole

  • Hallo ePole,

    einfach nur die Stile für GuiCreate anpassen:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #Include <Timers.au3>

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{ESC}","Kill")
    ;Global Const $WS_EX_COMPOSITED = 0x02000000
    ;$gui = GUICreate("",300,300,0,0, BitOR($WS_SIZEBOX, $WS_POPUPWINDOW, $WS_CLIPCHILDREN), BitOR($WS_EX_TOOLWINDOW, $WS_EX_COMPOSITED));Erstellt ein GUI
    $gui = GUICreate("",300,300,0,0, BitOR($WS_SIZEBOX,$WS_POPUPWINDOW,$WS_MAXIMIZE));Erstellt ein GUI
    GUISetState();Macht es sichtbar

    [/autoit] [autoit][/autoit] [autoit]

    $GUISize = WinGetClientSize($gui) ;fragt grösse deines Fensters ab
    ;~ $GUISize[0] wäre breite
    ;~ $GUISize[1] wäre höhe
    $eIE = _IECreateEmbedded()
    GUICtrlCreateObj($eIE, 0,0,$GUISize[0], $GUISize[1])
    _IENavigate($eIE,"www.google.de")

    [/autoit] [autoit][/autoit] [autoit]

    $maxIdle_min = IniRead(@ScriptDir & "\shutdown.ini", "Tireconfig", "Time", "1" )
    $prog = IniRead(@ScriptDir & "\shutdown.ini", "Tireconfig", "Path", "calc.exe" )
    $pid = Run($prog)
    Do
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_Close
    Kill()
    EndSwitch
    $IdleTime = _Timer_GetIdleTime()
    ConsoleWrite($maxIdle_min & " " & $IdleTime & @CRLF)
    Until $IdleTime > $maxIdle_min*60*1000
    Kill()

    [/autoit] [autoit][/autoit] [autoit]

    Func Kill()
    ProcessClose ($pid)
    Exit
    EndFunc

    [/autoit]

    mfg (Auto)Bert

  • Hallo AutoBert,

    soweit verstanden, aber die Zeile 20 verstehe ich nicht. Es soll doch kein neues Programm aufgerufen werden, sondern der Browser der nach einer Minute sich wieder schliessen soll?

    [autoit]

    $prog = IniRead(@ScriptDir & "\shutdown.ini", "Tireconfig", "Path", "calc.exe" )

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
  • Hallo ePole,

    Calc.Exe habe ich als Default vorbelegt, nimm es einfach wieder heraus. Der Browser ist doch schon gestartet, ich dachte du willst ein anders Programm starten (siehe Zeile 3 deines 2. Skriptes) im Eröffnungspost,

    mfg (Auto)Bert