ciao!
Ich habe nach langer Zeit wieder ein wenig mit Autoit gespielt.
Mein neues Script dient dazu Netzlaufwerke zu mappen.
Bevor jetzt einer kommt und einen doofen Kommentar abgibt, ja ich weiss es gibt sicher 1000 solcher NetzlaufwerkMapScripte.
Es geht aber darum, es selber zu probieren
Ich habe einigen Fehler in diesem Script, jedoch weiss ich nicht genau wie sie zu beseitigen.
Im Anhang noch ein Bild, was die "Anzeige" Fehler beschreiben.
Spoiler anzeigen
#include <Constants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <Misc.au3>
;~ #include <NoFocusLines.au3>
#include <Array.au3>
#include <ComboConstants.au3>
Opt('GUIOnEventMode', 1)
AdlibRegister("_Update", 500)
;~ _NoFocusLines_Global_Set()
;~ @echo off
[/autoit] [autoit][/autoit] [autoit];~ :: set variables
;~ set driveletter=
;~ set servername=
;~ set share=
;~ set user=
;~ set pw=
;~ :: batch start
;~ net use %driveletter% \\%servername%\%share% /user:%user% "%pw%" /persistent:no
Global $title01 = "MapYourDrive"
Global $title02 = "Connection Info"
Global $exec
$sDrivesFree = _DriveLetterFree()
$sFirstDrive = StringLeft($sDrivesFree, 3)
$gui01 = GUICreate($title01, 240, 400, @DesktopWidth / 2 - 160, 50,BitXOR($GUI_SS_DEFAULT_GUI, $WS_MINIMIZEBOX))
GuiSetState(@SW_SHOW, $gui01)
GUISetOnEvent($GUI_EVENT_CLOSE,"_End")
GUICtrlCreateGroup($title02, 10, 5, 220, 380) ; create group 'info'
$label01 = GUICtrlCreateLabel("SERVERNAME", 20, 30, 200)
GUICtrlSetFont(-1, 10, 0, 0, 'helvetica') ; set the font
$input01 = GUICtrlCreateInput('', 20, 50, 200, 25)
GUICtrlSetBkColor(-1, 0xff9393)
GUICtrlSetFont(-1, 14, 800, 0, 'Courier New') ; set the font
$label02 = GUICtrlCreateLabel("SHARE", 20, 90)
GUICtrlSetFont(-1, 10, 0, 0, 'helvetica') ; set the font
$input02 = GUICtrlCreateInput('', 20, 110, 200, 25)
GUICtrlSetBkColor(-1, 0xff9393)
GUICtrlSetFont(-1, 14, 800, 0, 'Courier New') ; set the font
$label03 = GUICtrlCreateLabel("USERNAME", 20, 150, 200)
GUICtrlSetFont(-1, 10, 0, 0, 'helvetica') ; set the font
$input03 = GUICtrlCreateInput('', 20, 170, 200, 25)
GUICtrlSetFont(-1, 14, 800, 0, 'Courier New') ; set the font
$label04 = GUICtrlCreateLabel("PASSWORD", 20, 210, 200)
GUICtrlSetFont(-1, 10, 0, 0, 'helvetica') ; set the font
$input04 = GUICtrlCreateInput('', 20, 230, 200, 25, $ES_PASSWORD)
GUICtrlSetFont(-1, 14, 800, 0, 'Courier New') ; set the font
$label05 = GUICtrlCreateLabel("DRIVE LETTER", 20, 270, 200)
GUICtrlSetFont(-1, 10, 0, 0, 'helvetica') ; set the font
$hCombo = GUICtrlCreateCombo("", 20, 292, 200, 25, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, $sDrivesFree, $sFirstDrive)
$button01 = GUICtrlCreateButton("CONNECT", 19, 330, 80, 25)
GUICtrlSetFont(-1, 10, 0, 0, 'helvetica') ; set the font
GUICtrlSetOnEvent(-1, '_Execute')
;~ $menu = GUICtrlCreateMenu('&File')
;~ --------------------------------------------------
;~ GUICtrlCreateMenuItem('Beenden', $menu)
;~ GUICtrlSetOnEvent(-1, '_End')
;~ --------------------------------------------------
;~ $menu_help = GUICtrlCreateMenu('&Help')
;~ GUICtrlCreateMenuItem('About', $menu_help)
;~ GUICtrlSetOnEvent(-1, '_About')
;~ --------------------------------------------------
Func _End()
Exit
EndFunc ;==>_End
Func _About()
MsgBox(262144 + 64, "About", "MapYourDrive - Version 1.0.0 - 08.02.2013")
EndFunc ;==>_About
Func _Update()
If GUICtrlRead($input01) = "" Then
$check_input01 = False
GUICtrlSetBkColor($input01, 0xff9393)
Else
$check_input01 = True
GUICtrlSetBkColor($input01, 0xddffdd)
EndIf
If GUICtrlRead($input02) = "" Then
$check_input02 = False
GUICtrlSetBkColor($input02, 0xff9393)
Else
$check_input02 = True
GUICtrlSetBkColor($input02, 0xddffdd)
EndIf
If $check_input01 = 1 And $check_input02 = 1 Then
GUICtrlSetState($button01, $GUI_ENABLE)
Else
GUICtrlSetState($button01, $GUI_DISABLE)
EndIf
$sDrivesFree = _DriveLetterFree()
$sFirstDrive = StringLeft($sDrivesFree, 3)
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Execute()
[/autoit] [autoit][/autoit] [autoit]$driveletter = StringLeft(GUICtrlRead($hCombo), 2)
[/autoit] [autoit][/autoit] [autoit]if ( GUICtrlRead($input03) = "" OR GUICtrlRead($input04) = "" ) Then
$exec = "net use " & $driveletter & " \\" & GUICtrlRead($input01) & "\" & GUICtrlRead($input02) & " /persistent:no"
Else
$exec = "net use " & $driveletter & " \\" & GUICtrlRead($input01) & "\" & GUICtrlRead($input02) & " " & "/user:" & GUICtrlRead($input03) & " " & GUICtrlRead($input04) & " /persistent:no"
EndIf
ConsoleWrite( $exec & @CRLF)
Run( @ComSpec & ' /c' & $exec)
$sDrivesFree = _DriveLetterFree()
$sFirstDrive = StringLeft($sDrivesFree, 3)
GUICtrlSetData($hCombo, "", "")
GUICtrlSetData($hCombo, $sDrivesFree, $sFirstDrive)
$mapped_network_drives = DriveGetDrive("NETWORK")
_ArraySearch($mapped_network_drives, $driveletter)
If NOT @error Then
Run('explorer.exe '& $driveletter)
Endif
EndFunc ;==>_End
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _DriveLetterFree()
Local $i, $v, $j, $letters, $aAllDrives = DriveGetDrive('ALL')
For $i = 67 To 90 ; Buchstaben 'C' bis 'Z' durchgehen
$v = True
For $j = 1 To $aAllDrives[0] ; Alle belegten Buchstaben
If Chr($i) & ':' = $aAllDrives[$j] Then ; Buchstabe ist nicht frei
$v = False ; dann kennzeichnen
ExitLoop ; und For $j - Schleife verlassen
EndIf
Next
If $v Then $letters &= Chr($i) & ':\|' ; War der Buchstabe noch frei, dann in die Liste übernehmen
Next
Return StringTrimRight($letters, 1)
EndFunc
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit 0
EndSwitch
Wend
[Blockierte Grafik: http://s1.directupload.net/images/130209/45ust7kr.png]