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

  • mein erstes Projekt

    • BugFix
    • 1. März 2007 um 21:51

    Hi, also wie ich das so sehe bist du in der Lage aus Tipps dir selbst das wichtigste herauszuziehen - prima ;)

    Mal ein erster Tipp. Um nur die Dateien zu kopieren die fehlen, arbeite am besten mit einem Array. Als Einträge: Datei - Status. Könnte dann so aussehen:
    $arFiles[1][0] = "version.ini"
    $arFiles[1][1] = 0 ; (0 = nicht vorhanden, 1 = vorhanden)

    Dann den Status beim Abfragen setzen. Anschließend das Array durchlaufen und bei Status 0 kopieren

  • Bestimmte Msn fenster schließen?

    • BugFix
    • 27. Februar 2007 um 22:55

    Pee hat dir doch schon den Tipp gegeben.
    Warum wendest du es nicht an?

    [autoit]

    AutoItSetOption("WinTitleMatchMode", 2)

    [/autoit]


    EDIT:

    Na, noch nicht klar? ;)

    Hier mal kpl.

    Spoiler anzeigen
    [autoit]

    AutoItSetOption("WinTitleMatchMode", 2)
    HotKeySet("^e", "_End") ; Hotkey um das Programm zu beenden
    While 1
    If WinExists("Unterhaltung") Then WinClose("Unterhaltung")
    Sleep(100) ; damit dein Prozessor nicht überkocht ;)
    Wend

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

    Func _End()
    HotKeySet("^e") ; Hotkey aufheben
    Exit
    EndFunc

    [/autoit]
  • Dateisuche mit AutoIt

    • BugFix
    • 26. Februar 2007 um 15:48

    Ja, rekursive Dateisuche ist das richtige Stichwort.
    Dazu hatte ich mal 'nen Thread gemacht. Guckst du hier.

  • 10 € Schein Analysetool

    • BugFix
    • 25. Februar 2007 um 21:18

    Hi,

    hab grad etwas Langeweile gehabt und meine Lösung noch verfeinert.
    Alternativ kann auch "50.000 für 5" gespielt werden (läuft manchmal hier in der Region).
    Das ganze ist jetzt noch ein bischen optisch aufgebessert, die gewinnträchtigen Scheine werden nach Gewinnstufe sortiert und farblich gekennzeichnet ausgegeben.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiListView.au3>
    Opt("GUIOnEventMode", 1)

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

    Dim $create = " Erstellt mit AutoIt (https://autoit.de/www.autoit.de)"
    Dim $title1 = "100.000 für 10"&$create, $title2 = "50.000 für 5 "&$create, $spiel = 0 ; 0=100.000->10 , 1=50.000->5
    Dim $arAlleSN, $arTreffer[1][2], $Fehler = 0, $SN
    Dim $alleRichtig = 0, $dreiRichtig = 0, $zweiRichtig = 0, $einRichtig = 0, $lastEntry, $new = 0
    Dim $rot = 0xFF0000, $lightcyan = 0xE0FFFF, $indigo = 0x4B0082, $limegreen = 0x32CD32, $springgreen = 0x00FA9A
    Dim $black = 0x000000, $crimson = 0xDC143C, $lemonchiffon = 0xFFFACD, $pink = 0xFF69B4
    $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    $arTreffer[0][0] = 0

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

    If @error = 1 Then $Fehler = 1

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

    $Form1 = GUICreate($title1, 636, 384, -1, -1)
    GUISetBkColor($lemonchiffon)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Ende")
    $GroupSystem = GUICtrlCreateGroup("Spielsystem", 17, 8, 607, 40)
    $Radio00 = GUICtrlCreateRadio("50.000 für &5", 104, 21, 140)
    GUICtrlSetOnEvent(-1, "Radio50")
    $Radio01 = GUICtrlCreateRadio("100.000 für &10", 400, 21, 140)
    GUICtrlSetOnEvent(-1, "Radio100")
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $ListView1 = GUICtrlCreateListView("Seriennummern", 17, 59, 353, 305)
    GUICtrlSetColor(-1, $indigo)
    _GUICtrlListViewSetColumnWidth(-1, 0, 349)
    GUICtrlSetBkColor(-1, $lightcyan)
    GUICtrlSetTip(-1, "Per Tastatur wechseln Sie mit:"& @LF & @LF &" Strg+s"& @LF & @LF& " in die Seriennummernliste.")
    $Group0 = GUICtrlCreateGroup(" Modus ", 384, 57, 240, 40)
    $Radio1 = GUICtrlCreateRadio("E&rfassen", 400, 70, 80)
    GUICtrlSetOnEvent(-1, "RadioErfassen")
    $Radio2 = GUICtrlCreateRadio("Ver&gleichen", 520, 70, 80)
    GUICtrlSetOnEvent(-1, "RadioVergleichen")
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group1 = GUICtrlCreateGroup(" Seriennummer ", 384, 99, 240, 57)
    $Input1 = GUICtrlCreateInput("", 395, 121, 220, 21, $ES_UPPERCASE)
    GUICtrlSetColor(-1, $crimson)
    GUICtrlSetBkColor(-1, $lightcyan)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("&Vergleichen", 384, 168, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "Vergleichen")
    $Group2 = GUICtrlCreateGroup(" Ergebnis ", 384, 198, 240, 167)
    $Label0 = GUICtrlCreateLabel("Hauptgewinn", 465, 216, 110, 20)
    GUICtrlSetColor($Label0, $rot)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Label1 = GUICtrlCreateLabel("letzte 3 Ziffern richtig", 396, 254, 102, 17)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Label2 = GUICtrlCreateLabel("letzte 2 Ziffern richtig", 396, 292, 102, 17)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Label3 = GUICtrlCreateLabel("letzte Ziffer richtig", 396, 330, 87, 17)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Input2 = GUICtrlCreateInput("", 550, 251, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
    $Input3 = GUICtrlCreateInput("", 550, 289, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
    $Input4 = GUICtrlCreateInput("", 550, 327, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button2 = GUICtrlCreateButton("&Ende", 554, 168, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "Ende")
    $Button3 = GUICtrlCreateButton("&Löschen", 469, 168, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "DeleteSN")

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

    If $Fehler = 1 Then
    $lastEntry = 0
    Else
    $lastEntry = StringTrimLeft($arAlleSN[$arAlleSN[0][0]][1], 2)
    _ListAllSN()
    EndIf
    If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then
    GUICtrlSetState($Button3, $GUI_DISABLE)
    Else
    GUICtrlSetState($Button3, $GUI_ENABLE)
    EndIf

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

    GUISetState(@SW_SHOW)
    ControlFocus("", "", $Input1)
    _SetTextCol()

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

    HotKeySet("^s", "_StrgS")

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

    While 1
    Sleep(100)
    WEnd

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

    Func _StrgS()
    If _GUICtrlListViewGetItemCount($listView1) > 0 Then
    GUICtrlSetState($ListView1, $GUI_FOCUS)
    _GUICtrlListViewSetItemSelState($listView1, 0, 1, 1)
    Else
    ControlFocus("", "", $Input1)
    EndIf
    EndFunc

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

    Func _ListAllSN()
    If IsArray($arAlleSN) Then
    For $i = 1 To $arAlleSN[0][0]
    _GUICtrlListViewInsertItem($ListView1, -1, $arAlleSN[$i][1])
    Next
    EndIf
    EndFunc

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

    Func _SetTextCol()
    ; Spielart
    If GUICtrlRead($Radio00) = 1 Then
    GUICtrlSetColor($Radio00, $limegreen)
    GUICtrlSetColor($Radio01, $black)
    Else
    GUICtrlSetColor($Radio00, $black)
    GUICtrlSetColor($Radio01, $limegreen)
    EndIf
    ; Modus
    If GUICtrlRead($Radio1) = 1 Then
    GUICtrlSetColor($Radio1, $limegreen)
    GUICtrlSetColor($Radio2, $black)
    Else
    GUICtrlSetColor($Radio1, $black)
    GUICtrlSetColor($Radio2, $limegreen)
    EndIf
    EndFunc

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

    Func Radio50()
    WinSetTitle($Form1, "", $title2)
    $spiel = 1
    _SetTextCol()
    ControlFocus("", "", $Input1)
    EndFunc

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

    Func Radio100()
    WinSetTitle($Form1, "", $title1)
    $spiel = 0
    _SetTextCol()
    ControlFocus("", "", $Input1)
    EndFunc

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

    Func RadioErfassen()
    _SetTextCol()
    GUICtrlSetData($Button1, "Er&fassen")
    If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then
    GUICtrlSetState($Button3, $GUI_DISABLE)
    Else
    GUICtrlSetState($Button3, $GUI_ENABLE)
    EndIf
    GUICtrlSetStyle($Label0, $WS_DISABLED)
    GUICtrlSetFont($Label0, 9, 400)
    GUICtrlSetStyle($Label1, $WS_DISABLED)
    GUICtrlSetStyle($Label2, $WS_DISABLED)
    GUICtrlSetStyle($Label3, $WS_DISABLED)
    _GUICtrlListViewDeleteAllItems($ListView1)
    If $Fehler = 0 Then _ListAllSN()
    ControlFocus("", "", $Input1)
    GUICtrlSetData($Input2, "")
    GUICtrlSetData($Input3, "")
    GUICtrlSetData($Input4, "")
    EndFunc

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

    Func RadioVergleichen()
    _SetTextCol()
    GUICtrlSetData($Button1, "&Vergleichen")
    ControlFocus("", "", $Input1)
    EndFunc

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

    Func Vergleichen()
    If GUICtrlRead($Radio2) = 1 Then ; vergleichen
    If $Fehler = 1 Then
    MsgBox(48, 'ACHTUNG', "Es sind noch keine Seriennummern zum Vergleich hinterlegt!")
    Return
    EndIf
    If GUICtrlRead($Input1) = "" Then
    MsgBox(48, 'ACHTUNG', "Bitte eine Seriennummer eingeben!")
    Return
    EndIf
    _vergleich()
    _GUICtrlListViewDeleteAllItems($ListView1)
    _treffer()
    $alleRichtig = 0
    Else ; erfassen
    $SN = GUICtrlRead($Input1)
    If $SN <> "" Then
    _GUICtrlListViewInsertItem($ListView1, -1, $SN)
    IniWrite(@ScriptDir & "\SN10Euro.INI", "serien", "sn" & $lastEntry +1, $SN)
    $lastEntry += 1
    $Fehler = 0
    $new = 1
    GUICtrlSetState($Button3, $GUI_ENABLE)
    Else
    MsgBox(0, 'ACHTUNG!', "Bitte eine Seriennummer für Vergleich eingeben!")
    EndIf
    EndIf
    ControlFocus("", "", $Input1)
    EndFunc

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

    Func DeleteSN()
    Dim $tmp
    If $new = 1 Then $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    $tmp = _GUICtrlListViewGetItemText($ListView1)
    If $tmp <> "" And MsgBox(292,"Löschen","Soll die Seriennummer:" & @LF & $tmp & @LF & "wirklich gelöscht werden?") = 6 Then
    For $i = 1 To $arAlleSN[0][0]
    If $arAlleSN[$i][1] = $tmp Then
    $arAlleSN[$i][1] = ""
    ExitLoop
    EndIf
    Next
    FileDelete(@ScriptDir & "\SN10Euro.INI")
    $lastEntry = 0
    For $i = 1 To $arAlleSN[0][0]
    If $arAlleSN[$i][1] <> "" Then
    IniWrite(@ScriptDir & "\SN10Euro.INI", "serien", "sn" & $lastEntry +1, $arAlleSN[$i][1])
    $lastEntry += 1
    $Fehler = 0
    EndIf
    Next
    _GUICtrlListViewDeleteAllItems($ListView1)
    $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    _ListAllSN()
    If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then GUICtrlSetState($Button3, $GUI_DISABLE)
    EndIf
    ControlFocus("", "", $Input1)
    EndFunc

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

    Func _vergleich()
    Dim $txtFull1 = " / Volltreffer = 100.000 €", $txtFull2 = " / Volltreffer = 50.000 €"
    Dim $txt3R1 = " / 3 R = 10.000 €", $txt3R2 = " / 3 R = 5.000 €"
    Dim $txt2R1 = " / 2 R = 1.000 €", $txt2R2 = " / 2 R = 500 €"
    Dim $txt1R1 = " / 1 R = 100 €", $txt1R2 = " / 1 R = 50 €"
    $SN = GUICtrlRead($Input1)
    If $new = 1 Then $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    For $i = 1 To $arAlleSN[0][0]
    If $arAlleSN[$i][1] = $SN Then
    $alleRichtig += 1
    If $spiel = 0 Then
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txtFull1
    $arTreffer[$n-1][1] = 1
    Else
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txtFull2
    $arTreffer[$n-1][1] = 1
    EndIf
    $arTreffer[0][0] += 1
    ElseIf StringRight($arAlleSN[$i][1], 3) = StringRight($SN, 3) Then
    $dreiRichtig += 1
    If $spiel = 0 Then
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txt3R1
    $arTreffer[$n-1][1] = 2
    Else
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txt3R2
    $arTreffer[$n-1][1] = 2
    EndIf
    $arTreffer[0][0] += 1
    ElseIf StringRight($arAlleSN[$i][1], 2) = StringRight($SN, 2) Then
    $zweiRichtig += 1
    If $spiel = 0 Then
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txt2R1
    $arTreffer[$n-1][1] = 3
    Else
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txt2R2
    $arTreffer[$n-1][1] = 3
    EndIf
    $arTreffer[0][0] += 1
    ElseIf StringRight($arAlleSN[$i][1], 1) = StringRight($SN, 1) Then
    $einRichtig += 1
    If $spiel = 0 Then
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txt1R1
    $arTreffer[$n-1][1] = 4
    Else
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txt1R2
    $arTreffer[$n-1][1] = 4
    EndIf
    $arTreffer[0][0] += 1
    EndIf
    Next
    EndFunc

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

    Func _treffer()
    _ArraySort($arTreffer, 0,1,0,2,1)
    For $i = 1 To $arTreffer[0][0]
    $item = GUICtrlCreateListViewItem($arTreffer[$i][0], $ListView1)
    Switch $arTreffer[$i][1]
    Case 1
    GUICtrlSetBkColor($item, $pink)
    Case 2
    GUICtrlSetBkColor($item, $limegreen)
    Case 3
    GUICtrlSetBkColor($item, $lemonchiffon)
    Case 4
    GUICtrlSetBkColor($item, $springgreen)
    EndSwitch
    Next
    If $alleRichtig = 1 Then
    GUICtrlSetStyle($Label0, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetFont($Label0, 12, 430)
    EndIf
    GUICtrlSetState($Button3, $GUI_DISABLE)
    GUICtrlSetStyle($Label1, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetStyle($Label2, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetStyle($Label3, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetData($Input2, $dreiRichtig)
    GUICtrlSetData($Input3, $zweiRichtig)
    GUICtrlSetData($Input4, $einRichtig)
    ReDim $arTreffer[1][2]
    $arTreffer[0][0] = 0
    $dreiRichtig = 0
    $zweiRichtig = 0
    $einRichtig = 0
    EndFunc

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

    Func Ende()
    HotKeySet("^s")
    Exit
    EndFunc

    [/autoit]

    EDIT:
    Hab meinen Fehler entdeckt, Sortierung funktioniert nun auch.

    Dateien

    100000_f 10,72 kB – 356 Downloads
  • Mehrfach GUI

    • BugFix
    • 19. Februar 2007 um 22:52

    @Tam0r
    Nix andres macht mein Beispiel ;)

    - MainGUI mit Style $WS_MAXIMIZE
    - SubGUI mit Ex-Style $WS_EX_TOPMOST

  • Mehrfach GUI

    • BugFix
    • 19. Februar 2007 um 21:16

    Hier, eine MainGUI und mit Strg+S kannst du eine SubGUI öffnen:

    [autoit]

    #include <GUIConstants.au3>
    $MainGUI = GUICreate("Main", Default, Default, Default, Default, BitOr($WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_MAXIMIZE))
    $SubGUI = GUICreate("Sub", 867, 551, -1, -1, BitOr($WS_CAPTION, $WS_POPUP, $WS_SYSMENU), $WS_EX_TOPMOST)
    GUISetState(@SW_SHOW,$MainGUI)
    HotKeySet("^s", "_StrgS")
    While 1
    $msg = GuiGetMsg(1)
    Select
    Case $msg[0] = $GUI_EVENT_CLOSE
    Select
    Case $msg[1] = $MainGUI
    ExitLoop
    Case $msg[1] = $SubGUI
    GUISetState(@SW_HIDE,$SubGUI)
    EndSelect
    EndSelect
    WEnd
    Exit

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

    Func _StrgS()
    GUISetState(@SW_SHOW,$SubGUI)
    EndFunc

    [/autoit]
  • Rechtsklick auf Listview

    • BugFix
    • 16. Februar 2007 um 16:24

    Alternativ kannst du auch mit Kontextmenü arbeiten.
    Hier mal ein Beispiel zum Editieren und Löschen (auch von einzelnen Werten) in einem ListView.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiListView.au3>
    #Include <GuiList.au3>
    Dim $arItem[8], $arChange

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

    $Form1 = GUICreate("AForm1", 633, 265, -1, -1)
    $ListView1 = GUICtrlCreateListView("1|2|3|4|5|6|7|8|9|10|11|12|13|14", 16, 16, 601, 225)
    GUICtrlSendMsg($ListView1, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
    For $i = 0 To 7
    $arItem[$i] = GUICtrlCreateListViewItem("",$ListView1)
    For $k = 0 To 13
    _GUICtrlListViewSetItemText($ListView1, $i, $k, "Zeile"&$i+1 & "/Spalte"&$k+1)
    _GUICtrlListViewSetColumnWidth($ListView1, $k, 86)
    Next
    Next
    $lvContext = GUICtrlCreateContextMenu($ListView1)
    $conEdit = GUICtrlCreateMenuitem("Edit", $lvContext)
    $conDelAll = GUICtrlCreateMenuItem("Lösche kpl. Eintrag", $lvContext)
    ; GUI für Edit
    $Form2 = GUICreate("AForm2", 328, 432, -1, -1, BitOR($WS_POPUP, $WS_BORDER))
    $List1 = GUICtrlCreateList("", 20, 20, 285, 370, BitOR($WS_HSCROLL,$WS_BORDER))
    $btnOK = GUICtrlCreateButton("OK", 196, 400, 109, 21, 0)
    $lContext = GUICtrlCreateContextMenu($List1)
    $conEdit_l = GUICtrlCreateMenuitem("Editieren", $lContext)
    $conDel_l = GUICtrlCreateMenuitem("Löschen", $lContext)

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

    GUISetState(@SW_SHOW, $Form1)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $conDelAll
    _GUICtrlListViewDeleteItem($ListView1, _GUICtrlListViewGetSelectedIndices($ListView1))
    Case $conEdit
    $lvIndex = _GUICtrlListViewGetSelectedIndices($ListView1)
    $arChange = _GUICtrlListViewGetItemTextArray($ListView1, $lvIndex)
    For $i = 1 To $arChange[0]
    _GUICtrlListAddItem($List1, $arChange[$i])
    Next
    GUISetState(@SW_SHOW, $Form2)
    Case $btnOK
    For $i = 0 To _GUICtrlListCount($List1) -1
    _GUICtrlListViewSetItemText($ListView1, $lvIndex, $i, _GUICtrlListGetText($List1, $i))
    Next
    GUISetState(@SW_HIDE, $Form2)
    Case $conEdit_l
    $lIndex = _GUICtrlListGetCaretIndex($List1)
    $var = InputBox("Eintrag ändern", "", _GUICtrlListGetText($List1, $lIndex))
    _GUICtrlListReplaceString($List1, $lIndex, $var)
    Case $conDel_l ; nicht wirklich löschen, sonst wär eine Spalte zu wenig
    $lIndex = _GUICtrlListGetCaretIndex($List1)
    _GUICtrlListReplaceString($List1, $lIndex, "")
    EndSwitch
    WEnd

    [/autoit]
  • Aktueller Windows User/Anmeldename

    • BugFix
    • 16. Februar 2007 um 13:24

    Willst du wissen, welcher User an PC(x) oder PC(y) eingeloggt ist?
    Von wo willst du das abfragen?
    Bist du selbst User an PC(x) fehlen dir die Rechte zum Abfragen, bist du Admin im Netzwerk kannst du im Logon des Servers nachschauen.

  • Aktueller Windows User/Anmeldename

    • BugFix
    • 16. Februar 2007 um 08:42

    :schild4:
    Warum so komplizert?

    [autoit]

    MsgBox(0,"", @UserName)

    [/autoit]
  • Beep Komponist

    • BugFix
    • 15. Februar 2007 um 22:48

    Hi Vinschni,

    also ich habe jetzt erstmal dein Script so angepaßt, dass auch in die Datei geschrieben werden kann. Einiges ist mir aber noch unklar. Lies mal meine Kommentare.
    Wo ich Änderungen gemacht habe, habe ich es markiert mit ";########".

    Wenn das erstmal funktioniert, können wir uns um das Editieren der Einträge kümmern.

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>
    #include <File.au3>
    #Include <GuiStatusBar.au3>
    #include <GuiListView.au3>
    #NoTrayIcon

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

    If Not FileExists(@ScriptDir & "\B.KO.-DATA") Then DirCreate(@ScriptDir & "\B.KO.-DATA") ;Prüft ob der Ordner in welchem der Pfad der aktuell editierten Code Datei und dieselbe existiert und erstellt ihn bei Bedarf.
    $Datei = @ScriptDir & "\B.KO.-DATA\BeepCode.bc" ;Öffnet und oder erstellt die Datei in welche später alle <Beep(...)> , <Sleep(...)> Befehle geschrieben werden.
    $Codedateipfad = @ScriptDir & "\B.KO.-DATA\BeepCodePfad.ini" ;Öffnet und oder erstellt die Datei in welcher der Pfad zur <BeepCode.bc> verzeichnet ist, um später in verschiedene Dateien zu schreiben.
    IniWrite($Codedateipfad, "File", "Path", @ScriptDir & "\B.KO.-DATA\BeepCode.bc");Schreibt den aktuellen Pfad der <BeepCode.bc> in <BeepCodePfad.ini>.
    ;############# $Datei gleich im Schreibmodus öffnen (anhängen) ################################################
    Dim $fh = FileOpen($Datei, 1)
    ;~ ########### Sollte $Datei im Programm irgendwann einen anderen Wert bekommen mußt du UNBEDINGT so vorgehen:
    ; als erstes $Datei schließen mit: FileClose($fh)
    ; dann neuen Wert zuweisen: $Datei = "neuer Wert"
    ; jetzt $Datei mit neuem Wert zum Schreiben öffnen: $fh = FileOpen($Datei, 1)
    ;##############################################################################################################
    Local $hauptfenster, $StatusBar1, $msg
    Local $Lange[1] = [536]
    Local $Statusbartextvor[1] = ["GD: " & $Datei]

    ;GUI
    $hauptfenster = GUICreate("Beep Komponist 1.7", 536, 398, -1, -1)
    GUISetBkColor(0xFFFFFF)
    $quit = GUICtrlCreateButton("Schließen", 354, 340, 118, 28)
    $GroupAbspielen = GUICtrlCreateGroup("Abspielen", 144, 256, 193, 113)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $abspielen = GUICtrlCreateButton("Aktuelles Abspielen", 151, 277, 176, 28)
    $incode = GUICtrlCreateButton("In Code umwandeln", 152, 334, 176, 20)
    $dateiabspielen = GUICtrlCreateButton("Andere .bk Datei abspielen", 152, 312, 177, 17)
    $GroupIni = GUICtrlCreateGroup("B.KO.-DATA Management", 352, 216, 169, 121)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $BKOloeschen = GUICtrlCreateButton("Diverse B.KO.-Datei löschen", 360, 240, 153, 17, 0)
    $neueBeepcodedatei = GUICtrlCreateButton("Neue <BeepCode.bc>", 360, 264, 153, 17, 0)
    $neueBeepCodePfadDatei = GUICtrlCreateButton("Neue <BeepCodePfad.ini>", 360, 288, 153, 17, 0)
    $anderecodedateiwahlen = GUICtrlCreateButton("Andere Code-Datei wählen", 360, 312, 153, 17, 0)
    $GroupPausen = GUICtrlCreateGroup("Pausen", 8, 232, 129, 137)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $ganzepause = GUICtrlCreateButton("Ganze Pause", 16, 248, 113, 17, 0)
    $halbepause = GUICtrlCreateButton("Halbe Pause", 16, 272, 113, 17, 0)
    $viertelpause = GUICtrlCreateButton("Viertel Pause", 16, 296, 113, 17, 0)
    $achtelpause = GUICtrlCreateButton("Achtel Pause", 16, 320, 113, 17, 0)
    $sechzentelpause = GUICtrlCreateButton("Sechzentel Pause", 16, 344, 113, 17, 0)
    $Groupnotenlangen = GUICtrlCreateGroup("Notenlängen", 8, 8, 129, 217)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $ganzenote = GUICtrlCreateRadio("Ganze Note", 16, 32, 89, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $halbenote = GUICtrlCreateRadio("Halbe Note", 16, 80, 89, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $viertelnote = GUICtrlCreateRadio("Viertel Note", 16, 128, 73, 17)
    GUICtrlSetState($viertelnote, $GUI_CHECKED)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $achtelnote = GUICtrlCreateRadio("Achtel Note", 16, 176, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $sechzentelnote = GUICtrlCreateRadio("Sechzentel Note", 16, 200, 113, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $punktierteviertel = GUICtrlCreateRadio("Punktierte Viertel", 16, 104, 105, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $punktiertehalbe = GUICtrlCreateRadio("Punktierte Halbe", 16, 56, 113, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $punktierteachtelnote = GUICtrlCreateRadio("Punkierte Achtel", 16, 152, 113, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $List = GUICtrlCreateListView("Noten", 352, 16, 169, 171)
    _GUICtrlListViewSetColumnWidth(-1, 0,$LVSCW_AUTOSIZE_USEHEADER)
    $notenlistloeschen = GUICtrlCreateButton("x", 503, 193, 19, 19)
    $korrigieren = GUICtrlCreateCheckbox("Eingegebenes korrigieren", 357, 193, 145, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $ueber = GUICtrlCreateButton("Über...", 478, 340, 44, 28, 0)
    $ToeneTab = GUICtrlCreateTab(144, 14, 193, 233)
    $ToeneTabSheet1 = GUICtrlCreateTabItem("Töne von c' - h'")
    $Statusbar = _GUICtrlStatusBarCreate($hauptfenster,$Lange,$Statusbartextvor)
    _GUICtrlStatusBarSetIcon($Statusbar, 0, "shell32.dll", 70)
    $c1 = GUICtrlCreateButton("c'", 148, 46, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $cis1 = GUICtrlCreateButton("cis'/des'", 148, 78, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $dis1 = GUICtrlCreateButton("dis'/es'", 148, 142, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $e1 = GUICtrlCreateButton("e'", 148, 174, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $f1 = GUICtrlCreateButton("f'", 148, 206, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $g1 = GUICtrlCreateButton("g'", 244, 78, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $gis1 = GUICtrlCreateButton("gis'/as'", 244, 110, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $a1 = GUICtrlCreateButton("a'", 244, 142, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $ais1 = GUICtrlCreateButton("ais'/b'", 244, 174, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $h1 = GUICtrlCreateButton("h'", 244, 206, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $d1 = GUICtrlCreateButton("d'", 148, 110, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $fis1 = GUICtrlCreateButton("fis'/ges'", 244, 46, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $ToeneTabSheet2 = GUICtrlCreateTabItem("Töne von c'' - h''")
    $h2 = GUICtrlCreateButton("h''", 244, 206, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $ais2 = GUICtrlCreateButton("ais''/b''", 244, 174, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $a2 = GUICtrlCreateButton("a''", 244, 142, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $gis2 = GUICtrlCreateButton("gis''/as''", 244, 110, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $g2 = GUICtrlCreateButton("g''", 244, 78, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $c2 = GUICtrlCreateButton("c''", 148, 46, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $cis2 = GUICtrlCreateButton("cis''/des''", 148, 78, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $d2 = GUICtrlCreateButton("d''", 148, 110, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $dis2 = GUICtrlCreateButton("dis''/es''", 148, 142, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $e2 = GUICtrlCreateButton("e''", 148, 174, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $f2 = GUICtrlCreateButton("f''", 148, 206, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $fis2 = GUICtrlCreateButton("fis''/ges''", 244, 46, 80, 20, 0)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $c1
    _write(262) ;Jeweilige Frequenz wird an die _write Funktion übergeben.
    _Listwrite("c'") ;Ton wird an _Listwrite übergeben, das angezeigt werden kann auf was geklickt wurde.
    Case $msg = $cis1
    _write(277)
    _Listwrite("cis'/des'")
    Case $msg = $d1
    _write(293)
    _Listwrite("d'")
    Case $msg = $dis1
    _write(311)
    _Listwrite("dis'/es'")
    Case $msg = $e1
    _write(330)
    _Listwrite("e'")
    Case $msg = $f1
    _write(349)
    _Listwrite("f'")
    Case $msg = $fis1
    _write(370)
    _Listwrite("fis'/ges'")
    Case $msg = $g1
    _write(392)
    _Listwrite("g'")
    Case $msg = $gis1
    _write(415)
    _Listwrite("gis'/as'")
    Case $msg = $a1
    _write(440)
    _Listwrite("a'")
    Case $msg = $ais1
    _write(466)
    _Listwrite("ais'/b'")
    Case $msg = $h1
    _write(493)
    _Listwrite("h'")
    Case $msg = $c2
    _write(523)
    _Listwrite("c''")
    Case $msg = $cis2
    _write(554)
    _Listwrite("cis''/des''")
    Case $msg = $d2
    _write(587)
    _Listwrite("d''")
    Case $msg = $dis2
    _write(622)
    _Listwrite("dis''/es''")
    Case $msg = $e2
    _write(659)
    _Listwrite("e''")
    Case $msg = $f2
    _write(698)
    _Listwrite("f''")
    Case $msg = $fis2
    _write(740)
    _Listwrite("fis''/ges''")
    Case $msg = $g2
    _write(784)
    _Listwrite("g''")
    Case $msg = $gis2
    _write(831)
    _Listwrite("gis''/as''")
    Case $msg = $a2
    _write(880)
    _Listwrite("a''")
    Case $msg = $ais2
    _write(932)
    _Listwrite("ais''/b''")
    Case $msg = $h2
    _write(988)
    _Listwrite("h''")
    Case $msg = $ganzepause
    FileWrite($fh, "Sleep(1000)" & @CRLF) ;############ Bei Klick auf gewünschte Pausenlänge wird der dazugehörige <Sleep(...)> Befehl in die <BeepCode.bc> geschrieben.
    GUICtrlCreateListViewItem("Ganze Pause",$List) ;Um zu sehen was man für eine Pausenlänge gedrückt hat wird hier der jeweilige Eintrag in ein Listview gepackt.
    Case $msg = $halbepause
    FileWrite($fh, "Sleep(500)" & @CRLF) ;############
    GUICtrlCreateListViewItem("Halbe Pause",$List)
    Case $msg = $viertelpause
    FileWrite($fh, "Sleep(250)" & @CRLF) ;############
    GUICtrlCreateListViewItem("Viertel Pause",$List)
    Case $msg = $achtelpause
    FileWrite($fh, "Sleep(125)" & @CRLF) ;############
    GUICtrlCreateListViewItem("Achtel Pause",$List)
    Case $msg = $sechzentelpause
    FileWrite($fh, "Sleep(62)" & @CRLF) ;############
    GUICtrlCreateListViewItem("Sechzentel Pause",$List)
    Case $msg = $quit
    Exit
    Case $msg = $notenlistloeschen;Löscht nur die Liste mit den angeklickten Tonhöhen und den Notenlängen.
    _GUICtrlListViewDeleteAllItems($List)
    Case $msg = $incode ;Hier lässt sich eine <BeepCode.bc> in eine Beep Komposition umwandeln (eigentlich werden nur Namen und Dateiendung geändert, *.bk soll aber das Beep Komponist Dateiformat sein.)
    $NamederBeepKomposition = InputBox("Meldung", "Geben sie hier ihrer Komposition einen Namen:")
    Global $Codedat = @ScriptDir & "\Beep Komposition-" & $NamederBeepKomposition & ".bk"
    FileCopy($Datei, @ScriptDir & "\Beep Komposition-" & $NamederBeepKomposition & ".bk")
    _FileWriteToLine($Codedat, 0, ";Code erstellt durch Beep Komponist 1.6")
    Case $msg = $BKOloeschen ;Hier lässt sich eine Beep komponist Datei aus dessen Ordner löschen.
    $loeschDatei = FileOpenDialog("Eine Beep-Datei zum Löschen wählen:", @ScriptDir & "\B.KO.-DATA", "Beep Kompositionen (*.bk;*.bc)")
    If FileExists($loeschDatei) Then FileDelete($loeschDatei)
    Case $msg = $abspielen ;Hier wird die aktuell geöffnete <BeepCode.bc> abgespielt.
    $Abspielpfad = IniRead(@ScriptDir & "\B.KO.-DATA\BeepCodePfad.ini", "File", "Path", "Konnte nicht gefunden werden!")
    If FileExists($Abspielpfad) Then Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $Abspielpfad & '"', '', @SW_HIDE);Wenn diese Datei existiert wird sie dann abgespielt.
    Case $msg = $dateiabspielen ;Hier lässt sich eine beliebige *.bc oder *.bk Datei abspielen.
    $abspieldatei = FileOpenDialog("Eine Beep komposition zum abspielen wählen:", @ScriptDir, "Beep Kompositionen (*.bk;*.bc)");Hier lassen sich beliebige *.bc (bearbeitete Codedateien) oder *.bk (fertige, schon umgewandelte Beep Kompositionen) abspielen.
    If FileExists($abspieldatei) Then Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $abspieldatei & '"', '', @SW_HIDE)
    Case $msg = $neueBeepcodedatei;Hier kann man eine neue BeepCodeDatei erstellen + die alte löschen.
    $AlteCodeDatei = IniRead(@ScriptDir & "\B.KO.-DATA\BeepCodePfad.ini", "File", "Path", "Konnte nicht gefunden werden!")
    If FileExists($AlteCodeDatei) Then FileDelete($AlteCodeDatei)
    $Datei = @ScriptDir & "\B.KO.-DATA\BeepCode.bc"
    Case $msg = $anderecodedateiwahlen ;Hier kann man den Pfad zur aktuellen Code Datei ändern.
    $PfadzurCodeDatei = IniRead(@ScriptDir & "\B.KO.-DATA\BeepCodePfad.ini", "File", "Path", "Konnte nicht gefunden werden!")
    $Pfad = InputBox("Ini bearbeiten", "Hier können sie den aktuellen Pfad bearbeiten:", $PfadzurCodeDatei)
    If FileExists($Pfad) Then
    ; ########### Wenn du $Datei hier einen anderen Wert zuweist, gilt das für deine _write() Funktion - ist das gewollt ?
    ;~ ########### $Datei = IniWrite($Codedateipfad, "File", "Path", $Pfad) ; geht so nicht, IniWrite gibt 0 oder 1 zurück, das wär dann in $Datei
    ;~ ########### Was soll hier passieren ? IniWrite - OK, aber welchen Wert soll $Datei bekommen ?
    Else
    MsgBox(16, "Error", "Die von ihnen angegebene Datei existiert nicht, und lässt sich so nicht bearbeiten!",4)
    EndIf
    Case $msg = $ueber
    MsgBox(64, "Über...", "Programm Name: Beep Komponist" & @CRLF & "Programm Version : 1.7" & @CRLF & @CRLF & "Autor: Vinschni")
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case Else
    ;;;
    EndSelect
    WEnd
    FileClose($fh) ; Datei schließen bei Programmende ############
    Exit

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

    Func _write($note) ;Funktion die beim Klicken auf eine Note gestartet wird. Sie legt zusätzlich zur gewählten Tonhöhe die mit den Radiobuttons festgelegte Tonlänge fest und schreibt beides in <Beep(...)> Befehl, und dann in die aktuell bearbeitete <BeepCode.bc> welchen Pfad in der <BeepCodePfad.ini> steht.
    Select
    Case GUICtrlRead($ganzenote) = $GUI_CHECKED
    FileWrite($fh, "Beep(" & $note & ",1000)" & @CRLF) ;############
    Beep($note, 1000)
    Case GUICtrlRead($punktiertehalbe) = $GUI_CHECKED
    FileWrite($fh, "Beep(" & $note & ",750)" & @CRLF) ;############
    Beep($note, 750)
    Case GUICtrlRead($halbenote) = $GUI_CHECKED
    FileWrite($fh, "Beep(" & $note & ",500)" & @CRLF) ;############
    Beep($note, 500)
    Case GUICtrlRead($punktierteviertel) = $GUI_CHECKED
    FileWrite($fh, "Beep(" & $note & ",375)" & @CRLF) ;############
    Beep($note, 375)
    Case GUICtrlRead($viertelnote) = $GUI_CHECKED
    FileWrite($fh, "Beep(" & $note & ",250)" & @CRLF) ;############
    Beep($note, 250)
    Case GUICtrlRead($punktierteachtelnote) = $GUI_CHECKED
    FileWrite($fh, "Beep(" & $note & ",188)" & @CRLF) ;############
    Beep($note, 188)
    Case GUICtrlRead($achtelnote) = $GUI_CHECKED
    FileWrite($fh, "Beep(" & $note & ",125)" & @CRLF) ;############
    Beep($note, 125)
    Case GUICtrlRead($sechzentelnote) = $GUI_CHECKED
    FileWrite($fh, "Beep(" & $note & ",63)" & @CRLF) ;############
    Beep($note, 63)
    EndSelect
    EndFunc

    Func _Listwrite($Note) ; Zweite Funktion die beim Klicken auf eine Note gestartet wird. Sie sorgt dafür das die angeklickte Note mit ihrem richtigem Namen und der Notenlänge (nicht den Zahlen für den Beep() Befehl) in das Listview geschrieben wird.
    Select
    Case GUICtrlRead($ganzenote) = $GUI_CHECKED
    GUICtrlCreateListViewItem($Note & " , Ganze Note",$List)
    Case GUICtrlRead($punktiertehalbe) = $GUI_CHECKED
    GUICtrlCreateListViewItem($Note & " , Punktierte Halbe Note",$List)
    Case GUICtrlRead($halbenote) = $GUI_CHECKED
    GUICtrlCreateListViewItem($Note & " , Halbe Note",$List)
    Case GUICtrlRead($punktierteviertel) = $GUI_CHECKED
    GUICtrlCreateListViewItem($Note & " , Punktierte Viertel Note",$List)
    Case GUICtrlRead($viertelnote) = $GUI_CHECKED
    GUICtrlCreateListViewItem($Note & " , Viertel Note",$List)
    Case GUICtrlRead($punktierteachtelnote) = $GUI_CHECKED
    GUICtrlCreateListViewItem($Note & " , Punktierte Achtel Note",$List)
    Case GUICtrlRead($achtelnote) = $GUI_CHECKED
    GUICtrlCreateListViewItem($Note & " , Achtel Note",$List)
    Case GUICtrlRead($sechzentelnote) = $GUI_CHECKED
    GUICtrlCreateListViewItem($Note & " , Sechzentel Note",$List)
    EndSelect
    EndFunc

    [/autoit]
  • FileOpenDialog danach funktioniert die Funktion Filewrite nicht mehr

    • BugFix
    • 14. Februar 2007 um 17:33

    Wie wärs denn mit Datei zum Schreiben öffnen?

    [autoit]

    $fh = FileOpen($datei, modus) ; 0 = Read mode 1 = Write mode (append to end of file) 2 = Write mode (erase previous contents)
    FileWrite($fh, "inhalt")
    FileClose($fh)

    [/autoit]
  • Wie kann ich einen Variablenwert von einer GUI zu einer anderen GUI übergeben?

    • BugFix
    • 14. Februar 2007 um 16:01

    Definiere die Variable als Global, dann steht sie dir überall zur Verfügung.

    [autoit]

    Global $meineVariable

    [/autoit]


    EDIT
    Wieso heißt eine Lady "nasenmann" ? :schild4:
    Achja, natürlich noch ein Herzlich Willkommen in der AutoIt-Gemeinde.

  • Beep Komponist

    • BugFix
    • 14. Februar 2007 um 15:32

    Hab noch mal kurz drüber geschaut.
    Eines ist mir aufgefallen:

    [autoit]

    FileOpen(@ScriptDir & "\B.KO.-DATA\LetzterBeepPath.ini",0)

    [/autoit]


    Das ist nicht vollständig. Du mußt ein Filehandle zuweisen um damit arbeiten zu können:

    [autoit]

    $fh = FileOpen($datei, modus)

    [/autoit]


    Alle folgenden Befehle beziehen sich jetzt auf das Filehandle, z.B.:

    [autoit]

    MsgBox(0, "Das steht in Zeile 1", FileReadLine($fh, 1)

    [/autoit]


    Zum Schluß, wichtig besonders wenn man mit mehreren Dateien arbeitet:

    [autoit]

    FileClose($fh)

    [/autoit]


    EDIT

    So, hab erst mal hundert Leerzeilen aus deinem Proggi entfernt, damit man es auch lesen kann ;) .
    Außer in der oben angeführten Zeile, wo du kein Filehandle zuweist, hast du niemals eine Datei zum Schreiben geöffnet. Du verwendest immer den Befehl: FileWrite($Datei, "Beep.... ). Da $Datei aber nicht zum Schreiben geöffnet ist, geht der Befehl ins Leere.


    EDIT2

    Hab schon mal ein paar kleine Änderungen durchgeführt:

    [autoit]

    If Not FileExists(@ScriptDir & "\B.KO.-DATA") Then DirCreate(@ScriptDir & "\B.KO.-DATA")

    [/autoit][autoit]


    $List = GUICtrlCreateListView("Noten", 352, 16, 169, 185)
    _GUICtrlListViewSetColumnWidth(-1, 0,$LVSCW_AUTOSIZE_USEHEADER)

    [/autoit][autoit]

    Case $msg = $notenlistloeschen
    _GUICtrlListViewDeleteAllItems($List)

    [/autoit]

    Die einzigen Dateien die erstellt werden, sind die mit INIWrite() erzeugten (Gründe siehe oben).
    Da mir nicht ganz klar ist, was wann wohin geschrieben werden soll, (du verwendest z.B. für $Datei unterschiedliche Werte) überlasse ich diese Korrekturen dir.

  • FAQ

    • BugFix
    • 14. Februar 2007 um 12:44

    Label als Button

    Mit der Funktion von rakudave habe ich hier mal ein Bsp. erstellt, wie man farbige Button erstellen kann.
    Ich habe die Funktion noch etwas erweitert, damit ich auch den Schriftstyle verändern kann.
    Für die meisten Anwendungen sollte dies ausreichen.
    Was nicht geht: Verändern der Buttoneigenschaften (Beschriftung, Farbe, Style) zur Laufzeit.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    Dim $steelblue = 0xB0C4DE, $khaki = 0xF0E68C, $violet = 0x800080, $rot = 0xFF0000, $gelb = 0xFFFF00
    Dim $aqua = 0x00FFFF, $crimson = 0xDC143C

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

    $Form1 = GUICreate("Colored Button", 504, 186, -1, -1)
    GUISetBkColor($steelblue)
    ; die Erzeugung des Buttons gibt eine Array-Variable zurück
    $ret1 = _GUICtrlCreateColorButton("Button1", 25, 75, 85, 25, $khaki, $violet)
    ; an Position [0] des Arrays ist das Handle, über das der Button abgefragt werden kann
    $btn1 = $ret1[0]
    $ret2 = _GUICtrlCreateColorButton("Button2", 143, 75, 85, 25, $aqua, $rot, 10, 600, 0, "Verdana")
    $btn2 = $ret2[0]
    $ret3 = _GUICtrlCreateColorButton("Button3", 267, 75, 85, 25, $crimson, $gelb, 12, 600, 2, "Courier")
    $btn3 = $ret3[0]
    $ret4 = _GUICtrlCreateColorButton("Button4", 393, 75, 85, 25, $gelb, $crimson, 11, 400, 0, "Arial Narrow")
    $btn4 = $ret4[0]
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn1
    GUICtrlSetStyle($btn1, $SS_ETCHEDFRAME) ; Button im Gedrückt-Zustand
    Sleep(150) ; Verweildauer im Gedrückt-Zustand
    GUICtrlSetStyle($btn1, $SS_NOTIFY + $SS_GRAYRECT) ; Button ungedrückt
    Sleep(100) ; Pause um Vorgang optisch wahrzunehmen
    ; ab hier der Code für ButtonClick
    MsgBox(0, '', "Standardschrift u. -größe" & @LF & "violett auf khaki")
    Case $btn2
    GUICtrlSetStyle($btn2, $SS_ETCHEDFRAME)
    Sleep(150)
    GUICtrlSetStyle($btn2, $SS_NOTIFY + $SS_GRAYRECT)
    Sleep(100)
    MsgBox(0, '', "Verdana 10, 600 breit" & @LF & "rot auf aqua")
    Case $btn3
    GUICtrlSetStyle($btn3, $SS_ETCHEDFRAME)
    Sleep(150)
    GUICtrlSetStyle($btn3, $SS_NOTIFY + $SS_GRAYRECT)
    Sleep(100)
    MsgBox(0, '', "Courier 12, kursiv, 600 breit" & @LF & "gelb auf crimson")
    Case $btn4
    GUICtrlSetStyle($btn4, $SS_ETCHEDFRAME)
    Sleep(150)
    GUICtrlSetStyle($btn4, $SS_NOTIFY + $SS_GRAYRECT)
    Sleep(100)
    MsgBox(0, '', "Arial Narrow 11" & @LF & "crimson auf gelb")
    EndSwitch
    WEnd

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

    ;=============================================================================
    ;
    ; Function Name: _GUICtrlCreateColorButton()
    ;
    ; Description: Creates a colored Button
    ;
    ; Syntax: _GUICtrlCreateColorButton($text, $left, $top, $width, $height,$bkcolor[,$fontcolor] _
    ; [,$fontsize][,$fontweight][,$fontattrib][,$fontname])
    ;
    ; Parameter(s); $text = The text of the control
    ; $left = The left side of the control
    ; $top = The top of the control
    ; $width = The width of the control
    ; $height = The height of the control
    ; $bkcolor = Backgroundcolor of the control
    ; $fontcolor = [optional] Fontcolor of the control
    ; $fontsize = [optional] Schriftgröße (default 9)
    ; $fontweight = [optional] Zeichenbreite (default 400)
    ; $fontattrib = [optional] Schriftattribut
    ; (kursiv:2 unnterstrichen:4 durchgestrichen:8)
    ; $fontname = [optional] Schriftfont
    ;
    ; Return Value(s): array[1] = used to change colors
    ; array[0] = notifies GUIGetMsg if user clicks
    ;
    ; Author: rakudave <[email='rakudave@gmx.net'][/email]>
    ; Erweiterung $fontsize, $fontweight, $fontattrib, $fontname von BugFix
    ;==========================================================================================
    Func _GUICtrlCreateColorButton($text, $left, $top, $width, $height, $bkcolor, $fontcolor = -1, _
    $fontsize = 9, $fontweight = 400, $fontattrib = "default", $fontname = "default")
    Local $colbut[2]
    If $fontcolor == -1 Then $fontcolor = 0x000000
    $colbut[0] = GUICtrlCreateLabel("", $left, $top, $width, $height, $SS_BLACKRECT)
    GUICtrlCreateLabel("", $left, $top, $width - 1, $height - 1, $SS_WHITERECT)
    GUICtrlCreateLabel("", $left + 1, $top + 1, $width - 2, $height - 2, $SS_GRAYRECT)
    $colbut[1] = GUICtrlCreateLabel($text, $left + 1, $top + 1, $width - 3, $height - 3, $SS_NOTIFY & $SS_CENTER)
    GUICtrlSetBkColor(-1, $bkcolor)
    GUICtrlSetColor(-1, $fontcolor)
    GUICtrlSetFont(-1, $fontsize, $fontweight, $fontattrib, $fontname)
    Return $colbut
    EndFunc ;==>_GUICtrlCreateColorButton

    [/autoit]
  • @SW_HIDE funktioniert nicht

    • BugFix
    • 14. Februar 2007 um 10:46

    Kann ich nicht nachvollziehen, bei mir bleibts versteckt.

  • Array in Liste ausgeben ?

    • BugFix
    • 14. Februar 2007 um 09:37

    @pee
    Dank angekommen, ich wars ;)

  • Process status abfragen

    • BugFix
    • 14. Februar 2007 um 00:54

    Also ich bin kein Spezialist in Prozeßfragen. Aber vom Grundverständnis her denke ich, dass das nicht möglich ist. (lasse mich hier aber gerne korrigieren)
    Meiner Meinung nach ist die Systemleistung pro Prozeß auch dann zwischenzeitlich = 0, wenn der Prozeß noch läuft. Denn kein Prozeß hat 100% Priorität. Insofern hast du ein Schwanken bis 0, bevor der Prozeß abgelaufen ist. Die Priorität eines Prozesses kannst du zwar abfragen, aber nicht die momentane Last.


    EDIT

    Schnapszahl, das war mein 444. Post ;)

  • Dateien sortieren und löschen

    • BugFix
    • 13. Februar 2007 um 22:51
    Zitat

    Wie kann ich denn "die jüngste" eingeben?


    Vergleiche 2 Dateien mit unterschiedlichem Erstellungsdatum/-zeit. Die "jüngste" ist natürlich die zuletzt erstellte.

  • Array in Liste ausgeben ?

    • BugFix
    • 13. Februar 2007 um 20:37

    Ich habe dein Bsp. mal etwas zusammengefaßt. Da ich die PsInfo nicht habe kann ich den Teil nicht testen.

    Aber etwas soll ja auch für dich bleiben. ;)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <file.au3>
    #Include <GuiListView.au3>
    #include <Process.au3>
    Dim $complete = 0, $i, $array, $text = ""

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

    $Form1 = GUICreate("AForm1", 427, 201, -1, -1, BitOR($WS_POPUPWINDOW,$WS_BORDER))
    GUISetBkColor (0x4682B4)
    $inPC = GUICtrlCreateInput("", 160, 34, 225, 21)
    $inUser = GUICtrlCreateInput("", 160, 70, 225, 21)
    $inPW = GUICtrlCreateInput("", 160, 106, 225, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    $Label1 = GUICtrlCreateLabel("Remote PC", 20, 37, 58, 17)
    $Label2 = GUICtrlCreateLabel("Remote Username", 20, 72, 92, 17)
    $Label3 = GUICtrlCreateLabel("Remote Password", 20, 109, 90, 17)
    $btnOK = GUICtrlCreateButton("OK", 304, 145, 81, 21, 0)

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

    $GUI_Info = GUICreate("PC Info", 420, 320, -1, -1, Default, $WS_EX_ACCEPTFILES)
    GUISetBkColor (0x4682B4)
    $listview = GuiCtrlCreateListView ("Systeminfo|Ergebnis",10,10,400,300)
    _GUICtrlListViewSetColumnWidth ($listview, 0, 150)
    _GUICtrlListViewSetColumnWidth ($listview, 1, 246)

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

    GUISetState(@SW_SHOW, $Form1)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btnOK
    $remote_pc = GUICtrlRead($inPC)
    If $remote_pc = "" Then $complete += 1
    $remote_admin = GUICtrlRead($inUser)
    If $remote_admin = "" Then $complete += 1
    $remote_password = GUICtrlRead($inPW)
    If $remote_password = "" Then $complete += 1
    If $complete <> 0 Then
    MsgBox(262192,"Angaben unvollständig!","Bitte Angaben vervollständigen.")
    $complete = 0
    Else
    GUISetState(@SW_HIDE, $Form1)
    $psinfo = "psinfo \\"& $remote_pc &" -u "& $remote_admin &" -p "& $remote_password &" > psinfo.txt"
    RunWait(@ComSpec & " /c " & ''& $psinfo &'', "", @SW_HIDE)
    GUISetState(@SW_SHOW, $GUI_Info)
    If Not _FileReadToArray("psinfo.txt",$array) Then
    MsgBox(4096,"Error", " Error reading log to Array error:" & @error)
    Exit
    EndIf
    For $i = 1 To UBound($array) - 1
    $text = StringStripWS( $array[$i], 4 )
    $text = StringReplace($text, ": ", "|")
    $text = StringReplace($text, "System information for \\", "PC-Name|")
    $text = StringReplace($text, ": ", "|")
    $item = GuiCtrlCreateListViewItem($text, $listview)
    Next
    EndIf
    EndSwitch
    WEnd
    Exit

    [/autoit]
  • SID weiterverarbeiten

    • BugFix
    • 13. Februar 2007 um 17:04

    Hier, geht einwandfrei. Ist etwas angepaßt, geht jetzt nur für 1 User.

    Spoiler anzeigen
    [autoit]

    #include <guiconstants.au3>

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

    $user = "Standard" ; oder wer auch immer
    $var = StringSplit(myGetSID($user), @TAB)
    MsgBox(0, 'SID von ' & $user, $var[1])

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

    Func myGetSID($User=@UserName, $Host=@ComputerName, $NurEiner=True)
    Local $wbemFlagReturnImmediately=0x10, $wbemFlagForwardOnly=0x20, $colItems=""
    Local $JaNein[2]=[True, False], $Gesucht="", $Output, $i, $s
    If $User="" Then $User=@UserName
    If StringInstr($Host, "\\")=1 Then $Host=StringMid($Host, 3)
    If $Host="" Then $Host="."
    $NurEiner=$JaNein[$NurEiner=False]
    $objWMIService=ObjGet("winmgmts:\\" &$Host &"\root\CIMV2")
    If IsObj($objWMIService) Then
    $colItems=$wbemFlagReturnImmediately+$wbemFlagForwardOnly
    $colItems=$objWMIService.ExecQuery("SELECT * FROM Win32_AccountSID", "WQL", $colItems)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $s=$objItem.Setting
    $s=StringMid($s, StringInStr($s, "SID=")+4) &@Tab
    $s&=StringMid($objItem.Element, StringInStr($objItem.Element, "Name=")+5)
    If StringInstr($s, Chr(34) &$User &Chr(34)) Then $Gesucht&=$s
    $OutPut&=StringReplace($s, Chr(34), "") &@Cr
    Next
    If $NurEiner Then Return StringReplace($Gesucht, Chr(34), "")
    Else
    Return "Keine WMI-Objekte gefunden für Klasse: Win32_AccountSID"
    Endif
    Else
    Return $Host &" ist nicht in diesem Netz.."
    EndIf
    EndFunc

    [/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™