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

Beiträge von DerSchatten

  • Wenn ordner nicht vorhanden, zum nächstern springen

    • DerSchatten
    • 20. März 2017 um 09:42

    Folgendes Script:


    Code
    Func zurueck()
    
    
    	Local $knummer = GUICtrlRead($input_sknummer)
    	$knummer = $knummer - 1
    	Local $ordnerpfad = "\\Brzg.local\shares\PIV\KONF\BRZ\PAR\" & $knummer
    
    
    	GUICtrlSetData($input_sknummer,$knummer)
    	If FileExists($ordnerpfad) Then read()
    
    
    EndFunc
    Alles anzeigen

    Auf einem netzlaufwerk existieren Ordner die aus Nummern bestehen.
    Mittels eines Button möchte ich nun einen Ordner vorwärts bzw. Rückwerts blättern.
    Es sollen jedoch nur die Ordner angezeigt werden die auch wirklich existieren. Alle anderen Nummern sollen übersprungen werden.

    Das Script funktioniert soweit, jedoch springt er nicht direkt zu dem existierenden Ordner.

    Kann mir da jemand helfen?

  • In Textdatei suchen

    • DerSchatten
    • 15. März 2017 um 14:40

    super, danke euch! Läuft 1A!

  • In Textdatei suchen

    • DerSchatten
    • 15. März 2017 um 13:20

    kann ich das in einer extra Funktion erstellen oder muß das in der gleichen sein wo die Datei ausgelesen wird?

  • In Textdatei suchen

    • DerSchatten
    • 15. März 2017 um 12:55

    Super! das funktioniert wirklich perfekt.

    Noch eine Frage dazu:

    In einem Feld bekomme ich als Ergebniss nur eine Zahl.

    Diese zahl möchte ich nun einem Text zuordnen.
    Also 11 zb. soll den Wert "Samsung" ergeben.

    Wie löse ich das am besten?

    Mit einzelnen IF ... THEN wäre das recht umfangreich.

    Ich dachte mir so eine Art Daten-Tabelle zu erstellen, aus der einfach der passende Wert herausgelesen wird.

    Also:

    "11", "Samsung"
    "12", "DELL"
    "13", "HP"
    ....

  • In Textdatei suchen

    • DerSchatten
    • 15. März 2017 um 10:04

    Nein, also der Pfad passt.
    Den habe ich jetzt auch mal direkt eingetragen. Ist ein Netzlaufwerk:

    Code
    Func read()
    
    
    	$datei = FileOpen("Y:\BRZ\PAR\00009\CONFIG.VRS")
    	$cLine = _FileCountLines($datei)
    	MsgBox(0,"",$datei & " " & $cLine)
    
    
    For $i = 1 To $cLine
      Local $zeile = FileReadLine($datei, $i)
      If StringInStr($zeile, "Benutzer='") Then GUICtrlSetData($input_benutzer, StringTrimRight(StringTrimLeft($zeile, 10),1))
    Next
    
    
    EndFunc
    Alles anzeigen


    Der Wert von $datei erhöht sich dabei nach jedem Aufruf der Funktion.
    $cLine bleibt immer 0. Der Zähler funkt nicht.

  • In Textdatei suchen

    • DerSchatten
    • 15. März 2017 um 09:42

    Ähm, 0 ?
    Kann es sein das mir GUICtrlRead Zahlen mit führenden 0 kürzt?

    In $input_knummer wird zb. "00009" eingegeben.

  • In Textdatei suchen

    • DerSchatten
    • 15. März 2017 um 09:11

    danke, aber funkt trotzdem nicht.
    Die Schleife läuft nicht mal an.

    Die Textdatei sieht in etwa so aus:


    Code
    [Konfiguration]
    DatConfig='2017-01-31'
    
    
    Kunde='BRZ'
    PC#=00009
    OS=W7P
    UID-PW=J
    VERSCHL=N
    VERSCHLBEZ=
    Pool=N
    TestPC=N
    TestInstall=J
    
    
    AutoInst=Ja
    AutoInstTest=Nein
    AutoKonf=Ja
    AlleProd=Nein
    
    
    Benutzer='Max Mustermann'
    Alles anzeigen

    Also er soll die Stelle "Benutzer='" suchen und den Text daneben (Max Mustermann) in das Eingabefeld $input_benutzer schreiben.

  • In Textdatei suchen

    • DerSchatten
    • 15. März 2017 um 08:08

    Ich möchte gerne eine Textdatei nach bestimmten begriffen durchsuchen und dementrpechend dann Felder mit diesen Daten füllen.
    Dazu habe ich folgendes Script erstellt:

    C
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <EditConstants.au3>
    #include <File.au3>
    
    
    GUICreate("Konfigurationsdaten", 964, 600)
    $label_knummer = GUICtrlCreateLabel("Konfignummer:", 25, 194, 70, 31)
    $input_knummer = GUICtrlCreateInput("", 110, 190, 50, 20)
    
    
    $label_benutzer = GUICtrlCreateLabel("Hauptbenutzer:", 25, 300, 70, 31)
    $input_benutzer = GUICtrlCreateInput("", 110, 300, 100, 20)
    
    
    Local $button_ok = GUICtrlCreateButton("Ok", 40, 75, 60, 20)
    
    
    GUISetState(@SW_SHOW)
    
    
    While 1
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                    ExitLoop
    			Case $button_ok
    				read()
            EndSwitch
    WEnd
    
    
    Func read()
    	$datei = FileOpen("Y:\BRZ\PAR\" & GUICtrlRead($input_knummer) & "\config.vrs")
    	$cLine = _FileCountLines($datei)
    
    
    For $i = 0 To $cLine
    	Local $zeile = FileReadLine($datei, $i)
    ;	If Stringleft($zeile,10) = "Benutzer='" then GUICtrlSetData($input_benutzer, StringTrimRight(StringTrimLeft($zeile, 10),1))
    	If StringInStr($zeile, "Benutzer='") Then GUICtrlSetData($input_benutzer, StringTrimRight(StringTrimLeft($zeile, 10),1))
    
    
    Next
    
    
    ;	FileClose($datei)
    EndFunc
    Alles anzeigen

    Funktioniert allerdings noch nicht.

    Könnt Ihr mir da weiterhelfen?

  • Spaltenüberschrift von Listenfeld ändern

    • DerSchatten
    • 9. Februar 2017 um 15:52

    wie kann man den die Spaltenbeschriftung von einem Listenfeld (listview) nach belieben ändern? Also die ColumHeads.

  • Hauptform sperren/entsperren

    • DerSchatten
    • 17. November 2016 um 14:16

    Hier:

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIListview.au3>
    
    
    Global $sHeader = 'Produkt-Bezeichnung|Produkt-ID|Version|Dat.Inst.|Lokation'
    Global $aHeader = StringSplit($sHeader, '|')
    
    
    $Form1 = GUICreate("Installierte Produkte - Windows 7 32bit (Lenovo T450)", 964, 600)
    
    
    Global $idListView = GUICtrlCreateListView($sHeader, 0, 0, 966, 580)
    Global $hListView = GUICtrlGetHandle($idListView)
    
    
    $Menue_Main = GUICtrlCreateMenu("Gerätetyp/Betriebssystem")
    $Menue_Main_1 = GUICtrlCreateMenuItem("Windows 7 32bit (Lenovo T450)", $Menue_Main)
    $Menue_Main_2 = GUICtrlCreateMenuItem("Windows 7 64bit (Lenovo T450)", $Menue_Main)
    $Menue_Main_3 = GUICtrlCreateMenuItem("Windows 7 32bit (Lenovo T540P)", $Menue_Main)
    $Menue_Main_4 = GUICtrlCreateMenuItem("Windows 7 64bit (Lenovo T540P)", $Menue_Main)
    $Menue_Main_5 = GUICtrlCreateMenuItem("Windows 7 32bit (Dell E6530)", $Menue_Main)
    $Menue_Main_6 = GUICtrlCreateMenuItem("Windows 7 32bit (Lenovo M83)", $Menue_Main)
    
    
    $Menue_Main = GUICtrlCreateMenu("Übersicht")
    $Menue_System_1 = GUICtrlCreateMenuItem("32bit Geräteübersicht", $Menue_Main)
    $Menue_System_2 = GUICtrlCreateMenuItem("64bit Geräteübersicht", $Menue_Main)
    
    
    GUICtrlSetState($Menue_Main_1, $GUI_CHECKED)
    
    
    $Menue_ListView = GUICtrlCreateContextMenu($idListView)
    $Menue_ListView_1 = GUICtrlCreateMenuItem("Kopieren", $Menue_ListView)
    Local $aItem
    
    
    _GUICtrlListView_SetColumnWidth($idListView, 0, 330)
    _GUICtrlListView_SetColumnWidth($idListView, 1, 50)
    _GUICtrlListView_SetColumnWidth($idListView, 2, 50)
    _GUICtrlListView_SetColumnWidth($idListView, 3, 50)
    _GUICtrlListView_SetColumnWidth($idListView, 4, 416)
    
    
    _GUICtrlListView_RegisterSortCallBack($idListView)
    
    
    GUISetState(@SW_SHOW, $Form1)
    
    
    Load('t450x86.txt')
    _GUICtrlListView_SortItems($idListView, 0)
    
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
    
    
            Case $GUI_EVENT_CLOSE
    			_GUICtrlListView_UnRegisterSortCallBack($idListView)
                Exit
    
    
    		Case $idListView
    			_GUICtrlListView_SortItems($idListView, GUICtrlGetState($idListView))
    
    
    		Case $Menue_ListView_1 ; Auswahl kopieren
    			$aItem = _GUICtrlListView_GetItemTextArray($idListview)
    			ClipPut($aItem[1] & " (" & $aItem[2] & ")")
    
    
    		Case $Menue_Main_1 ; Windows 7 32bit (Lenovo T450)
    			If BitAND(GUICtrlRead($Menue_Main_1), $GUI_CHECKED) <> $GUI_CHECKED Then
    				WinSetTitle($Form1, "", "Installierte Produkte - Windows 7 32bit (Lenovo T450)")
    				GUICtrlSetState($Menue_Main_1, $GUI_CHECKED)
    				GUICtrlSetState($Menue_Main_2, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_3, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_4, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_5, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_6, $GUI_UNCHECKED)
    				Load('t450x86.txt')
    				_GUICtrlListView_SortItems($idListView, 0)
    			EndIf
    
    
    		Case $Menue_Main_2 ; Windows 7 64bit (Lenovo T450)
    			If BitAND(GUICtrlRead($Menue_Main_2), $GUI_CHECKED) <> $GUI_CHECKED Then
    				WinSetTitle($Form1, "", "Installierte Produkte - Windows 7 64bit (Lenovo T450)")
    				GUICtrlSetState($Menue_Main_1, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_2, $GUI_CHECKED)
    				GUICtrlSetState($Menue_Main_3, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_4, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_5, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_6, $GUI_UNCHECKED)
    				Load('t450x64.txt')
    				_GUICtrlListView_SortItems($idListView, 0)
    			EndIf
    
    
    		Case $Menue_Main_3 ; Windows 7 32bit (Lenovo T540P)
    			If BitAND(GUICtrlRead($Menue_Main_3), $GUI_CHECKED) <> $GUI_CHECKED Then
    				WinSetTitle($Form1, "", "Installierte Produkte - Windows 7 32bit (Lenovo T540P)")
    				GUICtrlSetState($Menue_Main_1, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_2, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_3, $GUI_CHECKED)
    				GUICtrlSetState($Menue_Main_4, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_5, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_6, $GUI_UNCHECKED)
    				Load('t540px86.txt')
    				_GUICtrlListView_SortItems($idListView, 0)
    			EndIf
    
    
    		Case $Menue_Main_4 ; Windows 7 64bit (Lenovo T540P)
    			If BitAND(GUICtrlRead($Menue_Main_4), $GUI_CHECKED) <> $GUI_CHECKED Then
    				WinSetTitle($Form1, "", "Installierte Produkte - Windows 7 64bit (Lenovo T540P)")
    				GUICtrlSetState($Menue_Main_1, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_2, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_3, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_4, $GUI_CHECKED)
    				GUICtrlSetState($Menue_Main_5, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_6, $GUI_UNCHECKED)
    				Load('t540px64.txt')
    				_GUICtrlListView_SortItems($idListView, 0)
    			EndIf
    
    
    		Case $Menue_Main_5 ; Windows 7 32bit (Dell E6530)
    			If BitAND(GUICtrlRead($Menue_Main_5), $GUI_CHECKED) <> $GUI_CHECKED Then
    				WinSetTitle($Form1, "", "Installierte Produkte - Windows 7 32bit (Dell E6530)")
    				GUICtrlSetState($Menue_Main_1, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_2, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_3, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_4, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_5, $GUI_CHECKED)
    				GUICtrlSetState($Menue_Main_6, $GUI_UNCHECKED)
    				Load('e6530x86.txt')
    				_GUICtrlListView_SortItems($idListView, 0)
    			EndIf
    
    
    		Case $Menue_Main_6 ; Windows 7 32bit (Lenovo M83)
    			If BitAND(GUICtrlRead($Menue_Main_6), $GUI_CHECKED) <> $GUI_CHECKED Then
    				WinSetTitle($Form1, "", "Installierte Produkte - Windows 7 32bit (Lenovo M83)")
    				GUICtrlSetState($Menue_Main_1, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_2, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_3, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_4, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_5, $GUI_UNCHECKED)
    				GUICtrlSetState($Menue_Main_6, $GUI_CHECKED)
    				Load('m83.txt')
    				_GUICtrlListView_SortItems($idListView, 0)
    			EndIf
    
    
    		Case $Menue_System_1 ; 32bit Geräteübersicht
    			GUISetState(@SW_DISABLE, $Form1)
    			$geraete32 = "Dell Latidude E6330                    " & @CRLF & _ 
    			"Dell Latitude E6530" & @CRLF & _ 
    			"Lenovo M92 ThinkCentre" & @CRLF & _ 
    			"Dell Latitude E7240" & @CRLF & _ 
    			"Lenovo ThinkPad T440" & @CRLF & _ 
    			"Lenovo ThinkCentre M83" & @CRLF & _ 
    			"Lenovo ThinkPad T540p" & @CRLF & _ 
    			"Lenovo Thinkpad T450" & @CRLF & _ 
    			"HP EliteBook 820 G3" & @CRLF & _ 
    			"HP EliteBook 850 G3" & @CRLF & _ 
    			"HP 7800 Highend" & @CRLF & _ 
    			"HP 7800 Standard" & @CRLF & _ 
    			"Acer Veriton M665" & @CRLF & _ 
    			"HP DC 8100 CMT" & @CRLF & _ 
    			"HP DC 8100 CMT" & @CRLF & _ 
    			"Lenovo M91p ThinkCentre" & @CRLF & _ 
    			"Lenovo T400" & @CRLF & _ 
    			"Lenovo T410" & @CRLF & _ 
    			"Dell Latitude E6510" & @CRLF & _ 
    			"Dell Latitude E6520" & @CRLF & _ 
    			"Dell Latitude E6320" & @CRLF & _ 
    			"Dell Latitude E6220" & @CRLF & _ 
    			"Acer Veriton S6610G" & @CRLF & _ 
    			"Acer Veriton M6610G" & @CRLF & _ 
    			"Acer Veriton M6620G" & @CRLF & _ 
    			"Virtueller PC"
    
    
    			MsgBox(0, "32bit Geräteübersicht V1.08.3", $geraete32)
    			GUISetState(@SW_ENABLE, $Form1)
    
    
    		Case $Menue_System_2 ; 64bit Geräteübersicht
    			GUISetState(@SW_DISABLE, $Form1)
    			$geraete64 = "Lenovo T440                               " & @CRLF & _ 
    			"Lenovo M83" & @CRLF & _ 
    			"Lenovo T540p" & @CRLF & _ 
    			"Lenovo T450" & @CRLF & _ 
    			"HP DC 8100 CMT" & @CRLF & _ 
    			"Dell Latitude E6510" & @CRLF & _ 
    			"Dell Latitude E6520" & @CRLF & _ 
    			"Dell Latitude E6320" & @CRLF & _ 
    			"Dell Latitude E6220" & @CRLF & _ 
    			"Acer Veriton S6610G" & @CRLF & _ 
    			"Acer Veriton M6610G" & @CRLF & _ 
    			"Acer Veriton M6620G" & @CRLF & _ 
    			"Virtueller PC"
    
    
    			MsgBox(0, "64bit Geräteübersicht V1.01.1", $geraete64)
    			GUISetState(@SW_ENABLE, $Form1)
    
    
       EndSwitch
    WEnd
    
    
    Func Load($system)
    	Local $hFile, $sContent, $aNewItems
    	$hFile = FileOpen(@ScriptDir & '\' & $system, 0)
    	If $hFile <> -1 Then
    		$sContent = FileRead($hFile)
    		FileClose($hFile)
    		$sContent = StringTrimRight($sContent, 2)
    		$aNewItems = StringSplit($sContent, @CRLF, 1)
    		If Not IsArray($aNewItems) Then Return
    		_GUICtrlListView_BeginUpdate($hListView)
    		_GUICtrlListView_DeleteAllItems($hListView)
    		For $i = 1 To $aNewItems[0]
    			GUICtrlCreateListViewItem($aNewItems[$i], $idListView)
    		Next
    		_GUICtrlListView_EndUpdate($hListView)
    	EndIf
    EndFunc
    Alles anzeigen
  • Hauptform sperren/entsperren

    • DerSchatten
    • 17. November 2016 um 11:42

    Ich möchte gerne wenn eine MsgBox geöffnet ist das hauptformular sperren, damit dort nicht hinein geklickt werden kann.Dazu habe ich jetzt mal die Funktion GUISetState(@SW_DISABLE, $Form1) verwendet.
    Und unter der MsgBox wieder mit GUISetState(@SW_ENABLE, $Form1) aktiviert.

    Code
    Case $Menue_System_1 ; 32bit Geräteübersicht
    			GUISetState(@SW_DISABLE, $Form1)
    			$geraete32 = "Dell Latidude E6330                    " & @CRLF & _ 
    			"Dell Latitude E6530" & @CRLF & _ 
    			"Lenovo M92 ThinkCentre" & @CRLF & _ 
    			"Dell Latitude E7240" & @CRLF & _ 
    			"Lenovo ThinkPad T440" & @CRLF & _ 
    			"Lenovo ThinkCentre M83" & @CRLF & _ 
    			"Lenovo ThinkPad T540p" & @CRLF & _ 
    			"Lenovo Thinkpad T450" & @CRLF & _ 
    			"HP EliteBook 820 G3" & @CRLF & _ 
    			"HP EliteBook 850 G3" & @CRLF & _ 
    			"HP 7800 Highend" & @CRLF & _ 
    			"HP 7800 Standard" & @CRLF & _ 
    			"Acer Veriton M665" & @CRLF & _ 
    			"HP DC 8100 CMT" & @CRLF & _ 
    			"HP DC 8100 CMT" & @CRLF & _ 
    			"Lenovo M91p ThinkCentre" & @CRLF & _ 
    			"Lenovo T400" & @CRLF & _ 
    			"Lenovo T410" & @CRLF & _ 
    			"Dell Latitude E6510" & @CRLF & _ 
    			"Dell Latitude E6520" & @CRLF & _ 
    			"Dell Latitude E6320" & @CRLF & _ 
    			"Dell Latitude E6220" & @CRLF & _ 
    			"Acer Veriton S6610G" & @CRLF & _ 
    			"Acer Veriton M6610G" & @CRLF & _ 
    			"Acer Veriton M6620G" & @CRLF & _ 
    			"Virtueller PC"
    
    
    			MsgBox(0, "32bit Geräteübersicht V1.08.3", $geraete32)
    			GUISetState(@SW_ENABLE, $Form1)
    Alles anzeigen


    Jetzt habe ich allerdings das Problem das mit das HauptGUI im Windows in den Hintergrund springt.
    Ich muß es dann erst wieder unten in der Taskleiste anklicken um es anzuzeigen.

    Gibt es da eine einfach Möglichkeit das zu verhindern? Oder muß ich das dann wieder umständlich mit Focus in den Vordergrund rücken?

  • Textcursor positionieren

    • DerSchatten
    • 7. Oktober 2016 um 18:04

    Gibt es eine Möglichkeit den Textcursor in einem Eingabefeld beim Aufruf an das Ende der Zeile zu positionieren?

    Nach dem Öffnen des GUI wird mittels GUICtrlSetState ($input_dateinameimage, $GUI_FOCUS) der Focus auf das Eingabefeld gesetzt.
    Dieses bewirkt allerdings das der darin befindliche Text komplett markiert wird.
    Da ich aber gerne nur etwas hinzufügen oder am Ende ändern möchte, würde ich den Cursor gerne an das Textende setzen.

  • Listenfeld mittels klick Überschrift sortieren

    • DerSchatten
    • 7. Juli 2016 um 15:54

    Noch eine Frage:

    Funktioniert _GUICtrlListView_RegisterSortCallBack() nur mit _GUICtrlListView_SortItems ?
    Dort kann man nämlich nicht die Sortierrichtung angeben.

    Wenn ich _GUICtrlListView_SimpleSort verwende, sehe ich wieder keine Pfeile für die Sortierung.

    Ich möchte gerne ein Listenfeld Aufsteigend sortieren, egal wie es zuvor sortiert war und dabei auch die Sortierrichtung angezeigt bekommen.

  • Eintrag von Listenfeld in Zwischenablage kopieren

    • DerSchatten
    • 7. Juli 2016 um 14:57

    super danke!
    Wie stelle ich es jetzt noch an das ich nur den ersten Teil davon herausbekomme?
    Muß ich da nun mit den Stringfunktionen herumspielen?

  • Eintrag von Listenfeld in Zwischenablage kopieren

    • DerSchatten
    • 7. Juli 2016 um 12:50

    Ich möchte gerne den Inhalt einer bestimmten Spalte eines Datensatzes aus einem Listenfeld mittels rechter Maustaste drauf in die Zwischenablage kopieren.
    Dazu habe ich mittels:

    Code
    $Menue_ListView = GUICtrlCreateContextMenu($idListView)
    $Menue_ListView_1 = GUICtrlCreateMenuItem("Kopieren", $Menue_ListView)

    ein Auswahlmenü erstellt.


    Die Funktion dazu sieht so aus:

    Code
    Case $Menue_ListView_1 ; Auswahl kopieren
       _GUICtrlListView_SetItemSelected($idListview, -1)
       ClipPut(_GUICtrlListView_GetSelectedIndices($idListview))


    Aber egal was ich anstelle, ich bekomme immer nur die ZeilenID ausgelesen.
    Ich hätte gerne nur den Inhalt der ersten Spalte im Ausgewählten Eintrag ausgelesen.

  • Listenfeld mit unterschiedlichen Daten füllen

    • DerSchatten
    • 7. Juli 2016 um 11:03

    Ich habe ein Listenfeld das ich per Menüauswahl mit verschiedenen Daten füllen möchte.
    Im Grunde funktioniert das, jedoch wird das Listenfeld beim Wechsel der Daten nicht aktualisiert sondern durch die neuen Daten ergänzt.
    Sprich, es mischt sich zusätzlich mit den Daten.

    Das ganze sieht so aus:

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiListBox.au3>
    #include <GUIListview.au3>
    
    
    Global $sHeader = 'Produkt-Bezeichnung|Produkt-ID|Version|Dat.Inst.|Lokation'
    Global $aHeader = StringSplit($sHeader, '|')
    
    
    $Form1 = GUICreate("Installierte Produkte - Windows 7 32bit", 974, 600)
    
    
    Global $idListView = GUICtrlCreateListView($sHeader, 0, 0, 965, 600)
    Global $hListView = GUICtrlGetHandle($idListView)
    
    
    $Menue_Main = GUICtrlCreateMenu("Anzeigen")
    $Menue_Main_1 = GUICtrlCreateMenuItem("Windows 7 32bit", $Menue_Main)
    $Menue_Main_2 = GUICtrlCreateMenuItem("Windows 7 64bit", $Menue_Main)
    
    
    _GUICtrlListView_SetColumnWidth($idListView, 0, 330)
    _GUICtrlListView_SetColumnWidth($idListView, 1, 50)
    _GUICtrlListView_SetColumnWidth($idListView, 2, 50)
    _GUICtrlListView_SetColumnWidth($idListView, 3, 50)
    _GUICtrlListView_SetColumnWidth($idListView, 4, 400)
    
    
    _GUICtrlListView_RegisterSortCallBack($idListView)
    
    
    GUISetState(@SW_SHOW, $Form1)
    
    
    Load('produktex86.txt')
    
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
    			_GUICtrlListView_UnRegisterSortCallBack($idListView)
                Exit
    
    
    		Case $idListView
    			_GUICtrlListView_SortItems($idListView, GUICtrlGetState($idListView))
    
    
    		Case $Menue_Main_1 ; Windows 7 32bit
    			WinSetTitle($Form1, "", "Installierte Produkte - Windows 7 32bit")
    			Load('produktex86.txt')
    
    
    		Case $Menue_Main_2 ; Windows 7 64bit
    			WinSetTitle($Form1, "", "Installierte Produkte - Windows 7 64bit")
    			Load('produktex64.txt')
    
    
       EndSwitch
    WEnd
    
    
    Func Load($system)
    	Local $hFile, $sContent, $aNewItems
    	$hFile = FileOpen(@ScriptDir & '\' & $system, 0)
    	If $hFile <> -1 Then
    		$sContent = FileRead($hFile)
    		FileClose($hFile)
    		$sContent = StringTrimRight($sContent, 2)
    		$aNewItems = StringSplit($sContent, @CRLF, 1)
    		If Not IsArray($aNewItems) Then Return
    		_GUICtrlListView_BeginUpdate($hListView)
    		For $i = 1 To $aNewItems[0]
    			GUICtrlCreateListViewItem($aNewItems[$i], $idListView)
    		Next
    		_GUICtrlListView_SortItems($idListView, 0)
    		_GUICtrlListView_EndUpdate($hListView)
    	EndIf
    EndFunc
    Alles anzeigen

    Irgendwie müßte ich das Listenfeld vorher wohl leeren, oder gibt es eine andere Möglichkeit?

  • Listenfeld mittels klick Überschrift sortieren

    • DerSchatten
    • 30. Juni 2016 um 08:43

    Ich hab die Sortierung jetzt unten in die LOAD-Funktion gepackt.
    jetzt funktionierts.

    Code
    Func Load()
    	Local $hFile, $sContent, $aNewItems
    	$hFile = FileOpen($sDBFile, 0)
    	If $hFile <> -1 Then
    		$sContent = FileRead($hFile)
    		FileClose($hFile) ; Datei schließen
    		$sContent = StringTrimRight($sContent, 2)
    		$aNewItems = StringSplit($sContent, @CRLF, 1)
    		If Not IsArray($aNewItems) Then Return
    		_GUICtrlListView_BeginUpdate($hListView)
    		For $i = 1 To $aNewItems[0]
    			GUICtrlCreateListViewItem($aNewItems[$i], $idListView)
    		Next
    		_GUICtrlListView_SortItems($idListView, 0)
    		_GUICtrlListView_EndUpdate($hListView)
    	EndIf
    EndFunc
    Alles anzeigen


    UnRegisterSortCallBack hat auch noch gefehlt. danke für den Hinweis.

  • Listenfeld mittels klick Überschrift sortieren

    • DerSchatten
    • 29. Juni 2016 um 15:36

    Sieht so aus das ganze:

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIListview.au3>
    
    
    Global $sDBFile = @ScriptDir & '\produkte.txt'
    Global $sHeader = 'Produkt-Bezeichnung|Produkt-ID|Version|Dat.Inst.|Lokation'
    Global $aHeader = StringSplit($sHeader, '|')
    Global $bSortSense = False
    
    
    $Form1 = GUICreate("Installierte Produkte - Windows 7 32bit", 974, 600)
    
    
    Global $idListView = GUICtrlCreateListView($sHeader, 0, 0, 965, 600)
    Global $hListView = GUICtrlGetHandle($idListView)
    
    
    _GUICtrlListView_SetColumnWidth($idListView, 0, 330)
    _GUICtrlListView_SetColumnWidth($idListView, 1, 50)
    _GUICtrlListView_SetColumnWidth($idListView, 2, 50)
    _GUICtrlListView_SetColumnWidth($idListView, 3, 50)
    _GUICtrlListView_SetColumnWidth($idListView, 4, 400)
    
    
    _GUICtrlListView_RegisterSortCallBack($idListView)
    
    
    GUISetState(@SW_SHOW)
    
    
    If FileExists($sDBFile) Then Load()
    
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
    
    
    		Case $idListView
    			_GUICtrlListView_SortItems($idListView, GUICtrlGetState($idListView))
    
    
       EndSwitch
    WEnd
    
    
    Func Load()
    	Local $hFile, $sContent, $aNewItems
    	$hFile = FileOpen($sDBFile, 0)
    	If $hFile <> -1 Then
    		$sContent = FileRead($hFile)
    		FileClose($hFile) ; Datei schließen
    		$sContent = StringTrimRight($sContent, 2)
    		$aNewItems = StringSplit($sContent, @CRLF, 1)
    		If Not IsArray($aNewItems) Then Return
    		_GUICtrlListView_BeginUpdate($hListView)
    		For $i = 1 To $aNewItems[0]
    			GUICtrlCreateListViewItem($aNewItems[$i], $idListView)
    		Next
    		_GUICtrlListView_EndUpdate($hListView)
    	EndIf
    EndFunc
    Alles anzeigen

    Datum sortiere ich keines. Sind alles Textfelder.

  • Listenfeld mittels klick Überschrift sortieren

    • DerSchatten
    • 28. Juni 2016 um 15:56
    Zitat von Zeitriss

    mit folgender Codezeile:

    AutoIt
    _GUICtrlListView_SortItems($idListView,0)

    Achte allerding darauf, dass diese Zeile nach _GUICtrlListView_RegisterSortCallBack kommt.

    Das funktioniert leider nur halb so toll. Wenn ich das Script starte wird zwar die Spalte sortiert. Klicke ich dann auf die Spaltenüberschrift wird zuerst nochmal aufsteigend sortiert (Der Pfeil bleibt in der gleichen Richtung) und wird erst nach dem zweiten Klick drauf absteigend sortiert.

    Pfuscht da vielleicht diese Zeile hier rein:

    _GUICtrlListView_SortItems($idListView, GUICtrlGetState($idListView))

  • Listenfeld mittels klick Überschrift sortieren

    • DerSchatten
    • 17. Juni 2016 um 15:47

    Ahh, mit der Variante von Oskar seh ich auch die Pfeilchen nun.

    Super, danke!

    Wie kann ich jetzt noch beim öffnen automatisch nach der ersten Spalte sortieren?

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™