-BOG-_Zero Geschrieben 21. Januar 2008 Geschrieben 21. Januar 2008 Hallo Leute, meine erste frage ist ob es probleme mit VBS und Vista gibt ist euch das was bekannt? Zu meiner Programmier frage. Wie kann ich das Open File Dialog Box in meinen Script integrieren so das ich nicht den Pfad manuell eintippen sondern mir den Pfad klicken kann? Im englischen heißt das open file dialog box nur leider ist mein englisch nicht mehr so gut :old Zitieren
Amstelchen Geschrieben 21. Januar 2008 Geschrieben 21. Januar 2008 meine erste frage ist ob es probleme mit VBS und Vista gibt ist euch das was bekannt? nö. Wie kann ich das Open File Dialog Box in meinen Script integrieren so das ich nicht den Pfad manuell eintippen sondern mir den Pfad klicken kann? AFAIK kann VBS keine dialoge anzeigen, da keine forms in dem sinne wie bei VB unterstützt werden. s'Amstel Zitieren
-BOG-_Zero Geschrieben 22. Januar 2008 Autor Geschrieben 22. Januar 2008 Hi Amstelchen ich habe jetzt was gefunden was mir schon ein bisschen weiter geholfen hat. Habe jetzt meine open file dialog box. vielleicht hatte ich mich auch falsch ausgedrückt. Starte das Skript mal dann siehst du was ich meine mit open file dialog box. HAbe jetzt nur das Prolbem das ich den Ordner auswählen kann aber die Box mir nur den Ordner Namen zurück gibt und nicht den kompletten Pfad. Hast du das vlt. eine Idee wie ich den kompletten Pfad bekomme? Zum Skript selber es soll ein Pfad ausgewählt und alle Dateien und Ordern die in diesem Pfad vorhanden sind sollen dann ausgegeben werden die Datei sollen mit KB und die Ordern mit MB ausgegeben werden. Skript: Option Explicit Dim FSO, Verzeichnis, UnterVerzeichnis, Datei, Eingabe, Dateimb, Ordnermb, shell, AuswahlTitel, StartOrdner set shell = CreateObject("Shell.Application") AuswahlTitel = "Ordner auswählen" StartOrdner = "C:\" Set Eingabe = shell.BrowseForFolder(0,AuswahlTitel, 16384,StartOrdner) Wscript.Echo Eingabe Wscript.Stdin.Readline Set FSO = CreateObject ("Scripting.FileSystemObject") Set Verzeichnis = FSO.GetFolder(Eingabe) WScript.Echo vbcrlf + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + vbcrlf + "Dateien:" + vbcrlf For Each Datei In Verzeichnis.Files Dateimb = Datei.Size/1024 WScript.Echo Datei.Name + " | " & Dateimb & " KB" Next WScript.Echo vbcrlf + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + vbcrlf + "Ordner:" + vbcrlf For Each Unterverzeichnis In Verzeichnis.SubFolders Ordnermb= Unterverzeichnis.Size/1048576 WScript.Echo Unterverzeichnis.Name + " | " & Ordnermb & " MB" Next WScript.Echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" Wscript.Stdin.Readline Zitieren
-BOG-_Zero Geschrieben 23. Januar 2008 Autor Geschrieben 23. Januar 2008 Hi Leute habs hinbekommen falls wer braucht: Option Explicit ' Flags for the options parameter Const BIF_returnonlyfsdirs = &H0001 Const BIF_dontgobelowdomain = &H0002 Const BIF_statustext = &H0004 Const BIF_returnfsancestors = &H0008 Const BIF_editbox = &H0010 Const BIF_validate = &H0020 Const BIF_browseforcomputer = &H1000 Const BIF_browseforprinter = &H2000 Const BIF_browseincludefiles = &H4000 Dim file, FSO, Verzeichnis, UnterVerzeichnis, Datei, Eingabe, Dateimb, Ordnermb, shell, AuswahlTitel, StartOrdner Set FSO = CreateObject ("Scripting.FileSystemObject") file = BrowseForFolder( _ "Select a file or folder to copy", _ BIF_returnonlyfsdirs + BIF_browseincludefiles, _ "") If file = "-5" Then WScript.Echo "Sie können kein Hauptverzeichnis auswählen" Else If file = "-1" Then WScript.Echo "Kein Objekt ausgewählt"+ vbcrlf + vbcrlf + "Hinweiß: Sie können nicht das Hauptverzeichnis(C:) durchsuchen!" Else Set Verzeichnis = FSO.GetFolder(file) Wscript.Echo vbcrlf Wscript.Echo vbcrlf Wscript.Echo "Ausgewählter Ordner: "+file WScript.Echo vbcrlf + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + vbcrlf + "Dateien:" + vbcrlf For Each Datei In Verzeichnis.Files Dateimb = Datei.Size/1024 WScript.Echo Datei.Name + " | " & Dateimb & " KB" Next WScript.Echo vbcrlf + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + vbcrlf + "Ordner:" + vbcrlf For Each Unterverzeichnis In Verzeichnis.SubFolders Ordnermb= Unterverzeichnis.Size/1048576 WScript.Echo Unterverzeichnis.Name + " | " & Ordnermb & " MB" Next WScript.Echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" Wscript.Stdin.Readline End If End If ' Using the shell's BrowseForFolder method to ' return the full path to the selected object ' title = Text shown in the dialog box ' flag = One of the values for controlling the ' BrowseForFolder behavior ' dir = Preselected directory (can be "") Function BrowseForFolder(title, flag, dir) On Error Resume Next Dim oShell, oItem, tmp ' Create WshShell object. Set oShell = WScript.CreateObject("Shell.Application") ' Invoke Browse For Folder dialog box. Set oItem = oShell.BrowseForFolder(&H0, title, flag, dir) If Err.Number <> 0 Then If Err.Number = 5 Then BrowseForFolder= "-5" Err.Clear Set oShell = Nothing Set oItem = Nothing Exit Function End If End If ' Now we try to retrieve the full path. BrowseForFolder = oItem.ParentFolder.ParseName(oItem.Title).Path ' Handling: Cancel button and selecting a drive If Err<> 0 Then If Err.Number = 424 Then ' Handle Cancel button. BrowseForFolder = "-1" Else Err.Clear ' Handle situation in which user selects a drive. ' Extract drive letter from the title--first search ' for a colon (. tmp = InStr(1, oItem.Title, ":") If tmp > 0 Then ' A : is found; use two ' characters and add \. BrowseForFolder = _ Mid(oItem.Title, (tmp - 1), 2) & "\" End If End If End If Set oShell = Nothing Set oItem = Nothing On Error GoTo 0 End Function Zitieren
Amstelchen Geschrieben 23. Januar 2008 Geschrieben 23. Januar 2008 aah, Shell.Application :upps wieder was gelernt s'Amstel Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.