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

  • 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]
  • BDE Konfiguration

    • BugFix
    • 13. Februar 2007 um 15:47

    Hi,
    falls ihr ab und an dBase-Dateien in Excel laden wollt und ihr bekommt 'ne Fehlermeldung: "..unbekanntes Datenformat.." oder ähnlich, dann kann die Ursache dafür in einer fehlerhaften Einstellung der Borland Database Engine liegen.
    Z.B. sind Telefonbuch-CD's mit steinalten BDE-Versionen ausgestattet, die bei jedem Start die BDE-Einstellungen zerschießen.
    Hatte das Problem in der Firma, dass ich aus meiner Fachanwendung plötzlich keine Reports in Excel öffnen konnte und hab ewig gesucht, bis ich heraus gefunden habe, dass fehlerhafte BDE-Einstellungen die Ursache waren.
    Entstanden ist daraus dieses Tool:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #Include <GuiListView.au3>
    Dim $type = "REG_SZ", $succ = 0, $succComp = 0
    Dim $keyVersion = "HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\DRIVERS\DBASE\INIT"
    Dim $valNameVersion = "VERSION"
    Dim $valVersion = "4.0"
    Dim $keyLang = "HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\DRIVERS\DBASE\INIT"
    Dim $valNameLang = "LANGDRIVER"
    Dim $valLang = "DB850DE0"
    Dim $keyLevel = "HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\DRIVERS\DBASE\TABLE CREATE"
    Dim $valNameLevel = "LEVEL"
    Dim $valLevel = "5"
    Dim $arStatusReg[3], $status
    Dim $steelblue = 0xB0C4DE, $khaki = 0xF0E68C, $violet = 0x800080, $rot = 0xFF0000
    Dim $txt = @LF & @LF & "Sollten sich dBase-Dateien nicht im Excel öffnen lassen"& @LF & "(..unbekanntes Datenformat..), " & _
    "so ist vermutlich eine fehlerhafte Einstellung der Borland Database Engine die Ursache." & @LF & @LF & _
    "Dieses Programm überprüft die Einstellungen und paßt sie ggf. an."
    Dim $txtChg = "Es müssen Einstellungen geändert werden."
    Dim $txtNoChg = "Die Einstellungen sind korrekt. - Keine Änderungen."

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

    ; Start GUI
    $Form1 = GUICreate("AForm1", 356, 257, -1, -1, BitOR($WS_POPUP, $WS_BORDER))
    GUISetBkColor($steelblue)
    $Input1 = GUICtrlCreateInput("Konfiguration der Borland Database Engine", 8, 8, 340, 22, BitOR ($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
    GUICtrlSetFont(-1, 9, 800, 0, "Verdana")
    GUICtrlSetColor(-1, $violet)
    GUICtrlSetBkColor(-1, $khaki)
    $Label1 = GUICtrlCreateLabel($txt, 8, 45, 340, 120, BitOR($SS_CENTER,$SS_SUNKEN))
    GUICtrlSetBkColor(-1, $khaki)
    $ret1 = _GUICtrlCreateColorButton("Weiter", 8, 180, 90, 25, $khaki, $violet)
    $btnRun = $ret1[0]
    $ret2 = _GUICtrlCreateColorButton("Abbrechen", 258, 180, 90, 25, $khaki, $violet)
    $btnEnd = $ret2[0]
    $Input2 = GUICtrlCreateInput("© BugFix 2007 ( Colored Button by rakudave )", 8, 226, 340, 22, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
    GUICtrlSetBkColor(-1, $khaki)
    GUICtrlSetFont(-1, 9, 550, 0, "Verdana")
    GUICtrlSetColor(-1, $violet)
    ; GUI Settings
    $Form2 = GUICreate("AForm2", 365, 201, -1, -1, BitOR($WS_POPUP,$WS_BORDER))
    GUISetBkColor($steelblue)
    $ListView1 = GUICtrlCreateListView("Parameter|IST - Wert|SOLL - Wert", 12, 11, 337, 105, -1, BitOR($WS_EX_CLIENTEDGE,$LVS_EX_GRIDLINES))
    GUICtrlSetBkColor(-1, $khaki)
    _GUICtrlListViewSetColumnWidth(-1, 0, 111)
    _GUICtrlListViewSetColumnWidth(-1, 1, 108)
    _GUICtrlListViewSetColumnWidth(-1, 2, 108)
    $ListView1_0 = GUICtrlCreateListViewItem("VERSION", $ListView1)
    $ListView1_1 = GUICtrlCreateListViewItem("", $ListView1)
    $ListView1_2 = GUICtrlCreateListViewItem("LANGDRIVER", $ListView1)
    $ListView1_3 = GUICtrlCreateListViewItem("", $ListView1)
    $ListView1_4 = GUICtrlCreateListViewItem("LEVEL", $ListView1)
    $Label2 = GUICtrlCreateLabel("", 12, 129, 337, 20, BitOR($SS_CENTER,$SS_CENTERIMAGE,$SS_SUNKEN))
    GUICtrlSetBkColor(-1, $khaki)
    GUICtrlSetColor(-1, $rot)
    GUICtrlSetFont(-1, 9, 550, 0, "Verdana")
    $ret3 = _GUICtrlCreateColorButton("Weiter", 12, 164, 90, 25, $khaki, $violet)
    $btnWeiter = $ret3[0]
    $ret4 = _GUICtrlCreateColorButton("Abbrechen", 260, 164, 90, 25, $khaki, $violet)
    $btnEsc = $ret4[0]
    GUISetState(@SW_SHOW, $Form1)
    GUICtrlSetState(8, $GUI_FOCUS)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $btnEnd
    GUICtrlSetStyle($btnEnd, $SS_ETCHEDFRAME)
    Sleep(150)
    GUICtrlSetStyle($btnEnd, $SS_NOTIFY + $SS_GRAYRECT)
    Sleep(100)
    Exit
    Case $btnRun
    GUICtrlSetStyle($btnRun, $SS_ETCHEDFRAME)
    Sleep(150)
    GUICtrlSetStyle($btnRun, $SS_NOTIFY + $SS_GRAYRECT)
    Sleep(100)
    _readReg()
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete($Form1)
    GUISetState(@SW_SHOW, $Form2)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $btnEsc
    GUICtrlSetStyle($btnEsc, $SS_ETCHEDFRAME)
    Sleep(150)
    GUICtrlSetStyle($btnEsc, $SS_NOTIFY + $SS_GRAYRECT)
    Sleep(100)
    Exit
    Case $btnWeiter
    GUICtrlSetStyle($btnWeiter, $SS_ETCHEDFRAME)
    Sleep(150)
    GUICtrlSetStyle($btnWeiter, $SS_NOTIFY + $SS_GRAYRECT)
    Sleep(100)
    If $status <> 0 Then _writeReg($arStatusReg[0], $arStatusReg[1], $arStatusReg[2])
    ExitLoop
    EndSwitch
    WEnd
    Exit

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

    Func _readReg()
    Dim $var
    $var = RegRead($keyVersion, $valNameVersion)
    _GUICtrlListViewSetItemText($ListView1, 0, 1, $var)
    _GUICtrlListViewSetItemText($ListView1, 0, 2, $valVersion)
    If $var = $valVersion Then
    $arStatusReg[0] = 0
    Else
    $arStatusReg[0] = 1
    EndIf
    $var = RegRead($keyLang, $valNameLang)
    _GUICtrlListViewSetItemText($ListView1, 2, 1, $var)
    _GUICtrlListViewSetItemText($ListView1, 2, 2, $valLang)
    If $var = $valLang Then
    $arStatusReg[1] = 0
    Else
    $arStatusReg[1] = 1
    EndIf
    $var = RegRead($keyLevel, $valNameLevel)
    _GUICtrlListViewSetItemText($ListView1, 4, 1, $var)
    _GUICtrlListViewSetItemText($ListView1, 4, 2, $valLevel)
    If $var = $valLevel Then
    $arStatusReg[2] = 0
    Else
    $arStatusReg[2] = 1
    EndIf
    $status = $arStatusReg[0] + $arStatusReg[1] + $arStatusReg[2]
    If $status = 0 Then
    GUICtrlSetData($Label2, $txtNoChg)
    Else
    GUICtrlSetData($Label2, $txtChg)
    EndIf
    EndFunc

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

    Func _writeReg($ver=1, $lang=1, $level=1)
    Select
    Case $ver = 1
    $succComp += 1
    If RegWrite($keyVersion, $valNameVersion, $type, $valVersion) = 1 Then $succ += 1
    Case $lang = 1
    $succComp += 1
    If RegWrite($keyLang, $valNameLang, $type, $valLang) = 1 Then $succ += 1
    Case $level = 1
    $succComp += 1
    If RegWrite($keyLevel, $valNameLevel, $type, $valLevel) = 1 Then $succ += 1
    EndSelect
    If $succ = $succComp Then
    MsgBox(262208, "Borland Database Settings", "Änderungen erfolgreich übernommen.")
    Else
    MsgBox(262160, "Borland Database Settings", "Fehler, Änderungen konnten nicht übernommen werden!" & @LF & _
    "Bitte überprüfen Sie, ob Ihr Account über ausreichende Berechtigungen zum Ändern der Registry verfügt.")
    EndIf
    EndFunc

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

    ;=============================================================================
    ;
    ; Function Name: _GUICtrlCreateColorButton()
    ;
    ; Description: Creates a colored Button
    ;
    ; Syntax: _GUICtrlCreateColorButton($text, $left, $top, $width, $height,$bkcolor[,$fontcolor])
    ;
    ; 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
    ;
    ; Return Value(s): array[1] = used to change colors
    ; array[0] = notifies GUIGetMsg if user clicks
    ;
    ; Author: rakudave <[email='rakudave@gmx.net'][/email]>
    ;=============================================================================
    Func _GUICtrlCreateColorButton($text, $left, $top, $width, $height, $bkcolor, $fontcolor = -1)
    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, 9, 600, 0, "Verdana")
    Return $colbut
    EndFunc ;==>_GUICtrlCreateColorButton

    [/autoit]

    Dateien

    BDEconfig.au3 7,7 kB – 443 Downloads
  • Funktionen ??

    • BugFix
    • 13. Februar 2007 um 10:31

    Dann wird die Bedingung (Fenstertitel + Text) nicht übereinstimmen mit dem Zustand im Programm.
    Zum Prüfen häng mal

    [autoit]

    MsgBox(0,"Text", WinGetText("Primavera 5.0 Service Pack 2 - InstallShield Wizard"))

    [/autoit]

    an und schau nach welcher Text dir zurückgegeben wird.

    Edit:

    Zitat

    Habt irh noch nen paar gute Tips (Bücher, Sites) wo ich mich über sämtliche Funktionen einlesen kann ??


    JA, zum einen die Hilfe selbst, zum andren das Tutorial (oben links im Boardmenü).

  • Funktionen ??

    • BugFix
    • 13. Februar 2007 um 10:17

    Ich würde ganz auf den Aufruf mit Adlib verzichten.
    Bsp.:

    [autoit]


    While 1
    If WinExists("Primavera 5.0 Service Pack 2 - InstallShield Wizard","Yes, I want to resta") Then
    WinActivate("Primavera 5.0 Service Pack 2 - InstallShield Wizard","Yes, I want to resta")
    Send("{DOWN}{ENTER}")
    ExitLoop
    ElseIf WinExists("Primavera 5.0 Service Pack 2 - InstallShield Wizard","InstallShield Wizard Complete") Then
    WinActivate("Primavera 5.0 Service Pack 2 - InstallShield Wizard","InstallShield Wizard Complete")
    Send("{ENTER}")
    ExitLoop
    EndIf
    Sleep(500)
    WEnd
    Exit

    [/autoit]


    Aber prüf mal mit dem "AutoIt Window Info" - Tool, ob du nicht direkt mit ControlClick() auf die Controls zugreifen kannst, z.B. per classname.

  • Shutdown bzw. Ruhezustand abfangen

    • BugFix
    • 12. Februar 2007 um 17:36

    Kann mir nicht vorstellen, dass das möglich ist. Aber wenn du in den Systemeinstellungen von Windows die Ruheeinstellung deaktivierst, sollte das doch dein Problem lösen - oder?

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™