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

Beiträge von autoBert

  • Zufalls Wert generieren ---> Ordner erstellen

    • autoBert
    • 27. Januar 2010 um 00:33

    Hallo

    warum denn so umständlich, gibt doch schon eine fertige func zum Namen Generieren.

    Zitat

    _TempFile
    --------------------------------------------------------------------------------

    Generiert einen Namen für eine temporäre Datei. Diese Datei existiert garantiert noch nicht.

    Hier das Beispiel dazu aus der deutschen Hilfe:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>

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

    Dim $s_TempFile, $s_FileName

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

    ; Ermittelt einen eindeutigen Dateinamen im @TempDir
    $s_TempFile = _TempFile()

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

    ; Ermittelt einen eindeutigen Dateinamen, der mit 'tst_' beginnt und mit der Erweiterung '.txt' endet, im angegebenen Verzeichnis
    $s_FileName = _TempFile("C:\", "tst_", ".txt", 7)

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

    MsgBox(4096, "Info", "Geeignete Namen für die neue temporäre Datei: " & @LF & @LF & $s_TempFile & @LF & $s_FileName)

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

    Exit

    [/autoit]
  • _guictrlrichedit text färben

    • autoBert
    • 26. Januar 2010 um 22:52

    Hallo Scripter192,

    ich habe es in das Beispiel von ThPfund eingebaut:

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_Au3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <EditConstants.au3>
    #include <GuiRichEdit.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Main()

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

    Func Main()
    Local $hGui, $hRichEdit, $hButton, $iMsg, $startSel, $endSel

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

    $hGui = GUICreate("Beispiel", 320, 350, -1, -1)
    $hButton = GUICtrlCreateButton("Wörter färben", 10, 10, 105, 33, 0)
    $hRichEdit = _GUICtrlRichEdit_Create($hGui, "This is a test.", 10, 50, 300, 220, _
    BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    _GUICtrlRichEdit_AppendText($hRichEdit, @CR & "This is more text."& @CR & "This is teh end of text.")
    GUISetState()

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

    While True
    $iMsg = GUIGetMsg()
    Select
    Case $iMsg = $GUI_EVENT_CLOSE
    GUIDelete()
    Exit
    Case $iMsg = $hButton
    _GUICtrlRichEdit_SetSel($hRichEdit, 0, 5) ; Select
    _GuiCtrlRichEdit_SetCharColor($hRichEdit, 255) ; Text Color
    _GUICtrlRichEdit_SetSel($hRichEdit, 10, 15) ; Select
    _GuiCtrlRichEdit_SetCharColor($hRichEdit, 255) ; Text Color
    _GUICtrlRichEdit_SetSel($hRichEdit, 29, 35) ; Select
    _GuiCtrlRichEdit_SetCharColor($hRichEdit, 255) ; Text Color
    $startSel = _GuiCtrlRichEdit_GetFirstCharPosOnLine($hRichEdit,_GUICtrlRichEdit_GetLineCount($hRichEdit))
    $endSel = $startSel + _GUICtrlRichEdit_GetLineLength($hRichEdit,_GUICtrlRichEdit_GetLineCount($hRichEdit))
    _GUICtrlRichEdit_SetSel($hRichEdit, $startSel, $endSel) ; Select
    _GuiCtrlRichEdit_SetCharColor($hRichEdit, 255) ; Text Color
    _GUICtrlRichEdit_SetSel($hRichEdit, -1, -1) ; Deselect
    EndSelect
    WEnd
    EndFunc ;==>Main

    [/autoit]

    (Aufwand: 5 Minuten mit funcs in Hilfe suchen)

    mfg (Auto)Bert

  • Hilfe für Musik-Player // ListView

    • autoBert
    • 26. Januar 2010 um 20:04

    Hallo Bepelz,

    ich habe auf Grund deiner PN, auch mal den Button Play mit einem Beispielcode gefüllt, damit du siehst wie du an die einzelnen Titel in der Listview zugreifen kannst. Ist im Moment eine MsgBox die den Titel und den Pfad zur ausgewählten Datei ausgibt und ausserdem den externen Windows-Mediaplayer aufruft,

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <ListviewConstants.au3>
    #Include <GuiListView.au3>
    #include <File.au3>

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

    Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=
    $Player = GUICreate("Musik-Player", 166, 245, 334, 180, $WS_POPUP)
    GUISetBkColor(0x808080)
    $Play = GUICtrlCreateLabel("4", 53, 198, 53, 45)
    GUICtrlSetFont(-1, 36, 800, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "PlayClick")
    GUICtrlSetTip(-1, "Play")
    $For = GUICtrlCreateLabel("8", 98, 206, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "ForClick")
    GUICtrlSetTip(-1, "For")
    $back = GUICtrlCreateLabel("7", 32, 206, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "backClick")
    GUICtrlSetTip(-1, "Zurück")
    $timeM = GUICtrlCreateLabel("88:88:88/88:88:88", 33, 184, 93, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $open = GUICtrlCreateLabel("1", 8, 152, 27, 21)
    GUICtrlSetFont(-1, 12, 800, 0, "Wingdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "openClick")
    GUICtrlSetTip(-1, "Öffnen")
    $Label1 = GUICtrlCreateLabel("Titel------------------------", 34, 154, 123, 19)
    GUICtrlSetFont(-1, 9, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $xit = GUICtrlCreateLabel("X", 144, 212, 18, 28)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "xitClick")
    GUICtrlSetTip(-1, "Exit")
    $mini = GUICtrlCreateLabel("2", 8, 216, 20, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "miniClick")
    GUICtrlSetTip(-1, "Minimize")
    $ListView1 = GUICtrlCreateListView("Titel|Länge|Pfad", 2, 1, 161, 145)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 57)
    ;GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 0) ;Pfad verstecken

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

    GUISetState(@SW_SHOW)
    WinSetTrans("Musik-Player", "", 220)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    Sleep(100)
    WEnd

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

    Func backClick()

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

    EndFunc ;==>backClick
    Func ForClick()

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

    EndFunc ;==>ForClick
    Func miniClick()
    GUISetState(@SW_MINIMIZE)
    EndFunc ;==>miniClick
    Func eintragen($FName)
    Local $szDrive, $szDir, $szFName, $szExt
    ConsoleWrite($FName & @CRLF)
    _PathSplit($FName, $szDrive, $szDir, $szFName, $szExt)
    GUICtrlCreateListViewItem($szFName & "|" & "|" & $FName, $ListView1)
    EndFunc ;==>eintragen

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

    Func openClick()
    Global $Songchosen = FileOpenDialog("Musik wählen", @MyDocumentsDir, "Audio (*.mp3;*.wma;*.wav;*.mp4)", 1 + 2 + 4)
    If Not @error Then
    $arChosenSongs = StringSplit($Songchosen, "|")
    If IsArray($arChosenSongs) Then ;Mehrfachauswahl
    For $i = 2 To UBound($arChosenSongs) - 1
    eintragen($arChosenSongs[1] & "\" & $arChosenSongs[$i])
    Next
    Else
    eintragen($Songchosen)
    EndIf
    EndIf
    EndFunc ;==>openClick
    Func PlayClick()
    $aItem = _GUICtrlListView_GetItemTextArray($ListView1)
    MsgBox(0,$aItem[1],"Pfad: " & $aItem[3] & @CRLF & "würde gespielt!"); $aItem[1] = Titel, [2] = Länge (woher?), [3] = Pfad
    ShellExecute($aItem[3])
    EndFunc ;==>PlayClick

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

    Func xitClick()
    Exit
    EndFunc ;==>xitClick

    [/autoit]

    mfg (Auto)Bert

  • StringSplit und @CRLF Leerzeilen entfernen

    • autoBert
    • 26. Januar 2010 um 18:54

    Hallo chip,

    am besten lässt du sie erst gar nicht entstehen:

    [autoit]

    #include<Array.au3>
    $days = "So" & @CRLF & "Mo" & @CRLF & "Di" & @CRLF & "Mi" & @CRLF & "Do" & @CRLF & "Fr" & @CRLF & "Sa"
    $aDays = StringSplit($days,@CRLF,1)
    ;$adays[1] enthält "So" ... $adays[7] enthält "Sa"
    _ArrayDisplay($aDays)

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

    lies dir dazu noch einmal die Hilfe zu StringSplit durch,

    mfg (Auto)Bert

  • Autoit Compiler in VB 2008 einbinden

    • autoBert
    • 26. Januar 2010 um 00:14

    Hallo V4LL3,

    herzlich willkommen im Forum und viel Spass mit AutoIt.
    Den eigenen Beitrag innerhalb von noch nicht einmal 1/4 Stunde über einen 2. Post zu pushen wird in diesem Forum nicht gern gesehen (und ist um diese Zeit auch unötig).
    Du kannst dein AutoIt-Skript kompilieren (CTRL +F7 in Scite) und dann in VB aufrufen. Zu so etwas ähnlichem gab es vor kurzem einen Thread, kannst ja mal die SuFu benutzen,

    mfg (Auto)Bert

  • script stürzt bei _guictrlrichedit_settext ab

    • autoBert
    • 25. Januar 2010 um 18:27

    Hallo Scripter192

    Zitat von Scripter192

    hm.. wenn ich alles überflüssige weglasse, kommt danach einfach noch:

    [autoit]

    guictrlsetstate($form2,@SW_SHOW)
    _guictrlrichedit_settext($edit2,"blablablabla (über mehrere zeilen )")

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

    while 1
    sleep(100)
    wend

    [/autoit]

    naja bei dem kurzen Skript, hast du es ja einfach den Bug zu finden. Kleine Hilfestellung dazu: Tutorial: Wie man Script-Fehler erfolgreich sucht/findet bzw. richtig debuggt

    mfg (Auto)Bert


    das ist so ziehmlich das wesentlichste ... hab kein plan wraum das script bei _guictrlrichedit_settext() crasht. Und noch komischer, das es manchmal geht und manchmal nicht

    Alles anzeigen
  • Listview Eintrag über Mausklick erstellen

    • autoBert
    • 25. Januar 2010 um 18:04

    Hallo asdfghjk,

    herzlich wilkommen im Forum und viel Spass mit AutoIt.
    teste einmal dieses Skript:

    Spoiler anzeigen
    [autoit]

    #include <Process.au3>
    #include <GUIConstantsEx.au3>
    #include <AVIConstants.au3>
    #include <TreeViewConstants.au3>
    #include <GuiListView.au3>
    #include <File.au3>
    #include <array.au3>

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

    Dim $abc[4]
    ; GUI
    $Form = GUICreate("Net Send", 225, 225)
    GUISetIcon(@SystemDir & "\cmd.exe", 0)
    $listView = GUICtrlCreateListView("Netze", 10, 52, 207, 153, BitOR($LVS_SINGLESEL, $LVS_SHOWSELALWAYS), $LVS_EX_FULLROWSELECT)
    _GUICtrlListView_SetColumnWidth($listView, 0, 203)
    If FileExists(@ScriptDir & "\NetSend.ini") Then
    $ip = IniReadSection(@ScriptDir & "\NetSend.ini", "Netze")
    If @error Then
    MsgBox(4096, "Fehler", "Ini-Datei fehlt")
    Else
    For $i = 1 To $ip[0][0]
    $netz = StringSplit($ip[$i][1], ".", 1)
    $iprange = StringSplit($netz[4], " - ", 1)
    $abc[$i] = GUICtrlCreateListViewItem($netz[1] & "." & $netz[2] & "." & $netz[3] & "." & $iprange[1] & " - " & $iprange[2], $listView)
    Next
    EndIf
    Else
    MsgBox(64, "Fehler", "Ini-Datei fehlt", 30)
    EndIf

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

    GUICtrlCreateLabel("IP Adressbereich: ", 10, 4)
    $A1 = GUICtrlCreateInput("", 10, 25, 35, 20)
    $A2 = GUICtrlCreateInput("", 50, 25, 35, 20)
    $A3 = GUICtrlCreateInput("", 90, 25, 35, 20)
    $A4 = GUICtrlCreateInput("", 130, 25, 35, 20)
    $A5 = GUICtrlCreateInput("", 182, 25, 35, 20)
    GUICtrlCreateLabel(Chr(151), 170, 28)
    GUISetState(@SW_SHOW)

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

    ;$asdf = _GUICtrlListView_SetItemSelected($listView, _GUICtrlListView_ClickItem($listView, _GUICtrlListView_GetSelectionMark($listView), "left"), True, False)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $abc[1] To $abc[3]
    $x = _GUICtrlListView_GetItemTextString($listView, _GUICtrlListView_GetSelectionMark($listView))
    ;ConsoleWrite($x & @CRLF)
    If $x <> "" Then
    $y = StringSplit($x, ".", 1)
    ;_ArrayDisplay($y)
    $iprange2 = StringSplit($y[4], " - ", 1)
    GUICtrlSetData($A1, $y[1])
    GUICtrlSetData($A2, $y[2])
    GUICtrlSetData($A3, $y[3])
    GUICtrlSetData($A4, $iprange2[1])
    GUICtrlSetData($A5, $iprange2[2])
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    ,

    Edit: soll die geänderte Netz-Maske uch wieder in die ListView aufgenommen werden?
    mfg (Auto)Bert

  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.6.1 2011.05.27)

    • autoBert
    • 25. Januar 2010 um 01:02

    Hallo Tweaky,

    ja danke, so funktionierts. Vielen Dank an dich, Der_Doc, water, Greenhorn und alle anderen welche die Grundlage (3.2.10.0 - 3.3.0.0) geschaffen haben

    mfg (Auto)Bert

  • Bild über Label

    • autoBert
    • 25. Januar 2010 um 00:41

    Hallo Icynator,
    na so:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <String.au3>
    #include <Array.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Dim $GUI

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

    _GUI_Create()
    _CreateField()

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

    While 1
    Sleep(250)
    WEnd

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

    Func _GUI_Create()
    $GUI = GUICreate("Minesweep", 509, 629, 279, 226)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    $Spiel_Menu = GUICtrlCreateMenu("Spiel")
    $Neues_Spiel_Menu = GUICtrlCreateMenuItem("Neues Spiel (F1)", $Spiel_Menu)
    GUICtrlSetOnEvent(-1, "_CreateGame")
    GUICtrlCreateMenuItem("", $Spiel_Menu)
    $Anfaenger_Menu = GUICtrlCreateMenuItem("Anfänger", $Spiel_Menu, -1 , 1)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $Fort_Menu = GUICtrlCreateMenuItem("Fortgeschritten", $Spiel_Menu, -1 , 1)
    $Profi_Menu = GUICtrlCreateMenuItem("Profi", $Spiel_Menu, -1 , 1)
    $Self_Menu = GUICtrlCreateMenuItem("Benutzerdefiniert", $Spiel_Menu, -1 , 1)
    GUICtrlCreateMenuItem("", $Spiel_Menu)
    $Bestzeiten_Menu = GUICtrlCreateMenuItem("Bestzeiten (F2)", $Spiel_Menu)
    GUICtrlCreateMenuItem("", $Spiel_Menu)
    $Beenden_Menu = GUICtrlCreateMenuItem("Beenden (ESC)", $Spiel_Menu)
    GUICtrlSetOnEvent(-1,"_exit")
    GUISetState(@SW_SHOW)
    EndFunc

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

    Func _CreateGame()
    GUIDelete($GUI)
    _GUI_Create()
    _CreateField()
    EndFunc

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

    Func _exit()
    Exit
    EndFunc

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

    Func _CreateField($Slots = 10, $Rows = 10, $Mines = 10)
    Global $Fields_Label[$Rows][$Slots], $Fields_Picture[$Rows][$Slots]
    For $i1 = 0 To $Rows -1 Step 1
    For $i2 = 0 To $Slots -1 Step 1
    $Fields_Label[$i1][$i2] = 0
    Next
    Next
    $x = 0
    $y = 100
    For $i1 = 0 To $Rows -1 Step 1
    For $i2 = 0 To $Slots -1 Step 1
    $Fields_Label[$i1][$i2] = GUICtrlCreateLabel("hi", $x, $y,50,50)
    GUICtrlSetState(-1,$GUI_DISABLE)
    $x += 51
    Next
    $x = 0
    $y += 51
    Next
    $x = 0
    $y = 100
    For $i1 = 0 To $Rows -1 Step 1
    For $i2 = 0 To $Slots -1 Step 1
    $Fields_Picture[$i1][$i2] = GUICtrlCreatePic("Test.JPG", $x, $y,50,50)
    GUICtrlSetState(-1,$GUI_DISABLE)
    GUICtrlSetOnEvent(-1,"_ButtonPressed")
    GUICtrlSetState(-1,$GUI_ENABLE)
    $x += 51
    Next
    $x = 0
    $y += 51
    Next
    EndFunc

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

    Func _ButtonPressed()
    ;MsgBox("","","")
    GuiCtrlSetState(@GUI_CtrlId -100,$GUI_ENABLE); gilt nur bei 10 Zeilen a 10 Reihen
    GUICtrlDelete(@GUI_CtrlID)
    EndFunc

    [/autoit]

    mfg (Auto)Bert

  • Hilfe für Musik-Player // ListView

    • autoBert
    • 24. Januar 2010 um 22:30

    Hallo Bepelz,

    schau dir in der Hilfe GUICtrlCreateListViewItem, StringSplit und _PathSplit an, diese habe ich für die folgenden Änderungen verwendet:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <ListviewConstants.au3>
    #include <File.au3>

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

    Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=
    $Player = GUICreate("Musik-Player", 166, 245, 334, 180, $WS_POPUP)
    GUISetBkColor(0x808080)
    $Play = GUICtrlCreateLabel("4", 53, 198, 53, 45)
    GUICtrlSetFont(-1, 36, 800, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "PlayClick")
    GUICtrlSetTip(-1, "Play")
    $For = GUICtrlCreateLabel("8", 98, 206, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "ForClick")
    GUICtrlSetTip(-1, "For")
    $back = GUICtrlCreateLabel("7", 32, 206, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "backClick")
    GUICtrlSetTip(-1, "Zurück")
    $timeM = GUICtrlCreateLabel("88:88:88/88:88:88", 33, 184, 93, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $open = GUICtrlCreateLabel("1", 8, 152, 27, 21)
    GUICtrlSetFont(-1, 12, 800, 0, "Wingdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "openClick")
    GUICtrlSetTip(-1, "Öffnen")
    $Label1 = GUICtrlCreateLabel("Titel------------------------", 34, 154, 123, 19)
    GUICtrlSetFont(-1, 9, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $xit = GUICtrlCreateLabel("X", 144, 212, 18, 28)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "xitClick")
    GUICtrlSetTip(-1, "Exit")
    $mini = GUICtrlCreateLabel("2", 8, 216, 20, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "miniClick")
    GUICtrlSetTip(-1, "Minimize")
    $ListView1 = GUICtrlCreateListView("Titel|Länge|Pfad", 2, 1, 161, 145)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 57)
    ;GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 0) ;Pfad verstecken

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

    GUISetState(@SW_SHOW)
    WinSetTrans("Musik-Player", "", 220)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    Sleep(100)
    WEnd

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

    Func backClick()

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

    EndFunc ;==>backClick
    Func ForClick()

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

    EndFunc ;==>ForClick
    Func miniClick()
    GUISetState(@SW_MINIMIZE)
    EndFunc ;==>miniClick
    Func eintragen($FName)
    Local $szDrive, $szDir, $szFName, $szExt
    ConsoleWrite($FName & @CRLF)
    _PathSplit($FName, $szDrive, $szDir, $szFName, $szExt)
    GUICtrlCreateListViewItem($szFName & "|" & "|" & $FName, $ListView1)
    EndFunc ;==>eintragen

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

    Func openClick()
    Global $Songchosen = FileOpenDialog("Musik wählen", @MyDocumentsDir, "Audio (*.mp3;*.wma;*.wav;*.mp4)", 1 + 2 + 4)
    If Not @error Then
    $arChosenSongs = StringSplit($Songchosen, "|")
    If IsArray($arChosenSongs) Then ;Mehrfachauswahl
    For $i = 2 To UBound($arChosenSongs) - 1 ;ab dem 2. Arrayeintrag fangen die Titel an
    eintragen($arChosenSongs[1] & "\" & $arChosenSongs[$i]) ;Pad (ohne Titel) und Titel (mit Ext) zusammen übergeben
    Next
    Else ;einzelnes Lied
    eintragen($Songchosen)
    EndIf
    EndIf
    EndFunc ;==>openClick
    Func PlayClick()

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

    EndFunc ;==>PlayClick
    Func xitClick()
    Exit
    EndFunc ;==>xitClick

    [/autoit]

    _PathSplit kannst du auch gegen ein anderes Verfahren tauschen mit dem du den Titel aus dem kompletten Pfad etrahierst.
    herzlich willkommen im Forum und viel Spass mit AutoIt,

    mfg (Auto)Bert

  • Excelspalte auslesen und allgemein Felder auslesen

    • autoBert
    • 24. Januar 2010 um 21:35

    Hallo FKFK,

    zu Excel: zum öffnen kannst du _ExcelBookOpen verwenden, das fertige sKRIPT KÖNNTE dann so aussehen:

    Spoiler anzeigen
    [autoit]

    ; ***************************************************************
    ; Beispiel 1 - Öffnet eine existierende Excel-Datei und gibt deren Objekt-ID zurück
    ; *****************************************************************

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

    #include <Excel.au3>
    #include <Array.au3>

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

    $sFilePath1 = @ScriptDir & "\Test1.xls" ; Diese Datei sollte bereits existieren
    $oExcel = _ExcelBookOpen($sFilePath1)

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

    If @error = 1 Then
    MsgBox(0, "Fehler!", "Das Excel-Objekt konnte nicht erstellt werden")
    Exit
    ElseIf @error = 2 Then
    MsgBox(0, "Fehler!", "Die Datei existiert nicht!")
    Exit
    EndIf
    $aArray = _ExcelReadSheetToArray($oExcel) ; Benutzt die vorgegebenen Parameter
    _ArrayDisplay($aArray, "Das Array benutzt die vorgegebenen Parameter")
    _ExcelBookClose($oExcel) ; Zum Abschluss verlassen wir das Programm

    [/autoit]

    es ist online aus beiden Hilfe-Beispielen zusammenkopiert und ungetestet. Ich selbst habe kein Ecel installiert, deshalb unbedingt selbst testen.
    Für Variablen verwende ich im Zusammenhang mit Schleifen Array's und benutze den/die Schleifenzähler so z.B.:

    Spoiler anzeigen
    [autoit]

    #include <array.au3>

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

    Global $iSpalte, $iZeile, $iZahlOderBuchstabe
    Global $aSuchArray[13][13] ;13 Zeilen ([0] = Beschriftung)und 13 Spalten ([0] = Beschriftung

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

    for $iSpalte = 0 To 11
    $aSuchArray[0][$iSpalte+1]=chr($iSpalte+65) ;Spaltenüberschriften belegen Index 0 in der Dimension "Zeile"
    Next
    for $iZeile = 0 To 11
    $aSuchArray[$iZeile+1][0]=$iZeile+1 ;Spaltenüberschriften belegen Index 0 in der Dimension "Spalte"
    Next

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

    for $iZeile = 1 to 12 ;Zufallszahlen bzw. Buchstaben
    for $iSpalte = 1 to 12
    if $iZeile > 0 and $iSpalte > 0 then
    $iZahlOderBuchstabe = Random(1,2,1)
    if $iZahlOderBuchstabe = 1 Then
    $aSuchArray[$iZeile][$iSpalte] = Random(1,99,1) ;mit Zufallszahlen belegen
    Else
    $aSuchArray[$iZeile][$iSpalte] = chr(Random(65,90,1)) ;mit Zufallsbuchstaben belegen
    EndIf
    EndIf
    Next
    Next
    _ArrayDisplay($aSuchArray)

    [/autoit]

    mfg (Auto)Bert

  • Bild über Label

    • autoBert
    • 24. Januar 2010 um 20:56

    Hallo Icynator,

    lies dir die Hilfe zu GUICtrlSetState durch,

    mfg (Auto)Bert

  • Excelspalte auslesen und allgemein Felder auslesen

    • autoBert
    • 24. Januar 2010 um 20:47

    Hallo FKFK,

    herzlich willkommen im Forum und viel Spass mit AutoIt. Und hier das Beispiel zu _ExcelReadSheetToArray aus der deutschen Hilfe:

    Spoiler anzeigen
    [autoit]

    ;***************************************************************************
    ; Beispiel 1 – Nach dem Öffnen einer Arbeitsmappe und Rückgabe des Objekt-Handles:
    ; Füllt die Zellen mit Zufallszahlen und liest die Zahlen (Werte) in ein Array ein. Dabei werden verschiedene Parameter verwendet
    ;***************************************************************************

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

    #include <Excel.au3>
    #include <Array.au3>

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

    Local $oExcel = _ExcelBookNew() ; Erstellt eine neue Arbeitsmappe und zeigt sie an

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

    ; Wir können die Zellen mit einer einfachen Schleife mit Zufallszahlen auffüllen
    For $y = 1 To 10 ; Start in Spalte 1
    For $x = 1 To 15
    _ExcelWriteCell($oExcel, Round(Random(1000, 10000), 0), $x, $y) ; Erzeugt viele Zufallszahlen
    Next
    Next

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

    $aArray = _ExcelReadSheetToArray($oExcel) ; Benutzt die vorgegebenen Parameter
    _ArrayDisplay($aArray, "Das Array benutzt die vorgegebenen Parameter")
    $aArray = _ExcelReadSheetToArray($oExcel, 2) ; Startet in der zweiten Zeile
    _ArrayDisplay($aArray, "Startet in der zweiten Zeile")

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

    $aArray = _ExcelReadSheetToArray($oExcel, 1, 2) ; Startet in der zweiten Spalte

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

    $aArray = _ExcelReadSheetToArray($oExcel, 1, 1, 5) ; Liest fünf Zeilen
    _ArrayDisplay($aArray, "Liest fünf Zeilen")

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

    $aArray = _ExcelReadSheetToArray($oExcel, 1, 1, 0, 2) ; Liest zwei Spalten
    _ArrayDisplay($aArray, "Liest zwei Spalten")

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

    $aArray = _ExcelReadSheetToArray($oExcel, 2, 3, 4, 5) ; Startet in der zweiten Zeile der dritten Spalte, liest vier Zeilen und fünf Spalten
    MsgBox(0,'Fehler',"@error: " & @error & @TAB & " @extended: " & @extended)
    _ArrayDisplay($aArray, "Startet in der zweiten Zeile der dritten Spalte, liest vier Zeilen und fünf Spalten")

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

    $aArray = _ExcelReadSheetToArray($oExcel, 1, 1, 0, 0, True) ; Benutzt die vorgegebenen Parameter, außer bei verschobenen Spalten (True)
    _ArrayDisplay($aArray, "Array mit den verschobenen Spalten")

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

    MsgBox(0, "Verlassen", "OK drücken, um die Datei zu speichern und das Programm zu verlassen")
    _ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; Nun speichern wir die Datei in ein temporäres Verzeichnis; existierende Dateien werden dabei überschrieben!
    _ExcelBookClose($oExcel) ; Zum Abschluss verlassen wir das Programm

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

    Es liest gleich das komplette Tbellenblatt ein.

    mfg (Auto)Bert

  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.6.1 2011.05.27)

    • autoBert
    • 24. Januar 2010 um 14:57

    Hallo Tweaky,

    ich vermisse im Inhaltsverzeichnis die UDF Referenzen, auch über suchen werden sie nicht gefunden,

    mfg (Auto)Bert

  • 1 exe für win 32 & 64

    • autoBert
    • 24. Januar 2010 um 04:08

    Hallo Freaky,

    Zitat von Freaky

    Und wie ist es mit 64 Bit Programmen auf einem 32 Bit Windows ?

    Zitat von JuraX

    nach dem was da steht müsste es das gleiche sein(mit betonumg auf müsste(bei windows ist das nie so sicher))

    geht definitiv nicht.
    Falls du mit AutoIt für beides programmieren /edit: aber nur 1 EXE haben willst, musst darfst du beim Compiler die Option für 64-Bit nicht anwählen. Evtl. Besonderheiten für das eine oder das andere System kannst du ja mit Hilfe des Makros @CPUArch implementieren,

    mfg (Auto)Bert

  • Listview object

    • autoBert
    • 24. Januar 2010 um 02:47

    Halo JuraX,

    da die Bass-Includes immer noch fehlen so:

    Spoiler anzeigen
    [autoit]

    ;===================================================================================================
    ; INRadio-Localtuner by JuraX
    ;===================================================================================================

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

    #NoTrayIcon
    ;#include <Bass.au3>
    ;#include <BassConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <sound.au3>
    #include <WindowsConstants.au3>

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

    #Region StartUp
    Local $progress_slider, $slots, $Form1
    Global $gaDropFiles[1]
    Global Const $WM_DROPFILES = 0x0233
    Global $playing_state = -1

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

    #cs
    ;First Start
    $firststart = IniRead("INRadio.ini", "Start", "firststart", "")
    If $firststart = "" Then
    MsgBox(0, "Warnung!", "Bitte über den Radiotuner Starten!")
    Exit
    ElseIf ProcessExists("Radiotuner.exe") Then
    Else
    MsgBox(0, "Warnung!", "Bitte über den Radiotuner Starten!")
    Exit
    EndIf

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

    ;Bass StartUp
    _BASS_STARTUP("BASS.dll")
    _BASS_Init(0, -1, 44100, 0, "")
    If @error Then
    MsgBox(0, "Error", "Sound konnte nicht Initialisiert werden!")
    Exit
    EndIf

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

    ;File Open
    $file = FileOpenDialog("Open...", "", "MP3 Files (*.mp3)")
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
    If @error Then
    MsgBox(0, "Error", "Konnte Audiodatei nicht laden!" & @CR & "Error = " & @error)
    Exit
    EndIf
    #ce

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

    ;Sonstiges
    AdlibRegister("Aktualisieren", 100)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    #EndRegion StartUp

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

    #Region GUI
    $Form1 = GUICreate("INRadio-Localtuner", 380, 650, 193, 115, Default, $WS_EX_ACCEPTFILES)
    $Close = GUICtrlCreateButton("Close", 296, 160, 75, 25, 0)
    $Play = GUICtrlCreateButton("Play", 216, 160, 75, 25, 0)
    $Stop = GUICtrlCreateButton("Stop", 136, 160, 75, 25, 0)
    $newfile = GUICtrlCreateButton("Andere Datei", 36, 160, 75, 25, 0)
    $progress_slider = GUICtrlCreateProgress(8, 32, 366, 20)
    $slots = GUICtrlCreateLabel(GUICtrlRead($progress_slider) & "%", 8, 8, 150, 17)
    ;GUICtrlCreateLabel("Fortschritt", 8, 8, 150, 17)

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

    GUICtrlCreateLabel("Lautstärke", 8, 190, 80, 20)
    $Volume_slider1 = GUICtrlCreateSlider(8, 210, 366, 80)
    GUICtrlSetData($Volume_slider1, 50)
    GUICtrlSetLimit(-1, 100, 0)
    $Volume_slider2 = GUICtrlCreateSlider(8, 292, 366, 80)
    GUICtrlSetData($Volume_slider2, 50)
    GUICtrlSetLimit(-1, 100, 0)

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

    $hListView = GUICtrlCreateListView('Dateiname|Pfad', 10, 375, 350, 200)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')
    WinSetOnTop($Form1, '', 1)

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

    $rightVol = GUICtrlCreateProgress(8, 88, 366, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Right Channel Volume Level", 8, 112, 150, 17)
    $LeftVol = GUICtrlCreateProgress(8, 136, 366, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Left Channel Volume Level", 8, 64, 150, 17)

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

    GUISetState(@SW_SHOW)
    #EndRegion GUI

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

    #Region Loop
    While 1
    #cs
    $current = _BASS_ChannelGetPosition($MusicHandle, $BASS_POS_BYTE)
    $percent = Round(($current / $song_length) * 100, 0)
    GUICtrlSetData($progress_slider, $percent)

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

    $levels = _BASS_ChannelGetLevel($MusicHandle)
    $rightChLvl = _LoWord($levels)
    $rightChLvlper = Round(($rightChLvl / 32768) * 100, 0)
    $LeftChLvl = _HiWord($levels)
    $leftChLvlper = Round(($LeftChLvl / 32768) * 100, 0)
    GUICtrlSetData($rightVol, $rightChLvlper)
    GUICtrlSetData($LeftVol, $leftChLvlper)
    #ce
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $GUI_EVENT_CLOSE, $Close
    ProcessClose("Radiotuner.exe")
    AdlibUnRegister("Aktualisieren")
    Exit
    #cs
    Case $Play
    Switch $playing_state
    Case -1
    _BASS_ChannelPlay($MusicHandle, 1)
    $playing_state = 1
    EndSwitch
    Case $newfile
    _BASS_ChannelStop($MusicHandle)
    $file = FileOpenDialog("Open...", "", "MP3 Files (*.mp3)")
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    _BASS_ChannelStop($MusicHandle)
    Case $Volume_slider1
    _BASS_ChannelSetVolume($MusicHandle, GUICtrlRead($Volume_slider1) / 100)
    Case $Volume_slider2
    #ce
    SoundSetWaveVolume(GUICtrlRead($Volume_slider2))
    Case $GUI_EVENT_DROPPED
    ;_ArrayDisplay($gaDropFiles)
    For $i = 0 To UBound($gaDropFiles) - 2 ;kommt derzeit immer noch ein leerer Eintrag am schluss
    GUICtrlCreateListViewItem(StringRegExpReplace($gaDropFiles[$i], '.*\\(.*)\..*', '$1')& "|" & $gaDropFiles[$i], $hListView)
    Next
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE) ;erst wenn alle eigefügt sind
    Case $Stop
    ; _BASS_ChannelStop($MusicHandle)
    $playing_state = -1
    EndSwitch
    WEnd
    #EndRegion Loop

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

    #Region Func's
    Func OnAutoItExit()
    ; _BASS_Free()
    EndFunc ;==>OnAutoItExit

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

    Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam) ; diese Funktion wird benötigt, damit man auch mehrere Dateien droppen kann
    Local $nSize, $pFileName ; Original von UEZ http://www.autoit.de/index.php?page…4119#post134119
    Local $nAmt = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', 0xFFFFFFFF, 'ptr', 0, 'int', 255)
    For $i = 0 To $nAmt[0]
    $nSize = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', 0, 'int', 0)
    $nSize = $nSize[0] + 1
    $pFileName = DllStructCreate('wchar[' & $nSize & ']')
    DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', DllStructGetPtr($pFileName), 'int', $nSize)
    $filename = DllStructGetData($pFileName, 1) ;Dateinamen holen
    ConsoleWrite($filename & @CRLF)
    ReDim $gaDropFiles[$i + 1]
    $gaDropFiles[$i] = $filename ;DllStructGetData($pFileName, 1)
    $pFileName = 0
    Next
    EndFunc ;==>WM_DROPFILES_FUNC

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

    Func Aktualisieren()
    $Sliderstatus = GUICtrlRead($progress_slider)
    GUICtrlSetData($slots, $Sliderstatus)
    EndFunc ;==>Aktualisieren

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

    Func WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam) ;<================== Benachrichtigung Doppelklick from Chaoskeks (in ChaosExecution)
    Local $tagNMHDR, $event, $hwndFrom, $code
    $tagNMHDR = DllStructCreate("int;int;int", $lParam)
    If @error Then Return 0
    $code = DllStructGetData($tagNMHDR, 3)
    If $wParam = $hListView And $code = -3 And _GUICtrlListView_GetSelectedCount($hListView) > 0 Then
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView)
    IF _GUICtrlListView_GetItemSelected($hListView, $i) Then
    $aItem = _GUICtrlListView_GetItemTextArray($hlistview, $i)
    MsgBox(0,"Doppel-Klick auf ",$aItem[1] & @CRLF & @CRLF & $aItem[2])
    ShellExecute($aItem[2])
    EndIf
    Next
    Endif
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    #cs

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

    Func _BASS_ChannelSetVolume($hChannel, $nVol)
    Local $ret = _BASS_ChannelSetAttribute($hChannel, $BASS_ATTRIB_VOL, $nVol)
    Return SetError(@error, @extended, $ret)
    EndFunc ;==>_BASS_ChannelSetVolume

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

    Func _BASS_ChannelGetVolume($hChannel)
    Local $ret = _BASS_ChannelGetAttribute($hChannel, $BASS_ATTRIB_VOL)
    Return SetError(@error, @extended, $ret)
    EndFunc ;==>_BASS_ChannelGetVolume

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

    Func _LeftDblClick($aInfo)
    Local $sMsg = 'Doppelklick auf:' & @LF & 'ZeilenIndex: ' & $aInfo[3] & @LF & _
    'Spaltenindex: ' & $aInfo[4] & @LF & _
    'Zellen Text: ' & _GUICtrlListView_GetItemTextArray($hListView, $aInfo[3], $aInfo[4])
    MsgBox(0, 'Doppelklick ', $sMsg)
    EndFunc

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $hListView
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    Local $aInfo[12] = [$hWndFrom, _
    $iIDFrom, _
    $iCode, _
    DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem"), _
    DllStructGetData($tInfo, "NewState"), _
    DllStructGetData($tInfo, "OldState"), _
    DllStructGetData($tInfo, "Changed"), _
    DllStructGetData($tInfo, "ActionX"), _
    DllStructGetData($tInfo, "ActionY"), _
    DllStructGetData($tInfo, "lParam"), _
    DllStructGetData($tInfo, "KeyFlags")]
    _LeftDblClick($aInfo)
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY
    #EndRegion Func's
    #ce

    [/autoit]

    der komplette Pfad wird jetzt in die LV in der 2. Spalte gespeichert.
    Die 2. Spalte kann man auch mit Länge 0 verstecken, aber diese Zeile kaannst du ja noch einbauen
    Die Func WM_DROPFILES habe ich durch eine von UEZ ersetzt und etwas angepasst.
    Die Func WM_NOTIFY habe ich durch eine von ChaosKeks ersetzt und etwas angepasst.
    Alle Funktionen die in irgendeiner Weise etwas mit den BASS-Includes zu tun haben sind aauskommentiert.
    viel Spass damit

    mfg (Auto)Bert

  • Listview object

    • autoBert
    • 24. Januar 2010 um 02:43

    Halo JuraX,

    da die Bass-Includes immer noch fehlen so:

    Spoiler anzeigen
    [autoit]

    ;===================================================================================================
    ; INRadio-Localtuner by JuraX
    ;===================================================================================================

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

    #NoTrayIcon
    ;#include <Bass.au3>
    ;#include <BassConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <sound.au3>
    #include <WindowsConstants.au3>

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

    #Region StartUp
    Local $progress_slider, $slots, $Form1
    Global $gaDropFiles[1]
    Global Const $WM_DROPFILES = 0x0233
    Global $playing_state = -1

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

    #cs
    ;First Start
    $firststart = IniRead("INRadio.ini", "Start", "firststart", "")
    If $firststart = "" Then
    MsgBox(0, "Warnung!", "Bitte über den Radiotuner Starten!")
    Exit
    ElseIf ProcessExists("Radiotuner.exe") Then
    Else
    MsgBox(0, "Warnung!", "Bitte über den Radiotuner Starten!")
    Exit
    EndIf

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

    ;Bass StartUp
    _BASS_STARTUP("BASS.dll")
    _BASS_Init(0, -1, 44100, 0, "")
    If @error Then
    MsgBox(0, "Error", "Sound konnte nicht Initialisiert werden!")
    Exit
    EndIf

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

    ;File Open
    $file = FileOpenDialog("Open...", "", "MP3 Files (*.mp3)")
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
    If @error Then
    MsgBox(0, "Error", "Konnte Audiodatei nicht laden!" & @CR & "Error = " & @error)
    Exit
    EndIf
    #ce

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

    ;Sonstiges
    AdlibRegister("Aktualisieren", 100)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    #EndRegion StartUp

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

    #Region GUI
    $Form1 = GUICreate("INRadio-Localtuner", 380, 650, 193, 115, Default, $WS_EX_ACCEPTFILES)
    $Close = GUICtrlCreateButton("Close", 296, 160, 75, 25, 0)
    $Play = GUICtrlCreateButton("Play", 216, 160, 75, 25, 0)
    $Stop = GUICtrlCreateButton("Stop", 136, 160, 75, 25, 0)
    $newfile = GUICtrlCreateButton("Andere Datei", 36, 160, 75, 25, 0)
    $progress_slider = GUICtrlCreateProgress(8, 32, 366, 20)
    $slots = GUICtrlCreateLabel(GUICtrlRead($progress_slider) & "%", 8, 8, 150, 17)
    ;GUICtrlCreateLabel("Fortschritt", 8, 8, 150, 17)

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

    GUICtrlCreateLabel("Lautstärke", 8, 190, 80, 20)
    $Volume_slider1 = GUICtrlCreateSlider(8, 210, 366, 80)
    GUICtrlSetData($Volume_slider1, 50)
    GUICtrlSetLimit(-1, 100, 0)
    $Volume_slider2 = GUICtrlCreateSlider(8, 292, 366, 80)
    GUICtrlSetData($Volume_slider2, 50)
    GUICtrlSetLimit(-1, 100, 0)

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

    $hListView = GUICtrlCreateListView('Dateiname|Pfad', 10, 375, 350, 200)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')
    WinSetOnTop($Form1, '', 1)

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

    $rightVol = GUICtrlCreateProgress(8, 88, 366, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Right Channel Volume Level", 8, 112, 150, 17)
    $LeftVol = GUICtrlCreateProgress(8, 136, 366, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Left Channel Volume Level", 8, 64, 150, 17)

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

    GUISetState(@SW_SHOW)
    #EndRegion GUI

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

    #Region Loop
    While 1
    #cs
    $current = _BASS_ChannelGetPosition($MusicHandle, $BASS_POS_BYTE)
    $percent = Round(($current / $song_length) * 100, 0)
    GUICtrlSetData($progress_slider, $percent)

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

    $levels = _BASS_ChannelGetLevel($MusicHandle)
    $rightChLvl = _LoWord($levels)
    $rightChLvlper = Round(($rightChLvl / 32768) * 100, 0)
    $LeftChLvl = _HiWord($levels)
    $leftChLvlper = Round(($LeftChLvl / 32768) * 100, 0)
    GUICtrlSetData($rightVol, $rightChLvlper)
    GUICtrlSetData($LeftVol, $leftChLvlper)
    #ce
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $GUI_EVENT_CLOSE, $Close
    ProcessClose("Radiotuner.exe")
    AdlibUnRegister("Aktualisieren")
    Exit
    #cs
    Case $Play
    Switch $playing_state
    Case -1
    _BASS_ChannelPlay($MusicHandle, 1)
    $playing_state = 1
    EndSwitch
    Case $newfile
    _BASS_ChannelStop($MusicHandle)
    $file = FileOpenDialog("Open...", "", "MP3 Files (*.mp3)")
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    _BASS_ChannelStop($MusicHandle)
    Case $Volume_slider1
    _BASS_ChannelSetVolume($MusicHandle, GUICtrlRead($Volume_slider1) / 100)
    Case $Volume_slider2
    #ce
    SoundSetWaveVolume(GUICtrlRead($Volume_slider2))
    Case $GUI_EVENT_DROPPED
    ;_ArrayDisplay($gaDropFiles)
    For $i = 0 To UBound($gaDropFiles) - 2 ;kommt derzeit immer noch ein leerer Eintrag am schluss
    GUICtrlCreateListViewItem(StringRegExpReplace($gaDropFiles[$i], '.*\\(.*)\..*', '$1')& "|" & $gaDropFiles[$i], $hListView)
    Next
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE) ;erst wenn alle eigefügt sind
    Case $Stop
    ; _BASS_ChannelStop($MusicHandle)
    $playing_state = -1
    EndSwitch
    WEnd
    #EndRegion Loop

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

    #Region Func's
    Func OnAutoItExit()
    ; _BASS_Free()
    EndFunc ;==>OnAutoItExit

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

    Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam) ; diese Funktion wird benötigt, damit man auch mehrere Dateien droppen kann
    Local $nSize, $pFileName ; Original von UEZ http://www.autoit.de/index.php?page…4119#post134119
    Local $nAmt = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', 0xFFFFFFFF, 'ptr', 0, 'int', 255)
    For $i = 0 To $nAmt[0]
    $nSize = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', 0, 'int', 0)
    $nSize = $nSize[0] + 1
    $pFileName = DllStructCreate('wchar[' & $nSize & ']')
    DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', DllStructGetPtr($pFileName), 'int', $nSize)
    $filename = DllStructGetData($pFileName, 1) ;Dateinamen holen
    ConsoleWrite($filename & @CRLF)
    ReDim $gaDropFiles[$i + 1]
    $gaDropFiles[$i] = $filename ;DllStructGetData($pFileName, 1)
    $pFileName = 0
    Next
    EndFunc ;==>WM_DROPFILES_FUNC

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

    Func Aktualisieren()
    $Sliderstatus = GUICtrlRead($progress_slider)
    GUICtrlSetData($slots, $Sliderstatus)
    EndFunc ;==>Aktualisieren

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

    Func WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam) ;<================== Benachrichtigung Doppelklick from Chaoskeks (in ChaosExecution)
    Local $tagNMHDR, $event, $hwndFrom, $code
    $tagNMHDR = DllStructCreate("int;int;int", $lParam)
    If @error Then Return 0
    $code = DllStructGetData($tagNMHDR, 3)
    If $wParam = $hListView And $code = -3 And _GUICtrlListView_GetSelectedCount($hListView) > 0 Then
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView)
    IF _GUICtrlListView_GetItemSelected($hListView, $i) Then
    $aItem = _GUICtrlListView_GetItemTextArray($hlistview, $i)
    MsgBox(0,"Doppel-Klick auf ",$aItem[1] & @CRLF & @CRLF & $aItem[2])
    ShellExecute($aItem[2])
    EndIf
    Next
    Endif
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    #cs

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

    Func _BASS_ChannelSetVolume($hChannel, $nVol)
    Local $ret = _BASS_ChannelSetAttribute($hChannel, $BASS_ATTRIB_VOL, $nVol)
    Return SetError(@error, @extended, $ret)
    EndFunc ;==>_BASS_ChannelSetVolume

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

    Func _BASS_ChannelGetVolume($hChannel)
    Local $ret = _BASS_ChannelGetAttribute($hChannel, $BASS_ATTRIB_VOL)
    Return SetError(@error, @extended, $ret)
    EndFunc ;==>_BASS_ChannelGetVolume

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

    Func _LeftDblClick($aInfo)
    Local $sMsg = 'Doppelklick auf:' & @LF & 'ZeilenIndex: ' & $aInfo[3] & @LF & _
    'Spaltenindex: ' & $aInfo[4] & @LF & _
    'Zellen Text: ' & _GUICtrlListView_GetItemTextArray($hListView, $aInfo[3], $aInfo[4])
    MsgBox(0, 'Doppelklick ', $sMsg)
    EndFunc

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $hListView
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    Local $aInfo[12] = [$hWndFrom, _
    $iIDFrom, _
    $iCode, _
    DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem"), _
    DllStructGetData($tInfo, "NewState"), _
    DllStructGetData($tInfo, "OldState"), _
    DllStructGetData($tInfo, "Changed"), _
    DllStructGetData($tInfo, "ActionX"), _
    DllStructGetData($tInfo, "ActionY"), _
    DllStructGetData($tInfo, "lParam"), _
    DllStructGetData($tInfo, "KeyFlags")]
    _LeftDblClick($aInfo)
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY
    #EndRegion Func's
    #ce

    [/autoit]

    der komplette Pfad wird jetzt in die LV in der 2. Spalte gespeichert, die Doppelklick-Func habe ich ausgewechselt gegen eine von <ChaosKeks (von mir angepasst).
    Die 2. Spalte kann man auch mit Länge 0 verstecken, aber diese Zeile kaannst du ja noch einbauen
    viel Spass damit,

  • ListView auslesen

    • autoBert
    • 23. Januar 2010 um 22:13

    Hallo slyfex,

    zum speichern der Dten einer LV schaust du dir am besten einmal das Listview-Datenbank Beispiel von Oscar an.
    Ich habe meinen 1. Beitrag auch noch einmal ein zweites Beispiel angehängt,

    Edit: Boardeinstellungen:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    mfg (Auto)Bert

    Dateien

    Boardstyle.JPG 55,7 kB – 0 Downloads
  • ListView auslesen

    • autoBert
    • 23. Januar 2010 um 21:47

    Hallo slyfex,

    so z.B.:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 345, 236, 233, 196)
    $List = GUICtrlCreateListView("Nummer|Text1|Text2", 44, 24, 250, 150)
    $Button1 = GUICtrlCreateButton("Add", 56, 188, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Lesen", 196, 192, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $L_H = GUICtrlGetHandle($List)
    $Item = _GUICtrlListView_GetItemCount($List)
    _GUICtrlListView_AddItem($L_H, $Item + 1, 0)
    _GUICtrlListView_AddSubItem($L_H, $Item, "#1", 1)
    _GUICtrlListView_AddSubItem($L_H, $Item, "#2", 2)
    Case $Button2
    $aSelected = _GUICtrlListView_GetSelectedIndices($List,True)
    $aLV = _GUICtrlListView_GetItemTextArray($List,$aSelected[1])
    MsgBox(0,$aLV[2],$aLV[3])
    EndSwitch
    WEnd

    [/autoit]

    lies dir dazu auch die Hilfe zu _GUICtrlListView_GetSelectedIndices
    oder so:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 345, 236, 233, 196)
    $List = GUICtrlCreateListView("Nummer|Text1|Text2", 44, 24, 250, 150)
    $Button1 = GUICtrlCreateButton("Add", 56, 188, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Lesen", 196, 192, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $L_H = GUICtrlGetHandle($List)
    $Item = _GUICtrlListView_GetItemCount($List)
    _GUICtrlListView_AddItem($L_H, $Item + 1, 0)
    _GUICtrlListView_AddSubItem($L_H, $Item, "#1", 1)
    _GUICtrlListView_AddSubItem($L_H, $Item, "#2", 2)
    Case $Button2
    $iSelected = GUICtrlRead($List)
    $aLV = _GUICtrlListView_GetItemTextArray($List,$iSelected)
    MsgBox(0,$aLV[2],$aLV[3])
    EndSwitch
    WEnd

    [/autoit]

    lies dir dazu auch die Hilfe zu GuiCtrlRead und für beide Lösungen _GUICtrlListView_GetItemTextArray durch. Viel Spass damit,

    Edit 2. Beispiel mit GuiCtrlRead angehängt
    mfg (Auto)Bert

  • _Stringbetween liest falsch aus

    • autoBert
    • 23. Januar 2010 um 19:51

    Hallo Freaky,

    Zitat von Freaky

    Ich habe IE 8 und bei mir klapt es supper.
    Aber auf meinem PC da habe ich IE 6 oder so aber nicht IE 8 und es liest was anderes aus.
    Ok alles geht bis es anzeigt wie viel Euro auf der PSC ist.
    Dann stürtz es ab weil es was ausliest was es nicht auslesen kann weil _Stringbetween was anderes zum suchen hat.
    Bitte um Hilfe

    Dann must du in deinem Skript so verfahren, wie es anscheinend diese ISide auch tut, nämlich abhängig vom Brower unterschiedliche Lösungen anbieten. Oder du installierst auf deinem PC auch den IE8,

    mfg (Auto)Bert

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™