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