Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [VB 6] shellexecute

    ho scritto 1 programmino che faccia da autorun per dei filmati..il codice per l'apertura dei video è il seguente:

    Codice:

    ShellExecute Me.hwnd, "Open", App.Path & "\VLCPortable\VLCPortable.exe", "-f " & App.Path & """\1x05 - prova.avi""", 0&, 1


    in pratica apre VLC portable e passa come parametro l'indirizzo del file.
    finchè lo provo sull'Hard disk funziona tutto alla perfezione,se invece lo metto su cd ,vlc mi da questo errore:
    Unable to open 'E:"1x05'

    in pratica non vede ciò che è dopo lo spazio...
    non capisco se è 1 problema del mio codice o di vlc...penso la 1a ipotesi

    ps il parametro deve essere il path del video racchiuso tra virgolette,per questo ho usato "" all'inizio e alla fine

  2. #2
    per le Virgolette usa Chr(34)


    cmq... prova a specificare la WorkingDir nella ShellExecute...(ByVal lpDirectory As String)

  3. #3
    Come hai inserito le virgolette (usando le doppie virgolette) andrebbe bene, solo che le hai inserite in un punto sbagliato:
    codice:
    ShellExecute Me.hwnd, "Open", App.Path & "\VLCPortable\VLCPortable.exe", "-f """ & App.Path & "\1x05 - prova.avi""", 0&, 1
    Un altro paio di precisazioni:
    - per questo mestiere non è necessario usare la ShellExecute, basta la normale istruzione Shell di VB6:
    codice:
    Shell App.Path & "\VLCPortable\VLCPortable.exe", "-f """ & App.Path & "\1x05 - prova.avi"""
    - non è certo se App.Path abbia o meno le virgolette in fondo; nel dubbio bisogna costruire una funzione che le metta se non ci sono:
    codice:
    Public Function AddBackslash(ByVal inPath As String) As String
    If Left$(inPath,1)="""" Then AddBackslash=inPath Else AddBackslash=inPath & "\"
    End Function
    '...
    Shell AddBackslash(App.Path) & "VLCPortable\VLCPortable.exe", "-f """ & AddBackslash(App.Path) & "\1x05 - prova.avi"""
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    [b]
    - per questo mestiere non è necessario usare la ShellExecute, basta la normale istruzione Shell di VB6:
    codice:
    Shell App.Path & "\VLCPortable\VLCPortable.exe", "-f """ & App.Path & "\1x05 - prova.avi"""
    grazie per tutti i consigli...ma tra shell e shellexecute che differenze ci sono?

  5. #5
    Shell avvia eseguibili, ShellExecute apre/stampa anche documenti di altro genere con il programma associato, mostra la finestra "Trova", ...
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    e che vantaggi avrei a utilizzare la shell?

  7. #7
    Non stai a scomodare una API piuttosto intricata per niente.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.