1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Code4Fun

Beiträge von Code4Fun

  • Consolen Umlaute Problem

    • Code4Fun
    • 29. August 2019 um 13:50

    Hallo,

    ich habe folgendes Problem. Mit IniRead möchte ich eine INI Datei auslesen und die Werte auf der Console ausgeben. In der INI gibt es Umlaute. Habe die INI mit Notepad++ erstellt und bereits ANSI, UTF-8 und UTF-8-BOM Kodierung ausprobiert. Auf der Console werden die Umlaute immer falsch dargestellt.

    Ich rede bei Console von eine CUI kompilierten EXE (nicht die Console in Scite)

    Bräuchte da bitte mal Hilfe.

    Danke

  • Anwendung bleibt stehen, was tun?

    • Code4Fun
    • 7. Juni 2019 um 15:02

    Danke alpins, toller Tip. Habe es jetzt mal umgebaut. Mal schauen, ob ich das Problem damit einkreisen kann. Schönes Wochende. Bin jetzt erst mal mit Kind und Kegel 2 Wochen im WoMo unterwegs.

  • Anwendung bleibt stehen, was tun?

    • Code4Fun
    • 7. Juni 2019 um 13:54

    Sorry. Persönliche Daten wurden anonymisiert.

    C
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
        #AutoIt3Wrapper_Icon=pushme.ico
        #AutoIt3Wrapper_Outfile_x64=MyServerMonitoringPushService.exe
        #AutoIt3Wrapper_Compression=4
        #AutoIt3Wrapper_Res_Comment=My Servermonitoring Push Service
        #AutoIt3Wrapper_Res_Description=My Servermonitoring Push Service
        #AutoIt3Wrapper_Res_Fileversion=0.1.0.52
        #AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
        #AutoIt3Wrapper_Res_LegalCopyright=Code4Fun
        #AutoIt3Wrapper_Res_Language=1031
        #AutoIt3Wrapper_AU3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
        #AutoIt3Wrapper_Run_Stop_OnError=y
        #AutoIt3Wrapper_Run_Tidy=y
        #Tidy_Parameters=/gd /reel /ri /sci 9  /kv 0
        #AutoIt3Wrapper_Run_Au3Stripper=y
        #Au3Stripper_Parameters=/so /mo
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <String.au3>
    #include <WinHttp.au3>
    #include <TrayConstants.au3>
    #include <Array.au3>
    #include <Date.au3>
    #include <FileConstants.au3>
    
    ;HotKeySet("{ESC}", "_Exit")
    
    #Region ; Script Kopf
        #cs ----------------------------------------------------------------------------
            AutoIt Version:     3.3.14.5
            Author:             Code4Fun
    
            Script Function:
    
            Diese Script soll sich automatisch auf der Monitoring Website einloggen und im Quelltext nach einem bestimmten Wort suchen.
            Wenn dieses Wort vorhanden ist, löse eine Push Me Aktion aus.
            Es soll so konfigurierbar sein, das über eine ini Datei BenutzerA, BenutzerB oder BenutzerC angetriggert werden.
    
            Erstellungendatum: vom 10.05.2019
    
            Änderungsdatum:
    
            Version: 0.0.1.0
    
            History:
    
            0.0.1.0 Initialerstellung
        #ce ----------------------------------------------------------------------------
    #EndRegion ; Script Kopf
    
    #Region ; Globale Variablen Deklaration
        Global $iMsg, $exititem, $sInputFreitext, $idMyedit, $sLesePushMeURL, $sLeseIdentifier, $sLeseTitle, $sLeseImageURL, $hGUI, $sLeseBody, $sLeseURL, $aAlarmString, $aAlarmServer, $aAlarmKlasse
        Global $aCSRF, $sPOST, $sServerName, $sPaket, $hConnect, $hSession, $aIEproxy, $sProxy, $sPaket2, $hConnect2, $sServerName2, $hSession2, $sBenutzerName, $sPasswort, $sLocation, $sLeseTitle4Log
        Global $iCount = 1, $iOrangeCounter = 0, $iRedCounter = 0
        Global $iAlarmCount = 0
        Global $iDurchlaufCounter = 1
        Global $sFileVersion = FileGetVersion(@AutoItExe)
        Global $sStartDatum = @WDAY & "." & @MON & "." & @YEAR
        Global $sStartZeit = @HOUR & ":" & @MIN & ":" & @SEC
    #EndRegion ; Globale Variablen Deklaration
    _WriteLog("### START ###")
    AdlibRegister("_Monitoring_Login", 10000)
    
    ;Tray-Menü anpassen
    Opt("TrayAutoPause", 0) ; Script will not be paused when clicking the tray icon.
    Opt("TrayOnEventMode", 1)
    Opt("TrayMenuMode", 1 + 2)
    ;Opt("TrayIconDebug", 1) ; Zeigt die aktuelle Skriptzeile im Trayicon Tipp um das Debugging zu unterstützen
    
    $exititem = TrayCreateItem("Beenden")
    TrayItemSetState(-1, $TRAY_UNCHECKED)
    TrayItemSetOnEvent(-1, "_Exit")
    TraySetState()
    
    #Region ; Hauptschleife
        While 1
            ;Monitoring_Login()
            Sleep(1000)
        WEnd
    #EndRegion ; Hauptschleife
    
    #Region ; Funktionen
    
        Func _Monitoring_Login()
            _reboot()
            _IPChecker()
            If $sLocation = "GP" Then ; Login für Privat verwendet
                $sBenutzerName = "Benutzer"
                $sPasswort = "Passwort"
            Else ; Login für My verwenden
                $sBenutzerName = "Anderer Benutzer"
                $sPasswort = "anderes Passwort"
            EndIf
            _WriteLog($iDurchlaufCounter)
            TraySetToolTip("Version: " & $sFileVersion & @CRLF & "Start am: " & $sStartDatum & @CRLF & "um: " & $sStartZeit & " Uhr" & @CRLF & "Round: " & $iDurchlaufCounter & @CRLF & "O-Alarme: " & $iOrangeCounter & @CRLF & "R-Alarme: " & $iRedCounter)
            $hSession = _WinHttpOpen('Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0')
            $sServerName = 'monitor.fqdn.tld'
            $hConnect = _WinHttpConnect($hSession, $sServerName)
            $sPaket = _WinHttpSimpleSSLRequest($hConnect, 'GET', '/')
            $aCSRF = _StringBetween($sPaket, 'name="csrf" value="', '" />')
            $iCount = 1
            _FileWrite($sPaket) ; schreibe eine Kontroll HTML Datei
            $sPOST = "csrf=" & $aCSRF[0] & "&user_name=" & $sBenutzerName & "&user_password=" & $sPasswort & "&action=login"
            $sPaket = ""
            While $sPaket = "" ;Entweder auf "0" = Zeichen oder 0 = Zahl prüfen
                $sPaket = _WinHttpSimpleSSLRequest($hConnect, 'POST', '/', 'https://monitor.fqdn.tld/', $sPOST)
            WEnd
            _FileWrite($sPaket) ; schreibe eine Kontroll HTML Datei
            Local $aAlarmString = _StringBetween($sPaket, '<div class="offline">', '<p>')
            Local $iError = @error
            If $iError = 1 Then
                $iAlarmCount = 0 ; 0 = alles im grünen Bereich
                TraySetIcon(@ScriptDir & "\green.ico")
            Else
                Local $sAlarmString = $aAlarmString[0]
                Local $aAlarmKlasse = _StringBetween($sAlarmString, '<div class="', '"') ; hier wird bestimmt, ob es ein orangener oder roter Alarm im Quelltext ist
                Local $aAlarmServer = _StringBetween($sAlarmString, '<h2>', '</h2>') ; hier wird das Serversystem ausgelesen.
    
                If $iAlarmCount = 0 Then
                    If $aAlarmKlasse[0] = "entity warning" Then ; Orangener Alarm festgestellt
                        $iOrangeCounter += 1
                        $iAlarmCount = 1 ; 1 = orangener Alarm
                        TraySetIcon(@ScriptDir & "\orange.ico")
                        _WriteLog("System " & $aAlarmServer[0] & ": INSTABIL")
                        $sLeseTitle = $aAlarmServer[0] & @CRLF & " INSTABIL" & @CRLF
                        $sLeseTitle4Log = $aAlarmServer[0] & ": INSTABIL"
                        $sLeseBody = "Details via Login " & @CRLF & "Benutzer 'Anderer Benutzer'" & @CRLF & "Kennwort 'anderes Passwort'" & @CRLF & "hier ==>"
                        $sLeseImageURL = "https://monitor.fqdn.tld/pushme/OrangenerAlarm.jpg"
                        $sLeseURL = "https://monitor.fqdn.tld"
                        MsgBox(65584, "Info vom Servermonitoring", $sLeseTitle & @CRLF & "am: " & @MDAY & "." & @MON & "." & @YEAR & @CRLF & "um: " & @HOUR & ":" & @MIN & ":" & @SEC, 3)
                        _PushMeTo("BenutzerA", $sLeseTitle, $sLeseBody, $sLeseImageURL, $sLeseURL)
                        _PushMeTo("BenutzerB", $sLeseTitle, $sLeseBody, $sLeseImageURL, $sLeseURL)
    ;~                     _PushMeTo("BenutzerC", $sLeseTitle, $sLeseBody, $sLeseImageURL, $sLeseURL)
                    EndIf
                EndIf
    
                If $iAlarmCount = 0 Or $iAlarmCount = 1 Then
                    If $aAlarmKlasse[0] = "entity " Then ; Roter Alarm festgestellt
                        $iRedCounter += 1
                        $iAlarmCount = 2 ; 2 = roter Alarm
                        TraySetIcon(@ScriptDir & "\red.ico")
                        _WriteLog("System " & $aAlarmServer[0] & ": OFFLINE")
                        $sLeseTitle = $aAlarmServer[0] & @CRLF & " OFFLINE" & @CRLF
                        $sLeseTitle4Log = $aAlarmServer[0] & ": OFFLINE"
                        $sLeseBody = "Details via Login " & @CRLF & "Benutzer 'Anderer Benutzer'" & @CRLF & "Kennwort 'anderes Passwort'" & @CRLF & "hier ==>"
                        $sLeseImageURL = "https://monitor.fqdn.tld/pushme/RoterAlarm.jpg"
                        $sLeseURL = "https://monitor.fqdn.tld"
                        If $iAlarmCount = 2 Then
                            MsgBox(65552, "Info vom Servermonitoring", $sLeseTitle & @CRLF & "am: " & @MDAY & "." & @MON & "." & @YEAR & @CRLF & "um: " & @HOUR & ":" & @MIN & ":" & @SEC, 3)
                        EndIf
                        _PushMeTo("BenutzerA", $sLeseTitle, $sLeseBody, $sLeseImageURL, $sLeseURL)
                        _PushMeTo("BenutzerB", $sLeseTitle, $sLeseBody, $sLeseImageURL, $sLeseURL)
    ;~                     _PushMeTo("BenutzerC", $sLeseTitle, $sLeseBody, $sLeseImageURL, $sLeseURL)
                    EndIf
                EndIf
            EndIf
    
            _WinHttpCloseHandle($hSession)
            $iDurchlaufCounter += 1
        EndFunc   ;==>_Monitoring_Login
    
        Func _PushMeTo($sVorname, $sLeseTitle, $sLeseBody, $sLeseImageURL, $sLeseURL) ; Diese Funktion wird aufgerufen, wenn die Nachricht an BenutzerA gehen soll
            _LeseINI($sVorname) ; lese die INI Datei aus
            Local $bData = InetRead($sLesePushMeURL & "identifier=" & $sLeseIdentifier & "&title=" & _EncodeURL($sLeseTitle) & "&body=" & _EncodeURL($sLeseBody) & "&imageURL=" & _EncodeURL($sLeseImageURL) & '&url=' & _EncodeURL($sLeseURL), 1) ; Lese die URL. Durch den Aufruf der URL wird via GET die Nachricht an das iPhone gesendet.
            _WriteLog("Info an " & $sVorname & " : " & $sLeseTitle4Log)
            _WriteAlertLog($sLeseTitle4Log)
            Local $sData = BinaryToString($bData)
            If Not $sData = "OK" Then ; Wenn die Website KEIN OK zurück gibt, dann erzeuge Fehlermeldung
                _WriteLog("PushMe an " & $sVorname & ": fehlgeschlagen")
            Else
                _WriteLog("PushMe an " & $sVorname & ": erfolgreich")
            EndIf
        EndFunc   ;==>_PushMeTo
    
        Func _FileWrite($sHTML, $Zusatz = "") ; erstellt zu Kontrollzwecken lokale HTML Dateien,
            Local Const $sFilePath = @ScriptDir
            If FileExists($sFilePath) Then ; wenn das Verzeichnis existiert, dann.
                ;ConsoleWrite("Das Verzeichnis " & $sFilePath & " existiert bereits" & @CRLF)
            Else
                ShellExecute(@ScriptDir)
                DirCreate($sFilePath)
                ConsoleWrite("Das Verzeichnis " & $sFilePath & " wurde erstellt" & @CRLF)
            EndIf
            FileDelete($sFilePath & "\" & $iCount & "-MonitoringLogin" & $Zusatz & ".html")
            FileWrite($sFilePath & "\" & $iCount & "-MonitoringLogin" & $Zusatz & ".html", $sHTML)
            $iCount += 1
        EndFunc   ;==>_FileWrite
    
        Func _LeseINI($sSection) ; lese die PushMe.ini aus
            $sLeseIdentifier = IniRead(@ScriptDir & "\pushme.ini", $sSection, "identifier", "")
            $sLesePushMeURL = IniRead(@ScriptDir & "\pushme.ini", $sSection, "PushMeURL", "")
            ;$sLeseTitle = IniRead(@ScriptDir & "\pushme.ini", $sSection, "title", "")
            ;$sLeseBody = IniRead(@ScriptDir & "\pushme.ini", $sSection, "body", "")
            ;$sLeseURL = IniRead(@ScriptDir & "\pushme.ini", $sSection, "url", "")
            ;$sLeseImageURL = IniRead(@ScriptDir & "\pushme.ini", $sSection, "imageURL", "")
        EndFunc   ;==>_LeseINI
    
        Func _DecodeURL($sData) ; Diese Funktion stammt von Prog@ndy und decodiert meinen URL codierten Text wieder in Klartext
            Local $aData = StringSplit(StringReplace($sData, "+", " ", 0, 1), "%")
            $sData = ""
            For $i = 2 To $aData[0]
                $aData[1] &= Chr(Dec(StringLeft($aData[$i], 2))) & StringTrimLeft($aData[$i], 2)
            Next
            Return BinaryToString(StringToBinary($aData[1], 1), 4)
        EndFunc   ;==>_DecodeURL
    
        Func _EncodeURL($sData) ; Diese Funktion stammt von Prog@ndy und codiert meinen Klartext in einen URL codierten Text
            Local $aData = StringSplit(BinaryToString(StringToBinary($sData, 4), 1), "")
            Local $nChar
            $sData = ""
            For $i = 1 To $aData[0]
                $nChar = Asc($aData[$i])
                Switch $nChar
                    Case 45, 46, 48 To 57, 65 To 90, 95, 97 To 122, 126
                        $sData &= $aData[$i]
                    Case 32
                        $sData &= "+"
                    Case Else
                        $sData &= "%" & Hex($nChar, 2)
                EndSwitch
            Next
            Return $sData
        EndFunc   ;==>_EncodeURL
    
        Func _IPChecker() ; hier wird geprüft, ob die IP den String 192.168.192 enthält. Wenn ja, dann bin ich im Homeoffice, ansonsten im Geschäft
            If StringInStr(@IPAddress1 & " " & @IPAddress2 & " " & @IPAddress3 & " " & @IPAddress4, "192.168.192") Then ; hier bin ich im Homeoffice
                $sLocation = "GP" ; setze die Variable $sLocation auf GP
            Else ; und hier in Geschäft
                $sLocation = "UL" ; setze die Variable $sLocation auf UL
            EndIf
        EndFunc   ;==>_IPChecker
    
        Func _WriteLog($sLogFileText)
            Local Const $sFilePath = @ScriptDir & "\Log"
            If FileExists($sFilePath) Then
                ;mache nichts
            Else
                DirCreate($sFilePath)
            EndIf
            ; erstelle Logdatei
            Local $hFileopen = FileOpen($sFilePath & "\" & @YEAR & "-" & @MON & "-" & @MDAY & ".log", BitOR($FO_APPEND, $FO_UTF8))
            FileWrite($hFileopen, @HOUR & ":" & @MIN & ":" & @SEC & ":" & @MSEC & "  " & "#: " & $sLogFileText & @CRLF)
            FileClose($hFileopen)
        EndFunc   ;==>_WriteLog
    
        Func _WriteAlertLog($sLogFileText)
            Local Const $sFilePath = @ScriptDir & "\Log"
            If FileExists($sFilePath) Then
                ;mache nichts
            Else
                DirCreate($sFilePath)
            EndIf
            ; erstelle Logdatei
            Local $hFileopen = FileOpen($sFilePath & "\" & @YEAR & "-" & @MON & "-" & @MDAY & "-Alert.log", BitOR($FO_APPEND, $FO_UTF8))
            FileWrite($hFileopen, @HOUR & ":" & @MIN & ":" & @SEC & ":" & @MSEC & "  " & "#: " & $sLogFileText & @CRLF)
            FileClose($hFileopen)
        EndFunc   ;==>_WriteAlertLog
    
        Func _reboot()
            If @HOUR = 23 And @MIN = 59 Then
                _WriteLog("### Es ist 23:59 Uhr - System S0012214 wird automatisch neu gestartet ###")
                _WriteLog("### ENDE ###")
                Shutdown(22)
            EndIf
        EndFunc   ;==>_reboot
    
        Func _Exit()
            _WriteLog("### ENDE ###")
            Exit
        EndFunc   ;==>_Exit
    #EndRegion ; Funktionen
    Alles anzeigen
  • Anwendung bleibt stehen, was tun?

    • Code4Fun
    • 7. Juni 2019 um 13:28

    Hallo zusammen,

    ich habe vor ein paar Wochen ein Autoit Script gebaut, welches "eigentlich" zuverlässig läuft. Ca. alle 10 Sekunden kommt dabei ein Logfile Eintrag zustanden. Somit kann ich remote - via Logfile - sehen, ob die Anwendung noch läuft. Jeden Tag wird ein neues Logfile generiert. Es kam dann man der Zustand, dass nach 4 oder 5 Tagen kein Logfile mehr vom aktuellen Tag vorhanden war. Ich habe dann festgestellt, dass das Logfile vom Vortag mittendrin aufgehört hat zu protokollieren.

    Daraufhin lassen ich jetzt um kurz vor Mitternacht den PC automatisch neu durchstarten (die paar Minuten tun mir nicht weh). Danach fängt die Anwendung wieder an zu protokollieren. Leider kommt es jetzt ab und zu vor, dass binnen 24 Stunden die Anwendung auch nicht mehr protokolliert, obwohl Sie "optisch" noch läuft. Wie kann man denn sowas abfangen, also einen Prozess, der zwar noch laut Taskmanager aktiv ist, aber "innerlich" wohl schon tod?

  • Fileopen - Problem mit UTF8

    • Code4Fun
    • 27. Mai 2019 um 09:58

    Danke Musashi, das war es. Habe die 257 durch BitOR($FO_APPEND, $FO_UTF8) ersetzt und dann hatte ich auch den include noch nicht drin.

    Euch noch einen schönen Tag

  • Fileopen - Problem mit UTF8

    • Code4Fun
    • 27. Mai 2019 um 09:23

    Guten Morgen, kurze Frage. Ich erzeuge mit Local $hFileopen = FileOpen($sFilePath & "\" & @YEAR & "-" & @MON & "-" & @MDAY & ".log", 257) ein Logfile im UTF8 Format mit anhängen an das Dateiende.

    Jetzt schreibe ich dort unter anderem das Wort "Übermittlung" rein, welches aber im Logfile dann so aussieht Übermittlung. Wieso kann UTF8 kein "Ü" darstellen?

  • Firmenproxys testen

    • Code4Fun
    • 20. Mai 2019 um 10:12

    Habe das jetzt so eingebaut

    Code
    $sProxy = "10.111.13.23:3128"
    $hSession = _WinHttpOpen('Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0', $WINHTTP_ACCESS_TYPE_NAMED_PROXY, $sProxy)
    $sServerName = 'www.domain.tld'
    ...usw....

    Absolut keine Änderung.

    In der proxy.pac steht unter anderem

    Code
    // Intern
    
            if (isPlainHostName(host)                                     ||
                isInNet(host, "10.0.0.0", "255.0.0.0")                     ||
                isInNet(host, "172.16.0.0", "255.240.0.0")                 ||
                isInNet(host, "192.168.0.0", "255.255.0.0")             ||
                isInNet(host, "127.0.0.0", "255.0.0.0"))
    
                    return "DIRECT";

    Das System, auf welchem es nicht geht, hat die IP 10.111.xxx.xxx und wäre somit Intern und würde dann DIRECT ins Internet, also ohne Proxy. Ich kann auch via telnet den Port 443 anfragen.

    Bin so langsam mit meinem Latein am Ende.

  • Firmenproxys testen

    • Code4Fun
    • 20. Mai 2019 um 09:38

    Also die beiden Einträge

    _WinHttpSetDefaultProxyConfiguration($WINHTTP_AUTO_DETECT_TYPE_DHCP) oder _WinHttpSetDefaultProxyConfiguration($WINHTTP_AUTO_DETECT_TYPE_DNS_A) haben "so" noch nichts gebracht

  • Firmenproxys testen

    • Code4Fun
    • 20. Mai 2019 um 09:25

    Könntest Du mir hier bitte behilflich sein. Wie muss denn die Syntax genau aussehen. Wie gesagt, im IE steht halt eine http://pfad/zur/proxy.pac. Wenn ich mir den Inhalt ansehe, kann ich noch bis auf IP: xxx.xxx.xxx.xxx:PORT kommen. Danke

    Bei dem Script

    C
    #include "WinHttp.au3"
    #include <Array.au3>
    
    Opt("MustDeclareVars", 1)
    
    ; Internet Explorer proxy configuration for the current user:
    Global $aIEproxy = _WinHttpGetIEProxyConfigForCurrentUser()
    _ArrayDisplay($aIEproxy, "Internet Explorer proxy configuration")

    wird in Row 0 / Col 0 die "0" angezeigt und in Row 1 / Col 0 die "http://pfad/zur/proxy.pac". Der Rest ist leer

  • Firmenproxys testen

    • Code4Fun
    • 20. Mai 2019 um 09:07

    Bin jetzt einfach mal den nächsten Schritt angegangen (bitte Code kontrolliern, ob das so überhaupt passt)

    Code
    $hSession = _WinHttpOpen('Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0')
    $sServerName = 'www.domain.tld'
    $hConnect = _WinHttpConnect($hSession, $sServerName, 443)
    If @error Then
        MsgBox(48, "Error", "Error getting connection handle." & @CRLF & "Error number is " & @error)
    Else
        MsgBox(64, "Yes!", "Handle is get! $hConnect = " & $hConnect)
    EndIf
    
    ;(1)Aufruf der Seite
    $sPaket = _WinHttpSimpleSSLRequest($hConnect, 'GET', '/')
    If @error Then
        MsgBox(48, "Error", "Fehler." & @CRLF & "Error number is " & @error)
    Else
        MsgBox(0, "Was steht in $sPaket", $sPaket)
    EndIf
    Alles anzeigen

    Bei der Zeile MsgBox(48, "Error", "Fehler." & @CRLF & "Error number is " & @error) bekomme ich den Fehler 2 geworfen, was vermutlich 2 - could not send request bedeutet.

    Wie gesagt, ich habe das Problem nur ein der "Firmenumgebung". Zu Hause läuft das Script absolut ohne Probleme und sehr stabil.

  • Firmenproxys testen

    • Code4Fun
    • 20. Mai 2019 um 08:49

    Guten Morgen alpines. Habe den Code jetzt so angepasst (aus dem Beispiel der WinHTTP.au3 Hilfe)

    Code
    $hSession = _WinHttpOpen('Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0')
    $sServerName = 'www.domain.tld'
    $hConnect = _WinHttpConnect($hSession, $sServerName, "443")
    If @error Then
        MsgBox(48, "Error", "Error getting connection handle." & @CRLF & "Error number is " & @error)
    Else
        ConsoleWrite("+ Connection handle $hConnect = " & $hConnect & @CRLF)
        MsgBox(64, "Yes!", "Handle is get! $hConnect = " & $hConnect)
    EndIf

    Es kommt als erstes die Meldung

    Code
    MsgBox(64, "Yes!", "Handle is get! $hConnect = " & $hConnect)

    kurze Zeit später dann aber wieder der Abbruch bei bereits oben beschriebener Zeile (die Nummer der Zeile ist jetzt logischweise eine andere, aber der gleiche Inhalt)

  • Firmenproxys testen

    • Code4Fun
    • 17. Mai 2019 um 16:41

    Ich mache doch ein GET mit "/" auf (nur ein Beispiel, kann die echte URL hier nicht posten) mit _WinHttpSimpleSSLRequest auf http://www.domain.tld, d.h. heißt dann auf https://www.domain.tld/ . Wenn man bei https nichts expliziet angibt, ist es doch immer Port 443. Der ist ja im Firmennetz auch freigegeben. Den Satz Muss der Proxy ebenfalls in der Anwendung hinterlegt werden oder wird er einfach vor den PC geschaltet? verstehe ich leider nicht genau. Was meinst Du damit? Ich möchte jetzt erstmal ungern mit irgendwelchen Proxyversuchen in meinem Script rumspielen (ich mach das natürlich dann in einer Kopie), aber es ging mir ja erst mal darum, ob jemand vielleicht schon ein "Test Script", welche die Proxyumgebung analysiert und man dann irgendwie feststellen kann, ja - ich bin jetzt im Internet, oder nein - ich komme nicht raus.

    Der Fehler, der geschmissen wird lautet: Line 4479 (File "...Pfad zur EXE): Error: Subscript used on non-accessible variable.

    Zeile 4479 ist: ConsoleWrite("$aCSRF ist: " & $aCSRF[0] & @CRLF)

    Sprich das Array wird nicht befüllt, weil es erst gar nicht ins Internet kommt.

  • Firmenproxys testen

    • Code4Fun
    • 17. Mai 2019 um 16:20

    Hallo , ich habe folgendes Problem.

    Im Homeoffice habe ich ein Autoit Script entwickelt, welches die WinHttp.au3 nutzt um in regelmäßigen Abständen den Status einer SSL Internetseite zu crawlen. Soweit ist alles gut und funktioniert echt super und stabil. Dieses Script soll jetzt aber auf einem Windows Rechner im Firmennetz laufen. Mit unseren Proxy(s) ist das so eine Sache. Da ich jedoch den Admin gut kenne, konnte ich schon mal den einen oder anderen Test machen. Wir verwenden im IE eine proxy.pac Datei. Aber "eigentlich" wird gar kein Proxy mehr verwendet (laut seiner Aussage). Wenn bei uns Seiten gesperrt sind, sind das nur welche, die nicht auf Port 80 oder 443 laufen. Ich muss mich auch nicht expliziet am Proxy anmelden, das läuft alles über das AD. Aber irgendwas lässt mein Script nicht so richtig nach außen.

    Vielleicht hat von euch ja schon mal jemand ein Script gemacht, mit dem man einfach testen kann, welche Proxyumgebung aktiv ist, und unter welchen Umständen man mit dem Autoit Script ins Internet kommt.

    Hier kurz ein paar Zeilen, wo das Script in der Firmenumgebung aussteigt. $aCSRF wird hier schon nicht mehr befüllt. Die Fehlermeldung steigt aber bei der letzten Zeile aus.

    Code
    $hSession = _WinHttpOpen('Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0')
    $sServerName = 'www.domain.tld'
    $hConnect = _WinHttpConnect($hSession, $sServerName)
    $sPaket = _WinHttpSimpleSSLRequest($hConnect, 'GET', '/')
    $aCSRF = _StringBetween($sPaket, 'name="csrf" value="', '" />')
    ConsoleWrite("$aCSRF ist: " & $aCSRF[0] & @CRLF)
  • Brauche Hilfe beim automatisierten Internet Login

    • Code4Fun
    • 17. Mai 2019 um 10:48

    Ich schließe diese Anfrage heute, da die Zeitung PDFs nicht mehr zur Verfügung stellt und daher auch kein weiterer Support Bedarf mehr da ist.

  • Script läuft nur 1 mal und beendet sich dann.

    • Code4Fun
    • 13. Mai 2019 um 16:53

    Sorry, war blind. Habe ein EXIT übersehen

  • Script läuft nur 1 mal und beendet sich dann.

    • Code4Fun
    • 13. Mai 2019 um 16:47

    Ist mir jetzt fast schon peinlich, aber irgendwie stehe ich auf dem Schlauch. Ich möchte gerne ein Script laufen lassen, welches keine GUI enthält. Es soll im Systemtray zum beenden sein. Es hat eine Hauptfunktion und eine Nebenfunktion, welche aus der Hauptfunktion aufgerufen wird. Leider läuft die Hauptfunktion genau einmal und dann beendet sich das Script. Ich denke mein Fehler liegt hier irgendwo

    Code
    While True
        _Monitoring_Login()
        Sleep(5000)
    WEnd
  • ComboBox dynamisch erweitern und abfragen

    • Code4Fun
    • 7. Mai 2019 um 12:42

    Ich habe es nicht über eine Combobox gelöst, sondern über ein Input mit einer anderen SQL Abfrage, welche mir mehr Freiheiten lässt. Also ein ganz anderer Ansatz, als ich eigentlich ursprünglich machen wollte.

  • ComboBox dynamisch erweitern und abfragen

    • Code4Fun
    • 3. Mai 2019 um 14:29

    Ich sehe gerade, dass dieser Thread noch offen war. Habe das ganze jetzt völlig anders angegangen und bin damit sehr zufrieden. Von daher nochmals vielen Dank an alle. Thread wird geschlossen

  • 3 verschiedene Farben auf bestimmten Koordinaten erkennen und Meldung ausgeben

    • Code4Fun
    • 30. April 2019 um 08:46

    In der Zwischenzeit geht das recht gut....

  • 3 verschiedene Farben auf bestimmten Koordinaten erkennen und Meldung ausgeben

    • Code4Fun
    • 29. April 2019 um 14:39
    Zitat von BugFix

    Nein, nur GUISetState(@SW_HIDE), sonst ist dein GUISetState(@SW_SHOW) auch nicht sinnvoll.

    Hallo BugFix, das ist mir vor 2 Minuten auch aufgefallen. Danke für den Tipp

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™