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

Beiträge von BugFix

  • _SQLite_helper.au3

    • BugFix
    • 27. Februar 2015 um 18:30
    Zitat von zocker-udo

    falscher Zeichensatz?


    Wenn in einem UTF8-Editor Umlaute geschrieben werden ( rynow nutzt SublimeText mit UTF8 ) wirst du in SciTE das falsch dargestellt bekommen.
    Obwohl SciTE problemlos UTF8 kann und damit 99% aller Darstellungen abgedeckt wären, hat Jos das nicht als Standard implementiert. Und somit hat man extreme Probleme, wenn man in SciTE erstellte Skripte in UTF8-Editoren öffnet und umgekehrt.

  • alte Version von SciTE4AutoIt gesucht

    • BugFix
    • 25. Februar 2015 um 14:16
    Zitat von Kanashius

    Da gibts doch meist mehrere Download-Button


    Genau so wars. Zumindest war hier aber ein DL-Button der dann auch das gewünschte enthielt. Sehr häufig findet man auf den Webseiten nur DL-Links für "Free-Download" von Unbedingt-You-Must-Have-Treiber-Scans. :D Mit viel Glück ist dann tatsächlich auf der 25.ten Sub-Site im Kleingedruckten der Link zum eigentlichen Produkt, weswegen Tante Google diese Webseite ausgewählt hatte. :whistling:

  • alte Version von SciTE4AutoIt gesucht

    • BugFix
    • 25. Februar 2015 um 10:07

    Pooh, File-Upload ist ja eine echte Malwareschleuder. Mit jedem Download ist die Datei mit anderer Malware infiziert. :S
    Da wird die Datei gleich beim Download vom AV-Programm gekillt.

    Aha, der blaue DL-Button funktioniert. - Sehr seltsam. - Danke.

  • alte Version von SciTE4AutoIt gesucht

    • BugFix
    • 25. Februar 2015 um 08:40

    "02/28/2010" klingt super. Nehme das Angebot an.
    Ich habe keine Ahnung, warum auf Win2K die 2011-Version nicht startet. Im Moment habe ich die mit 3.3.8.1 kommende Lite-Version bei. Da diese aber kein SciTE-Startup Skript hat (und auch auf keines reagiert), kann man auch keine Lua-basierten Tools laden. Ein nachträgliches Aufpeppen auf SciTE4AutoIt-Funktionalität geht somit in die Hose.

    @Micha_he
    Kannst die v1.79 auch gerne anhängen. Vielleicht sucht ja nochmal wer anders und dann sind hier mehrere Versionen verfügbar.

  • alte Version von SciTE4AutoIt gesucht

    • BugFix
    • 24. Februar 2015 um 20:44

    Danke Raupi, aber die Version ist schon zu neu und startet nicht auf Win2K (keine zulässige Win32 Anwendung)

  • alte Version von SciTE4AutoIt gesucht

    • BugFix
    • 24. Februar 2015 um 16:25

    Hi,
    ich habe leider nicht alle meine Sticks dabei und muss hier auf einem Win2k-Rechner ein SciTE4AutoIt installieren.
    Es gibt zwar ein Archiv für alte AutoIt-Versionen, aber keines für SciTE.

    Ich brauche die Version 1.79 (2009) oder die darauf folgende (2.23 oder so, mit AutoIt v.3.3.8.1).

    Falls ihr das noch rumliegen habt, bitte mal posten - Danke.

  • Pfad-Funktion mit Struktur

    • BugFix
    • 22. Februar 2015 um 11:58

    Kleine Korrektur zurück: FileGetLongName kann doch nicht verwendet werden, da die Funktion nicht mit UNC-Pfaden umgehen kann. (s. Post 1)

  • AutoIt-Skript: reagieren auf Druckbefehl?

    • BugFix
    • 21. Februar 2015 um 14:59

    Ich habe zumindest mal schon eine Lösung gefunden, wie ich verhindere, dass mehrfache Drucke eines Dokuments (z.B. bei Änderungen am Dokument) das Original vernichten. Die neue Version von 7-Zip (9.38 beta) beinhaltet eine Rename-Funktion. Existiert eine Datei im Archiv, lese ich das Erstellungsdatum der Datei aus und benenne diese um zu Name_Datum.Erweiterung.

    Spoiler anzeigen
    [autoit]


    Global $7z = @ScriptDir & '\7ZipCmdLine\7z.exe' ; v9.38 beta (rn - command)

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

    $sArchiv = @ScriptDir & '\archiv_1.zip'
    $sFile = @ScriptDir & '\Test\test.pdf'

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

    _AddToArchive($sArchiv, $sFile) & @CRLF)

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

    Func _AddToArchive($sArchive, $sFile)
    Local $sCmd, $iPID
    ; prüfen ob Datei schon im Archiv vorhanden, falls Archiv existiert
    ; wenn ja umbenennen zu: 'name_DATUMZEIT.erweiterung'
    If FileExists($sArchive) Then
    Local $aContent = _GetContentArchive($sArchive)
    Local $sFileNameOld = StringTrimLeft($sFile, StringInStr($sFile, '\', 0, -1))
    Local $sFileNameNew = ''
    For $i = 0 To UBound($aContent) -1
    If $aContent[$i][1] = $sFileNameOld Then
    Local $sBase = StringLeft($sFileNameOld, StringInStr($sFileNameOld, '.', 0, -1)-1)
    Local $sExt = StringTrimLeft($sFileNameOld, StringLen($sBase))
    $sFileNameNew = $sBase & '__' & $aContent[$i][0] & $sExt
    ExitLoop
    EndIf
    Next
    If $sFileNameNew <> '' Then
    $sCmd = '"' & $7z & '" rn "' & $sArchive & '" "' & $sFileNameOld & '" "' & $sFileNameNew & '"'
    $iPID = Run($sCmd, '', @SW_HIDE)
    ProcessWaitClose($iPID)
    EndIf
    EndIf
    $sCmd = '"' & $7z & '" a -tzip -mx=0 "' & $sArchive & '" "' & $sFile & '"'
    $iPID = Run($sCmd, '', @SW_HIDE);, 0x2)
    Return ProcessWaitClose($iPID)
    EndFunc

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

    Func _GetContentArchive($sArchive)
    Local $sPattern = "(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2})\s\.{4}A(?:\s+\d+){2}\s+([^\r\n]+)"
    Local $sCmd = '"' & $7z & '" l "' & $sArchive & '"'
    Local $iPID = Run($sCmd, '', @SW_HIDE, 0x2) ; 0x2 = $STDOUT_CHILD
    ProcessWaitClose($iPID)
    Local $aContent = StringRegExp(StdoutRead($iPID), $sPattern, 3)
    Local $aOut[UBound($aContent)/2][2], $ii = 0
    For $i = 0 To UBound($aContent) -2 Step 2
    $aOut[$ii][0] = StringRegExpReplace($aContent[$i], '[- :]', '')
    $aOut[$ii][1] = $aContent[$i+1]
    $ii += 1
    Next
    Return $aOut
    EndFunc

    [/autoit]
  • ListView mit Checkboxen und Edit Controls V2

    • BugFix
    • 21. Februar 2015 um 10:20

    Leichenschänder!!

    Hast du mal auf das Datum des letzten Posts geachtet:

    Zitat

    22. Juli 2013

    :whistling:

  • AutoIt-Skript: reagieren auf Druckbefehl?

    • BugFix
    • 21. Februar 2015 um 10:17

    Folgendes Szenario:
    Eine Anwendung generiert Ausdrucke automatisch als PDF. Dazu bekommt das Dokument als Name: Typ + Belegnummer (z.B. "VAN1002003.pdf" für Verkauf Angebot Nr. 1002003). Ich möchte nun gerne auf den Druckbefehl reagieren und die PDF mit zusätzlichen Informationen umbenennen (KDNr_TypBelegNr_Timestamp.pdf). Diese zusätzlichen Infos stehen nur im Moment des Druckauftrages zur Verfügung, danach wechselt der User auf einen anderen Kunden.
    Ich stelle mir also folgendes Vorgehen vor:
    - Druckbefehl?
    - Zusatzinfo auslesen (Kundennummer)
    - Typ und Belegnummer auslesen
    - warten bis "TypBelegnummer.pdf" existiert
    - umbenennen
    Ich könnte permanent mit FileExist das Zielverzeichnis abfragen, würde aber lieber direkt auf das Druck-Event reagieren.
    Den Start des Druckbefehls kann ich hoffentlich mit etwas Gefrickel über die Existenz des Druckdialogs abfragen. Wobei das schon ziemlich abenteuerlich ist, da die Anwendung nur ein einziges echtes Fenster besitzt. Alles andere sind Delphi-Controls. Aber die Existenz alleine darf den Prozeß nicht auslösen, der User kann ja evtl. auch nur in die Druckvorschau gehen und dann abbrechen. Ich brauche also das wirkliche Event "Signal an Drucker" und dann auch "Druck beendet".
    Weiß jemand auf welche Events ich da lauschen muss?
    Ich vermute, dass ich dort mit einem Hook ansetzen muss.

  • Datei Tagging portable

    • BugFix
    • 20. Februar 2015 um 18:11

    Mir ist gerade noch ein anderer Gedanke gekommen:
    Da ich zentral alle Dokumente gemeinsam speichere ist das Taggen zum Zwecke des Auffindens nicht so sehr vordergründig, eigentlich wollte ich damit nur die Zusammengehörigkeit bestimmter Dokumente markieren. Alle Dokumente besitzen einen eindeutigen Zusammengehörigkeitsschlüssel: die Kundennummer. Da wäre es doch eigentlich eine simple Lösung einen Zip-Container mit der Kundennummer zu erstellen und dann Dokumente jeder Art mit Bezug zu dem Kunden dem Archiv hinzuzufügen. Da Speicherplatz heutzutage nicht das Problem ist, werde ich mal testen ob ich die Daten unkomprimiert in einer Zip-Datei verstauen kann. Dann habe ich eine bessere Performance beim Lesen, da ein "Entpacken" nicht wirklich stattfindet.

    Was meint ihr dazu?

  • Datei Tagging portable

    • BugFix
    • 20. Februar 2015 um 14:05

    Ich schildere mal kurz die Situation:
    In unserem Archiv lagern Unmengen an Dokumenten (Angebote, Lieferscheine, Rechnungen etc.). Aufgrund der gesetzlichen Aufbewahrungsfristen gehen zwar pro Jahr etwa 20.000 Blatt in den Schredder aber 30.000 kommen hinzu. Und der Platz ist begrenzt.
    Da der Gesetzgeber zum Glück erkannt hat, dass das Aufbewahren von Papier-Originalen schwachsinnig ist, darf man ja auch die Dokumente in elektronischer Form aufbewahren. Das Scannen der Daten von 10 Jahren werden wir wohl an einen externen Dienstleister abtreten (da würde man selbst bestimmt ein Jahr für brauchen :whistling: ).
    Die ganzen Dateien müssen dann natürlich auch sinnvoll auffindbar sein. Ein Tagging zusammengehöriger Dateien ist also sinnvoll (von Anfrage über Angebot, Auftrag, Auftragsbestätigung zu Lieferschein und Rechnung). Wie ich das für die Altdaten realisieren kann, ist mir noch nicht so klar, aber das ist auch ein zweitrangiges Problem.
    Das Hauptproblem gestaltet sich für mich folgendermassen:
    Gibt es eine Tagging-Software, die portabel ist, die ich also mit den Daten transportieren kann? Bisher gefunden habe ich z.B. ISAKS - ist soweit auch eine tolle Sache, aber leider an ein Serversystem gebunden.
    Ich benötige eine Verschlagwortung der Dateien, die im Root des Datenspeichers liegt. Dann kann ich mit einer Kopie der Daten vom Root sowohl Daten als auch Tagging sichern und (was noch wichtiger ist) in jeder Sicherung das Tag-System verwenden ohne an den Server gebunden zu sein.
    Der Punkt ist deshalb wichtig, weil z.B. bei Kontrollen durch das Finanzamt dem Kontrolleur die Daten zur Verfügung zu stellen sind. Ich bin zwar nicht verpflichtet ihm eine Software zur Verfügung zu stellen, die es ihm erleichtert die Daten aufzufinden. Aber wenn du ihm nur ein USB-Laufwerk in die Hand drückst und sagst: "Da ist alles drauf", und er sich dann durch die Verzeichnisse und Dateien wühlen darf, ist sehr fraglich, ob bei auftretenden Problemen der Beamte dann seinen Prüfungsspielraum zu deinen Gunsten auslegt. Sagst du ihm aber: "Öffnen Sie die Suchsoftware und geben Begriffe ein, alle relevanten Belege werden dann aufgelistet", ist er zum einen schneller fertig 8o und wird evtl. auch entgegenkommender sein.
    Wie wird das bei euch so gehandhabt? Könnt ihr mir etwas empfehlen? Wenn möglich soll keine Vorschrift für das verwendete Dateisystem bestehen. (auf meinem NAS läuft kein NTFS sondern ein Linux FS)
    Bin dankbar für jede Idee.

  • Letzte Zeile einer sich ändernden .txt auslesen und eine textausgabe erstellen

    • BugFix
    • 18. Februar 2015 um 22:11

    Aber du hast noch nicht verstanden, was ich meinte: Warum willst du auf Text aus einer Datei zugreifen? Greif doch direkt die Daten des Chats über TCP oder UDP oder was auch immer der Chat nutzt ab. Lausche auf Stichwörter im Netztraffic und reagiere darauf, wie mein IRC-Chat-Bsp.. Und vor allem sende Nachrichten dann auf demselben Weg und nicht durch Senden von Text an irgendwelche Inputs.

  • Letzte Zeile einer sich ändernden .txt auslesen und eine textausgabe erstellen

    • BugFix
    • 18. Februar 2015 um 19:06
    Zitat von Mennimax

    das chatprotokoll auf einem server oder ähnliches, sondern im ordner users/benutzer/dokuments


    Da hast du mich missverstanden. Chatprotokoll ist das Reglement, wie die Teilnehmer kommunizieren.
    z.B. welcher Port genutzt wird, mit welchen Befehlen der alive-Status geprüft wird (bei IRC: sende Ping, empfange Pong) usw. usf. ;)

  • Pfad-Funktion mit Struktur

    • BugFix
    • 18. Februar 2015 um 18:43
    Zitat von Oscar

    Du kannst Dir das #include und _WinAPI_GetFullPathName sparen, wenn Du stattdessen FileGetLongName mit Flag 1 verwendest


    Danke für den Tipp, wird sofort geändert.

  • Menü Erstellen

    • BugFix
    • 18. Februar 2015 um 14:58

    Bitte lies das Bsp. zu GUICtrlCreateMenu in der Hilfe, da wird dir alles gezeigt.

    NB. Ein Case ohne Switch oder Select? Und dann noch nach dem Programmende (Exit) ....

  • Pfad-Funktion mit Struktur

    • BugFix
    • 18. Februar 2015 um 14:43

    Ich weiß nicht, wie es euch geht, aber ich finde einen Zugriff auf Elemente über Namen recht angenehm.
    Mit der aktuellen AutoIt-Version können wir ja Inhalte von Strukturen mit Punktnotation der Feldnamen abfragen.
    Somit habe ich mal eine Pfadfunktion erstellt, die einen Pfad splittet und Zugriff auf die einzelnen Elemente per Namen erlaubt. Dabei wird der Pfad auch noch in Normalform gewandelt (einheitlich Backslash, relative Adressen werden in absolute Adressen gewandelt). Es können Laufwerksbasierte absolute Pfade, relative Pfade oder UNC-Pfade angegeben werden.

    _Path
    AutoIt
    $path = _Path(@ScriptFullPath)
    ConsoleWrite('kpl. Pfad             ' & $path.FullPath & @CRLF)
    ConsoleWrite('Laufwerk              ' & $path.Drive & @CRLF)
    ConsoleWrite('Ordner                ' & $path.Dir & @CRLF)
    ConsoleWrite('Dateiname             ' & $path.File & @CRLF)
    ConsoleWrite('Name Erweiterung      ' & $path.Ext & @CRLF)
    ConsoleWrite('Datei mit Erweiterung ' & $path.FileExt & @CRLF)
    
    ; oder direkt nur ein Parameter:
    
    ConsoleWrite('Dateiname ' & _Path(@ScriptFullPath).File & @CRLF)
    
    
    ;===============================================================================
    ; Function Name....: _Path
    ; Description......: Splittet eine Pfadangabe in einzelne Bestandteile
    ; Parameter(s).....: $sPath  Pfadangabe, Lw-basiert oder UNC, absolut oder relativ - alles möglich
    ; .................:         Pfad kann Laufwerk od. Laufwerk mit Ordner od. Lw/Ordner/Datei.suffix sein
    ; .................:         Pfad wird nicht auf Existenz geprüft
    ; Return Value(s)..: Struktur mit den Feldern:
    ; .................:         .FullPath  Der kpl. Pfad in Normalform
    ; .................:         .Drive     Das Laufwerk (ohne Backslash), bei UNC-Pfad der Hostname
    ; .................:         .Dir       Das Verzeichnis (ohne endenden Backslash)
    ; .................:         .File      Der Dateiname
    ; .................:         .Ext       Der Name der Erweiterung
    ; .................:         .FileExt   Dateiname.Erweiterung
    ; Author(s)........: BugFix ( [email='bugfix@autoit.de'][/email] )
    ;===============================================================================
    Func _Path($sPath) ; relative Adressierung ('\' od. '/', '.', '..') möglich
        Local $sDrive, $sDirFile, $sDir, $sFile, $sExt, $sFileExt, $sTmp
        $sPath = DllCall('kernel32.dll', 'dword', 'GetFullPathNameW', 'wstr', $sPath, 'dword', 4096, 'wstr', '', 'ptr', 0)[3]
        Select
            Case StringLeft($sPath, 2) = '\\'
                $sDrive = StringLeft($sPath, StringInStr($sPath, '\', 0, 3))
            Case StringRegExp($sPath, '^[a-zA-Z]:')
                $sDrive = StringLeft($sPath, 3)
        EndSelect
        $sDirFile = StringTrimLeft($sPath, StringLen($sDrive))
        $sDir     = StringLeft($sDirFile, StringInStr($sDirFile, '\', 0, -1))
        $sTmp = StringTrimLeft($sDirFile, StringLen($sDir))
        $sFileExt = StringInStr($sTmp, '.') ? $sTmp : ''
        If $sFileExt = '' Then $sDir = $sDirFile
        $sFile    = ($sFileExt <> '') ? StringLeft($sFileExt, StringInStr($sFileExt, '.', 0, -1) -1) : ''
        $sExt     = ($sFileExt <> '') ? StringTrimLeft($sFileExt, StringLen($sFile) +1) : ''
    
        Local $tPath, $tagPath = 'struct;' & _
        'char FullPath[' & StringLen($sPath)  & '];' & _
        'char Drive['    & StringLen($sDrive) & '];' & _
        'char Dir['      & ((StringLen($sDir)   > 0) ? StringLen($sDir) : 1)   & '];' & _
        'char File['     & ((StringLen($sFile)  > 0) ? StringLen($sFile) : 1)  & '];' & _
        'char Ext['      & ((StringLen($sExt)   > 0) ? StringLen($sExt) : 1)   & '];' & _
        'char FileExt['  & ((StringLen($sExt)   > 0) ? (StringLen($sFile)+StringLen($sExt)+1) : 1) & '];' & _
        'endstruct'
        $tPath = DllStructCreate($tagPath)
        DllStructSetData($tPath, 1, StringRegExpReplace($sPath, '\\$', ''))
        DllStructSetData($tPath, 2, StringRegExpReplace($sDrive, '\\$', ''))
        DllStructSetData($tPath, 3, StringRegExpReplace($sDir, '\\$', ''))
        DllStructSetData($tPath, 4, $sFile)
        DllStructSetData($tPath, 5, $sExt)
        DllStructSetData($tPath, 6, $sFileExt)
        Return $tPath
    EndFunc  ;==>_Path
    Alles anzeigen

    Edit:
    Eine kleine Rolle rückwärts. FileGetLongName kann ausschliesslich relative Pfade auflösen. Bei der Darstellung von UNC-Pfaden (z.B. //host/share/folder/file.ext) gehts in die Hose.

    Also es bleibt dabei, _WinAPI_GetFullPathName ist notwendig. Kann man aber auch ohne Include durch direkten Aufruf der Dll abfragen.

  • SciTE4AutoIt - Erweitern um FreeBasic, Lexer Probleme...

    • BugFix
    • 18. Februar 2015 um 12:20
    Zitat von Techmix

    SciTE-RU kann ich nicht runterladen, die Google-Code Seite ist Down


    Die Lümmel haben das kpl. entfernt.
    Dann schau mal hier: SciTERu.zip. ;)

  • Letzte Zeile einer sich ändernden .txt auslesen und eine textausgabe erstellen

    • BugFix
    • 18. Februar 2015 um 11:04

    Ich weiß ja nicht um was für einen Chat es sich handelt. Falls es der Chatbetreiber nicht untersagt kannst du ja evtl. direkt auf das Chatprotokoll aufsetzen.
    Schau dir mal mein Bsp. für IRC-Chat an.

  • URL in Edit control erstellen

    • BugFix
    • 17. Februar 2015 um 12:13
    Zitat von Donsen64

    in _GUICtrlRichEdit... ändern


    Richtig, du nusst dann für dieses Control auch die Funktionen der RichEdit-UDF verwenden.

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™