Hallo Leute,
habe mal ein scrit geschrieben womit ich Home und Profile verzeichnisse anlegen kann wollte meine bacht umschreiben in autoit,
es funktioniert auch
wollte gerne fehler Routinen einbauen bräuchte da mal hilfe ??
Danke
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <array.au3>
#include <File.au3>
#include <GuiListView.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
Local $ad, $array1, $x = 0
[/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Home Profile anlegen", 700, 510, 257, 323)
$ListView1 = GUICtrlCreateListView("User", 24, 48, 170, 342)
GUICtrlSendMsg($ListView1, $LVM_SETCOLUMNWIDTH, 0, 160) ; setzt die 1. Spalte des Listviews auf 160 Pixel Breite
$Button1 = GUICtrlCreateButton("User Laden", 24, 400, 60, 25, 0)
$Button2 = GUICtrlCreateButton("Eine ", 24, 432, 50, 25, 0)
$Button3 = GUICtrlCreateButton("Alle", 75, 432, 50, 25, 0)
$Button4 = GUICtrlCreateButton("export1", 136, 400, 59, 25, 0)
$Button7 = GUICtrlCreateButton("Clear List", 80, 20, 59, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_Load()
Case $Button2
_hp()
Case $Button3
_hpall()
Case $Button4
_export()
Case $Button7
_GUICtrlListView_DeleteAllItems($ListView1)
EndSwitch
WEnd
Func _export()
[/autoit] [autoit][/autoit] [autoit]$hWnd = $ListView1
$path = FileSaveDialog('ListView-Export speichern', @ScriptDir, "CSV Datei (*.csv)")
If @error Then Exit MsgBox(0, 'Fehler', 'Keine Zieldatei gewählt.')
FileWrite($path & ".csv", _GUICtrlListView_Export($hWnd, 1, ','))
EndFunc ;==>_export
[/autoit] [autoit][/autoit] [autoit]Func _Load() ;
_GUICtrlListView_DeleteAllItems($ListView1) ; Das Handle eben noch bestimmen (s. Anfang des Threads)
Local $sItem
$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($ListView1) ; 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, $ListView1) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
WEnd
_GUICtrlListView_EndUpdate($ListView1) ; Listview wieder freigeben
FileClose($hFile) ; Datei schließen
EndIf
EndFunc ;==>_Load
Func _hpall()
Local $icount = _GUICtrlListView_GetItemCount($ListView1)
For $i = 0 To $icount - 1
$ListViewText = _GUICtrlListView_GetItemTextArray($ListView1, $i)
DirCopy("\\server\share\template", "\\server\share\home\" & ($ListViewText[1]), 1)
If NOT @ERROR Then
RunWait(@ComSpec & " /c " & 'CACLS.exe \\server\share\home\' & $ListViewText[1] & ' /T /E /G domäne\' & $ListViewText[1] & ':F', "", @SW_HIDE)
Else
MsgBox(0, "", "Beim HomeLaufwerk ist ein fehler aufgetretten bitte Prüfen")
EndIf
DirCopy("\\server\share\Template", "\\server\share\profil\" & ($ListViewText[1]), 1)
If NOT @ERROR Then
RunWait(@ComSpec & " /c " & '\\server\share\profil\' & $ListViewText[1] & ' /T /E /G domäne\' & $ListViewText[1] & ':F', "", @SW_HIDE)
Else
MsgBox(0, "", "Beim Profil ist ein fehler aufgetretten bitte Prüfen")
EndIf
Next
EndFunc
Func _hp()
[/autoit] [autoit][/autoit] [autoit]$ListViewText = _GUICtrlListView_GetItemTextArray($ListView1)
DirCopy("\\server\share\template", "\\server\share\home\" & ($ListViewText[1]), 1)
If NOT @ERROR Then
RunWait(@ComSpec & " /c " & 'CACLS.exe \\server\share\home\' & $ListViewText[1] & ' /T /E /G domäne\' & $ListViewText[1] & ':F', "", @SW_HIDE)
Else
MsgBox(0, "", "Beim HomeLaufwerk ist ein fehler aufgetretten bitte Prüfen")
EndIf
DirCopy("\\server\share\Template", "\\server\share\profil\" & ($ListViewText[1]), 1)
If NOT @ERROR Then
RunWait(@ComSpec & " /c " & '\\server\share\profil\' & $ListViewText[1] & ' /T /E /G domäne\' & $ListViewText[1] & ':F', "", @SW_HIDE)
Else
MsgBox(0, "", "Beim Profil ist ein fehler aufgetretten bitte Prüfen")
EndIf
EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _GUICtrlListView_Export($hWnd, $exType = 0, $Delim = Default) ; $exType=0 Array / $exType=1 String
If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
Local $row = _GUICtrlListView_GetItemCount($hWnd)
If $exType Then
If $Delim <> Default Then Local $oldDelim = Opt('GUIDataSeparatorChar', $Delim)
Local $sOut = ''
For $i = 0 To $row - 1
$sOut &= _GUICtrlListView_GetItemTextString($hWnd, $i) & @CRLF
Next
If $Delim <> Default Then Opt('GUIDataSeparatorChar', $oldDelim)
Return $sOut
EndIf
Local $col = _GUICtrlListView_GetColumnCount($hWnd)
Local $aOut[$row][$col]
If $col = 1 Then
ReDim $aOut[$row]
For $i = 0 To UBound($aOut) - 1
$aOut[$i] = _GUICtrlListView_GetItemText($hWnd, $i)
Next
Return $aOut
EndIf
For $i = 0 To UBound($aOut) - 1
For $j = 0 To UBound($aOut, 2) - 1
$aOut[$i][$j] = _GUICtrlListView_GetItemText($hWnd, $i, $j)
Next
Next
Return $aOut
EndFunc ;==>_GUICtrlListView_Export