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

Beiträge von nuts

  • fileread problem

    • nuts
    • 19. September 2009 um 14:11

    Fileopen vergessen?

  • Mit AutoIt Controls auf einem andern Script erstellen möglich?

    • nuts
    • 18. September 2009 um 20:32

    Kannst ja auf das Event in Skript B eine Message an Skript A schicken.
    Das geht natürlich nur wenn man beide Skripte bearbeiten kann.

  • BMP + IP

    • nuts
    • 18. September 2009 um 16:10

    Für was verwenden?
    Oder meinst du Fileinstall?

  • Druckansicht fürs Listview

    • nuts
    • 18. September 2009 um 16:07

    Verstehe zwar den Bezug zu deinem Skript nicht ... aber trotzdem danke :D

    edit\ Habe gerade beschlossen noch die Schriftgröße einzubauen.

  • Druckansicht fürs Listview

    • nuts
    • 18. September 2009 um 14:04

    So im ersten Post gibts eine neue Version mit der Möglichkeit einen Start bzw. End-Index anzugeben.
    Dabei wirds wohl bleiben.
    Fehlerberichte oder Verbesserungsvorschläge sind natürlich gern gesehen.

  • Ordner / Eigenschaften

    • nuts
    • 18. September 2009 um 13:02

    Der MP3 Doublefinder von Oscar liest ID3-Tags.
    Dort kannst du dir das Einlesen ansehen und mit der UDF dann entsprechend verändern.

    Ist hinzukriegen, würde mich auch interessieren (bin atm etwas unter Zeitdruck) :)

  • Ordner / Eigenschaften

    • nuts
    • 18. September 2009 um 12:46

    Hey,

    hat jetzt schon jemand ein Skript, dass die ID3tags von ausgewählten Dateien abändert?
    Wäre imho interessanter :D

  • Listview nach deutschen Datum sortieren

    • nuts
    • 18. September 2009 um 12:41

    Das Umwandeln würde auch so gehen:

    Spoiler anzeigen
    [autoit]


    ;Datum von YYYY/MM/DD nach DD.MM.YYYY umwandeln
    dim $conv_parts
    $date = "2009/12/01"

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

    MsgBox(1, "",Date_AutoIt_2_German($date))
    MsgBox(1, "",Date_AutoIt_from_German($conv_parts))
    Func Date_AutoIt_2_German($conv_date)
    $conv_parts = StringRegExpReplace($conv_date, "(\d{4})\/(\d{2})\/(\d{2})","$3.$2.$1")
    Return $conv_parts
    EndFunc ;==>Date_AutoIt_2_German

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

    ;Datum von DD.MM.YYYY nach YYYY/MM/DD umwandeln
    Func Date_AutoIt_from_German($conv_date)
    $conv_parts = StringRegExpReplace($conv_date, "(\d{2})\.(\d{2})\.(\d{4})","$3/$2/$1")
    Return $conv_parts
    EndFunc ;==>Date_German_2_AutoIt

    [/autoit]


    Ich hab mich auch sehr lange mit Stringsplit gequält, dabei ists in vielen Fällen mit entsprechendem Pattern ein Einzeiler.
    Reguläre Ausdrücke sind hier ganz gut erklärt http://www.autoit.de/dokumentation_…gexp/regexp.htm

  • Wenn maus über input, data ändern

    • nuts
    • 17. September 2009 um 18:30

    Also ein Hovereffekt? Dazu gibt es zahlreiche Ansätze. Hier mal etwas ganz einfaches:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    Opt("GUICoordMode",1)
    $HauptGUI = GUICreate("Hover", 400, 560)
    $input1 = GUICtrlCreateinput("1", 100, 250, 200, 50)
    GuiSetState()

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

    $Hover_Old = ""

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

    While 1

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

    If GUIGetMsg() = -3 Then Exit

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

    $Cursor = GUIGetCursorInfo($HauptGUI) ;Einfache Hover Funktion
    If $Cursor[4] <> $Hover_Old Then
    Hover($Cursor[4])
    $Hover_Old = $Cursor[4]
    EndIf

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

    WEnd

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

    Func Hover($ID) ;wenn der Zeiger über dem Kontrol ist dann ...
    Switch $ID
    Case $input1
    Guictrlsetdata($input1, "2") ;hier kommt die jeweilige Funktion hin
    case else
    Guictrlsetdata($input1, "1")
    EndSwitch
    EndFunc

    [/autoit]
  • GUI für Fortschrittanzeige

    • nuts
    • 17. September 2009 um 15:41

    Über GUICtrlCreateProgress wäre wohl am einfachsten.

  • Registry auslesen, mit inhalt von txt-File vergleichen, alles löschen was nicht im textfile ist

    • nuts
    • 17. September 2009 um 13:59
    Spoiler anzeigen
    [autoit]


    #include <array.au3>
    #include <File.au3>

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

    Global $aRegFile
    Global $aFile
    Global $aret

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

    ; #### Zeilen in Textfile in ein Array einlesen

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

    Global $regfile = @ScriptDir & '\test.txt' ; der Dateipfad zu meiner Textdatei, wären dann deine Regkey
    Global $file = @ScriptDir & '\test2.txt' ; der Dateipfad zu deiner Textdatei

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

    _FileReadToArray($regfile, $aRegFile)
    _FileReadToArray($file, $aFile)

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

    ; #### Nun die beiden Arrays vergleichen

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

    $aret = _GetIntersection($aRegFile, $afile, 1)

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

    Redim $aret[ubound($aret, 1)][ubound($aret, 2)] ;der Teil ist nur für die Beschriftung
    $aret[ubound($aret, 1)-1][0] = "Schnittmenge"
    $aret[ubound($aret, 1)-1][1] = "In Menge1 aber nicht in Menge2 enthalten"
    $aret[ubound($aret, 1)-1][2] = "In Menge2 aber nicht in Menge1 enthalten"
    _ArrayDisplay($aret)
    exit

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

    ;==================================================================================================
    ; Function Name: _GetIntersection($Set1, $Set2 [, $GetAll=0 [, $Delim=Default]])
    ; Description:: Detect from 2 sets
    ; - Intersection (elements are contains in both sets)
    ; - Difference 1 (elements are contains only in $Set1)
    ; - Difference 2 (elements are contains only in $Set2)
    ; Parameter(s): $Set1 set 1 (1D-array or delimited string)
    ; $Set2 set 2 (1D-array or delimited string)
    ; optional: $GetAll 0 - only one occurence of every different element are shown (Default)
    ; 1 - all elements of differences are shown
    ; optional: $Delim Delimiter for strings (Default use the separator character set by Opt("GUIDataSeparatorChar") )
    ; Return Value(s): Succes 2D-array [i][0]=Intersection
    ; [i][1]=Difference 1
    ; [i][2]=Difference 2
    ; Failure -1 @error set, that was given as array, is'nt 1D-array
    ; Note: Comparison is case-sensitiv! - i.e. Number 9 is different to string '9'!
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================

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

    Func _GetIntersection(ByRef $Set1, ByRef $Set2, $GetAll=0, $Delim=Default)
    Local $o1 = ObjCreate("System.Collections.ArrayList")
    Local $o2 = ObjCreate("System.Collections.ArrayList")
    Local $oUnion = ObjCreate("System.Collections.ArrayList")
    Local $oDiff1 = ObjCreate("System.Collections.ArrayList")
    Local $oDiff2 = ObjCreate("System.Collections.ArrayList")
    Local $tmp, $i
    If $GetAll <> 1 Then $GetAll = 0
    If $Delim = Default Then $Delim = Opt("GUIDataSeparatorChar")
    If Not IsArray($Set1) Then
    If Not StringInStr($Set1, $Delim) Then
    $o1.Add($Set1)
    Else
    $tmp = StringSplit($Set1, $Delim)
    For $i = 1 To UBound($tmp) -1
    $o1.Add($tmp[$i])
    Next
    EndIf
    Else
    If UBound($Set1, 0) > 1 Then Return SetError(1,0,-1)
    For $i = 0 To UBound($Set1) -1
    $o1.Add($Set1[$i])
    Next
    EndIf
    If Not IsArray($Set2) Then
    If Not StringInStr($Set2, $Delim) Then
    $o2.Add($Set2)
    Else
    $tmp = StringSplit($Set2, $Delim)
    For $i = 1 To UBound($tmp) -1
    $o2.Add($tmp[$i])
    Next
    EndIf
    Else
    If UBound($Set2, 0) > 1 Then Return SetError(1,0,-1)
    For $i = 0 To UBound($Set2) -1
    $o2.Add($Set2[$i])
    Next
    EndIf
    For $tmp In $o1
    If $o2.Contains($tmp) And Not $oUnion.Contains($tmp) Then $oUnion.Add($tmp)
    Next
    For $tmp In $o2
    If $o1.Contains($tmp) And Not $oUnion.Contains($tmp) Then $oUnion.Add($tmp)
    Next
    For $tmp In $o1
    If $GetAll Then
    If Not $oUnion.Contains($tmp) Then $oDiff1.Add($tmp)
    Else
    If Not $oUnion.Contains($tmp) And Not $oDiff1.Contains($tmp) Then $oDiff1.Add($tmp)
    EndIf
    Next
    For $tmp In $o2
    If $GetAll Then
    If Not $oUnion.Contains($tmp) Then $oDiff2.Add($tmp)
    Else
    If Not $oUnion.Contains($tmp) And Not $oDiff2.Contains($tmp) Then $oDiff2.Add($tmp)
    EndIf
    Next
    Local $UBound[3] = [$oDiff1.Count,$oDiff2.Count,$oUnion.Count], $max = 1
    For $i = 0 To UBound($UBound) -1
    If $UBound[$i] > $max Then $max = $UBound[$i]
    Next
    Local $aOut[$max][3]
    If $oUnion.Count > 0 Then
    $i = 0
    For $tmp In $oUnion
    $aOut[$i][0] = $tmp
    $i += 1
    Next
    EndIf
    If $oDiff1.Count > 0 Then
    $i = 0
    For $tmp In $oDiff1
    $aOut[$i][1] = $tmp
    $i += 1
    Next
    EndIf
    If $oDiff2.Count > 0 Then
    $i = 0
    For $tmp In $oDiff2
    $aOut[$i][2] = $tmp
    $i += 1
    Next
    EndIf
    Return $aOut
    EndFunc ;==>_GetIntersection

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

    ; #### Werte in Registry löschen, die nicht im Textfile enthalten sind

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


    Wird es damit klar? Auf Reg-Änderungen hatte ich jetzt keine Lust, erstell dir einfach zum testen eine zweite Testdatei (s. Skript).

  • Befehl ausgeben sobald man auf die Toolbar klickt

    • nuts
    • 17. September 2009 um 13:25
    [autoit]

    If BitAND(_GUICtrlToolbar_GetButtonState("Toolbar handle", " Command ID"), $TBSTATE_PRESSED) = $TBSTATE_PRESSED Then
    ; dein Befehl
    EndIf

    [/autoit]

    So geht das. :)

  • Druckansicht fürs Listview

    • nuts
    • 17. September 2009 um 12:16

    Update (s. Post1): Bezug zur Listviewspaltenbreite eingebaut.

    Das mit den Reg-tweaks ist so ne Sache.
    Beim Zurücksetzen muss der Druckvorgang schon beendet sein, sonst wirkts irgendwie nicht.
    Weiss jemand wie man den Druckerstatus abfragen kann?

  • Doppelklick in Listview auswerten

    • nuts
    • 16. September 2009 um 22:02

    Sehr beruhigend :)
    Was dann wohl bei Jam00 los ist? ?(

  • Doppelklick in Listview auswerten

    • nuts
    • 16. September 2009 um 21:32

    3.3.1.1 & 3.3.0.0 funktioniert hier.
    OS: WinXP

    Muss man wohl unter Win7 einige Skripte umschreiben. X(

  • Monitor zu bestimmten Zeiten ein- und ausschalten

    • nuts
    • 16. September 2009 um 21:26

    Würde erklären warum es bei TV-Geräten nicht funktioniert.
    Ärgerlich, gibt doch extra die ganzen Edid & Hdmi Standards .. :thumbdown:

  • Doppelklick in Listview auswerten

    • nuts
    • 16. September 2009 um 21:21

    Also kein WM_Notify mehr im Listview bei Autoitversionen >3.3.0.0? Kann das jemand bestätigen?

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    ;Globals für die Funktion:

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

    $MainGui = GUICreate("DBClick test", 616, 395, 192, 120)
    ;GUISetBkColor(0x0)

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

    $ListView = GUICtrlCreateListView("Produkt Name", 8, 8, 498, 214);Das ListView mit $LVS_LIST...
    $TestItem = GUICtrlCreateListViewItem("TEST1", $ListView);Test 1
    $TestItem = GUICtrlCreateListViewItem("TEST2", $ListView);Test 2

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

    GUISetState(@SW_SHOW)
    GUIRegisterMsg($WM_notify, "_DoubleClickOnListView");Die Funktion wird bei einem Klick auf die GUI aufgerufen!

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _DoubleClickOnListView($hWndGUI, $MsgID, $wParam, $lParam);Die Eigentliche Funktion
    Local $tagNMHDR, $event, $hwndFrom, $code
    ConsoleWrite( $hWndGUI& @CRLF& $MsgID& @CRLF& $wParam& @CRLF& $lParam& @CRLF)
    $tagNMHDR = DllStructCreate("int;int;int", $lParam)
    If @error Then Return
    $event = DllStructGetData($tagNMHDR, 3); Checkt wie das EVENT aussieht
    If $wParam = $ListView Then;Wenn der Klick auf das ListView ging..
    If $event = $NM_DBLCLK Then;.. Wenn es ein DoppelKlick war
    ; Hier kommt hin was er machen soll:
    MsgBox(0, "",GUICtrlRead(GUICtrlRead($ListView)))
    EndIf
    EndIf
    $tagNMHDR = 0
    $event = 0
    $lParam = 0
    EndFunc ;==>_DoubleClickOnListView

    [/autoit]


    Gar nichts zu sehn?

  • Doppelklick in Listview auswerten

    • nuts
    • 16. September 2009 um 21:16

    Komisch, kommt gar keine Message an?

  • Doppelklick in Listview auswerten

    • nuts
    • 16. September 2009 um 21:06

    Poste mal dein Skript bitte.

  • _GUICtrlCreate_MultiLineLabel

    • nuts
    • 16. September 2009 um 18:16

    Naja ob man das Argument mit den langen Texten durchgehen lassen kann? :D

    [autoit]


    For $i= 0 to ubound($array)
    $text &= $array[$i] & @CRLF
    next
    GUICtrlCreateLabel($text, -1, -1)

    [/autoit]

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™