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

  • ListView - SubItem einzeln färben/formatieren, Finale Version! (v1.3)

    • BugFix
    • 30. September 2009 um 19:13

    FERTIG!  8o

    Die endgültige Version ist im Kasten. Nun ordentlich im UDF-Stil. Also einfach nur Funktionen aufrufen, auch WM_NOTIFY habe ich ausgelagert.
    Das Include: LV_Format_include.au3
    und ein Beispiel: Example_LV_Format.au3
    findet ihr in Post 1.

  • Hintergrund dunkelblau

    • BugFix
    • 30. September 2009 um 08:06

    Das Problem habe ich an meinem Laptop oft, weil das Touchpad kein wirklicher Mausersatz ist und ein Antippen als MOUSEDOWN erkannt wird, aber das MOUSEUP wird nicht immer erkannt. Somit hast du den Effekt, als ob du mit gedrückter Maustaste über den Text fährst ==> er wird markiert.

  • Desktop "einschränken" ?

    • BugFix
    • 29. September 2009 um 17:50

    Ja, damit geht es:

    [autoit]

    #include <winapi.au3>

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

    Const $SPI_SETWORKAREA = 47
    Const $SPIF_SENDCHANGE = 2

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

    $tRECT = DllStructCreate('int;int;int;int')
    DllStructSetData($tRECT, 1, 0) ; left
    DllStructSetData($tRECT, 2, 0) ; top
    DllStructSetData($tRECT, 3, 1024) ; right
    DllStructSetData($tRECT, 4, 768) ; buttom
    _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tRECT), $SPIF_SENDCHANGE)

    [/autoit]

    Edit:
    Einen Nachsatz noch dazu. Das Begrenzen der Arbeitsfläche heißt natürlich auch, dass die Icons auf dem Desktop bei Veränderung des Bereiches gegebenenfalls verschoben werden.

    Edit peethebee [Tags für Foren-/Google-Suche]: Desktop verkleinern, einschränken, Sidebar, Seitenleiste, Vollbild verkleinern

  • ini im Unterordner auslesen und Verarbeiten

    • BugFix
    • 29. September 2009 um 16:59
    [autoit]

    Local $array_Inis = _GetFilesFolder_Rekursiv ( @ScriptDir , 'log.ini',0 )
    Local $sOut = ''

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

    For $i = 1 To UBound ( $array_Inis )-1
    $aSec = IniReadSection ( $array_Inis[$i], 'Quelle-Ziele' )
    For $j = 1 To UBound($aSec) -1
    $entry = $aSec[$j][0] & '=' & $aSec[$j][1] ; Key und Value zusammensetzen, wie in der INI
    $date = StringRegExp($entry, '\d{2}\.\d{2}\.\d{4}', 1)
    $date = $date[0] & '|'
    $local = StringLeft($entry, StringInStr($entry, '=')-1) & '|'
    $server = StringRegExp($entry, '(\\\\\w+\\)(\w+\\)+', 2)
    $server = $server[0]
    $string = $date & $local & $server
    $sOut &= $string & @CRLF
    Next
    Next
    ConsoleWrite($sOut & @CRLF)

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

    ; Da du alles aus der INI liest:
    ; [Quelle-Ziele]
    ; c:\0rdner1=\\server\share\28.09.2009\ordner1

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

    ; geht es aber auch so:
    Local $array_Inis = _GetFilesFolder_Rekursiv ( @ScriptDir , 'log.ini',0 )
    Local $sOut = ''

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

    For $i = 1 To UBound ( $array_Inis )-1
    $aSec = IniReadSection ( $array_Inis[$i], 'Quelle-Ziele' )
    For $j = 1 To UBound($aSec) -1
    $date = StringRegExp($aSec[$j][1], '\d{2}\.\d{2}\.\d{4}', 1)
    $date = $date[0] & '|'
    $local = $aSec[$j][0] & '|'
    $server = StringRegExp($aSec[$j][1], '(\\\\\w+\\)(\w+\\)+', 2)
    $server = $server[0]
    $string = $date & $local & $server
    $sOut &= $string & @CRLF
    Next
    Next
    ConsoleWrite($sOut & @CRLF)

    [/autoit]

    P.S. Gewöhn dir mal an Tidy zu verwenden, wenn du schon beim Coden nicht aufs Einrücken achtest. ;)

  • ini im Unterordner auslesen und Verarbeiten

    • BugFix
    • 29. September 2009 um 16:06

    Wie schon gesagt: Du mußt das Array von IniReadSection in einer EIGENEN SCHLEIFE auswerten, mit EIGENER ZÄHLVARIABLE.
    Und die RegExp-Auswertungen jetzt plötzlich auch als 2D-Array zu betrachten ist falsch.
    Ich könnte es jetzt ruckzuck korrigieren, aber das hilft dir nichts.
    Du mußt erst mal verstehen was dort abläuft.

  • Seiten zählen & dementsprechend Handeln

    • BugFix
    • 29. September 2009 um 15:36
    Zitat von Nighty

    Text: 3 of 3

    Hier hast du doch alles, was du willst: Text: 3 of 3
    Einfach die Datei laden, mit ControlGetText diesen Text ausgeben lassen. Was hinter 'of' steht ist deine Anzahl.

    Edit:
    So könntest du es machen:

    [autoit]

    Opt('WinTitleMatchMode', 2) ; somit wird das Fenster auch erkannt, wenn ein Teil des Titels angegeben wird
    $titel = 'Teil des Fenstertitels'
    $text = ControlGetText($titel, '', '[CLASS:Static; INSTANCE:1]')
    $anzahl = StringRegExpReplace($text, '(\d+\sof\s)(\d+)', '$2')

    [/autoit]
  • ini im Unterordner auslesen und Verarbeiten

    • BugFix
    • 29. September 2009 um 15:29

    Schau dir mal an WAS für ein Array IniReadSection zurückgibt.
    Was soll da dieses: $a[$i][$i] <== dort kann nur 0 (schlüssel) oder 1 (wert) verwendet werden.

  • ini im Unterordner auslesen und Verarbeiten

    • BugFix
    • 29. September 2009 um 15:17

    Ahja, diese Zeile (und alle die $a[$i] verwenden) ist falsch:

    [autoit]

    $date = StringRegExp($a[$i], '\d{2}\.\d{2}\.\d{4}', 1)

    [/autoit]


    Denn INIReadSection gibt ein 2D-Array zurück!

  • Seiten zählen & dementsprechend Handeln

    • BugFix
    • 29. September 2009 um 15:08
    Zitat von Nighty

    Wüsste auch nicht wie


    Weist du überhaupt, was ich meine?
    <Start> <Programme> <AutoIt v3> <AutoIt Window Info>

    Dieses Tool sollst du benutzen um Infos über dein Anwendungs-Fenster zu bekommen.

  • ini im Unterordner auslesen und Verarbeiten

    • BugFix
    • 29. September 2009 um 15:03

    Du bist heute lustig :D
    Fragst was du falsch machst, ohne zu sagen, was schiefläuft. ;)

    Ich vermute mal, du bekommst keine Ini's in dein Array?
    Der Aufruf ist nämlich falsch. Als Parameter mußt du nur die Erweiterung übergeben! Also: 'ini'

  • Icon in Statusbar

    • BugFix
    • 29. September 2009 um 14:59

    Du kannst auch die Größe für das Icon weglassen (0).

    [autoit]

    $hIcon = _WinAPI_LoadImage(0, 'Pfad_Icon', $IMAGE_ICON, 0, 0, $LR_LOADFROMFILE)

    [/autoit]

    Das Icon wird dann in der aktuellen Größe angezeigt.

  • Icon in Statusbar

    • BugFix
    • 29. September 2009 um 14:00

    Ein bischen Code wäre schon hilfreich.
    Wenn wir erst deine Arbeitsumgebung selbst erstellen müssen, um dein Problem nachzuvollziehen, geht uns glatt die Motivation flöten. ;)

    Aber du kannst das Icon mit: _WinAPI_LoadImage() laden, dann hast du ein Handle für deine Funktion.

  • Seiten zählen & dementsprechend Handeln

    • BugFix
    • 29. September 2009 um 13:56

    Versuche doch mal, ob das Windows-Info Tool dir im Text evtl. das markierte ausgibt:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    Dann kannst du den Wert sofort verwenden.

    Bilder

    • toolis.png
      • 11,73 kB
      • 121 × 79
  • ini im Unterordner auslesen und Verarbeiten

    • BugFix
    • 29. September 2009 um 13:50

    Ist doch nur etwas Stringbastelei:

    [autoit]

    $a = 'c:\0rdner1=\\server\share\28.09.2009\ordner1'
    ;~ $a = 'c:\0rdner1=\\server\share\blub\28.09.2009\ordner1' ; auch längere Pfade möglich

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

    $date = StringRegExp($a, '\d{2}\.\d{2}\.\d{4}', 1)
    $date = $date[0] & '|'

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

    $local = StringLeft($a, StringInStr($a, '=')-1) & '|'

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

    $server = StringRegExp($a, '(\\\\\w+\\)(\w+\\)+', 2)
    $server = $server[0]

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

    $string = $date & $local & $server

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

    ConsoleWrite($string & @CRLF)

    [/autoit]
  • WinRar ähnliches Programm in AutoIt erstellen.

    • BugFix
    • 29. September 2009 um 13:21
    Zitat von syne


    kla darf man ein trennzeichen benutzen oda nich?!


    Es ist nicht zu empfehlen. Da es als Zeichen im Inhalt vorkommen kann, sollte man von Anfang an diese Fehlerquelle ausschließen. Header mit den Positionsdaten ist eine saubere Sache.

  • WinRar ähnliches Programm in AutoIt erstellen.

    • BugFix
    • 29. September 2009 um 12:01

    Von der Überlegung her, denke ich, dass du durchaus verschiedene Dateien 'zusammenklöppeln' kannst. Allerdings würde ich dieses:
    $binary & "|" & $binary2
    weglassen.
    Du mußt die Dateien, um sie ausführen zu können, sowieso wieder aus der Summendatei extrahieren. Also mußt du zusätzlich die Anfangs- und Endpositionen deiner integrierten Files in der Gesamtdatei abspeichern.
    Wie gesagt: ungetestet, nur gedacht. ;)

  • Dateien suchen und verändern

    • BugFix
    • 29. September 2009 um 11:52

    Rekursive Dateisuche ist das Stichwort. ;)

    Ich hab es mal so genmacht, dass die Namen Vornullen bekommen, dann ist der Dateiname gleich lang - sieht besser aus.
    So gehts:

    Spoiler anzeigen
    [autoit]

    Local $startPath = 'Dein Start-Pfad'
    Local $ZielPfad = 'Dein Pfad zum Abspeichern\' ; Backslash mit verwenden!
    Local $ext = 'jpg'

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

    Local $arJPGFiles = _GetFilesFolder_Rekursiv($startPath, $ext, 0)
    Local $len = StringLen(String($arJPGFiles[0]))
    Local $nul = ''
    If $len > 1 Then
    For $i = 1 To $len -1
    $nul &= '0'
    Next
    EndIf

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

    For $i = 1 To $arJPGFiles[0]
    FileMove($arJPGFiles[$i], $ZielPfad & StringRight($nul & $i, $len) & '.jpg')
    If @error Then
    MsgBox(262160,"ACHTUNG","Die Datei" & @CRLF & $arJPGFiles[$i] & @CRLF & _
    "konnte nicht verschoben werden, da eine Zieldatei mit dem Namen" & @CRLF & _
    $ZielPfad & StringRight($nul & $i, $len) & '.jpg' & @CRLF & "bereits existiert!")
    EndIf
    Next
    MsgBox(262176,"FERTIG","Verschieben und Umbenennen der Dateien beendet.")

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

    ;==================================================================================================
    ; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
    ; Description: Recursive listing of files and/or folders
    ; Parameter(s): $sPath Basicpath of listing ('.' -current path, '..' -parent path)
    ; $sExt Extension for file selection '*' or -1 for all (Default)
    ; $iDir -1 Files+Folder(Default), 0 only Files, 1 only Folder
    ; optional: $iRetType 0 for Array, 1 for String as Return
    ; optional: $sDelim Delimiter for string return
    ; 0 -@CRLF (Default) 1 -@CR 2 -@LF 3 -';' 4 -'|'
    ; Return Value(s): Array (Default) or string with found pathes of files and/or folder
    ; Array[0] includes count of found files/folder
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
    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)
    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

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

    Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
    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

    [/autoit]
  • $LVM_SETCOLUMNWIDTH

    • BugFix
    • 29. September 2009 um 10:58

    Verwende für die Breite der letzten Spalte

    [autoit]

    $LVSCW_AUTOSIZE_USEHEADER

    [/autoit]


    dann wird diese automatisch angepaßt.

  • Script verurscht hin und wieder Fehler im Clipboard

    • BugFix
    • 29. September 2009 um 00:01

    Warum verwendest du diesen umständlichen Code?
    Ich hatte dir doch ein viel einfacheres Bsp. gepostet: [ offen ] Markierter Text direkt in Excel...

    Übrigens:
    Acrobat Reader ist ein ressourcenfressendes Monster. :D
    Verwende doch FoxIt Reader, der ist klein und schnell.

  • Digitaluhr

    • BugFix
    • 28. September 2009 um 23:57

    @nicric: Schau mal in dein BIOS, was dort für eine Zeit geführt wird. Evtl. Problem mit Sommerzeit?

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™