Ich bin dabei.
Beiträge von Oscar
-
-
Hast Du mein Script (Post 14) schonmal ausprobiert?
-
@hessebou: Ich habe mal Dein Script etwas geändert:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
;////////////////////////////////// Includes ///////////////////////////////////////
#include <GUIConstants.au3>
#include <file.au3>;////////////////////////////////// Funktionen /////////////////////////////////////
[/autoit] [autoit][/autoit] [autoit]
Func _query()
Dim $IP
;///////////////////////////// Pingen der einzelnen Computer /////////////////////////////////
_FileReadToArray( $File, $IP ) ;Alles in ein Array einlesen
Dim $Zaehler = 50
for $i=1 to $IP[0]
$x = $Zaehler+30
$Zaehler = $x
$GUI_Main_Tab_Uebersicht_Query_IP = Ping( $IP[$i], 250 )
GUICtrlSetData( $GUI_Main_Tab_Uebersicht_Progress,( $i*100 )/( $Array_Anzahl[0]-1 ) )
If $GUI_Main_Tab_Uebersicht_Query_IP > 0 Then
GUICtrlSetImage($aIcon[$i], @SystemDir & "\shell32.dll", 22);ok
Else
GUICtrlSetImage($aIcon[$i], @SystemDir & "\shell32.dll", 200);net da
EndIf
Next
Sleep(1000)
GUICtrlSetData ( $GUI_Main_Tab_Uebersicht_Progress,0 )
$Zaehler = 50
$IP = ""
EndFuncFunc _read_file()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Dim $IP
_FileReadToArray( $File, $IP )
ReDim $aIcon[$IP[0]+1]
;////////////////////////// Auslesen der Textdatei um alle IP's zubekommen //////////////////
Dim $Zaehler = 50
for $i=1 to $IP[0]
$x = $Zaehler+30
$Zaehler = $x
GUISwitch($GUI_Main, $GUI_Main_Tabitem_Uebersicht)
$aIcon[$i] = GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 19, 15, $x, 15, 15 )
GUICtrlCreateLabel( $IP[$i], 50, $x )
GUICtrlCreateLabel( "--------------------------------------", 50, $x+10 )
Next
$IP = ""
EndFunc
;//////////////////////////////// Variablen ////////////////////////////////////////
Dim $File = "ip.txt", $aIcon[1]
Dim $Progressbar_Ubersicht = 0
Dim $Array_Anzahl
_FileReadToArray( $File , $Array_Anzahl )
;~ Dim $IP
;~ _FileReadToArray( $File, $IP )
Dim $GUI_Main_Tab_Uebersicht_Progress;//////////////////////////////// F5 als Aktualisierung zulassen //////////////////
[/autoit] [autoit][/autoit] [autoit]
HotKeySet( "{F5}","_query" );/////////////////////////////// Main GUI erstellen ////////////////////////////////
[/autoit] [autoit][/autoit] [autoit]
$GUI_Main = GUICreate( "VHS - Adminkonsole", 200,@DesktopHeight-60, @DesktopWidth-200, -1, $WS_POPUP )$GUI_Main_Btn_Minimize = GUICtrlCreateButton( " - ", 170, 5, 15, 15 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$GUI_Main_Btn_Exit = GUICtrlCreateButton( " x ", 185, 5, 15, 15 )
$GUI_Main_Tab = GUICtrlCreateTab( 0,0, 200,@DesktopHeight-60 )
$GUI_Main_Tabitem_Uebersicht = GUICtrlCreateTabitem ( "Übersicht" )
_read_file()
_query()
$GUI_Main_Tab_Uebersicht_Progress = GUICtrlCreateProgress( 5, @DesktopHeight-150, 185, 10, $PBS_SMOOTH)
$GUI_Main_Tab_Uebersicht_Btn_refresh = GUICtrlCreateButton( "Aktualisieren", 5, @DesktopHeight-100 )
GUICtrlCreateTabItem("")$GUI_Main_Tabitem_Konfig = GUICtrlCreateTabitem ( "Konfiguration" )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$GUI_Main_Tab_Konfig_Edit_IP = GUICtrlCreateEdit(FileRead( $File ), 5, 30, 190, 700 )
$GUI_Main_Tab_Konfig_Btn_Save = GUICtrlCreateButton( "Speichern", 5, 750)
GUICtrlCreateTabItem("");/////////////////////////////// Zeige Main Gui ////////////////////////////////////
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW)While 1
[/autoit]
$msg = GUIGetMsg()
Switch $msg
Case $GUI_Main_Btn_Exit
GUIDelete()
Exit
Case $GUI_Main_Btn_Minimize
Case $GUI_Main_Tab_Konfig_Btn_Save
FileOpen( $File, 2 )
FileWrite( $File, GUICtrlRead( $GUI_Main_Tab_Konfig_Edit_IP ) )
FileClose( $File )
_read_file()
_query()
Case $GUI_Main_Tab_Uebersicht_Btn_refresh
GUICtrlSetState( $GUI_Main_Tab_Uebersicht_Btn_refresh, $GUI_DISABLE )
_query()
GUICtrlSetState( $GUI_Main_Tab_Uebersicht_Btn_refresh, $GUI_ENABLE )
EndSwitch
Wend -
Dann solltest Du vorher mit GUISwitch($GUI_Main, $GUI_Main_Tabitem_Uebersicht) zu dem jeweiligen Tab wechseln. Dann werden die Icons dort erstellt.
Aus der Hilfe:
Remarks
Many of the GUI specific functions work on the "current" window - this is usually the last window created with GUICreate. This function allows you to make another window "current". That's does not mean that the referenced window will become active. You have to use WinActivate.
Using the tabitemID allow to create new control in the specified tabitem control. Don't forget to close tabitem definition GuiCtrlCreateTabItem("")
-
Erstelle die Icons und Label gleich am Anfang, nicht erst in den Funktionen.
In den Funktionen benutzt Du dann GUICtrlSetData bzw. GUICtrlSetImage zum ändern der Daten/Icons. -
Wenn ich Dein Beispiel etwas abändere, dann geht alles:
[autoit]
[/autoit][autoit][/autoit][autoit]
#include<IE.au3>
#include<WindowsConstants.au3>
#include<GUIConstantsEx.au3>
$oIE = _IECreateEmbedded()
$gui = GUICreate("Flckr",540,540,Default,Default,$WS_SIZEBOX,$WS_CLIPCHILDREN)
GUICtrlCreatePic("c:\WINDOWS\Angler.bmp",0,0,540,540)
GUICtrlSetResizing(-1, 32 + 64 + 1)
GUICtrlCreateButton("TEST",0,0,200,20)
GUICtrlSetState(-1,$GUI_ONTOP)
GUICtrlCreateObj($oIE,30,30,480,460)
GUICtrlSetState(-1,$GUI_ONTOP)
GUICtrlSetResizing(-1, 32 + 64 + 1)
GUISetState()
_IENavigate($oIE,"www.google.de",0)#region - GUI SwitchLoop
[/autoit]
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
#endregionHintergrundbild, Button und Resizing. Alles ok!
-
Beim 'Paste' hier ins Board musst Du in den Quellcode-Modus wechseln, dann klappt das auch mit den Includes.
-
Es gibt sie also. Aber die Icons selbst sehen vermutlich anders aus, oder?
Ich werd einfach alle benötigten extrahieren und extra speichern.Trotzdem Danke für den Link.
-
Gibt es eigentlich in allen Windowsversionen die shell32.dll?
Und sind die Icons, die man daraus benutzen/anzeigen kann, bei allen Versionen gleich?Hab jetzt leider keine Möglichkeit das zu testen.
-
Ich fürchte, es sieht schlecht aus mit der Umsetzung meines Programms 'Rekursive FileList' in ein TreeView...
-
Ok, die Anzahl usw. habe ich ja bereits in einem Array, aber wie kann ich den Verzeichnisbaum schneller erstellen als mit Add und AddChild?
-
Ich habe noch eine Lösung für teh_hahn:
[autoit]
[/autoit]
Local Const $I_MODE = 131
If StringInStr('1, 2, 9, 10, 17, 18, 25, 26, 33 ,34, 41, 42, 65, 66, 72, 74, 129, 130, 137, 138', $I_Mode) = 0 Then Return SetError(5, 0, 0) -
Sieht gut aus! Kann ich bestimmt mal brauchen.
Du solltest aber noch eine Abfrage einbauen, ob es den übergebenen Key überhaupt gibt.
-
Bei mir funktioniert Dein Script nur mit einer anderen Seite (mein IE mag AutoIt.de nicht), dann allerdings flackert es auch.
Ich habe aber eine Lösung dafür:
[autoit]
$WS_CLIPCHILDREN
[/autoit]
$gui = GUICreate("Flckr",520,520,Default,Default,$WS_SIZEBOX,$WS_CLIPCHILDREN) -
Ich muss doch aber irgendwie den Pfad (also die einzelnen Verzeichnisse) generieren. Da ist das Beispiel gar nicht so unmöglich.
-
Ich habe gerade ein wenig mit TreeView experimentiert und musste feststellen, dass das erstellen eines recht umfangreichen TreeViews sehr lange dauert.
Dieses Beispielscript benötigt bei mir (Ich habe einen Rechner mit "AMD Athlon 64 X2 6000+"-CPU) rund 16 Minuten:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GuiConstantsEx.au3>
#include <GuiTreeView.au3>
#include <GuiImageList.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]$Debug_TV = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work
[/autoit] [autoit][/autoit] [autoit]Example_Internal()
[/autoit] [autoit][/autoit] [autoit]Func Example_Internal()
[/autoit] [autoit][/autoit] [autoit]Local $hItem, $hImage, $iImage, $hTreeView, $hItem1, $hItem2, $hItem3, $hItem4, $start, $end, $a, $b, $c, $d, $e
[/autoit] [autoit][/autoit] [autoit]
Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES)
GUICreate("(Internal) TreeView Add Child", 400, 300)$hTreeView = GUICtrlCreateTreeView(2, 2, 396, 268, $iStyle, $WS_EX_CLIENTEDGE)
[/autoit] [autoit][/autoit] [autoit]
GUISetState()$hImage = _GUIImageList_Create (16, 16, 5, 3)
[/autoit] [autoit][/autoit] [autoit]
_GUIImageList_AddIcon ($hImage, "shell32.dll", 110)
_GUIImageList_AddIcon ($hImage, "shell32.dll", 131)
_GUIImageList_AddIcon ($hImage, "shell32.dll", 165)
_GUIImageList_AddIcon ($hImage, "shell32.dll", 168)
_GUIImageList_AddIcon ($hImage, "shell32.dll", 137)
_GUIImageList_AddIcon ($hImage, "shell32.dll", 146)
_GUICtrlTreeView_SetNormalImageList ($hTreeView, $hImage)
$start = TimerInit()
_GUICtrlTreeView_BeginUpdate ($hTreeView)
For $a = 1 To 20
$hItem = _GUICtrlTreeView_Add ($hTreeView, 0, StringFormat("[%02d] New Item", $a))
For $b = 1 To 20
$hItem1 = _GUICtrlTreeView_AddChild ($hTreeView, $hItem, StringFormat("[%02d] New Child 1", $b))
For $c = 1 To 20
$hItem2 = _GUICtrlTreeView_AddChild ($hTreeView, $hItem1, StringFormat("[%02d] New Child 2", $c))
For $d = 1 To 20
$hItem3 = _GUICtrlTreeView_AddChild ($hTreeView, $hItem2, StringFormat("[%02d] New Child 3", $d))
For $e = 1 To 20
$hItem4 = _GUICtrlTreeView_AddChild ($hTreeView, $hItem3, StringFormat("[%02d] New Child 4", $e))
Next
Next
Next
Next
Next
_GUICtrlTreeView_EndUpdate ($hTreeView)
$end = Round(TimerDiff($start)/1000, 2)
MsgBox(0,'', $end & ' sek.'); Loop until user exits
[/autoit]
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>Example_InternalGibt es da irgendwelche Möglichkeiten die Zeit erheblich zu reduzieren?
Mit erheblich meine ich allerdings auch erheblich, also so in den Bereich von 5-10 sek. zu drücken. -
Das ist ein ListView keine ListBox. (Hab ich selbst schon verwechselt)
Dafür gibt es in den neuen UDFs aber eine gute Funktion:
[autoit]
[/autoit]
_GUICtrlListView_AddArray()Die benutze ich bei meinem Programm (Rekursive Filelist) und die funktioniert sehr gut.
-
Danke für die Blumen!
Das mit dem TreeView muss ich mal sehen. Ich weiss nicht, ob AutoIt schnell genug dafür ist. Bei mir auf C:\ liegen mittlerweile 57.735 Dateien in 5617 Verzeichnissen.
Muss da mal ein paar Tests anstellen. Sollten die positiv ausfallen könnte ich mir auch ein TreeView vorstellen. -
Ein neuer Tag --- eine neue Version.
Version 1.4.0.3 (siehe oben)
-
Was hast Du denn bisher? Zeig mal Dein Script.