Kan ik een uploadknop maken in vbs?

Status
Niet open voor verdere reacties.

Tijger81

Gebruiker
Lid geworden
2 jan 2010
Berichten
397
Ik heb een vraag:

Is er een vbs code die:
Een uploadknop laat zien. En als je daar op drukt dat je dan naar een map/bestand kunt navigeren (soort windows verkenner dus) En als je dan een map gevonden hebt, deze selecteert en op toevoegen drukt.
Met als resultaat bij het drukken op de toevoegen knop dat dan de map die geselecteerd en toegevoegd is wordt gekopieert naar een te bepalen andere map.
Bijvoorbeeld.
1) ik druk in een msg box op de knop: upload
2) Dan opent een (windows)verkenner, vervolgens kan ik een map/bestand zoeken in de verkenner en deze map selecteren.
3) druk op toevoegen
4) door te drukken op toevoegen wordt de map/bestand gekopieerd naar D:\Album
5) x=MsgBox("Jouw gekozen map/bestand is gekopieerd naar D:\album!",64,"Voltooid")
Kan dit?
 
Nee, je kunt geen aparte knoppen gebruiken in VBS.

Als ik jou was zou ik kijken naar een programmeertaal, VB.NET ligt hier erg voor de hand.
Hier kun je de ontwikkelomgeving downloaden (Visual Basic 2010 Express raad ik aan).
 
Dank je voor respons, maar probeer met de code die ik al heb.

Ik heb lang gezocht en heb de code bijna. Ik kan een map of bestand selecteren.
Als ik een map selecteer en dan ok klik en nog een keer ok dan wordt de map gekopieerd naar C:\book. Dat is perfect.
Alleen ik krijg nog een foutmelding omdat hij volgens mij moeite heeft met deze regel: objFso.CopyFile file ,"C:\book\", True. Waarschijnlijk omdat ik een map heb geslecteerd en geen bestand.
En ik wil graag een map of bestand kunnen selecteren en kopieren.
Als ik deze regel weghaal: objFso.CopyFolder file ,"C:\book\", True en een bestand selecteert dan werkt dat ook.
Maar hoe krijg ik die foutmelding eruit?
Daarnaast heb ik een foutmelding als ik een bestand selecteer die een korte naam heeft. Dat heeft volgens mij te maken met If file = "-1" Then WScript.Echo "No object selected; Cancel clicked"
Hoe kan ik dat eruit wippen? Ik heb al geprobeerd om wat else te verwijderen, maar dat gaat niet.


Code:
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

file = BrowseForFolder( _
        "Select a file or folder to copy", _
        BIF_returnonlyfsdirs + BIF_browseincludefiles, _
        "")
If file = "-1" Then 
        WScript.Echo "No object selected; Cancel clicked"
Else
If file = "-1" Then 
        WScript.Echo "No object selected; Cancel clicked"
Else
        WScript.Echo "Object: ", file

Const DeleteReadOnly = TRUE
Set objFSO = CreateObject("Scripting.FileSystemObject")
 objFSO.DeleteFile("C:\book\*"), DeleteReadOnly
 objFSO.DeleteFolder("C:\book\*"),DeleteReadOnly

[B]Dim objFso
Set objFso = WScript.CreateObject("Scripting.FileSystemObject")
objFso.CopyFolder file ,"C:\book\", True
objFso.CopyFile file ,"C:\book\", True
Set objFso = Nothing[/B]

    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

'*** End
 
Laatst bewerkt door een moderator:
Hoi, ik heb de bovenstaande lange code opgegeven. Was gewoon niet te doen met mijn beperkte kennis. Ik heb iets anders gevonden..
Met dit script kan ik een map selecteren in de verkenner en die wordt gekopieerd naar een andere map. Het punt is alleen nog dat ik in de verkenner alleen mappen zie en geen files. Ik kan dus geen file selecteren en kopieren naar mijn doel map. Ik heb al dingen geprobeerd met Set objFile = objShell.BrowseForFile( maar dat werkt niet.
Weet jij hoe ik deze code succesvol kan maken? hoop het

Code:
Dim CopyFromPath, CopyToPath  
Const WINDOW_HANDLE = 0 
Const NO_OPTIONS = 0 
Const OverwriteExisting = TRUE 
 
Set objShell = CreateObject("Shell.Application") 
Set objFolder = objShell.BrowseForFolder(WINDOW_HANDLE,"Select folder to copy:",NO_OPTIONS,ssfDRIVES) 
if (not objFolder is nothing) then 
    Set objFolderItem = objFolder.Self  
    CopyFromPath = objFolderItem.Path 
   
else  
    Set objShell = nothing 
    WScript.Quit(0) 
end if 

Set objFolder = nothing 
Set objFolderItem = nothing
Set objShell = nothing 


 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
 objFSO.CopyFolder CopyFromPath & "", CopyToPath & "C:\doel\", OverwriteExisting
msgbox "The folder has now been copied to " & CopyToPath
 
Laatst bewerkt door een moderator:
Dat zoeken naar bestanden kan dus gewoon niet in Visual Basic Script. Hoewel, het is mogelijk als je bep. DLL's van Microsoft gaat meeleveren.
Maar om dit soort programma's te maken, verwijs ik nogmaals naar mijn post #2. VBS is daar niet geschikt voor.
 
@Tijger81 Code dient tussen de codetags geplaatst te worden. Hiermee is het beter leesbaar voor de helpers.
 
Ik heb het maar opgegeven. Wordt alleen maar chagrijnig van:(.
Sorry voor de foute manier van plaatsen van de codes Huijb
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan