Beiträge von subzero007
-
-
Hallo,
ich möchte gerne die Dateiliste aus einer Listview in einer anderen listview items Erzeugen und die Aktuellste datei in den verzeichnissen anzeigen lassen,
aber irgendwie läuft er in einer Schleife zeigt immer die Gleiche an was mache ich falsch?So sieht in etwa listview1 aus:
c:\ordner\test.1
c:\ordner\test.2
c:\ordner\test.3
c:\ordner\test.4
c:\ordner\test.5
c:\ordner\test.6
c:\ordner\test.7
c:\ordner\test.8
c:\ordner\test.9
c:\ordner\test.10
c:\ordner\test.11
c:\ordner1\test.1
c:\ordner1\test.2
c:\ordner1\test.3
c:\ordner1\test.4
c:\ordner1\test.5
c:\ordner1\test.6
c:\ordner1\test.7
c:\ordner1\test.8
c:\ordner1\test.9
c:\ordner1\test.10
c:\ordner1\test.11dann will ich die Aktuellste datei darstellen in listview2:
c:\ordner1\test.4
c:\ordner\test.2Hier mein Code:
[autoit]Func _checknewest()
[/autoit][autoit][/autoit][autoit]
_GUICtrlListView_DeleteAllItems($LVNP)
Local $icount = _GUICtrlListView_GetItemCount($LV)For $i = 0 To $icount - 1
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
$ListViewText = _GUICtrlListView_GetItemTextArray($LV, $i)
$ListViewText[1] = StringLeft($ListViewText[1], StringInStr($ListViewText[1], '\', 0, -1))
$aFilelist = _FileListToArray($imagepath & $ListViewText[1])
Dim $aFiledate[$aFilelist[0]+1]
For $i = 1 To $aFilelist[0]
$aFiledate[$i] = FileGetTime($imagepath & $ListViewText[1] & '\' & $aFilelist[$i], 0, 1)GUICtrlCreateListViewItem($ListViewText[1] & $aFilelist[_ArrayMaxIndex($aFiledate, 1)], $LVNP)
[/autoit]
Next
Next
EndFuncGruß
SubZero -
Hey,
kann mir jemand beim StringSplit helfen
will eine datei bearbeiten
\\server\share\order1\dummy.txt
\\server\share\order2\test.log
\\server\share\order3\lo.txt
\\server\share\ordner\order4.txtAls ergebnis wollte ich:
\\server\share\order1\
\\server\share\order2\
\\server\share\order3\
\\server\share\ordner\Also vom ersten "\" von rechts alles abschneiden
Vielen Dank
SubZero -
Hey,
es ist vollbracht es funktioniert

danke an alle
jetzt kann ich beruhigt mein wochenende geniessen 
-
Nein die Log datei ist richtig die ist leer!
Und wenn ich eine leere datei habe kommt er zu einem fehler und nicmmt den inhalt vom array vom vorgänger,
also muss ich das irgendwie abfragen weiss aber nicht wie, oder ich muss mein array löschen?? -
Hey,
da habe ich mich wohl falsch ausgedrück
ja ich habe den fehler gefunden weiss aber nicht wie ich den behebe??Mein array ist falsch und die datei ist leer???
ich vermute er nimmt das allte arry wenn die datei leer ist??
Bin ja nicht so fit drin aber ist meiner vermutung eine idee?Gruß
SubZero -
So,
jetzt zum ergebeniss
log datei geprüft alles richtig.und habe mal ein:
[autoit]_arraydisplay($ain)
[/autoit]
Gemacht:
und siehe da array werte Falsch : und mein text file leer da kein user angemeldt
[0]|10
[1]|BENUTZERNAME|SITZUNGSNAME|KENNUNG|STATUS|LEERLAUFZEIT|ANMELDEZEIT
[2]|userc|rdp-tcp#748|6|Aktiv|5:52|06.08.2009 05:29
[3]|userd|rdp-tcp#776|9|Aktiv|.|06.08.2009 20:34
[4]|userf|rdp-tcp#778|5|Aktiv|1|07.08.2009 06:02
[5]|userg|rdp-tcp#780|2|Aktiv|3:54|07.08.2009 06:13
[6]|userm|rdp-tcp#788|1|Aktiv|1|07.08.2009 11:13
[7]|usert|rdp-tcp#790|4|Aktiv|23|07.08.2009 12:02
[8]|uservvv|rdp-tcp#791|8|Aktiv|24|07.08.2009 12:28
[9]|usern|rdp-tcp#792|7|Aktiv|9|07.08.2009 13:05
[10]|user|rdp-tcp#793|10|Aktiv|31|07.08.2009 13:07Ich wollte mich nochmal offiziel bei euch allen bedanken für eure hilfe
Gruß
SubZero -
So,
an der datei liegt es nicht alles einzelnt geprüft mein bauchgefühl sagtr mir das es am array liegt
habe was von Prog@ndy gefunden entweder klappt es damit auch nicht oder ich ruffe es falsch auf:so jetzt zu meiner frage ist die _ArrayEmpty($aIn[0]) aufruf in meiner func check() richtig??
[autoit]Func check()
[/autoit][autoit][/autoit][autoit]$ListViewText = _GUICtrlListView_GetItemTextArray($ListViewhost)
[/autoit][autoit][/autoit][autoit]
if @error then Return
FileDelete(@SystemDir & '\ts.log')
Ping($ListViewText[1], 1) ; Host anpingen
If Not @error Then
$TSUSER = RunWait(@ComSpec & " /c " & @SystemDir & '\query.exe user /server:' & $ListViewText[1] & " > " & @SystemDir & '\ts.log', "", @SW_HIDE)
;Sleep(5000)
ConsoleWrite(@SystemDir & '\query.exe user /server:' & $ListViewText[1] & " > " & @SystemDir & '\ts.log' & @crlf)
_FileReadToArray(@SystemDir & '\ts.log', $aIn)For $i = 1 To $aIn[0]
[/autoit][autoit][/autoit][autoit]
$aIn[$i] = StringReplace(StringStripWs($aIn[$i],7)," ","|",5)
Next
;FileWriteFromArray("C:\serverts_out.txt",$aIn,2)
For $i = 2 To $aIn[0] ; bei Index 2 starten, dann ist die erste Zeile weg
$item1 = GUICtrlCreateListViewItem($ListViewText[1] & '|' & $aIn[$i], $listview2)
_ArrayEmpty($aIn[0])
;$item1 = GUICtrlCreateListViewItem($aIn[$i], $listview2)
NextEndIf
[/autoit][autoit][/autoit][autoit]
EndFuncFunc _ArrayEmpty(ByRef $array)
[/autoit]
; Prog@ndy
If Not isArray($array) Then Return SetError(1,0,0)
Switch UBound($array,0)
Case 1
Dim $array[UBound($array,1)]
Case 2
Dim $array[UBound($array,1)][UBound($array,2)]
Case 3
Dim $array[UBound($array,1)][UBound($array,2)][UBound($array,3)]
Case Else
Return SetError(2,0,0)
EndSwitch
Return 1
EndFunc -
Hey,
Andy habe auch schon versucht für jeden server eine datei erzeugt also und die daten die mein Query erzeugt sind ok,
Hast du noch eine idee wo der fehler liegen könnte?PS:sehr schönes Script!!! ist das dein ernst oder ironisch gemeint ich wurde noch nie wegen mein Script hier gelobt

Gruß
SubZero -
Hey,
ok hier was ich vorhabe_:Ich will wissen und auswerten wer alles auf einem terminal server angemeldet ist..(Funktioniert bereits leider wenn ich mehrer server hintereinander auswerte kommen doppelte einträge)
Ich will den server für anmeldung sperren.(Funktioniert bereits)
Ich will den server für anmeldung entsperren.(Funktioniert bereits)
Ich will die anmeldung Disconecten und resseten können .(Funktioniert bereits)
Nachricht an einen oder mehrer user auf dem terminal server verschicken(funktioniert)Hier mein Code:
Spoiler anzeigen
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[/autoit] [autoit][/autoit] [autoit]
#AutoIt3Wrapper_outfile=TS-Manager.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#Include <GuiListView.au3>
#include <Array.au3>
#include <File.au3>#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$Form1_1 = GUICreate("TSManger", 850, 650, 231, 154)
[/autoit] [autoit][/autoit] [autoit]
GUISetBkColor(0xA6CAF0)
$ListViewhost = GUICtrlCreateListView("Hostname", 32, 32, 170, 430)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150)
;$ListView2 = GUICtrlCreateListView("Hostname|BENUTZERNAME|SITZUNGSNAME|KENNUNG STATUS|LEERLAUFZEIT|ANMELDEZEIT", 224, 32, 564, 430)
$ListView2 = GUICtrlCreateListView("Hostname|BENUTZERNAME|SITZUNGSNAME|KENNUNG|STATUS|LEERLAUFZEIT|ANMELDEZEIT", 224, 32, 580, 430)$Hostladen = GUICtrlCreateButton("Hostladen", 32, 14, 75, 17, $WS_GROUP)
[/autoit] [autoit][/autoit] [autoit]
$Search = GUICtrlCreateButton("Check", 32, 464, 75, 17, $WS_GROUP)
;$Searchall = GUICtrlCreateButton("Check All", 32, 480, 75, 17, $WS_GROUP)
$Reset = GUICtrlCreateButton("Reset", 224, 464, 75, 17, $WS_GROUP)
;$resetall = GUICtrlCreateButton("Reset-all", 224, 480, 75, 17, $WS_GROUP)
$Disconnect = GUICtrlCreateButton("disconnect", 305, 464, 75, 17, $WS_GROUP)
;$disconnectall = GUICtrlCreateButton("disconnect-all", 305, 480, 75, 17, $WS_GROUP)
$MSG = GUICtrlCreateButton("MSG", 480, 482, 75, 17, $WS_GROUP)
$MS = GUICtrlCreateButton("MSG-All", 560, 482, 75, 17, $WS_GROUP)
$stop = GUICtrlCreateButton("Stop", 125, 14, 75, 17, $WS_GROUP)
;$Export = GUICtrlCreateButton("Export", 614, 464, 75, 17, $WS_GROUP)$Laden = GUICtrlCreateButton("LADEN", 695, 480, 75, 17, $WS_GROUP)
[/autoit] [autoit][/autoit] [autoit]
$logonenable = GUICtrlCreateButton("Logonenable", 32, 497, 75, 17, $WS_GROUP)
$Logondisable = GUICtrlCreateButton("Logondisable", 32, 511, 75, 17, $WS_GROUP)
$Edit1 = GUICtrlCreateEdit("", 480, 500, 300, 133)GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]
#EndRegion ### END Koda GUI section ###Global $aIn[1]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
While 1
_install()
Sleep(20)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Hostladen
_Load()
case $Laden
msg()
Case $Search
_GUICtrlListView_DeleteAllItems($ListView2)
Sleep(1000)
check()
case $Disconnect
_disconnect()
Case $Reset
_reset()
Case $logonenable
_enable()
Case $Logondisable
_dis()
Case $MSG
_msgsend()
Case $ms
_msgsendall()
EndSwitch
WEndfunc _msgsendall()
[/autoit] [autoit][/autoit] [autoit]$aSel = _GUICtrlListView_GetSelectedIndices($ListView2, True)
[/autoit] [autoit][/autoit] [autoit]
For $i = 1 To $aSel[0]
$var1 = _GUICtrlListView_GetItemText($ListView2, $aSel[$i], 1)
$var2 = _GUICtrlListView_GetItemText($ListView2, $aSel[$i], 0)
; MsgBox(0, "", $var1 & @CRLF & $var2)
$TSMSG = Run(@ComSpec & " /c " & @SystemDir & '\msg.exe * /server:' & $var2 & ' ' & GuiCtrlRead($Edit1) & '', "", @SW_HIDE)
Next
EndFuncFunc _dis()
[/autoit] [autoit][/autoit] [autoit]
$ListViewText = _GUICtrlListView_GetItemTextArray($ListViewhost)
Ping($ListViewText[1], 100) ; Host anpingen
If Not @error Then
Run(@ComSpec & " /c " & @SystemDir & '\psexec.exe \\' & $ListViewText[1] & ' change logon /disable', "", @SW_HIDE)
EndIf
EndFuncFunc _enable()
[/autoit] [autoit][/autoit] [autoit]
$ListViewText = _GUICtrlListView_GetItemTextArray($ListViewhost)
Ping($ListViewText[1], 100) ; Host anpingen
If Not @error Then
Run(@ComSpec & " /c " & @SystemDir & '\psexec.exe \\' & $ListViewText[1] & ' change logon /enable', "", @SW_HIDE)
EndIf
EndFuncFunc msg()
[/autoit] [autoit][/autoit] [autoit]
GuICtrlSetData($Edit1, "")
$var = FileOpenDialog("", @ScriptDir & "\", "Text (*.txt)", 1 + 4 ) ; hat schon gestimmt aber :
$txt = FileRead($var) ; Die Ausgewählte datei mus erst gelesen werden
GuICtrlSetData($Edit1, $txt)EndFunc
[/autoit] [autoit][/autoit] [autoit]func _msgsend()
[/autoit] [autoit][/autoit] [autoit]
$aSel = _GUICtrlListView_GetSelectedIndices($ListView2, True)
For $i = 1 To $aSel[0]
$var1 = _GUICtrlListView_GetItemText($ListView2, $aSel[$i], 1)
$var2 = _GUICtrlListView_GetItemText($ListView2, $aSel[$i], 0)
;MsgBox(0, "", $var1 & @CRLF & $var2)
$TSMSG = Run(@ComSpec & " /c " & @SystemDir & '\msg.exe '& $var1 & ' /server:' & $var2 & ' ' & GuiCtrlRead($Edit1) & '', "", @SW_HIDE)
ConsoleWrite(@ScriptDir & '\msg.exe '& $var1 & ' /server:' & $var2 & GuiCtrlRead($Edit1))
Next
EndFuncFunc check()
[/autoit] [autoit][/autoit] [autoit]$ListViewText = _GUICtrlListView_GetItemTextArray($ListViewhost)
[/autoit] [autoit][/autoit] [autoit]
if @error then Return
Ping($ListViewText[1], 1) ; Host anpingen
If Not @error Then
$TSUSER = RunWait(@ComSpec & " /c " & @SystemDir & '\query.exe user /server:' & $ListViewText[1] & " > " & @SystemDir & "\" & $ListViewText[1] & '.log', "", @SW_HIDE)
ConsoleWrite(@SystemDir & '\query.exe user /server:' & $ListViewText[1] & " > " & @SystemDir & "\" & $ListViewText[1] & '.log')
Sleep(1000)
_FileReadToArray(@SystemDir & '\' & $ListViewText[1] & '.log', $aIn)For $i = 1 To $aIn[0]
[/autoit] [autoit][/autoit] [autoit]
$aIn[$i] = StringReplace(StringStripWs($aIn[$i],7)," ","|",5)
Next
;FileWriteFromArray("C:\serverts_out.txt",$aIn,2)
For $i = 2 To $aIn[0] ; bei Index 2 starten, dann ist die erste Zeile weg
$item1 = GUICtrlCreateListViewItem($ListViewText[1] & '|' & $aIn[$i], $listview2)
;$item1 = GUICtrlCreateListViewItem($aIn[$i], $listview2)
NextEndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndFuncfunc _ErsetzeLeerzeichenDurchPipe($zeile)
[/autoit] [autoit][/autoit] [autoit]
$zeile=stringstripws($zeile,4) ;alle aufeinanderfolgenden leerzeichen auf eins reduzieren
if stringleft($zeile,1)=" " then $zeile=stringtrimleft($zeile,1) ; erstes leerzeichen löschen
$zeile=stringreplace($zeile," ","|",5) ; leerzeichen mit pipes ersetzen
return $zeile
endfuncFunc _Load() ; Datenbank-Datei laden
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_DeleteAllItems($ListViewhost) ; Das Handle eben noch bestimmen (s. Anfang des Threads)Local $sItem
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$FileOpenDialog = FileOpenDialog("Pc Liste Wählen", @ScriptDir & "\", "Pc Liste (*.txt;*.csv)", 1 + 4)
Local $hFile = FileOpen($FileOpenDialog, 0) ; Datei zum lesen öffnen
If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
_GUICtrlListView_BeginUpdate($ListViewhost) ; Listview sperren
While True ; Endlosschleife
$sItem = FileReadLine($hFile) ; Zeile aus der Datei lesen
If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen
GUICtrlCreateListViewItem($sItem, $ListViewhost) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
WEnd
_GUICtrlListView_EndUpdate($ListViewhost) ; Listview wieder freigeben
FileClose($hFile) ; Datei schließen
EndIf
EndFunc ;==>_LoadFunc _disconnect()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$aSel = _GUICtrlListView_GetSelectedIndices($ListView2, True)
For $i = 1 To $aSel[0]
$var1 = _GUICtrlListView_GetItemText($ListView2, $aSel[$i], 2)
$var2 = _GUICtrlListView_GetItemText($ListView2, $aSel[$i], 0)
;MsgBox(0, "", $var1 & @CRLF & $var2)
$TSDIS = Run(@ComSpec & " /c " & @SystemDir & '\tsdiscon.exe '& $var1 & ' /server:' & $var2, "", @SW_HIDE)
ConsoleWrite(@SystemDir & '\tsdiscon.exe '& $var1 & ' /server:' & $var2)
Next
EndFunc
Func _disconnectall()
For $i = 0 To _GUICtrlListView_GetItemCount($Listview2) -1;hier zählst du die einträge
$var1 = _GUICtrlListView_GetItemText($ListView2, $i, 2)
$var2 = _GUICtrlListView_GetItemText($ListView2, $i, 0)
$TSDISall = Run(@ComSpec & " /c " & @SystemDir & '\tsdiscon.exe '& $var1 & ' /server:' & $var2, "", @SW_HIDE)
Next
EndFuncFunc _reset()
[/autoit] [autoit][/autoit] [autoit]
$aSel = _GUICtrlListView_GetSelectedIndices($ListView2, True)
For $i = 1 To $aSel[0]
$var1 = _GUICtrlListView_GetItemText($ListView2, $aSel[$i], 2)
$var2 = _GUICtrlListView_GetItemText($ListView2, $aSel[$i], 0)
;MsgBox(0, "", $var1 & @CRLF & $var2)
$TSREST = Run(@ComSpec & " /c " & @SystemDir & '\reset.exe session '& $var1 & ' /server:' & $var2, "", @SW_HIDE)
Next
EndFuncFunc _install()
[/autoit] [autoit][/autoit] [autoit]
FileInstall('F:\autoit\entwicklung\ts\msg.exe', 'c:\windows\system32\msg.exe')
FileInstall('F:\autoit\entwicklung\ts\psexec.exe', 'c:\windows\system32\psexec.exe')
FileInstall('F:\autoit\entwicklung\ts\regapi.dll', 'c:\windows\system32\regapi.dll')
FileInstall('F:\autoit\entwicklung\ts\change.exe', 'c:\windows\system32\change.exe')
FileInstall('F:\autoit\entwicklung\ts\query.exe', 'c:\windows\system32\query.exe')
FileInstall('F:\autoit\entwicklung\ts\quser.exe', 'c:\windows\system32\quser.exe')
FileInstall('F:\autoit\entwicklung\ts\reset.exe', 'c:\windows\system32\reset.exe')
FileInstall('F:\autoit\entwicklung\ts\tsdiscon.exe', 'c:\windows\system32\tsdiscon.exe')EndFunc
[/autoit]Das einzige Problem was ich noch habe ist, die einträge in meiner listview die Doppelt erscheinen, wenn ich gleich hintereinander die Fuc _check() ausführe.
wenn ich aber jedesmal das Programm Schliesse und nur einmal das jeden server einzeln auslese dann ist alles ok. ich will ja aber nicht bei jedem terminal server auslessen
die applikation neustarten.so soll die ausgabe in der listview sein:
Die ausgabe soll so sein:
Serverxx|user_000211|rdp-tcp#122|2|Aktiv|4|05.08.2009 06:17
serverxx|group_0013rdp-tcp#123|3|Aktiv|2:41|05.08.2009 06:59Hier die datei die ich verarbeite um es in der listview darzustellen:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Würde mich über jede hilfe freuen:
Gruß
SubZero -
Und wie würde ich:
[autoit]_ArrayUnique
[/autoit]
in meinem script einsetzen??Danke
SubZero -
Hey,
habe eine problem ich erzeuge eintrage in einer listview aber wenn ich diese fuktion öfter hintereinander nutze gibt er mir doppelte werte raus?
[autoit]
Kann sowas am array liegen??
Habe auch schon Sleep zwischen gesetzt leider ohne erfolg
Hat jemand eine idee?Func check()
[/autoit][autoit][/autoit][autoit]
_GUICtrlListView_DeleteAllItems($ListView2)
$ListViewText = _GUICtrlListView_GetItemTextArray($ListViewhost)
if @error then Return
Ping($ListViewText[1], 1) ; Host anpingen
If Not @error Then
$TSUSER = RunWait(@ComSpec & " /c " & @SystemDir & '\query.exe user /server:' & $ListViewText[1] & " > " & @SystemDir & "\" & $ListViewText[1] & '.log', "", @SW_HIDE)
ConsoleWrite(@SystemDir & '\query.exe user /server:' & $ListViewText[1] & " > " & @SystemDir & "\" & $ListViewText[1] & '.log')
Sleep(1000)
_FileReadToArray(@SystemDir & '\' & $ListViewText[1] & '.log', $aIn)For $i = 1 To $aIn[0]
[/autoit][autoit][/autoit][autoit]
$aIn[$i] = StringReplace(StringStripWs($aIn[$i],7)," ","|",5)
Next
;FileWriteFromArray("C:\serverts_out.txt",$aIn,2)
For $i = 2 To $aIn[0] ; bei Index 2 starten, dann ist die erste Zeile weg
$item1 = GUICtrlCreateListViewItem($ListViewText[1] & '|' & $aIn[$i], $listview2)
;$item1 = GUICtrlCreateListViewItem($aIn[$i], $listview2)
NextEndIf
[/autoit]
EndFuncHier die Datei:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Die ausgabe soll so sein:
Serverxx|user_000211|rdp-tcp#122|2|Aktiv|4|05.08.2009 06:17
serverxx|group_0013rdp-tcp#123|3|Aktiv|2:41|05.08.2009 06:59Danke SubZero
-
Hey,
weil er die einträge in listview2 erzeugt die ich aus der listviewhost einlese eine idee? -
Hey,
nach der änderung:
[autoit]Ping($ListViewText[$i], 100) ; Host anpingen
[/autoit]
stürtzt das script ab mit fehlermeldung:
Ping($ListViewText[$i], 100)
Ping(^ ERROR
??? -
Hey,
ich glaube es langsam zu verstehen aber was mache ich hier falsch ?
[autoit]#include <GuiListView.au3>
[/autoit][autoit][/autoit][autoit]
#include <ListViewConstants.au3>
#include <GuiConstantsEx.au3>GUICreate('ListView Get Item Text', 400, 300)
[/autoit]
$hListView = GUICtrlCreateListView('Hostname|BENUTZERNAME|SITZUNGSNAME', 2, 2, 394, 268, BitOR($LVS_REPORT, $LVS_SINGLESEL));hier erstellst du die Listview
GUISetState()
For $i = 0 To 9
GUICtrlCreateListViewItem(Random(100, 999, 1) & '|' & Random(1000, 9999, 1) & '|' & Random(10000, 99999, 1), $hListView);hier die einträge
Next
$hButton = GUICtrlCreateButton('Alle SITZUNGSNAMEN anzeigen', 100, 275, 220, 22);Button ist klar
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $hButton
; For $i = 0 To _GUICtrlListView_GetItemCount($hListview) -1;hier zählst du die einträge
; MsgBox(0, 'Item ' & $i, _GUICtrlListView_GetItemText($hListView, $i, 0 & 2));MSG boX
$ListViewText = _GUICtrlListView_GetItemTextArray($hListView)
$var1 = _GUICtrlListView_GetItemText($ListViewText[1], $i, 0);MSG boX
$var2 = _GUICtrlListView_GetItemText($ListViewText[1], $i, 2);MSG boX
MsgBox(0, "", $var1 & @crlf & $var2)
;woher weiss er das er die sitzung rausgeben soll?????
;Next
EndSwitch
WEnd
Danke
SubZero -
Ok,
[autoit]
kann mir jemand das ergänzen damit ich das verstehe??
Danke
SubZero#include <GuiListView.au3>
[/autoit][autoit][/autoit][autoit]
#include <ListViewConstants.au3>
#include <GuiConstantsEx.au3>GUICreate('ListView Get Item Text', 400, 300)
[/autoit]
$hListView = GUICtrlCreateListView('Hostname|BENUTZERNAME|SITZUNGSNAME', 2, 2, 394, 268, BitOR($LVS_REPORT, $LVS_SINGLESEL));hier erstellst du die Listview
GUISetState()
For $i = 0 To 9
GUICtrlCreateListViewItem(Random(100, 999, 1) & '|' & Random(1000, 9999, 1) & '|' & Random(10000, 99999, 1), $hListView);hier die einträge
Next
$hButton = GUICtrlCreateButton('Alle SITZUNGSNAMEN anzeigen', 100, 275, 220, 22);Button ist klar
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $hButton
For $i = 0 To _GUICtrlListView_GetItemCount($hListview) -1;hier zählst du die einträge
MsgBox(0, 'Item ' & $i, _GUICtrlListView_GetItemText($hListView, $i, 2));MSG boX
;woher weiss er das er die sitzung ausgeben soll?????
Next
EndSwitch
WEnd -
Hey,
[autoit]
dank oscar funktioniert jetzt mein Script teilweise
er verarbeitet jetzt nur das erste item hat jemand noch eine idee was ich falsch mache ??Func checkall()
[/autoit]
_GUICtrlListView_DeleteAllItems($ListView2)
Local $icount = _GUICtrlListView_GetItemCount($ListViewhost)
For $i = 0 To $icount - 1
$ListViewText = _GUICtrlListView_GetItemTextArray($ListViewhost, $i) ; <- ,$i sonst bekommst Du nur das aktuell selektierte Item
If $ListViewText[0] = 0 Then Return ; @error wird von _GUICtrlListView_GetItemTextArray() nicht gesetzt
Ping($ListViewText[1], 100) ; Host anpingen
If Not @error Then
$TSUSER = RunWait(@ComSpec & " /c " & @ScriptDir & '\query.exe user /server:' & $ListViewText[1] & " >" & @ScriptDir & '\' & $ListViewText[1] & ".log", "", @SW_HIDE)
ConsoleWrite(@ScriptDir & '\query.exe user /server:' & $ListViewText[1] & " >" & @ScriptDir & '\' & $ListViewText[1] & ".log")
_FileReadToArray(@ScriptDir & '\' & $ListViewText[1] & ".log", $aIn)
For $i = 1 To $aIn[0]
$aIn[$i] = StringReplace(StringStripWS($aIn[$i], 7), " ", "|", 5)
Next
;FileWriteFromArray("C:\serverts_out.txt",$aIn,2)
For $i = 2 To $aIn[0] ; bei Index 2 starten, dann ist die erste Zeile weg
$item1 = GUICtrlCreateListViewItem($ListViewText[1] & '|' & $aIn[$i], $ListView2)
;$item1 = GUICtrlCreateListViewItem($aIn[$i], $listview2)
Next
EndIf
Next
EndFuncDanke
SubZero -
Danke,
habe es gefunden aus der hilfe aber habe noch ein verständnis problem ??
[autoit]
kannst du es mir kurz erklätren??#include <GuiConstantsEx.au3>
[/autoit][autoit][/autoit][autoit]
#include <GuiListView.au3>Opt('MustDeclareVars', 1)
[/autoit][autoit][/autoit][autoit]$Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work
[/autoit][autoit][/autoit][autoit]_Main()
[/autoit][autoit][/autoit][autoit]Func _Main()
[/autoit][autoit][/autoit][autoit]
Local $hListView
GUICreate("ListView Get Item Text", 400, 300)
$hListView = GUICtrlCreateListView("", 2, 2, 394, 268)
GUISetState(); Add columns
[/autoit][autoit][/autoit][autoit]
_GUICtrlListView_AddColumn($hListView, "Items", 100); Add items
[/autoit][autoit][/autoit][autoit]
_GUICtrlListView_AddItem($hListView, "Item 1")
_GUICtrlListView_AddItem($hListView, "Item 2")
_GUICtrlListView_AddItem($hListView, "Item 3"); Set item 2 text
[/autoit][autoit][/autoit][autoit]
_GUICtrlListView_SetItemText($hListView, 1, "New Item 2")
MsgBox(4160, "Information", "Item 2 Text: " & _GUICtrlListView_GetItemText($hListView, 1)); Loop until user exits
[/autoit]
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFuncOder mir ein bespiel geben damit ich es verstehe?
Danke
SubZero -
Hallo,
habe folgendes Problem möchte gerne aus einem Listview eintrag parameter an run übergeben.
so sieht meine Listview aus:Hostname|BENUTZERNAME|SITZUNGSNAME|KENNUNG|STATUS|LEERLAUFZEIT|ANMELDEZEIT|
und das möchte ich ausführen:
TSDISCON SITZUNGSNAME /SERVER:HostnameWie geht das habe leider kein beispiel für gefunden.
Danke
SubZero -
Hey,
kann mal jemand kurz drüber schauen kann leider den Fehler nicht finden.
eine fehlermeldung gibt es leider nicht, die funktion läuft nicht durch ???
[autoit]Func checkall()
[/autoit]
_GUICtrlListView_DeleteAllItems($ListView2)
local $icount = _GUICtrlListView_GetItemCount($ListViewhost)
for $i = 0 to $icount -1
$ListViewText = _GUICtrlListView_GetItemTextArray($ListViewhost)
if @error then Return
Ping($ListViewText[1], 100) ; Host anpingen
If Not @error Then
$TSUSER = RunWait(@ComSpec & " /c " & @ScriptDir & '\query.exe user /server:' & $ListViewText[1] & " >" & @ScriptDir & '\' & $ListViewText[1] & ".log", "", @SW_HIDE)
ConsoleWrite(@ScriptDir & '\query.exe user /server:' & $ListViewText[1] & " >" & @ScriptDir & '\' & $ListViewText[1] & ".log")
_FileReadToArray(@ScriptDir & '\' & $ListViewText[1] & ".log", $aIn)
For $i = 1 To $aIn[0]
$aIn[$i] = StringReplace(StringStripWs($aIn[$i],7)," ","|",5)
Next
;FileWriteFromArray("C:\serverts_out.txt",$aIn,2)
For $i = 2 To $aIn[0] ; bei Index 2 starten, dann ist die erste Zeile weg
$item1 = GUICtrlCreateListViewItem($ListViewText[1] & '|' & $aIn[$i], $listview2)
;$item1 = GUICtrlCreateListViewItem($aIn[$i], $listview2)
Next
EndIf
Next
EndFuncDiese Funktion Funktioniert
[autoit]Func check()
[/autoit][autoit][/autoit][autoit]$ListViewText = _GUICtrlListView_GetItemTextArray($ListViewhost)
[/autoit]
if @error then Return
Ping($ListViewText[1], 100) ; Host anpingen
If Not @error Then
$TSUSER = RunWait(@ComSpec & " /c " & @ScriptDir & '\query.exe user /server:' & $ListViewText[1] & " >" & @ScriptDir & '\' & $ListViewText[1] & ".log", "", @SW_HIDE)
ConsoleWrite(@ScriptDir & '\query.exe user /server:' & $ListViewText[1] & " >" & @ScriptDir & '\' & $ListViewText[1] & ".log")
_FileReadToArray(@ScriptDir & '\' & $ListViewText[1] & ".log", $aIn)
For $i = 1 To $aIn[0]
$aIn[$i] = StringReplace(StringStripWs($aIn[$i],7)," ","|",5)
Next
;FileWriteFromArray("C:\serverts_out.txt",$aIn,2)
For $i = 2 To $aIn[0] ; bei Index 2 starten, dann ist die erste Zeile weg
$item1 = GUICtrlCreateListViewItem($ListViewText[1] & '|' & $aIn[$i], $listview2)
;$item1 = GUICtrlCreateListViewItem($aIn[$i], $listview2)
Next
EndIf
EndFuncIch wollte mit der Checkall()
alle items Prüfen aber irgendwie kriege ich es diesmal nicht hin???Danke
SubZeroDanke
SubZero