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. TheLuBu

Beiträge von TheLuBu

  • Mails über Outlook senden und Body formatieren

    • TheLuBu
    • 21. November 2012 um 15:30

    Ich bin mir nicht ganz sicher, aber ich glaube,
    das die Formatierungen in HTML geschrieben werden.

    <strong></strong> für Fett z.B

  • OCR - aber wie?

    • TheLuBu
    • 15. November 2012 um 16:00

    Über welche Seite gehst du denn bzw kannst du einen Link dazu posten?
    Oder ist es ein Programm, welches die Werte angibt?

    Falls es eine Seite mit Zugangsschutz ist, wäre der Quellcode interessant, weil dort auch Schriftarten festgelegt sind.

    Also ein paar mehr Infos, wo du die Daten herbekommen möchtest wären schön :)

  • Ganze Tabelle von Datenbank wiedergeben

    • TheLuBu
    • 15. November 2012 um 11:34

    Läuft der Server lokal bei dir (Xampp o.Ä) oder ist das eine Online Datenbank?

    Das hier ist jetzt zumindest schonmal Syntaktisch richtig, wie gesagt, du solltest mal die Zugangsdaten zu der Datenbank prüfen.

    Spoiler anzeigen
    [autoit]

    #include "mysql.au3"
    _MySQL_InitLibrary()
    $MysqlConn = _MySQL_Init()

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

    Global $oSQL = _MySQL_Real_Connect("root", "", "Accounts", "127.0.0.1")

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

    $sDaten = _SQL($MysqlConn,'SELECT Benutzer FROM Accounts;', "|")
    MsgBox(0,"Benutzer", "Alle sind: " & $sDaten)

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

    _MySQL_Close($MysqlConn)
    ; MYSQL beenden
    _MySQL_EndLibrary()

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

    Func _SQL($o_MysqlConn,$SQLCode,$sDelimiter)
    $Return = ''
    $TableContents = _MySQL_Real_Query($o_MysqlConn, $oSQL, $SQLCode)
    $h_res = _MySQL_Store_Result($o_MysqlConn)
    $av_array = _MySQL_Fetch_Result_StringArray($h_res)
    _MySQL_Free_Result($h_res)
    $s_tmpfill = ""
    For $i = 1 To UBound($av_array) - 1
    $s_tmpfill &= $av_array[$i][0] & $sDelimiter
    Next
    Return StringTrimRight($s_tmpfill, 1))
    EndFunc

    [/autoit]
  • Ganze Tabelle von Datenbank wiedergeben

    • TheLuBu
    • 14. November 2012 um 09:03

    Du hast sehr viele Fehler in deinem Code:

    [autoit]

    MsgBox(0,"Benutzer, "Alle sind: " & $sDaten)

    [/autoit]


    Müsste so heißen:

    [autoit]

    MsgBox(0,"Benutzer", "Alle sind: " & $sDaten)

    [/autoit][autoit]

    $sDaten = _SQL($oSQL, 'SELECT Benutzer FROM Accounts";')

    [/autoit]


    Hier übergibtst du das SQL Handle und deine Query,
    deine Funktion beötigt aber das Query und einen Delimiter

    [autoit]

    Global $oSQL = _MySQL_Real_Connect("root", "", "Accounts", "localhost")

    [/autoit]

    Wenn deine Datenbank Online ist, kann localhost als Adresse nicht funktionieren, trag hier die IP deiner Datenbank ein

  • kleines problem mit send befehl

    • TheLuBu
    • 14. November 2012 um 08:55
    [autoit]

    #include <Misc.au3>
    HotKeySet("{f1}", "f1drucken")

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

    While 1
    Sleep(10)
    WEnd

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

    Func f1drucken()
    HotKeySet("{f1}")
    While _IsPressed(70)
    Sleep(200)
    Send("{1}{2}{3}")
    WEnd
    HotKeySet("{f1}", "f1drucken")
    EndFunc ;==>f1drucken

    [/autoit]

    Hatte ich aber auch ungefähr so gesagt ;)

  • kleines problem mit send befehl

    • TheLuBu
    • 13. November 2012 um 11:43

    Schau dir mal in der Hilfe das Beispiel zu HotKeySet an, das funktioniert dann mit einmaligem Tastendruck, und wenn du nochmal drückst wird aufgehört was auch immer zu senden.

    Die andere Möglichkeit wäre mit

    [autoit]

    WHILE _IsPressed(..)
    WEND

    [/autoit]


    auf den Tatsächlichen Tastendruck zu prüfen

  • Liste von Ordnerinhalt erzeugen

    • TheLuBu
    • 8. November 2012 um 12:08

    So funktioniert es, kannst es ja mal ausprobieren.
    Sollte es Lieder geben, die nicht durch das RegEx kommen, kannst du die ja hier posten oder per PN an mich, dann pass ich das Regex an

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    Local $array[1]

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

    _ArrayAdd($array, "(Eis Am Stiel) Dalida - Come Prima.mp3")
    _ArrayAdd($array, "01 - Boney M - Rivers Of Babylon.mp3")
    _ArrayAdd($array, "01 - Danyel Gerard - Butterfly.mp3")
    _ArrayAdd($array, "01 - Demis Roussos - Good Bye My Love Good Bye.mp3")
    _ArrayAdd($array, "01 - George Baker Selection - Una Paloma Blanca.mp3")
    _ArrayAdd($array, "01 - Pussycat - Mississippi.mp3")
    _ArrayAdd($array, "01 - Simon & Garfunkel - El Condor Pasa.mp3")

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

    For $I = 1 To UBound($array) -1
    ;MsgBox(0,"",$Ordnerliste[$i])
    $test = StringRegExp($array[$i],'(?:.*)(?:\-)(?:\s|)(.*?)(?:\.mp3)', 3)
    If not IsArray($test) Then
    ConsoleWrite('REGEX passt nicht für ' & $array[$i] & @crlf )
    Else
    $Titel = $test[0]
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $Titel = ' & $Titel & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    EndIf
    Next

    [/autoit]
  • Liste von Ordnerinhalt erzeugen

    • TheLuBu
    • 6. November 2012 um 17:24

    Probiers mal mit diesem RegEx:

    Code
    (?:.*)(?:\-)(?:\s|)(.*?)(?:\.mp3)
  • Liste von Ordnerinhalt erzeugen

    • TheLuBu
    • 6. November 2012 um 16:13

    Du willst die Daten in eine Textdatei schreiben, da gibts keine Schriftgröße ^^
    Und auf was für ein Blatt soll es passen? Es gibt keine Seitenzahl bei einer txt Datei.

    RegEx ist eine tolle Sache,
    aber wenn du nur die Extension weghaben willst, ist dass das einfachste, da . in Dateinamen verboten ist.

  • Liste von Ordnerinhalt erzeugen

    • TheLuBu
    • 6. November 2012 um 15:48
    Zitat von vivus

    du benutzt $ListeNeu = StringRegExpReplace($Ordnerliste, '.mp3', '', 3) für das ganze Array !!

    das geht nicht ..

    du must das durch ne schleife jagen

    z.b.

    [autoit]


    for $i=1 to $Ordnerliste[0]
    $ListeNeu[$i] = StringRegExpReplace($Ordnerliste[$i], '.mp3', '', 3)
    next

    [/autoit]

    Das wird aber auch nicht funktionieren, da RegEx da nichts findet ;)
    Aber um die letzten 4 Zeichen zu ersetzen reicht auch ein einfaches StringReplace

    [autoit]

    ; Ordner wird ausgewählt
    $Ordnerwahl = FileSelectFolder("Bitte Ordner wählen...", "")
    $Ordnerliste = _FileListToArray($Ordnerwahl, "*.mp3")
    _ArrayDisplay($Ordnerliste)
    ;Liste wird bearbeitet: z.B. alle suffix entfernen...
    For $I = 1 To $Ordnerliste[0]
    $Ordnerliste[$i] = StringReplace($Ordnerliste[$i], '.mp3', '')
    Next
    _ArrayDisplay($Ordnerliste)

    [/autoit]

    Zu den 4 Spalten, wieviele Dateien sollen untereinander stehen? Du musst ja irgendwann sagen, so Stop, jetzt in die nächste Spalte

  • Ältere Dateien Löschen

    • TheLuBu
    • 31. Oktober 2012 um 10:20

    Es gibt nur ein ReDim kurz vor dem Return des Arrays,
    Ich lasse mal einen Vergleich laufen und poste die Geschwindigkeitsergebnisse

  • SQLite Abfrage auf is(NULL)

    • TheLuBu
    • 31. Oktober 2012 um 10:17

    NULL steht für nichts, also nicht existent
    Philosphisch betrachtet kann man etwas nicht mit nichts vergleichen, weil nichts kein Gewicht, keine Menge, keinen Inhalt etc. hat, eben nichts ist ;)

    Mit dem = Zeichen fragst du die Datenbank, ob etwas gleich nichts ist, was mit dem obrigen Gedanken nicht vereinbar ist.

    Deshalb Haben sich die klugen Entwickler etwas einfallen lassen, um eben doch auf NULL Werte zu prüfen, nämlich das Zauberwort "IS"

    So sollte es funktionieren ;)

    [autoit]

    _SQLite_Query($db, "SELECT Name FROM tbl WHERE Wert IS NULL ;", $Eva)
    _SQLite_FetchData($Eva, $ausgabe)
    _SQLite_QueryFinalize($Eva)
    MsgBox(0, "", $ausgabe[0])

    [/autoit]
  • autoit und automatisierte vmware installation

    • TheLuBu
    • 30. Oktober 2012 um 17:09

    Wäre es nicht einfacher, Das Autoitscript auf der VM laufen zu lassen?
    Dort kannst du dann ja mit winwaitactive etc. arbeiten.

    Eine andere Möglichkeit wäre, mit

    [autoit]

    Pixelchecksum

    [/autoit]

    den VMPlayer Bildschirm zu überwachen,
    und auf bestimmte Fenster reagieren zu lassen.
    Such mal nach PushTheButton hier im Forum, hab den Link grade nicht zur Hand

  • Ältere Dateien Löschen

    • TheLuBu
    • 30. Oktober 2012 um 17:03

    Hier eine etwas andere Version mit der Rekursiven Filesuche von BugFix, sollte so funktionieren ;)

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>
    #include <File.au3>
    #include <Array.au3>
    $Server = "C:\xampp\tomcat" ;Verzeichnis
    $Tage = 1 ;alter der Tage
    $Filter = ".pdf" ;Nur pdf´s
    $bForceDel = False ; Löschen erzwingen
    $bLog = True ; Logging aktivieren
    $Array = _GetFilesFolder_Rekursiv($Server, $Filter, 0)
    _arraydisplay($Array)
    For $i = 1 To UBound($Array) - 1
    $sDate = StringRegExpReplace(FileGetTime($Array[$i], 0, 1), '(\d{4})(\d{2})(\d{2})(.*)', '$1/$2/$3')
    If _DateDiff('D', $sDate, _NowCalc()) > $Tage Then
    If $bForceDel Then FileSetAttrib($Array[$i], '-R')
    $iRet = FileDelete($Array[$i])
    If $bLog Then ConsoleWrite('Delete File "' & $Array[$i] & '" = ' & StringMid('No Yes', $iRet * 3 + 1, 3) & @CRLF)
    EndIf
    Next
    ; #FUNCTION#
    ;==================================================================================================
    ; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
    ; Description: Rekursive Auflistung von Dateien und/oder Ordnern
    ; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
    ; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
    ; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
    ; optional: $iRetType 0 gibt Array, 1 gibt String zurück
    ; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
    ; 0 -@CRLF (Standard) 1 -@CR 2 -@LF 3 -';' 4 -'|'
    ; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
    ; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _GetFilesFolder_Rekursiv($sPath, $sExt = '*', $iDir = -1, $iRetType = 0, $sDelim = '0', $bProcess = False)
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
    Switch $sDelim
    Case '1'
    $sDelim = @CR
    Case '2'
    $sDelim = @LF
    Case '3'
    $sDelim = ';'
    Case '4'
    $sDelim = '|'
    Case Else
    $sDelim = @CRLF
    EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath), $sExt, $iDir, $sDelim, $bProcess)
    If $iRetType = 0 Then
    Local $aOut
    $aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
    If $aOut[1] = '' Then
    ReDim $aOut[1]
    $aOut[0] = 0
    EndIf
    Return $aOut
    Else
    Return StringTrimRight($strFiles, StringLen($sDelim))
    EndIf
    EndFunc ;==>_GetFilesFolder_Rekursiv
    Func _ShowSubFolders($Folder, $Ext = '*', $Dir = -1, $Delim = @CRLF, $bProcess = False)
    If Not IsDeclared("strFiles") Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
    For $file In $Folder.Files
    If $Ext <> '*' Then
    If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
    $strFiles &= $file.Path & $Delim
    Else
    $strFiles &= $file.Path & $Delim
    EndIf
    Next
    EndIf
    For $Subfolder In $Folder.SubFolders
    If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
    _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
    EndFunc ;==>_ShowSubFolders

    [/autoit]
  • IE.au3 - Link anklicken

    • TheLuBu
    • 2. Oktober 2012 um 15:29

    Probier es mal so ;)

    [autoit]

    $DIV =_IEGetObjById($oIE, "AKTEN_IMPORTIEREN")
    $x = _IEPropertyGet($DIV, "screenx")
    $y = _IEPropertyGet($DIV, "screeny" )

    [/autoit]

    Ansonsten würde ich raten, mit WINHTTP und POST bzw. GET abfragen zu arbeiten, damit kannst du javascript "umgehen"

  • Update der Excel UDF die mit AutoIt ausgeliefert wird - 2014-03-22 - Fünfte Beta verfügbar

    • TheLuBu
    • 2. Oktober 2012 um 15:20

    Eine Funktion zum import von CSV Daten in Excel wäre echt nice,
    bzw. eine Performantere Lösung von

    [autoit]

    _ExcelWriteSheetFromArray

    [/autoit]
  • ADODB Antwort der Datenbank bekommen

    • TheLuBu
    • 26. September 2012 um 11:40

    Probier es mal so

    [autoit]


    $adCN = ObjCreate("ADODB.Connection")
    $adCN.Open("DRIVER={SQL Server};SERVER=(local)\test;DATABASE=test")
    $quer = $adCN.Execute("insert into A Values (12,'bla')")
    If Not $quer.EOF Then
    MsgBox(0,"Erfolg", "Erfolgreich")
    Else
    MsgBox(0,"Fehler", "Fehler")
    EndIf
    $adCN.close

    [/autoit]

    ansonsten mal mit nem Error Handler probieren:

    [autoit]

    Global $oError
    ; Initializes COM handler
    $oError = ObjEvent("AutoIt.Error", "ErrHandler")

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

    Func ErrHandler()
    $HexNumber=Hex($oError.number,8)
    Msgbox(0, StringReplace( $oError.windescription, "error", "COM Error #") & $oError.Number, _
    $oError.Description & @CRLF & _
    "Source: " & @TAB & $oError.source & @CRLF & _
    "at Line #: " & $oError.ScriptLine & @TAB & _
    "Last DllError: " & @TAB & $oError.lastdllerror & @CRLF & _
    "Help File: " & @TAB & $oError.helpfile & @TAB & "Context: " & @TAB & $oError.helpcontext _
    )
    SetError(1) ; to check for after this function returns
    ;Exit
    Endfunc

    [/autoit]
  • Möglichst faules speichern von Einstellungen

    • TheLuBu
    • 19. September 2012 um 11:50

    Fast,

    Spoiler anzeigen
    [autoit]


    Func _LoadSettings()
    $Key = IniReadSection($Name & ".ini", $Name)
    If Not @error Then
    For $o = 1 To $Key[0][0]
    GUICtrlSetData(Assign(Stringtrimleft($Key[$o][0], 1), Eval(Stringtrimleft($Key[$o][0]), 1), 4)) , $Key[$o][1], "")
    Next
    EndIf
    EndFunc

    [/autoit]

    Müsste so funktionieren (ungetestet)

  • Stringprobleme mit _ArraySearch()

    • TheLuBu
    • 18. September 2012 um 17:17

    worum geht es denn?
    hört sich nach einer RegEx aufgabe an ;)

  • Möglichst faules speichern von Einstellungen

    • TheLuBu
    • 18. September 2012 um 17:16

    Speichere nicht die Controlid, da sich die ändern kann, wenn du dein GUI veränderst.
    Vielleicht würde dir das auch so reichen

    Spoiler anzeigen
    [autoit]

    Func _SelectFolder()
    $SelectFolder = FileSelectFolder("Select Folder", "") ;Ordner auswählen
    GUICtrlSetData($FolderInput, $SelectFolder & "\") ;erstmal in ein Input schreiben
    _SaveSetting("$FolderInput", $SelectFolder & "\") ;und mit der Funktion in eine ini schreiben
    EndFunc

    [/autoit]

    Damit speicherst du den Variablennamen, und nicht die Controlid

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™