Ja, ich hatte es befürchtet. Es war ein Denkfehler meinerseits, da ich im GoogleReader die komplette Historie des Feeds durchsuchen kann - nur nicht so, wie ich es brauche. Aber Google wird die alle gecached haben.
Beiträge von unearth
-
-
Hi,
ich habe mir dieses Skript herangezogen, um einen RSS-Feed auszulesen. So weit, so gut. Es tut alles, was es soll. Leider spuckt es nur die aktuellsten 30 Items aus den meisten Feeds (Beispiel ) aus. Es hat wohl mit den Quelldaten zu tun, die erst einmal nur 30 Items angeben. Aber hat jemand eine Ahnung, wie ich mehr anfordere?
Ich möchte die Items für einen längeren Zeitraum auswerten und vergleichen, 25 helfen mir nicht. Kann mich jemand in die richtige Richtung schubsen, wie ich mehr Items anfordere?
Vielen Dank schon einmal.
-
Sorry, aber dann bin ich ratlos, zumindest eine Fehlermeldung sah für mich so aus, als wäre es das.
-
Hi!
Ich habe für ein Projekt mal eine ziemlich komplizierte Funktion für .ini-Dateien geschrieben, bevor ich drauf kam, die aufzudröseln. Das habe ich jetzt gemacht und dachte, andere könnten das auch gebrauchen. Falls nicht schon jemand eine bessere Variante geschrieben hat, könnt ihr sie (Einige könnten überflüssig oder komplizierter sein) gerne unter Verweis auf mich -Quellcode reicht - benutzen. Hier die Beschreibung der wichtigsten Funktionen:
_IniFindKey(): Sucht übereinstimmenden Key in der ini-Datei und gibt die zugehörigen Daten in einem Array zurück.
_IniFindValue(): Sucht übereinstimmenden Value in der ini-Datei und gibt die zugehörigen Daten in einem Array zurück.
_IniInsertSection(): Fügt eine Section an der angegebenen Stelle ein.
_IniInsertKey(): Fügt einen Key und Value an der angegebenen Stelle in der Section ein.
_IniSortAll(): Sortiert alle Einträge in der ini-Datei.
_IniSortSections(): Sortiert alle Sections in der ini-Datei.
_IniSortSectionKeys(): Sortiert alle Keys einer Section.
_IniKeySectionSwap(): Verschiebt einen Key zwischen Sections.Hier die UDF:
Spoiler anzeigen
[autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name:_IniExists($sFile)
; Description: Prüft, ob eine ini-Datei besteht
; Parameter(s): $sFile ist der Pfad zur ini-Datei.
; Return Value(s): Erfolg - Gibt 1 zurück.
; Fehler - Gibt 0 zurück.
; Author(s): unearth
;
;===============================================================================
Func _IniExists($sFile)
If Not FileExists($sFile) Or StringRight($sFile, 4) <> ".ini" Then
Return 0
Else
Return 1
EndIf
EndFunc;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name:_IniSectionExists($sFile, $sIniSection)
; Description: Prüft, ob eine bestimmte Section in der ini-Datei besteht
; Parameter(s): $sFile ist der Pfad zur ini-Datei.
;$sIniSection ist die gesuchte Section.
; Return Value(s): Erfolg - Gibt 1 zurück.
; Fehler - Gibt 0 zurück.
; Author(s): unearth
;
;===============================================================================
Func _IniSectionExists($sFile, $sIniSection)
IniReadSection($sFile, $sIniSection)
If @error Then Return 0
Return 1
EndFunc;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name:_IniKeyExists($sFile, $sIniSection, $sIniKey)
; Description: Prüft, ob ein bestimmter Key in der ini-Datei besteht
; Parameter(s): $sFile ist der Pfad zur ini-Datei.
;$sIniSection ist die Section des gesuchten Keys.
;$sIniKey ist der gesuchte Key.
; Return Value(s): Erfolg - Gibt 1 zurück.
; Fehler - Gibt 0 zurück.
; Author(s): unearth
;
;===============================================================================
Func _IniKeyExists($sFile, $sIniSection, $sIniKey)
$var = IniRead($sFile, $sIniSection, $sIniKey, "error")
If $var = "error" Then Return 0
Return 1
EndFunc;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name:_IniValueExists($sFile, $sIniSection, $sIniKey, $sIniValue)
; Description: Prüft, ob ein bestimmter Value in der ini-Datei besteht
; Parameter(s): $sFile ist der Pfad zur ini-Datei.
;$sIniSection ist die Section des gesuchten Keys.
;$sIniKey ist der Key des gesuchten Values.
;$sIniValue ist der gesuchte Value.
; Return Value(s): Erfolg - Gibt 1 zurück.
; Fehler - Gibt 0 zurück.
; Author(s): unearth
;
;===============================================================================
Func _IniValueExists($sFile, $sIniSection, $sIniKey, $sIniValue)
$var = IniRead($sFile, $sIniSection, $sIniKey, "error")
If $var = $sIniValue Then Return 1
Return 0
EndFunc;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name:_IniFindKey($sFile, $sIniKey, [$fStrInStr])
; Description: Sucht übereinstimmenden Key in der ini-Datei und gibt die
;zugehörigen Daten in einem Array zurück.
; Parameter(s): $sFile ist der Pfad zur ini-Datei.
;$sIniKey ist der gesuchte Key.
;$fStrInStr gibt an, ob
;0 = $sIniKey ist der vollständige gesuchte Key (Default)
;1 = $sIniKey ist eine Teilzeichenkette des gesuchten Keys
; Return Value(s): Erfolg - Gibt ein Array zurück, das die Sections und Values aller
;übereinstimmenden Daten enthält.
; Fehler - Gibt 0 zurück.
; Author(s): unearth
; Remarks:
; $Array[0][0] enthält die Anzahl der gefundenen Keys. $Array[1][0] enthält die Section
; des ersten gefundenen Keys, $Array[1][1] enthält den Value des ersten gefundenen Keys.
; $Array[n][0] und $Array[n][1] enthalten die entsprechenden Daten der folgenden gefundenen
; Keys.
; Ist $fStrInStr gleich 1, enthält $Array[1][2] den vollständigen Name des gefundenen Keys,
; $Array[n][2] die entsprechenden vollständigen Namen der weiteren gefundenen Keys.
;
;===============================================================================
Func _IniFindKey($sFile, $sIniKey, $fStrInStr=0)
Dim $aArray[1][1]
$aArray[0][0] = 0Local $aSections = IniReadSectionNames($sFile)
[/autoit] [autoit][/autoit] [autoit]
If @error Then Return 0 ;Keine Datei gefunden
For $i_sec = 1 To $aSections[0] ;Schleife der Sections
Local $aKeys = IniReadSection($sFile, $aSections[$i_sec])
For $i_key = 1 To $aKeys[0][0] ;Schleife der Keys
If $fStrInStr = 0 And $aKeys[$i_key][0] = $sIniKey Then ;Nicht case-sensitive
$aArray[0][0] += 1 ;Setzt den Counter für das Array
ReDim $aArray[$aArray[0][0]+1][2]
$aArray[$aArray[0][0]][0] = $aSections[$i_sec] ;Setzt den Counter für die Section
$aArray[$aArray[0][0]][1] = $aKeys[$i_key][1] ;Setzt den Counter für den Value
ElseIf $fStrInStr = 1 And StringInStr($aKeys[$i_key][0], $sIniKey) Then ;Nicht case-sensitive
$aArray[0][0] += 1 ;Setzt den Counter für das Array
ReDim $aArray[$aArray[0][0]+1][3] ;TODO: Ist das +2 wirklich richtig?
$aArray[$aArray[0][0]][0] = $aSections[$i_sec] ;Setzt den Counter für die Section
$aArray[$aArray[0][0]][1] = $aKeys[$i_key][1] ;Setzt den Counter für den Value
$aArray[$aArray[0][0]][2] = $aKeys[$i_key][0] ;Setzt den Wert für den kompletten Key
EndIf
Next
Next
If $aArray[0][0] = 0 Then Return 0
If $aArray[0][0] > 0 Then Return $aArray
EndFunc;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _IniFindValue($sFile, $sIniValue, [$fStrInStr])
; Description: Sucht übereinstimmenden Value in der ini-Datei und gibt die
;zugehörigen Daten in einem Array zurück.
; Parameter(s): $sFile ist der Pfad zur ini-Datei.
;$sIniValue ist der gesuchte Value.
;$fStrInStr gibt an, ob
;0 = $sIniKey ist der vollständige gesuchte Key (Default)
;1 = $sIniKey ist eine Teilzeichenkette des gesuchten Keys
; Return Value(s): Erfolg - Gibt ein Array zurück, das die Sections und Keys aller
;übereinstimmenden Daten enthält.
; Fehler - Gibt 0 zurück.
; Author(s): unearth
; Remarks:
; $Array[0][0] enthält die Anzahl der gefundenen Values. $Array[1][0] enthält die Section
; des ersten gefundenen Values, $Array[1][1] enthält den Key des ersten gefundenen Values.
; $Array[n][0] und $Array[n][1] enthalten die entsprechenden Daten der folgenden gefundenen
; Values.
; Ist $fStrInStr gleich 1, enthält $Array[1][2] den vollständigen Name des gefundenen Values,
; $Array[n][2] die entsprechenden vollständigen Namen der weiteren gefundenen Values.
;
;===============================================================================
Func _IniFindValue($sFile, $sIniValue, $fStrInStr=0)
Dim $aArray[1][1]
$aArray[0][0] = 0Local $aSections = IniReadSectionNames($sFile)
[/autoit] [autoit][/autoit] [autoit]
If @error Then Return 0 ;Keine Datei gefunden
For $i_sec = 1 To $aSections[0] ;Schleife der Sections
Local $aKeys = IniReadSection($sFile, $aSections[$i_sec])
For $i_key = 1 To $aKeys[0][0] ;Schleife der Keys
If $fStrInStr = 0 And $aKeys[$i_key][1] = $sIniValue Then ;Nicht case-sensitive
$aArray[0][0] += 1 ;Setzt den Counter für das Array
ReDim $aArray[$aArray[0][0]+1][2]
$aArray[$aArray[0][0]][0] = $aSections[$i_sec] ;Setzt den Wert für die Section
$aArray[$aArray[0][0]][1] = $aKeys[$i_key][0] ;Setzt den Wert für den Key
ElseIf $fStrInStr = 1 And StringInStr($aKeys[$i_key][1], $sIniValue) Then ;Nicht case-sensitive
$aArray[0][0] += 1 ;Setzt den Counter für das Array
ReDim $aArray[$aArray[0][0]+1][3] ;TODO: Ist das +2 wirklich richtig?
$aArray[$aArray[0][0]][0] = $aSections[$i_sec] ;Setzt den Wert für die Section
$aArray[$aArray[0][0]][1] = $aKeys[$i_key][0] ;Setzt den Wert für den Key
$aArray[$aArray[0][0]][2] = $aKeys[$i_key][1] ;Setzt den Wert für den kompletten Value
EndIf
Next
Next
If $aArray[0][0] = 0 Then Return 0
If $aArray[0][0] > 0 Then Return $aArray
EndFunc;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _IniInsertSection($sFile, $sIniSection, $sData, $nIndex)
; Description: Sucht übereinstimmenden Value in der ini-Datei und gibt die
;zugehörigen Daten in einem Array zurück.
; Parameter(s): $sFile ist der Pfad zur ini-Datei.
;$sIniSection ist die einzufügende Section
;$sIniData ist der Datenbestand der einzufügenden Section.
;$sIniIndex die Position innerhalb der ini-Datei, an der die
;Section eingefügt werden soll (Index beginnt bei 1).
; Return Value(s): Erfolg - Gibt 1 zurück.
; Fehler - Gibt 0 zurück und setzt @error.
;@error=1 Ini-Datei nicht vorhanden
;@error=2 Section existiert bereits
;@error=3 Falscher Index
; Author(s): unearth
; Remarks:
; Sollen mit $sData mehr als ein Key eingegeben werden, müssen die Keys mit
; @LF getrennt werden
;
;===============================================================================
Func _IniInsertSection($sFile, $sIniSection, $sData, $nIndex)
Local $aSections = IniReadSectionNames($sFile)
If @error Then Return 0
If Not _IniExists($sFile) Then
SetError(1) ;@error=1 Ini-Datei nicht vorhanden
Return 0
EndIf
If _IniSectionExists($sFile, $sIniSection) Then
SetError(2) ;@error=2 Section existiert bereits
Return 0
EndIf
If $nIndex < 0 Or $nIndex > $aSections[0] Then
SetError(3) ;@error=3 Falscher Index
Return 0
EndIfIniWriteSection($sFile, $sIniSection, $sData) ;Hängt die neue Section zunächst hinten an
[/autoit] [autoit][/autoit] [autoit]
For $i = $nIndex To $aSections[0] ;Löscht die Sections, die später unter der eingefügten Section liegen sollen. Hängt sie dann der Reihe nach wieder an.
Local $aKeys = IniReadSection($sFile, $aSections[$i])
IniDelete($sFile, $aSections[$i])
For $i_key = 1 To $aKeys[0][0]
IniWrite($sFile, $aSections[$i], $aKeys[$i_key][0],$aKeys[$i_key][1])
Next
Next
Return 1
EndFunc;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _IniInsertKey($sFile, $sIniSection, $sIniKey, $sIniValue, $nIndex)
; Description: Sucht übereinstimmenden Value in der ini-Datei und gibt die
;zugehörigen Daten in einem Array zurück.
; Parameter(s): $sFile ist der Pfad zur ini-Datei.
;$sIniSection ist die einzufügende Section
;$sIniKey ist der einzufügende Key.
;$sIniValue ist der Value des einzufügenden Keys.
;$sIniIndex die Position innerhalb der ini-Datei, an der der
;Key eingefügt werden soll (Index beginnt bei 1).
; Return Value(s): Erfolg - Gibt 1 zurück.
; Fehler - Gibt 0 zurück und setzt @error.
;@error=1 Ini-Datei nicht vorhanden
;@error=2 Section existiert bereits
;@error=3 Key existiert bereits
;@error=4 Falscher Index
; Author(s): unearth
;
;===============================================================================
Func _IniInsertKey($sFile, $sIniSection, $sIniKey, $sIniValue, $nIndex)
Local $aArrayVec1
Local $aArrayVec2$aKeys = IniReadSection($sFile, $sIniSection)
[/autoit] [autoit][/autoit] [autoit]
If @error Then Return 0
If Not _IniExists($sFile) Then
SetError(1) ;@error=1 Ini-Datei nicht vorhanden
Return 0
EndIf
If Not _IniSectionExists($sFile, $sIniSection) Then
SetError(2) ;@error=2 Section nicht vorhanden
Return 0
EndIf
If _IniKeyExists($sFile, $sIniSection, $sIniKey) Then
SetError(3) ;@error=3 Key existiert bereits
Return 0
EndIf
If $nIndex < 0 Or $nIndex > $aKeys[0][0] Then
SetError(4) ;@error=4 Falscher Index
Return 0
EndIfFor $i = 1 To $aKeys[0][0] ;Löscht die bisherigen Werte in der Section
[/autoit] [autoit][/autoit] [autoit]
IniDelete($sFile, $sIniSection, $aKeys[$i][0])
Next
Dim $aArrayVec1[$aKeys[0][0]+1] ;Den ersten Vektor von §aKeys als eigenständiges Array erstellen = Enthält die Keys
$aArrayVec1[0] = $aKeys[0][0]+1
For $i = 1 To $aKeys[0][0]
$aArrayVec1[$i] = $aKeys[$i][0]
Next
Dim $aArrayVec2[$aKeys[0][0]+1] ;Den zweiten Vektor von §aKeys als eigenständiges Array erstellen = Enthält die Values
$aArrayVec2[0] = $aKeys[0][0]+1
For $i = 1 To $aKeys[0][0]
$aArrayVec2[$i] = $aKeys[$i][1]
Next
_ArrayInsert($aArrayVec1, $nIndex, $sIniKey)
_ArrayInsert($aArrayVec2, $nIndex, $sIniValue)
$aKeys = "" ;Hebt das ursprüngliche Array auf, um es neu erstellen zu können
Dim $aKeys[$aArrayVec1[0]+1][$aArrayVec2[0]+1] ;Erstellt das Array mit dem eingefügten Key und dessen Value neu
$aKeys[0][0] = $aArrayVec1[0]
For $i = 1 To $aKeys[0][0]
$aKeys[$i][0] = $aArrayVec1[$i]
$aKeys[$i][1] = $aArrayVec2[$i]
Next
For $i = 1 To $aKeys[0][0] ;Schreibt die neuen Daten in die Section
IniWrite($sFile, $sIniSection, $aKeys[$i][0], $aKeys[$i][1])
Next
Return 1
EndFunc;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _IniSortAll($sFile, $fDescendingSections, $fDescendingKeys)
; Description: Sortiert alle Einträge in der ini-Datei.
; Parameter(s): $sFile ist der Pfad zur ini-Datei.
;$fDescendingSections gibt an, ob
;0 = Sections werden aufsteigend sortiert(Default)
;1 = Sections werden absteigend sortiert
;$fDescendingKeys gibt an, ob
;0 = Keys werden aufsteigend sortiert(Default)
;1 = Keys werden absteigend sortiert
; Return Value(s): Erfolg - Gibt 1 zurück.
; Fehler - Gibt 0 zurück.
; Author(s): unearth
;
;===============================================================================
Func _IniSortAll($sFile, $fDescendingSections=0, $fDescendingKeys=0)
;Ist die Integrität gestört, werden Daten eventuell gelöscht
If _IniSortSections($sFile, $fDescendingSections) = 0 Then Return 0Local $aSections = IniReadSectionNames($sFile)
[/autoit] [autoit][/autoit] [autoit]
For $i_sec = 1 To $aSections[0]
If _IniSortSectionKeys($sFile, $aSections[$i_sec], $fDescendingKeys) = 0 Then Return 0
Next
Return 1
EndFunc;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _IniSortSections($sFile, $fDescending)
; Description: Sortiert alle Sections in der ini-Datei.
; Parameter(s): $sFile ist der Pfad zur ini-Datei.
;$fDescending gibt an, ob
;0 = Sections werden aufsteigend sortiert(Default)
;1 = Sections werden absteigend sortiert
; Return Value(s): Erfolg - Gibt 1 zurück.
; Fehler - Gibt 0 zurück.
; Author(s): unearth
;
;===============================================================================
Func _IniSortSections($sFile, $fDescending=0)
;Ist die Integrität der INI gestört, werden Daten eventuell gelöscht
If $fDescending > 1 Then $fDescending = 1
If $fDescending < 1 Then $fDescending = 0Local $aSections = IniReadSectionNames($sFile)
[/autoit] [autoit][/autoit] [autoit]
If @error Then Return 0
_ArraySort($aSections, $fDescending, 1) ;Sortiert die Sections
For $i_sec = 1 To $aSections[0] ;Schreibt die Sections um
$aKeys = IniReadSection($sFile, $aSections[$i_sec])
IniDelete($sFile, $aSections[$i_sec]) ;Alte Position löschen
For $i_key = 1 To $aKeys[0][0]
IniWrite($sFile, $aSections[$i_sec], $aKeys[$i_key][0],$aKeys[$i_key][1]) ;Neue Position schreiben
Next
Next
Return 1
EndFunc;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _IniSortSectionKeys($sFile, $sIniSection, $fDescending)
; Description: Sortiert alle Keys einer Section.
; Parameter(s): $sFile ist der Pfad zur ini-Datei.
;$sIniSection gibt an, in welcher Section die Keys sortiert werden.
;$fDescending gibt an, ob
;0 = Keys werden aufsteigend sortiert(Default)
;1 = Keys werden absteigend sortiert
; Return Value(s): Erfolg - Gibt 1 zurück.
; Fehler - Gibt 0 zurück.
; Author(s): unearth
;
;===============================================================================
Func _IniSortSectionKeys($sFile, $sIniSection, $fDescending=0)
;Ist die Integrität der INI gestört, werden Daten eventuell gelöscht
Local $aKeysIf $fDescending > 1 Then $fDescending = 1
[/autoit] [autoit][/autoit] [autoit]
If $fDescending < 1 Then $fDescending = 0$aKeys = IniReadSection($sFile, $sIniSection)
[/autoit] [autoit][/autoit] [autoit]
If @error Then Return 0
For $i_key = 1 To $aKeys[0][0]
IniDelete($sFile, $sIniSection, $aKeys[$i_key][0])
Next
_ArraySort($aKeys, $fDescending, 1, 0, 2) ;Sortieren
For $i_key = 1 To $aKeys[0][0]
IniWrite($sFile, $sIniSection, $aKeys[$i_key][0], $aKeys[$i_key][1])
Next
Return 1
EndFunc;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _IniKeySectionSwap($sFile, $sIniKey, $sIniSection1, $sIniSection2)
; Description: Verschiebt einen Key zwischen Sections.
; Parameter(s): $sFile ist der Pfad zur ini-Datei.
;$sIniKey gibt den zu verschiebenden Key an.
;$sIniSection1 gibt die aktuelle Section des Keys an.
;$sIniSection2 gibt die zukünftige Section des Keys an.
; Return Value(s): Erfolg - Gibt 1 zurück.
; Fehler - Gibt 0 zurück.
; Author(s): unearth
;
;===============================================================================
Func _IniKeySectionSwap($sFile, $sIniKey, $sIniSection1, $sIniSection2)
;TODO = Später noch um _IniKeyInsert-Funktion mit Indexierung ergänzen?
If Not _IniExists($sFile) Or Not _IniKeyExists($sFile, $sIniSection1, $sIniKey) Or Not _IniSectionExists($sFile, $sIniSection2) Then Return 0 ;Prüft, ob die Voraussetzungen bestehen$sIniValue = IniRead($sFile, $sIniSection1, $sIniKey, "error")
[/autoit]
If @error Then Return 0
IniDelete($sFile, $sIniSection1, $sIniKey)
IniWrite($sFile, $sIniSection2, $sIniKey, $sIniValue) ;siehe TODO
Return 1
EndFuncIm Anhang eine Zip mit ini-Datei zum Testen. Falls Fehler drin sind - Feedback willkommen.
Grüße unearth
-
Aha! Du brauchst die Erweiterung "MozLab". Wo die ist, sollte im FF.au3-Thread beschrieben sein. Ohne die im FF installiert zu haben, geht es nicht. Schau mal kurz nach, daran könnte es aber schon liegen.
-
Nur eine kurze Frage? Hast Du die nötige Erweiterung für den FF installiert, ohne die es ohnehin nicht klappt?
-
Hi!
Ich habe ein "altes" Skript von mir mal eben mit der neuen Version getestet und musste natürlich einiges umstellen, aber mit dem bloßen Umbenennen der Funktionen war´s nicht getan.
Hier mein altes Skript:
Spoiler anzeigen
#Include <Constants.au3>
#include <GUIConstants.au3>
#include <file.au3>
#Include <Misc.au3>
#include <Array.au3>
#include <GuiListView.au3>Dim $aAdmins[1] ;Array der auszulesenden Administrator-Profile
Dim $programmmax
Dim $profil_array
Dim $edit
Dim $aboutitem
Dim $exititem
Dim $item1
Dim $item2
Dim $item3
Dim $optiondropbox
Dim $optionmenu
Dim $optiontraytip
Dim $optionautostart
Dim $optionpasswd
Dim $optionpathcheck
Dim $traytipflag
Dim $passwdsaveflag = 0
Dim $passwd
Dim $exitflag = 0
Dim $helpitem
Dim $flagoptionsstartup_EditIni()
;----------------------------------------------------------------------
;FUNKTION _EditIni
;Erstellt eine GUI zum Bearbeiten der data.ini
;----------------------------------------------------------------------
Func _EditIni()$nLVSBtnState = 0 ;Wird zum Aktivieren der Buttons benötigt
TraySetState(2)
;GUI für die EditControl wird erzeugt, hierin findet die Bearbeitung der Ini-Datei statt
$editinigui = GUICreate("AdminRun", 800, 335)GUICtrlCreateGraphic(0, 0, 800, 60)
GUICtrlSetBkColor(-1, 0xffffff)
GUICtrlCreatePic(@ScriptDir & "\img\addon.bmp", 15, 20, 16, 16)$label1 = GUICtrlCreateLabel("Menüeinträge bearbeiten", 45, 15, 300)
GUICtrlSetBkColor($label1, 0xffffff)
GUICtrlSetFont($label1, 9, 600)$label2 = GUICtrlCreateLabel("Fügen Sie neue Einträge hinzu oder löschen Sie Einträge", 45, 30, 300)
GUICtrlSetBkColor($label2, 0xffffff)
GUICtrlSetFont($label2, 8, 400, 2)$statuslabel1 = GUICtrlCreateLabel("", 0, 61, 801, 2, BitOR($SS_SIMPLE, $SS_SUNKEN))
$EDITINI_LISTVIEW = GUICtrlCreateListView("Programmname|Programmpfad|Status", 0, 62, 800, 229, $LVS_SHOWSELALWAYS, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT,$LVS_EX_HEADERDRAGDROP))
_GUICtrlListViewSetColumnWidth($EDITINI_LISTVIEW, 0, 200);SPALTENBREITE "Profilname" FESTLEGEN
_GUICtrlListViewSetColumnWidth($EDITINI_LISTVIEW, 1, 520);SPALTENBREITE "Profilpfad" FESTLEGEN
_GUICtrlListViewSetColumnWidth($EDITINI_LISTVIEW, 2, 59);SPALTENBREITE "Status" FESTLEGEN$EDITINI_AddBtn = GUICtrlCreateButton("Hinzufügen", 10, 300, 80)
$EDITINI_EditBtn = GUICtrlCreateButton("Bearbeiten", 95, 300, 80)
$EDITINI_DelBtn = GUICtrlCreateButton("Löschen", 180, 300, 80)
$EDITINI_MoveUpBtn = GUICtrlCreateButton("Hoch", 265, 300, 80)
$EDITINI_MoveDownBtn = GUICtrlCreateButton("Runter", 350, 300, 80)
$EDITINI_CheckBtn = GUICtrlCreateButton("Testen", 435, 300, 80)$EDITINI_SaveBtn = GUICtrlCreateButton("Speichern", 585, 300, 100)
GUICtrlSetState($EDITINI_SaveBtn, $GUI_DISABLE)
$EDITINI_ExitBtn = GUICtrlCreateButton("Fertig", 690, 300, 100)GUISetState()
Dim $B_DESCENDING[_GUICtrlListViewGetSubItemsCount($EDITINI_LISTVIEW)] ;Setzt die nötigen Voraussetzungen für das Sortieren
;~ ;Auslesen der Ini-Datei in Array
$aDataIniContent = IniReadSectionNames(@ScriptDir & "\data.ini")
For $i = 1 To $aDataIniContent[0]
GUICtrlCreateListViewItem($aDataIniContent[$i] & "|" & IniRead(@ScriptDir & "\data.ini", $aDataIniContent[$i], "path", "Fehler") ,$EDITINI_LISTVIEW) ;Eventuell sollte ich doch Variable zuordnen
NextWhile 1
$msg1 = GUIGetMsg()
$nLVSCountLines = _GUICtrlListViewGetSelectedCount($EDITINI_LISTVIEW) ;Wird zum Aktivieren der Buttons benötigt
Select
Case $msg1 = 0
ContinueLoop
;Schalter für Buttons, wenn kein Item gewählt
Case $nLVSBtnState <> 1 And $nLVSCountLines = 0
GUICtrlSetState($EDITINI_EditBtn, $GUI_DISABLE)
GUICtrlSetState($EDITINI_DelBtn, $GUI_DISABLE)
GUICtrlSetState($EDITINI_MoveUpBtn, $GUI_DISABLE)
GUICtrlSetState($EDITINI_MoveDownBtn, $GUI_DISABLE)
$nLVSBtnState = 1
;Schalter für Buttons, wenn ein Item gewählt
Case $nLVSBtnState <> 2 And $nLVSCountLines = 1
GUICtrlSetState($EDITINI_EditBtn, $GUI_ENABLE)
GUICtrlSetState($EDITINI_DelBtn, $GUI_ENABLE)
GUICtrlSetState($EDITINI_MoveUpBtn, $GUI_ENABLE)
GUICtrlSetState($EDITINI_MoveDownBtn, $GUI_ENABLE)
$nLVSBtnState = 2
;Schalter für Buttons, wenn mehr als ein Item gewählt
Case $nLVSBtnState <> 3 And $nLVSCountLines > 1
GUICtrlSetState($EDITINI_EditBtn, $GUI_DISABLE)
GUICtrlSetState($EDITINI_DelBtn, $GUI_ENABLE)
GUICtrlSetState($EDITINI_MoveUpBtn, $GUI_DISABLE)
GUICtrlSetState($EDITINI_MoveDownBtn, $GUI_DISABLE)
$nLVSBtnState = 3
;Sortiert die Liste, wenn auf Spalte geklickt
Case $msg1 = $EDITINI_LISTVIEW
_EditFlag(1, $EDITINI_SaveBtn)
ReDim $B_DESCENDING[_GUICtrlListViewGetSubItemsCount($EDITINI_LISTVIEW)] ;Setzt die nötigen Voraussetzungen für das Sortieren
_GUICtrlListViewSort($EDITINI_LISTVIEW, $B_DESCENDING, GUICtrlGetState($EDITINI_LISTVIEW))
;Hinzufügen
Case $msg1 = $EDITINI_AddBtn
$sAddTitle = ""
$sAddPath = ""
$nAddNEditFlag = _AddNEdit("Eintrag hinzufügen", $sAddTitle, $sAddPath)
If $nAddNEditFlag = 1 Then
_EditFlag(1, $EDITINI_SaveBtn)
_GUICtrlListViewInsertItem ($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), $sAddTitle & "|" & $sAddPath)
;Setzt die Sichtbarkeit des angefügten Items, wenn vorher in der Liste kein Ort ausgewählt
If _GUICtrlListViewGetSelectedCount($EDITINI_LISTVIEW) = 0 Then _GUICtrlListViewEnsureVisible($EDITINI_LISTVIEW, _GUICtrlListViewGetItemCount($EDITINI_LISTVIEW)-1, 1)
Else
ContinueLoop
EndIf
;Bearbeiten
Case $msg1 = $EDITINI_EditBtn
$sAddTitle = _GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 0)
$sAddPath = _GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1)
$nAddNEditFlag = _AddNEdit("Eintrag bearbeiten", $sAddTitle, $sAddPath)
;Prüfung, ob Änderung
If $nAddNEditFlag = 1 Then
If $sAddTitle = _GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 0) And $sAddPath = _GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1) Then
ContinueLoop
Else
_EditFlag(1, $EDITINI_SaveBtn)
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 0, $sAddTitle)
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1, $sAddPath)
EndIf
Else
ContinueLoop
EndIf
;Löschen
Case $msg1 = $EDITINI_DelBtn
_EditFlag(1, $EDITINI_SaveBtn)
_GUICtrlListViewDeleteItemsSelected($EDITINI_LISTVIEW)
;Hoch
Case $msg1 = $EDITINI_MoveUpBtn
If _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW) <> -1 Then ;Wenn keine Auswahl, dann nichts tun
;Auslesen der zu verschiebenden Daten
$aItemMoveUp1 = StringSplit(_GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)), "|")
$aItemMoveUp2 = StringSplit(_GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)-1), "|")
;Tauschen der Daten in der Listview $aItemMoveUp2
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 0, $aItemMoveUp2[1])
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1, $aItemMoveUp2[2])
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 2, $aItemMoveUp2[3])
;Tauschen der Daten in der Listview $aItemMoveUp1
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)-1, 0, $aItemMoveUp1[1])
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)-1, 1, $aItemMoveUp1[2])
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)-1, 2, $aItemMoveUp1[3])
;Auswahl aktualisieren
If _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW) > 0 Then ;Damit nicht über die Auswahl hinaus gearbeitet wird
_EditFlag(1, $EDITINI_SaveBtn)
_GUICtrlListViewSetItemSelState ($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)-1)
_GUICtrlListViewSetItemSelState ($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)+1, 0)
EndIf
_GUICtrlListViewEnsureVisible($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1)
EndIf
;Runter
Case $msg1 = $EDITINI_MoveDownBtn
If _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW) <> -1 Then ;Wenn keine Auswahl, dann nichts tun
If _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW) <= _GUICtrlListViewGetItemCount($EDITINI_LISTVIEW)-2 Then ;Damit nicht über die Auswahl hinaus gearbeitet wird
_EditFlag(1, $EDITINI_SaveBtn)
;Auslesen der zu verschiebenden Daten
$aItemMoveUp1 = StringSplit(_GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)), "|")
$aItemMoveUp2 = StringSplit(_GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)+1), "|")
;Tauschen der Daten in der Listview $aItemMoveUp2
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 0, $aItemMoveUp2[1])
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1, $aItemMoveUp2[2])
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 2, $aItemMoveUp2[3])
;Tauschen der Daten in der Listview $aItemMoveUp1
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)+1, 0, $aItemMoveUp1[1])
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)+1, 1, $aItemMoveUp1[2])
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)+1, 2, $aItemMoveUp1[3])
;Auswahl aktualisieren
_GUICtrlListViewSetItemSelState ($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)+1)
_GUICtrlListViewSetItemSelState ($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 0)
_GUICtrlListViewEnsureVisible($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1)
EndIf
EndIf
;Testen
Case $msg1 = $EDITINI_CheckBtn
For $i = 0 To _GUICtrlListViewGetItemCount($EDITINI_LISTVIEW)-1 ;-1, weil da irgendwie immer ein leeres Item mitgezählt wird
If FileExists(_GUICtrlListViewGetItemText($EDITINI_LISTVIEW, $i, 1)) Then
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, $i, 2, "OK")
Else
_GUICtrlListViewSetItemText($EDITINI_LISTVIEW, $i, 2, "ERROR")
EndIf
Next
;Speichern
Case $msg1 = $EDITINI_SaveBtn
_EditFlag(0, $EDITINI_SaveBtn)
FileDelete(@ScriptDir & "\data.ini")
For $i = 0 To _GUICtrlListViewGetItemCount($EDITINI_LISTVIEW)-1 ;-1, weil da irgendwie immer ein leeres Item mitgezählt wird
IniWriteSection(@ScriptDir & "\data.ini", _GUICtrlListViewGetItemText($EDITINI_LISTVIEW, $i, 0), "path=" & _GUICtrlListViewGetItemText($EDITINI_LISTVIEW, $i, 1))
Next
;~ programmdelete()
;~ programmcheck()
;Exit/Fertig
Case $msg1 = $EDITINI_ExitBtn Or $msg1 = $GUI_EVENT_CLOSE
If GUICtrlGetState($EDITINI_SaveBtn) = 80 Then ;Falls der Button aktiviert ist
$nExitBox = MsgBox(4+32+256,"Datenänderung ignorieren?", "Die Daten wurden geändert. Wollen Sie dennoch das " & @CRLF & "Programm verlassen, ohne die Änderungen gepeichert zu haben?")
If $nExitBox = 6 Then ;Ja
ExitLoop
Else
ContinueLoop
EndIf
Else
ExitLoop
EndIf
EndSelect
WEndGUIDelete($editinigui) ;Löscht die EditGUI, damit wieder nur mit dem Tray gearbeitet wird
TraySetState(1)
EndFunc;----------------------------------------------------------------------
;FUNKTION _AddNEdit($sTitle, ByRef $sAddTitle, ByRef $sAddPath)
;Eingabemaske der Daten in der ListView
;----------------------------------------------------------------------
Func _AddNEdit($sTitle, ByRef $sAddTitle, ByRef $sAddPath)
$ADDEDIT_GUI = GUICreate($sTitle, 330, 165)GUICtrlCreateGraphic(0, 0, 330, 30)
GUICtrlSetBkColor(-1, 0xffffff)$label1 = GUICtrlCreateLabel("Geben Sie die erforderlichen Daten ein:", 10, 8, 320)
GUICtrlSetBkColor($label1, 0xffffff)
GUICtrlSetFont($label1, 10, 550)$statuslabel1 = GUICtrlCreateLabel("", 0, 31, 331, 2, BitOR($SS_SIMPLE, $SS_SUNKEN))
GUICtrlCreateLabel("Programmname:", 10, 48, 80)
$sAddTitleInput = GUICtrlCreateInput($sAddTitle, 100, 45, 220)
GUICtrlCreateLabel("Programmpfad:", 10, 78, 80)
$sAddPathInput = GUICtrlCreateInput($sAddPath, 100, 75, 220)$AddWarn = GUICtrlCreateLabel("", 50, 102, 300)
GUICtrlSetColor($AddWarn, 0xCD4F39)GUICtrlCreateLabel("", 0, 120, 331, 2, BitOR($SS_SIMPLE, $SS_SUNKEN))
$OkBtn = GUICtrlCreateButton("OK", 10, 130, 100)
$OpenBtn = GUICtrlCreateButton("Suchen...", 115, 130, 100)
$CancelBtn = GUICtrlCreateButton("Abbrechen", 220, 130, 100)Guisetstate()
While 1
$msgadd = GUIGetMsg()
Select
Case $msgadd = $CancelBtn Or $msgadd = $GUI_EVENT_CLOSE
$Return = 0
ExitLoop
Case $msgadd = $OkBtn
;Prüfung, ob leer
If GUICtrlRead($sAddTitleInput) = "" Or GUICtrlRead($sAddPathInput) = "" Then
GUICtrlSetData($AddWarn, "Achtung! Die Eingabefelder dürfen nicht leer sein.")
ContinueLoop
;Prüfung, ob Pfad existiert
ElseIf Not FileExists(GUICtrlRead($sAddPathInput)) Then
GUICtrlSetData($AddWarn, "Achtung! Die angegebene Datei existiert nicht.")ContinueLoop
;Alles in Ordnung
Else
$sAddTitle = GUICtrlRead($sAddTitleInput)
$sAddPath = GUICtrlRead($sAddPathInput)
$Return = 1
ExitLoop
EndIf
Case $msgadd = $OpenBtn
$sFOD = FileOpenDialog("Ausführbare Datei suchen", Default, "Ausführbare Datei (*.exe;*.bat;*.com)", 1 + 2)
If $sFOD <> "" Then
GUICtrlSetData($sAddPathInput, $sFOD)
$aFODSplit = StringSplit($sFOD, "\")
GUICtrlSetData($sAddTitleInput, $aFODSplit[$aFODSplit[0]])
EndIf
EndSelect
WEndGUIDelete($ADDEDIT_GUI)
Return $Return
EndFunc
;----------------------------------------------------------------------
;FUNKTION _EditFlag
;Setzt die Flag und den Status des Speichern-Buttons
;----------------------------------------------------------------------
Func _EditFlag($nFlag, $Btn)
If $nFlag = 1 Then
GUICtrlSetState($Btn, $GUI_ENABLE)
ElseIf $nFlag = 0 Then
GUICtrlSetState($Btn, $GUI_DISABLE)
EndIf
EndFuncHier das neue, so weit ich es habe:
Spoiler anzeigen
#Include <Constants.au3>
#include <GUIConstants.au3>
#include <file.au3>
#Include <Misc.au3>
#include <Array.au3>
#include <GuiListView.au3>Dim $aAdmins[1] ;Array der auszulesenden Administrator-Profile
Dim $programmmax
Dim $profil_array
Dim $edit
Dim $aboutitem
Dim $exititem
Dim $item1
Dim $item2
Dim $item3
Dim $optiondropbox
Dim $optionmenu
Dim $optiontraytip
Dim $optionautostart
Dim $optionpasswd
Dim $optionpathcheck
Dim $traytipflag
Dim $passwdsaveflag = 0
Dim $passwd
Dim $exitflag = 0
Dim $helpitem
Dim $flagoptionsstartup_EditIni()
;----------------------------------------------------------------------
;FUNKTION _EditIni
;Erstellt eine GUI zum Bearbeiten der data.ini
;----------------------------------------------------------------------
Func _EditIni()$nLVSBtnState = 0 ;Wird zum Aktivieren der Buttons benötigt
TraySetState(2)
;GUI für die EditControl wird erzeugt, hierin findet die Bearbeitung der Ini-Datei statt
$editinigui = GUICreate("AdminRun", 800, 335)GUICtrlCreateGraphic(0, 0, 800, 60)
GUICtrlSetBkColor(-1, 0xffffff)
GUICtrlCreatePic(@ScriptDir & "\img\addon.bmp", 15, 20, 16, 16)$label1 = GUICtrlCreateLabel("Menüeinträge bearbeiten", 45, 15, 300)
GUICtrlSetBkColor($label1, 0xffffff)
GUICtrlSetFont($label1, 9, 600)$label2 = GUICtrlCreateLabel("Fügen Sie neue Einträge hinzu oder löschen Sie Einträge", 45, 30, 300)
GUICtrlSetBkColor($label2, 0xffffff)
GUICtrlSetFont($label2, 8, 400, 2)$statuslabel1 = GUICtrlCreateLabel("", 0, 61, 801, 2, BitOR($SS_SIMPLE, $SS_SUNKEN))
$EDITINI_LISTVIEW = GUICtrlCreateListView("Programmname|Programmpfad|Status", 0, 62, 800, 229, $LVS_SHOWSELALWAYS, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT,$LVS_EX_HEADERDRAGDROP))
_GUICtrlListView_SetColumnWidth($EDITINI_LISTVIEW, 0, 200);SPALTENBREITE "Profilname" FESTLEGEN
_GUICtrlListView_SetColumnWidth($EDITINI_LISTVIEW, 1, 520);SPALTENBREITE "Profilpfad" FESTLEGEN
_GUICtrlListView_SetColumnWidth($EDITINI_LISTVIEW, 2, 59);SPALTENBREITE "Status" FESTLEGEN$EDITINI_AddBtn = GUICtrlCreateButton("Hinzufügen", 10, 300, 80)
$EDITINI_EditBtn = GUICtrlCreateButton("Bearbeiten", 95, 300, 80)
$EDITINI_DelBtn = GUICtrlCreateButton("Löschen", 180, 300, 80)
$EDITINI_MoveUpBtn = GUICtrlCreateButton("Hoch", 265, 300, 80)
$EDITINI_MoveDownBtn = GUICtrlCreateButton("Runter", 350, 300, 80)
$EDITINI_CheckBtn = GUICtrlCreateButton("Testen", 435, 300, 80)$EDITINI_SaveBtn = GUICtrlCreateButton("Speichern", 585, 300, 100)
GUICtrlSetState($EDITINI_SaveBtn, $GUI_DISABLE)
$EDITINI_ExitBtn = GUICtrlCreateButton("Fertig", 690, 300, 100)GUISetState()
;~ Dim $B_DESCENDING[_GUICtrlListViewGetSubItemsCount($EDITINI_LISTVIEW)] ;Setzt die nötigen Voraussetzungen für das Sortieren
;~ ;Auslesen der Ini-Datei in Array
$aDataIniContent = IniReadSectionNames(@ScriptDir & "\data.ini")
For $i = 1 To $aDataIniContent[0]
GUICtrlCreateListViewItem($aDataIniContent[$i] & "|" & IniRead(@ScriptDir & "\data.ini", $aDataIniContent[$i], "path", "Fehler") ,$EDITINI_LISTVIEW) ;Eventuell sollte ich doch Variable zuordnen
NextWhile 1
$msg1 = GUIGetMsg()
$nLVSCountLines = _GUICtrlListView_GetSelectedCount($EDITINI_LISTVIEW) ;Wird zum Aktivieren der Buttons benötigt
Select
Case $msg1 = 0
ContinueLoop
;Schalter für Buttons, wenn kein Item gewählt
Case $nLVSBtnState <> 1 And $nLVSCountLines = 0
GUICtrlSetState($EDITINI_EditBtn, $GUI_DISABLE)
GUICtrlSetState($EDITINI_DelBtn, $GUI_DISABLE)
GUICtrlSetState($EDITINI_MoveUpBtn, $GUI_DISABLE)
GUICtrlSetState($EDITINI_MoveDownBtn, $GUI_DISABLE)
$nLVSBtnState = 1
;Schalter für Buttons, wenn ein Item gewählt
Case $nLVSBtnState <> 2 And $nLVSCountLines = 1
GUICtrlSetState($EDITINI_EditBtn, $GUI_ENABLE)
GUICtrlSetState($EDITINI_DelBtn, $GUI_ENABLE)
GUICtrlSetState($EDITINI_MoveUpBtn, $GUI_ENABLE)
GUICtrlSetState($EDITINI_MoveDownBtn, $GUI_ENABLE)
$nLVSBtnState = 2
;Schalter für Buttons, wenn mehr als ein Item gewählt
Case $nLVSBtnState <> 3 And $nLVSCountLines > 1
GUICtrlSetState($EDITINI_EditBtn, $GUI_DISABLE)
GUICtrlSetState($EDITINI_DelBtn, $GUI_ENABLE)
GUICtrlSetState($EDITINI_MoveUpBtn, $GUI_DISABLE)
GUICtrlSetState($EDITINI_MoveDownBtn, $GUI_DISABLE)
$nLVSBtnState = 3
;Sortiert die Liste, wenn auf Spalte geklickt
Case $msg1 = $EDITINI_LISTVIEW
;~ _EditFlag(1, $EDITINI_SaveBtn)
;~ ReDim $B_DESCENDING[_GUICtrlListViewGetSubItemsCount($EDITINI_LISTVIEW)] ;Setzt die nötigen Voraussetzungen für das Sortieren
;~ _GUICtrlListViewSort($EDITINI_LISTVIEW, $B_DESCENDING, GUICtrlGetState($EDITINI_LISTVIEW))
;Hinzufügen
Case $msg1 = $EDITINI_AddBtn
$sAddTitle = ""
$sAddPath = ""
$nAddNEditFlag = _AddNEdit("Eintrag hinzufügen", $sAddTitle, $sAddPath)
If $nAddNEditFlag = 1 Then
_EditFlag(1, $EDITINI_SaveBtn)
_GUICtrlListView_InsertItem($EDITINI_LISTVIEW, $sAddTitle, _GUICtrlListView_GetSelectionMark(GUICtrlGetHandle($EDITINI_LISTVIEW)))
_GUICtrlListView_SetSelectionMark(GUICtrlGetHandle($EDITINI_LISTVIEW), _GUICtrlListView_GetSelectionMark(GUICtrlGetHandle($EDITINI_LISTVIEW))-1)
_GUICtrlListView_SetItemText($EDITINI_LISTVIEW, _GUICtrlListView_GetSelectionMark(GUICtrlGetHandle($EDITINI_LISTVIEW)),$sAddPath, 1)
;Setzt die Sichtbarkeit des angefügten Items, wenn vorher in der Liste kein Ort ausgewählt
;~ If _GUICtrlListView_GetSelectedCount($EDITINI_LISTVIEW) = 0 Then _GUICtrlListView_EnsureVisible($EDITINI_LISTVIEW, _GUICtrlListView_GetSelectionMark(GUICtrlGetHandle($EDITINI_LISTVIEW))-1, 1)
Else
ContinueLoop
EndIf
;Bearbeiten
Case $msg1 = $EDITINI_EditBtn
;~ $sAddTitle = _GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 0)
;~ $sAddPath = _GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1)
;~ $nAddNEditFlag = _AddNEdit("Eintrag bearbeiten", $sAddTitle, $sAddPath)
;~ ;Prüfung, ob Änderung
;~ If $nAddNEditFlag = 1 Then
;~ If $sAddTitle = _GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 0) And $sAddPath = _GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1) Then
;~ ContinueLoop
;~ Else
;~ _EditFlag(1, $EDITINI_SaveBtn)
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 0, $sAddTitle)
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1, $sAddPath)
;~ EndIf
;~ Else
;~ ContinueLoop
;~ EndIf
;Löschen
Case $msg1 = $EDITINI_DelBtn
_EditFlag(1, $EDITINI_SaveBtn)
_GUICtrlListView_DeleteItemsSelected(GUICtrlGetHandle($EDITINI_LISTVIEW))
;Hoch
Case $msg1 = $EDITINI_MoveUpBtn
;~ If _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW) <> -1 Then ;Wenn keine Auswahl, dann nichts tun
;~ ;Auslesen der zu verschiebenden Daten
;~ $aItemMoveUp1 = StringSplit(_GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)), "|")
;~ $aItemMoveUp2 = StringSplit(_GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)-1), "|")
;~ ;Tauschen der Daten in der Listview $aItemMoveUp2
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 0, $aItemMoveUp2[1])
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1, $aItemMoveUp2[2])
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 2, $aItemMoveUp2[3])
;~ ;Tauschen der Daten in der Listview $aItemMoveUp1
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)-1, 0, $aItemMoveUp1[1])
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)-1, 1, $aItemMoveUp1[2])
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)-1, 2, $aItemMoveUp1[3])
;~ ;Auswahl aktualisieren
;~ If _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW) > 0 Then ;Damit nicht über die Auswahl hinaus gearbeitet wird
;~ _EditFlag(1, $EDITINI_SaveBtn)
;~ _GUICtrlListViewSetItemSelState ($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)-1)
;~ _GUICtrlListViewSetItemSelState ($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)+1, 0)
;~ EndIf
;~ _GUICtrlListViewEnsureVisible($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1)
;~ EndIf
;Runter
Case $msg1 = $EDITINI_MoveDownBtn
;~ If _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW) <> -1 Then ;Wenn keine Auswahl, dann nichts tun
;~ If _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW) <= _GUICtrlListViewGetItemCount($EDITINI_LISTVIEW)-2 Then ;Damit nicht über die Auswahl hinaus gearbeitet wird
;~ _EditFlag(1, $EDITINI_SaveBtn)
;~ ;Auslesen der zu verschiebenden Daten
;~ $aItemMoveUp1 = StringSplit(_GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)), "|")
;~ $aItemMoveUp2 = StringSplit(_GUICtrlListViewGetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)+1), "|")
;~ ;Tauschen der Daten in der Listview $aItemMoveUp2
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 0, $aItemMoveUp2[1])
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1, $aItemMoveUp2[2])
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 2, $aItemMoveUp2[3])
;~ ;Tauschen der Daten in der Listview $aItemMoveUp1
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)+1, 0, $aItemMoveUp1[1])
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)+1, 1, $aItemMoveUp1[2])
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)+1, 2, $aItemMoveUp1[3])
;~ ;Auswahl aktualisieren
;~ _GUICtrlListViewSetItemSelState ($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW)+1)
;~ _GUICtrlListViewSetItemSelState ($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 0)
;~ _GUICtrlListViewEnsureVisible($EDITINI_LISTVIEW, _GUICtrlListViewGetCurSel($EDITINI_LISTVIEW), 1)
;~ EndIf
;~ EndIf
;Testen
Case $msg1 = $EDITINI_CheckBtn
;~ For $i = 0 To _GUICtrlListViewGetItemCount($EDITINI_LISTVIEW)-1 ;-1, weil da irgendwie immer ein leeres Item mitgezählt wird
;~ If FileExists(_GUICtrlListViewGetItemText($EDITINI_LISTVIEW, $i, 1)) Then
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, $i, 2, "OK")
;~ Else
;~ _GUICtrlListViewSetItemText($EDITINI_LISTVIEW, $i, 2, "ERROR")
;~ EndIf
;~ Next
;Speichern
Case $msg1 = $EDITINI_SaveBtn
_EditFlag(0, $EDITINI_SaveBtn)
FileDelete(@ScriptDir & "\data.ini")
For $i = 0 To _GUICtrlListView_GetItemCount($EDITINI_LISTVIEW)-1 ;-1, weil da irgendwie immer ein leeres Item mitgezählt wird
IniWriteSection(@ScriptDir & "\data.ini", _GUICtrlListView_GetItemText($EDITINI_LISTVIEW, $i, 0), "path=" & _GUICtrlListView_GetItemText($EDITINI_LISTVIEW, $i, 1))
Next
;~ programmdelete()
;~ programmcheck()
;Exit/Fertig
Case $msg1 = $EDITINI_ExitBtn Or $msg1 = $GUI_EVENT_CLOSE
If GUICtrlGetState($EDITINI_SaveBtn) = 80 Then ;Falls der Button aktiviert ist
$nExitBox = MsgBox(4+32+256,"Datenänderung ignorieren?", "Die Daten wurden geändert. Wollen Sie dennoch das " & @CRLF & "Programm verlassen, ohne die Änderungen gepeichert zu haben?")
If $nExitBox = 6 Then ;Ja
ExitLoop
Else
ContinueLoop
EndIf
Else
ExitLoop
EndIf
EndSelect
WEndGUIDelete($editinigui) ;Löscht die EditGUI, damit wieder nur mit dem Tray gearbeitet wird
TraySetState(1)
EndFunc;----------------------------------------------------------------------
;FUNKTION _AddNEdit($sTitle, ByRef $sAddTitle, ByRef $sAddPath)
;Eingabemaske der Daten in der ListView
;----------------------------------------------------------------------
Func _AddNEdit($sTitle, ByRef $sAddTitle, ByRef $sAddPath)
$ADDEDIT_GUI = GUICreate($sTitle, 330, 165)GUICtrlCreateGraphic(0, 0, 330, 30)
GUICtrlSetBkColor(-1, 0xffffff)$label1 = GUICtrlCreateLabel("Geben Sie die erforderlichen Daten ein:", 10, 8, 320)
GUICtrlSetBkColor($label1, 0xffffff)
GUICtrlSetFont($label1, 10, 550)$statuslabel1 = GUICtrlCreateLabel("", 0, 31, 331, 2, BitOR($SS_SIMPLE, $SS_SUNKEN))
GUICtrlCreateLabel("Programmname:", 10, 48, 80)
$sAddTitleInput = GUICtrlCreateInput($sAddTitle, 100, 45, 220)
GUICtrlCreateLabel("Programmpfad:", 10, 78, 80)
$sAddPathInput = GUICtrlCreateInput($sAddPath, 100, 75, 220)$AddWarn = GUICtrlCreateLabel("", 50, 102, 300)
GUICtrlSetColor($AddWarn, 0xCD4F39)GUICtrlCreateLabel("", 0, 120, 331, 2, BitOR($SS_SIMPLE, $SS_SUNKEN))
$OkBtn = GUICtrlCreateButton("OK", 10, 130, 100)
$OpenBtn = GUICtrlCreateButton("Suchen...", 115, 130, 100)
$CancelBtn = GUICtrlCreateButton("Abbrechen", 220, 130, 100)Guisetstate()
While 1
$msgadd = GUIGetMsg()
Select
Case $msgadd = $CancelBtn Or $msgadd = $GUI_EVENT_CLOSE
$Return = 0
ExitLoop
Case $msgadd = $OkBtn
;Prüfung, ob leer
If GUICtrlRead($sAddTitleInput) = "" Or GUICtrlRead($sAddPathInput) = "" Then
GUICtrlSetData($AddWarn, "Achtung! Die Eingabefelder dürfen nicht leer sein.")
ContinueLoop
;Prüfung, ob Pfad existiert
ElseIf Not FileExists(GUICtrlRead($sAddPathInput)) Then
GUICtrlSetData($AddWarn, "Achtung! Die angegebene Datei existiert nicht.")ContinueLoop
;Alles in Ordnung
Else
$sAddTitle = GUICtrlRead($sAddTitleInput)
$sAddPath = GUICtrlRead($sAddPathInput)
$Return = 1
ExitLoop
EndIf
Case $msgadd = $OpenBtn
$sFOD = FileOpenDialog("Ausführbare Datei suchen", Default, "Ausführbare Datei (*.exe;*.bat;*.com)", 1 + 2)
If $sFOD <> "" Then
GUICtrlSetData($sAddPathInput, $sFOD)
$aFODSplit = StringSplit($sFOD, "\")
GUICtrlSetData($sAddTitleInput, $aFODSplit[$aFODSplit[0]])
EndIf
EndSelect
WEndGUIDelete($ADDEDIT_GUI)
Return $Return
EndFunc
;----------------------------------------------------------------------
;FUNKTION _EditFlag
;Setzt die Flag und den Status des Speichern-Buttons
;----------------------------------------------------------------------
Func _EditFlag($nFlag, $Btn)
If $nFlag = 1 Then
GUICtrlSetState($Btn, $GUI_ENABLE)
ElseIf $nFlag = 0 Then
GUICtrlSetState($Btn, $GUI_DISABLE)
EndIf
EndFuncIm Anhang findet ihr die ini, die ich benutze.
Eines der Probleme ist, dass ich, wenn ein Eintrag hinzugefügt wurde und diesen auswähle, Buttons ausgelöst werden. Ich verstehe nicht einmal im Ansatz, was die Buttons mit der ListView zu tun haben sollten. Zum Beispiel wird "automatisch" gespeichert.
Außerdem verstehe ich nicht, wozu ich noch GuiCtrlCreateListView brauche, wenn es _GuiCtrlListView_Create gibt?
Vielen Dank für die Hilfe!
-
Update mit einigen Neuerungen. Mehr dazu im Ursprungspost.
Konnte das Update als Script hier nicht mehr hinterlegen. Zeichenbeschränkung hat rumgemäkelt.
Grüße unearth
-
Hallo,
das muss ich mir mal genauer anschauen, sieht aber sehr interessant aus. Vielen Dank schon einmal.
Gruß unearth
-
Hi,
ich zermarter mir schon seit Wochen das Hirn, habe zwischenzeitlich auch schon aufgegeben, aber nun mal doch eine Frage dazu:
Ich habe ein kleines Script, das in einer Funktion mit der ZIP.exe Daten (Ordner) komprimiert. Läuft alles einwandfrei, nur möchte ich eigentlich einen ProgressBar haben. Nun ist das ja prinzipiell erst mal kein Problem. Ich könnte mit _FileListToArray und ein wenig Aufwand ja rekursiv alle Ordner und Unterordner durchgehen, bis ich alle Dateien hab, und diese dann mit den Werten aus dem StandardOutput des ZIP-Vorgangs abgleichen. So zumindest meine Theorie.
1. Ich frage mich nur, ob das nicht auch einfacher geht?
2. Alle meine bisherigen Versuche mit StdOutRead endeten damit, dass ich das, was die ZIP.exe in Command-Fenster immer schön in einer Zeile ausgab, auch mal über mehrere Zeile zerhackstückt erhalte. Wie kann ich das ändern oder verhindern?Sollte sich Punkt 2 nicht ändern lassen, muss ich in StringRegExp wohl über meinen Freischwimmer hinauskommen und lästig viel Zeit investieren.
Hier das Script. Ihr bräuchtet aber die ZIP.exe und müsstet zum Testen die Angaben anpassen. Es sollte aber reichen, damit ihr eine Idee davon habt, was ich mache.
Spoiler anzeigen
[autoit]#include "Constants.au3"
[/autoit] [autoit][/autoit] [autoit]
#include "GUIConstants.au3"$destination = FileGetShortName("D:\Mediendaten\Skripte\zip.zip") ;Muss wohl in der Kurzform sein
[/autoit] [autoit][/autoit] [autoit]
$source = FileGetShortName("D:\Sicherungsdaten\Backup") ;Muss wohl in der Kurzform sein
$compressionrate = 6 ;Setzt die Option, wie schnell die Dateien komprimiert werden.$foo = Run("D:\data\zip\zip.exe" & " -R -S -v -" & $compressionrate & " " & $destination & " " & $source & "\*", $source, Default, $STDOUT_CHILD);Parameter -R ist in Verbindung mit dem Working directory auf $source notwendig, um die Daten exakt so zu verarbeiten, wie ich es gerne hätte.
[/autoit] [autoit][/autoit] [autoit]$test = GUICreate("Test", 600, 600)
[/autoit] [autoit][/autoit] [autoit]$test = GUICtrlCreateEdit("", 10, 10, 285, 590)
[/autoit] [autoit][/autoit] [autoit]
$test2 = GUICtrlCreateEdit("", 305, 10, 285, 590)GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
$line = StdoutRead($foo)
If @error = 0 Then GUICtrlSetData($test, $line & @CRLF, 1);~ $line2 = StdinWrite($foo)
[/autoit] [autoit][/autoit] [autoit]
;~ If @error <> 0 Then GUICtrlSetData($test2, $line2 & @CRLF, 1)$msg = GUIGetMsg()
[/autoit]
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEndEDIT: Zur Zeit lasse ich das Script die Daten in eine EditBox laufen, um überhaupt zu sehen, was am Ende rumspringt.
Sollte es nur so möglich sein, wie oben beschrieben, weiß ich wenigstens, dass sich die Mühe lohnt. Ich hab nur keine Lust bei meinen AutoIt-Kenntnissen eine Woche Arbeit in 300 Zeilen Code zu investieren, wenn später jemand dasselbe in 20 Zeilen macht.
Gruß unearth
-
Simpel:
[autoit]#include <GUIConstants.au3>
[/autoit][autoit][/autoit][autoit]
Opt("GUIOnEventMode", 1)
GUICreate("My GUI Checkbox") ; will create a dialog box that when displayed is centered
$checkCN = GUICtrlCreateCheckbox ("CHECKBOX 1", 10, 10, 120, 20)
$button = GUICtrlCreateButton("Test", 10, 40, 80)
GUICtrlSetOnEvent($button, "_Button")GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
[/autoit][autoit][/autoit][autoit]
GUISetState () ; will display an dialog box with 1 checkbox
; Run the GUI until the dialog is closed
While 1
Sleep(1000)
WendFunc _Exit()
[/autoit][autoit][/autoit][autoit]
Exit
EndFuncFunc _Button()
[/autoit]
If GUICtrlRead($checkCN) = $GUI_CHECKED Then
MsgBox(0, "", "An")
Else
MsgBox(0, "", "Aus")
EndIf
EndFuncDen Rest kriegste mit Hilfe und Forum-Suche raus.
-
Das liegt doch wohl eher daran, dass das Next, das die 2. For-Schleife beenden sollte, in einer If-Then-Abfrage innerhalb der Schleife selbst liegt. Damit fliegt das Schachteltürmchen mal ordentlich durcheinander, da hier mal ein EndIf fehlt, dann ist das Next nicht zugeordnet usw. Verschachtelung ist mit AutoIt schon drin, die Schachteln ineinander knüllen eher nicht.
-
Eine kleine Erweiterung des Hilfe-Beispiels, bittschön:
[autoit]#include <GUIConstants.au3>
[/autoit][autoit][/autoit][autoit]GUICreate("My GUI Checkbox") ; will create a dialog box that when displayed is centered
[/autoit][autoit][/autoit][autoit]$checkCN = GUICtrlCreateCheckbox ("CHECKBOX 1", 10, 10, 120, 20)
[/autoit][autoit][/autoit][autoit]$button = GUICtrlCreateButton("Test", 10, 40, 80)
[/autoit][autoit][/autoit][autoit]GUISetState () ; will display an dialog box with 1 checkbox
[/autoit][autoit][/autoit][autoit]; Run the GUI until the dialog is closed
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
While 1
$msg = GUIGetMsg()
If $msg = $button Then
If GUICtrlRead($checkCN) = $GUI_CHECKED Then
MsgBox(0, "", "An")
Else
MsgBox(0, "", "Aus")
EndIf
EndIf
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend -
Mal grob drüber geschaut:
ZitatOriginal von Fast2
[autoit]C:\Dokumente und Einstellungen\Fabian\Desktop\DragRacer\DragRacer3 T 1.2.au3(31,22) : ERROR: syntax error
[/autoit]
GUICtrlSetData($CBH, )Du musst noch den zweiten Parameter, also den Text, der eingegeben werden soll, angeben. Zumindest "" für Nichts.
ZitatOriginal von Fast2
[autoit]C:\Dokumente und Einstellungen\Fabian\Desktop\DragRacer\DragRacer3 T 1.2.au3(72,26) : WARNING: $ar: possibly used before declaration.
[/autoit]
For $i = 1 To $ar[0]
~~~~~~~~~~~~~~~~~~~~^
C:\Dokumente und Einstellungen\Fabian\Desktop\DragRacer\DragRacer3 T 1.2.au3(72,26) : ERROR: $ar: undeclared global variable.
For $i = 1 To $ar[0]Die Variable $ar hast Du ja gar nicht definiert. In Deinem Script müssten das entsprechend $IA1, $IA2 und/oder $IA3 sein, da diese ja die zu prüfenden Strings enthalten.
-
Weiß nicht, wofür ich es gebrauchen könnte. Ist aber ein lustiger Effekt. Kann man die Desktopsperre nicht aber mit BlockInput() oder ähnlichen Funktionen effektiver gestalten?
-
Ich habe eben gemerkt, dass es nicht gehen kann. Sorry, dass ich Dich verwirrt habe. Zuhause habe ich in einem Script so was mal gelöst, aber ich kann mich nicht erinnern und bin jetzt auf der Arbeit.
-
Du hast echt massig Auswahl, dies zu bewerkstelligen:
1. Standardlesezeichen des FF entsprechend einstellen (simpel)
2. Erweiterung mit integriertem Sitzungsmanager (Vorteil: Ist direkt in FF integriert)
3. Run(<Pfad zum Firefox> & "firefox.exe https://autoit.de/www.google.ch https://autoit.de/www.spiegel.de") (Man ruft einfach den FF auf und gibt als Parameter die in Tabs zu öffnenden Seiten an)
4. Ähnliches wie in Punkt 3 nur mit eine Batchdatei
5. FF-UDF von Stilgar (Für den Fall fast zu viel)
6. Deine Variante (Umständlich, da der FF so was eigentlich wirklich mitbringt)Du hast die Wahl
-
Ich mag völlig falsch liegen, aber hilft das:
[autoit]Case $msg = GUICtrlRead($tab1,1)
[/autoit]Wenn mit advanced mode der GUIEventMode gemeint ist, sollte das die ControlID des Tabs sein. Ich fische jetzt auch ein wenig im Trüben, aber es könnte den Versuch wert sein.
-
Ich habe nicht so viel Ahnung von der IE.au3, aber sollte _IEAction nicht so etwas mit der Aktion "focus" bewirken? Ein wenig Suche in der Hilfe sollte da ausreichen.
-
Wenn Du nicht im advanced mode, auf den die Hilfe bei GuiCtrlCreateTabItem verweist, bist, müsste doch einfach Case $msg = $tab1 klappen, oder?
Ohne Script ist das ziemlich schwer.