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

  • Script loggt plötzlich nicht mehr

    • Code4Fun
    • 19. Oktober 2020 um 09:38

    Guten Morgen,

    ich habe mal eine Frage. Bei mir läuft ein Autoit Script, welches jetzt schon seit Monaten ohne Probleme lief. Es macht nichts anderes, als eine Webseite zu überprüfen und Informationen in ein Logfile schreibt. Ich lasse den Windows PC jede Nacht automatisch um 23:59 Uhr booten. Danach fängt das Script mit einem neuen Logfile an.

    Aktuell läuft der Zeitstempel im Logfile bis ca. 04:04 Uhr, dann wird nichts mehr ins Logfile geschrieben. Der Prozess vom Script läuft aber noch, d.h. eigentlich sollte er weiter protokollieren.

    Wie kann ich denn sowas monitoren / abfangen, bzw. den Fehler rausfinden.

    Danke

  • Aufruf von autoit generierter HTML Datei plus Input File ohne Webserver

    • Code4Fun
    • 24. April 2020 um 13:56
    Zitat von AspirinJunkie

    Findet einer einen Webserver mit weniger Schnick-Schnack drumherum? 8):

    https://gist.github.com/xenomuta/4450368

    Hallo AspirinJunkie, habe das letzte mal vor ca. 30 Jahren mit Assembler zu tun .... und hatte es damals schon nicht verstanden :)

  • Aufruf von autoit generierter HTML Datei plus Input File ohne Webserver

    • Code4Fun
    • 24. April 2020 um 13:53
    Zitat von Bitnugger

    https://www.rejetto.com/hfs/

    Hallo Bitnugger, vielen Dank für die Info. In der Zwischenzeit habe ich auch einen gefunden (heißt MiniWebServer), aber ich bekomme den nicht als Dienst gestartet (also als Dienst installiert, aber er startet aktuell nicht). Kann man den HFS als Dienst laufen lassen? Wenn ja, kannst Du mir das kurz erläutern. Danke

  • Aufruf von autoit generierter HTML Datei plus Input File ohne Webserver

    • Code4Fun
    • 23. April 2020 um 16:12

    Hallo zusammen,

    ich habe heute mal eine Frage leicht außerhalb von Autoit. Vor vielen Monden haben ich mir mal ein Script gebaut, welches diverse Datenbanken abfrägt, das Ergebnis in eine Datei schreibt, parallel ein HTML Gerüst baut. Am Ende ruft das Autoit Script die HTML Datei "lokal" auf, das HTML Gerüst zieht sich dann den Inhalt der Datei rein und ich "sah" eine perfekte Tabelle. Soweit alles gut.

    Jetzt ... viele Monde später ... bekomme ich nur noch mein H1 Überschrift zu sehen. Erst dachte ich, die Zugangsdaten zu den Datenbanken hätten sich geändert, aber als ich Step by Step nochmals alles durch ging, konnte ich feststellen, das meine Datei noch generiert wird. Alle notwendigen Dateien liegen in ein und demselben Verzeichnis.

    In der Zwischenzeit habe ich das Problem gefunden, hätte auch eine Lösung, suche aber eine andere Lösung.

    Code
    So geht es nicht: file:///C:/C4F/MeineTabelle.html
    Code
    So geht es: https://127.0.0.1/MeineTabelle.html

    sprich, wenn ich lokal z.B. einen XAMPP laufen lasse und die Datei aus dem Webserver aufrufe, dann ist alles OK. Wird die Datei aber direkt aus dem Filesystem aufgerufen, dann wird Sie nicht eingelesen.

    Jetzt meine Frage: Gibt es eventuell noch eine andere Lösung als einen lokalen Webserver? Wenn nein, was wäre den der kleinste performante Webserver ohne viel Schnick Schnick drum rum?

    Hier noch der Inhalt der HTML Datei:

    HTML
    <!DOCTYPE html">
    <html>
    <head>
    <meta charset="UTF-8" /">
    <title>Dokumente</title>
    <link rel="stylesheet" href="style.css" type="text/css" media="print, projection, screen" />
    <script type="text/javascript" src="jsComponents.js"> </script>
    <script type="text/javascript" src="jquery-latest.js"> </script>
    <script type="text/javascript" src="jquery.tablesorter.min.js"> </script>
    <script type="text/javascript" src="tablefilter.js"> </script>
    <script type="text/javascript" src="jstablecomponents.js"> </script>
    <script type="text/javascript" src="jquery.tablesorter.pager.js"> </script>
    </head>
    <body>
    <h1 style="text-align: center;"><strong>Sie suchen: 123456789</strong></h1>
    <!-- START CODE -->
    <div class="JSAjaxTable" targetid="tableid" datasrc="input.tab"> </div>
    <div class="JSSortTable">
    <div class="JSFilterTable">
        <div id="tableid"> </div>
    </div>
    </div>
    <!-- END CODE -->
    </body>
    </html>
    Alles anzeigen

    Vielen Dank

  • Skype for Business - Rufnummernanzeige analysieren

    • Code4Fun
    • 15. Oktober 2019 um 13:12

    OK, damit sind wir mal bei dem Schritt, das es eine SDK gibt. Da ich mich außerhalb von Autoit noch nicht mit Programmiersprachen versucht habe, bin ich hier der völlige Laye. Ich gehe mal davon aus, das man so ein SDK auf seinem PC installieren muss. Gibt es dann Schnittstellen, um das SDK direkt in Autoit zu verwenden? Vielleicht kann mir hier mal jemand Starthilfe geben. Danke

  • Skype for Business - Rufnummernanzeige analysieren

    • Code4Fun
    • 15. Oktober 2019 um 12:55

    Ich glaube ich kann es fast selbst beantworten. Unter https://www.autoitscript.com/forum/topic/75…rary-skype4com/ sollte eine Skype4Com.dll bei der Installation mitkommen. Die fehlt auf meinem PC

  • Skype for Business - Rufnummernanzeige analysieren

    • Code4Fun
    • 15. Oktober 2019 um 12:51

    Hallo alpines,

    danke für den Hinweis. Ich dachte die Nummer wäre so genug geschwärzt, aber sicher ist sicher. Die Skype4COM Bibliothek, ist die nur für "Skype" (also das Ursprungsprodukt), oder auch für "Skype for Business" (ehemals Lync). Es sind ja 2 unterschiedliche Produkte, mit "fast" dem gleichen Namen.

  • Skype for Business - Rufnummernanzeige analysieren

    • Code4Fun
    • 15. Oktober 2019 um 12:11

    Hallo zusammen,

    wir verwenden in der Firma Skype 4 Business. Wenn ich von jemanden angerufen werden, sehe ich folgendes Fenster rechts unten im Eck des Monitors erscheinen

    <Edit alpines: BILD ZENSIERT. Nummer immer noch erkennbar>

    Wenn ich dann mit dem AutoIt V3 Windows Info Tool versuche dieses Fenster auszulesen (da ich die Rufnummer gerne als Variable hätte), bekomme ich nur folgende Informationen angezeigt:

    Informationen:
    Code
    >>>> Window <<<<
    Title:    Skype for Business-Benachrichtigung
    Class:    LyncToastWindowClass
    Position:    1740, 824
    Size:    170, 185
    Style:    0x94800000
    ExStyle:    0x00080008
    Handle:    0x00000000001B15F8
    
    >>>> Control <<<<
    Class:    NetUIHWND
    Instance:    1
    ClassnameNN:    NetUIHWND1
    Name:    
    Advanced (Class):    [CLASS:NetUIHWND; INSTANCE:1]
    ID:    
    Text:    
    Position:    0, 0
    Size:    168, 183
    ControlClick Coords:    92, 19
    Style:    0x56000000
    ExStyle:    0x00000000
    Handle:    0x00000000000705BC
    
    >>>> Mouse <<<<
    Position:    1833, 844
    Cursor ID:    0
    Color:    0x7B7B7B
    
    >>>> StatusBar <<<<
    
    >>>> ToolsBar <<<<
    
    >>>> Visible Text <<<<
    
    
    >>>> Hidden Text <<<<
    Alles anzeigen

    Satz mit X, war wohl nix.

    Wie komme ich dann an diese Informationen ran. Vielleicht kann man da was mit SDKs oder APIs machen, aber ich kenne mich damit noch gar nicht aus. Wenn ja, wäre es schön, wenn mir jemand mal den Weg ebnen könnte (anhand von einem Beispiel), wie man mit solchen SDKs / APIs arbeitet, wie man diese in Autoit integriert usw.

    Vielen Dank.

  • Diverse Fragen zu Excel.au3 und RegEx Möglichkeiten

    • Code4Fun
    • 14. Oktober 2019 um 16:00

    Man kann doch direkt in Excel mehrere Spalten markieren und im Kontextmenü dann auf "Ausblenden" klicken. Gibt es via Excel.au3 diese Möglichkeit auch?

  • Diverse Fragen zu Excel.au3 und RegEx Möglichkeiten

    • Code4Fun
    • 14. Oktober 2019 um 10:56

    Danke BananaJoe. Funktioniert prächtig

  • Diverse Fragen zu Excel.au3 und RegEx Möglichkeiten

    • Code4Fun
    • 12. Oktober 2019 um 10:17

    Guten Morgen,

    so, wie versprochen, weitere Fragen. Sicherlich was einfaches, aber irgendwie stehe ich auf der Leitung. Auf Grund der Tatsache, das mein Script aktuell 5 Excelspalten a` ca. 10000 Zeilen bearbeitet, dauert das ganze halt seine Zeit (was auch nicht schlimm ist). Ich habe also mehrere Funktionen, in welchen jeweils eine For $i = 0 To UBound($aLeseSpalteH) - 1 Schleife integriert ist. Vielleicht gibt es eine elegantere Lösung, aber die tut es mir aktuell voll und ganz.

    Ich möchte jetzt gerne nach Abarbeitung von jeweils 500 Excelzeilen einen Consolewrite rauspipen, damit ich einfach sehe, wo das Script ungefähr ist. Die Lösung ist hierbei sicherlich dieses Beispielscript

    Code
    For $i = 0 To 10000 Step 500
        Consolewrite("aktuelle Excelzeilennummer ist: " & $i & @CRLF)
    Next

    Leider bekomme ich die beiden Forschleifen irgendwie nicht vernünftig miteinander verknüpft. Kann mir hier bitte jemand helfen.

    Es soll erreicht werden, wenn in der Hauptschleife die Variable $i 500, 1000, 1500 usw. bis zum Ende erreicht hat, dass dann jeweils ein Consolewrite erfolgt.

    Vielen Dank

  • Diverse Fragen zu Excel.au3 und RegEx Möglichkeiten

    • Code4Fun
    • 11. Oktober 2019 um 14:08

    Danke alpines, hat sehr schön funktioniert.

  • Diverse Fragen zu Excel.au3 und RegEx Möglichkeiten

    • Code4Fun
    • 11. Oktober 2019 um 13:17

    Hallo zusammen,

    ich habe die ehrenvolle Aufgabe bekommen eine Kontake Excel Tabelle zu normieren. Konkret heißt das, das es einige Felder gibt, die automatisiert angepasst werden müssen.

    Aktuell möchte ich mit einem StringRegExpReplace;  erreichen, das alle Telefonnummernfelder analysiert werden.


    Es sind in den Nummern ziemliche Wildwuchse vorhanden. Erreicht werden soll, das sämtliche Zeichen außer Zahlen von 0 bis 9, sowie das + (Plus Zeichen) durch "" ersetzt werden.

    MIt Local $_sNumber = StringRegExpReplace($Input, '[^+]\D', '') ;  hat das leider nicht funktioniert.

    Könnte mir hier jemand behilflich sein, wie dieser Reguläre Ausdruck aussehen müsste?

    Vielen Dank.

    P.S. Ich habe die Überschrift so gewählt, da hier sicherlich noch ein paar weitere Fragen zu diesem Thema kommen werden. Somit habe ich gleich mal einen Sammeltask erstellt.

  • Consolen Umlaute Problem

    • Code4Fun
    • 6. September 2019 um 16:39

    Hallo Alina,

    hat Bitnugger doch in Zeile 7 gemacht. Oder verstehe ich die Frage jetzt nicht

  • Datenbankscript auslagern - Teil 2

    • Code4Fun
    • 30. August 2019 um 15:51

    Kleine Entwarnung. Prinzipiell geht es, wenn ich die Datei in den DB Umgebung laufen lasse. Das Problem ist, dass die Zeile

    $sqlCon = _MSSQL_Con($sLeseIP, $sLeseDBUser, $sLeseDBPassword, $sLeseDBName)

    nach ca. 90 Sekunden in der Programmierumgebung abbricht und das Script dann gar nicht in die If Schleife kommt.

    Also kann ich erst mal weiter machen

  • Datenbankscript auslagern - Teil 2

    • Code4Fun
    • 30. August 2019 um 15:36

    So recht will das noch nicht laufen!

    Ich habe jetzt ein Script, welches mir das MyDB.au3 Script includiert

    C
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <MyDB.au3>
    ConsoleWrite($sDatenbanken & @CRLF)
    _DB()

    Der Aufruf ConsoleWrite($sDatenbanken & @CRLF) funktioniert sauber, aber beim _DB() bleibt es hier hängen.

    Code
    $sqlCon = _MSSQL_Con($sLeseIP, $sLeseDBUser, $sLeseDBPassword, $sLeseDBName)
    If IsObj($sqlCon) Then
            ConsoleWrite("DB konnte verbunden werden" & @crlf)
    Else
            ConsoleWrite("DB konnte nicht verbunden werden" & @crlf)
    EndIf

    In der Programmierumgebung habe ich keinen Zugang zur Datenbank, aber ich müsste dann doch die ConsoleWrite("DB konnte nicht verbunden werden" & @crlf) ansprechen

    Vielleicht ist der Timeout für $sqlCon noch nicht erreicht. Wo kann ich denn sowas einstellen?

  • Datenbankscript auslagern - Teil 2

    • Code4Fun
    • 30. August 2019 um 13:15

    Das bedeutet dann, das ich den Aufruf _DBArray() aus der MyDB.au3 entferne und diesen dann in die MyScriptA.au3 übernehme. Es werden also in den includierten Scripten nur Funktionen und Konstanten geschrieben, aber keine weitere Ablauflogik. Die ist dann im Hauptscript enthalten. Richtig?

  • Datenbankscript auslagern - Teil 2

    • Code4Fun
    • 30. August 2019 um 12:25

    Hallo Bugfix,

    danke erstmal, das hat funktioniert. Wie ich auf die Inhalte zugreife, denke ich zu wissen, da ich das ja in meinen alten Scripten schon gemacht habe. Aber folgender Umstand bereitet mir gerade noch Kopfzerbrechen.

    Das Script hier im Thread soll ja mein "allgemeines Datenbank Verwaltungsscript sein". D.h. wenn sich was an den DBs ändert oder eine neue hinzukommt, mache ich die Anpassung in der INI und gut ist.

    Jetzt erstelle ich "in der Zukunft" ein Script MyScriptA.au3 oder Script MyScriptB.au3 usw, welches unterschiedliche Funktionen hat, aber beide Scripte benötigen die verschiedenen Datenbankzugänge. Gehen wir mal davon aus, das mein "allgemeines Datenbank Verwaltungsscript" den Namen MyDB.au3 hätte.

    Ich kann jetzt im Script MyScriptA.au3 doch ein #include <MyDB.au3> einfügen, um auf die Datenbank zuzugreifen.

    Wie greife ich denn im MyScriptA.au3 die einzelnen Durchläufe ab, die ich im MyDB.au3 mit

    Code
    For $i = 1 To UBound($arDatenbanken) - 1
                _LeseINI($arDatenbanken[$i])
    Next

    erzeuge.

    Ich will erreichen, das MyScriptA.au3 das MyDB.au3 aufruft, die ersten Datenbankverbindung öffnet, dann kommt ein definiertes SQL Statement, dann wird die erste Datenbankverbindung wieder geschlossen und aus MyScriptA.aus soll dann ebenfalls in einer Schleife MyDB.au3 erneut aufgerufen werden, jetzt soll aber die 2. Datenbankverbindung usw. genutzt werden.

    Kannst Du mir da vielleicht ein kleines Konstrukt bauen, wo ich die Logik erkennen kann? Wahrscheinlich ist das nicht schwer, aber mit eigenen includes habe ich noch nie gearbeitet.

    Vielen Dank

  • Datenbankscript auslagern - Teil 2

    • Code4Fun
    • 30. August 2019 um 09:17

    Hallo,

    ich hatte vor 2 Jahren mit diesem Projekt mal hier angefangen, jedoch bin ich seither einfach nicht dazugekommen, was zu machen. Da ich gerade etwas Leerlauf habe, gehe ich die Sache jetzt neu an und möchte hier auch einen neuen Thread starten.

    Aktuell habe ich folgendes.

    Eine INI Datei mit folgendem Aufbau

    Code
    [db1]
    Name=Firma Eins
    IP=10.11.12.13
    DBName=firma1
    DBUser=user4firma1
    DBPassword=geheim
    [db2]
    Name=Firma Zwei
    IP=10.11.12.13
    DBName=firma2
    DBUser=user4firma2
    DBPassword=nochgeheimer
    Alles anzeigen

    Mein Script sieht bisher so aus

    C
    #include <WinAPIConv.au3>
    #include <MSSQL.au3>
    
    Global $sDatenbanken = "db1|db2"
    
    _DBArray()
    
    Func _DBArray()
        Local $arDatenbanken = StringSplit($sDatenbanken, "|")
        If $arDatenbanken[0] = 1 Then ; Wenn String nicht gesplittet wurde (Seperator nicht enthalten, String leer), dann Fehler
            ConsoleWrite("Im Array wurden keine Datenbanken gefunden!" & @CRLF)
        Else
            For $i = 1 To UBound($arDatenbanken) - 1
                _LeseINI($arDatenbanken[$i])
            Next
        EndIf
        Exit
    EndFunc   ;==>_DBArray
    
    Func _LeseINI($sSection) ; lese die DB.ini aus
        $sLeseName = IniRead(@ScriptDir & "\DB.ini", $sSection, "Name", "")
        $sLeseIP = IniRead(@ScriptDir & "\DB.ini", $sSection, "IP", "")
        $sLeseDBName = IniRead(@ScriptDir & "\DB.ini", $sSection, "DBName", "")
        $sLeseDBUser = IniRead(@ScriptDir & "\DB.ini", $sSection, "DBUser", "")
        $sLeseDBPassword = IniRead(@ScriptDir & "\DB.ini", $sSection, "DBPassword", "")
        ConsoleWrite(_WinAPI_WideCharToMultiByte("Die Datenbank von " & $sLeseName & " hat die IP " & $sLeseIP & " ,den Datenbank Name " & $sLeseDBName & " ,den Benutzer " & $sLeseDBUser & " sowie das Passwort " & $sLeseDBPassword, 1) & @CRLF)
        $sqlCon = _MSSQL_Con($sLeseIP, $sLeseDBUser, $sLeseDBPassword, $sLeseDBName)
        ConsoleWrite($sLeseName & " hat den $sqlCon Rückgabewert: " & $sqlCon & @CRLF)
    EndFunc   ;==>_LeseINI
    Alles anzeigen

    Hier noch Teil aus der MSSQL.au3 für _MSSQL_Con

    Code
    ;===============================================================================
    ;
    ; Function Name....:    _MSSQL_Con
    ; Description......:    Connect to a Database
    ; Syntax...........:    _MSSQL_Con($scIP, $scUser, $scPass, $scDB)
    ; Parameter(s).....:    $scIP = IP adress
    ;                       $scUser = User
    ;                       $scPass = Pass
    ;                       $scDB = Database
    ; Return Value(s)..:    Success - Returns the Database-"handle"
    ;
    ;===============================================================================
    Func _MSSQL_Con($scIP, $scUser, $scPass, $scDB)
        Local $sqlCon
        $sqlCon = ObjCreate("ADODB.Connection")
        $sqlCon.Open("Provider=SQLOLEDB; Data Source=" & $scIP & "; User ID=" & $scUser & "; Password=" & $scPass & "; database=" & $scDB & ";")
        Return $sqlCon
    EndFunc   ;==>_MSSQL_Con
    Alles anzeigen

    Laut der Erklärung sollte ich doch ein "Database-handle" zurück bekommen.

    Wenn ich die EXE auf dem entsprechenden System laufen lasse, bekomme ich hinter

    ConsoleWrite($sLeseName & " hat den $sqlCon Rückgabewert: " & $sqlCon & @CRLF) leider gar nichts angezeigt.

    Muss ich das anders schreiben, oder habe ich ein anderes Problem?

  • Consolen Umlaute Problem

    • Code4Fun
    • 29. August 2019 um 15:27

    vielen Dank Bitnugger. Das hat wunderbar funktioniert.

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™