Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [VB6] - File Manager...

    Vorrei sapere come faccio ad aprire un file quando si fa click su un FileListBox, ho provato con "Call Shell", ma non funziona (o meglio, funziona solo con gli exe). Ecco il codice che ho usato (filelst è la FileListBox):

    codice:
    Private Sub filelst_Click() 'Al click su filelst
    On Error GoTo msg 'Se fa errore va su :msg
    Call Shell(dirlst.path & "\" & filelst.FileName, vbNormalFocus) 'Chiama la shell
    Exit Sub 'Esce in modo tale da non eseguire :msg
    msg: 'Etichetta msg
    MsgBox ("Impossibile aprire: " & dirlst.path & "\" & filelst.FileName) 'Visualizza
    'impossibile aprire il file
    End Sub

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Che intendi con "aprire un file"?

    Un .exe si puo' aprire e anche eseguire, ma sono cose diverse ...

  3. #3
    Originariamente inviato da oregon
    Che intendi con "aprire un file"?

    Un .exe si puo' aprire e anche eseguire, ma sono cose diverse ...
    Intendo aprire un determinato file col programma ad esso collegato, ad esempio aprire un file .htm con il Browser, un file .doc con Word, un file .mdb con Access, un file .txt con Notepad, eccetera...

    Capito :master:


  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da CGiuseppe

    Capito :master:
    Adesso che ti sei spiegato, sì ...

    Puoi dichiarare la

    Private Declare Function ShellExecute Lib "shell32.dll" _
    Alias "ShellExecuteA" (ByVal hwnd As Integer, _
    ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, _
    ByVal nShowCmd As Integer) As Integer

    e chiamarla con

    ShellExecute(0, "open", "C:\test.doc", "", "", 0)

    Al posto di

    "C:\test.doc"

    metterai il path/nome del file ...

  5. #5
    Ho usato questo codice:

    ShellExecute(0, "open", dirlst.path & "\" & filelst.FileName, "", "", 0)

    In cui "dirlst.path & "\" & filelst.FileName" è il nome del file.

    Quando l'ho scritta, VB6 mi dice che non ho messo l'uguale... cosa devo fare?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ah VB6 ... scusa, non so perche' avevo letto VB.NET ... la cosa diventa

    codice:
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ 
        (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _ 
        ByVal lpParameters As String, ByVal lpDirectory as String, ByVal ShowCmd As Long) As Long 
    
    
    Dim lRet As Long 
    lRet = ShellExecute(0, "open", "c:\test.doc", "", "", 0)

  7. #7
    Adesso non so perchè appare un errore: "Argomento non facoltativo"

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non nel codice che ti ho dato ... dove lo da'?

  9. #9
    Mi ha evidenziato ShellExecute !

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Scusa ...

    1) stiamo parlando di VB6?

    2) stiamo parlando del codice che ti ho proposto (guarda che la declare non e' quella iniziale ...)?

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.