Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di ghini76
    Registrato dal
    Jun 2003
    Messaggi
    560

    [VB6] Data una estensione file come trovo il programma associato?

    Ciao a tutti,
    sto cercando di aggirare un problemino. Vorrei sapere, avendo l'esensione di un file da aprire, come trovare nel registro di sistema quale programma è associato ad essa e il percorso per poi lanciarlo con la shell. Avevo risolto il problema con la ShellExecute ma purtroppo pare che debba usare per forza la shell...

    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Guarda questa ottima guida su come Avviare l'applicazione predefinita per un documento
    ... e non usare while wend è una sintassi deprecata

  3. #3
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    esisterebbe la funzione API FindExecutable, ma ha bisogno ti un file esistente per trovarne il programma che lo esegue, e non solo l'estensione...

    ho creato, comunque, una fuzione che permette di trovare il file anche dando solo l'estensione, basta creare una file fittizio

    codice:
    Private Declare Function FindExecutable Lib "shell32.dll" _
            Alias "FindExecutableA" (ByVal lpFile As String, _
            ByVal lpDirectory As String, _
            ByVal lpResult As String) As Long
    
    Function GetExeName(Extension As String) As String
    
    Dim F As Integer
    Dim i As Integer, s2 As String
    Dim TestFileName As String
    Const MAX_FILENAME_LEN = 260
    
    TestFileName = App.Path & "\~qwerty." & Extension
    
    F = FreeFile
    Open TestFileName For Output As #F
    Close #F
    
    s2 = String(MAX_FILENAME_LEN, 32)
    i = FindExecutable(TestFileName, vbNullString, s2)
    If i > 32 Then
       GetExeName = Left$(s2, InStr(s2, Chr$(0)) - 1)
    Else
       GetExeName = ""
    End If
    
    Kill TestFileName
    
    End Function
    la puoi chiamare così:

    codice:
    NomeEseguibile = GetExeName("txt")
    Boolean

  4. #4
    Utente di HTML.it L'avatar di ghini76
    Registrato dal
    Jun 2003
    Messaggi
    560
    Fantastici, grazie ad entrambi!
    Ho risolto tutto!

    Grazie

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.