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

    VB.NET - doppio click non apre file

    Ciao a tutti,
    premetto che sono un autodidatta da poche settimane, pertanto qualsiasi risposta vi chiederei la cortesia di non dare nulla per scontato...ebbene ho realizzato una piccola applicazione in vb.net express alla quale ho associato un'estensione in apertura e in salvataggio file in questo modo:

    codice:
    SaveFileDialog1.AddExtension = True
            SaveFileDialog1.DefaultExt = ".nfpa"
            SaveFileDialog1.Filter = "*.nfpa|"
    
    OpenFileDialog1.AddExtension = True
            OpenFileDialog1.DefaultExt = ".nfpa"
            OpenFileDialog1.Filter = "*.nfpa|"

    ho poi registrato l'estensione nelle chiavi di registro in questo modo
    codice:
    codice:
    My.Computer.Registry.ClassesRoot.CreateSubKey(".nfpa").SetValue("", "NFPAfile", RegistryValueKind.String)
            My.Computer.Registry.ClassesRoot.CreateSubKey("NFPAfile\shell\open\command").SetValue("", Application.ExecutablePath & " %l")

    E tutto sembra funzionare abbastanza bene, cioè tutti i file con estensione nfpa vengono iconizzati con l'icona dell'applicazione e fanno riferimento al relativo file .exe...apri e salva funzionano correttamente...tutto ok!
    Il problema sta nel fatto che quando faccio doppio click su un file nfpa (con app chiusa) si apre l'applicazione ma non il file...cioè tutte le textbox sono vuote! Come mai?
    Grazie in anticipo a tutti!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma che tipo di applicazione è? Con interfaccia grafica? Console?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Originariamente inviato da oregon
    Ma che tipo di applicazione è? Con interfaccia grafica? Console?
    E' una semplice form con un MenuStrip con apri e salva...all'interno ci sono una serie di textbox e basta...alcune delle quali vengono calcolate in un algoritmo che restituisce un risultato in un altra textbox...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non c'è nulla di automatico ... il nome del file cliccato viene passato all'eseguibile e lo ottieni nel Form_Load. Una volta ottenuto il nome, ci fai quello che vuoi.

    Ad esempio, per vedere il primo parametro passato

    codice:
            If My.Application.CommandLineArgs.Count = 1 Then
                MessageBox.Show(My.Application.CommandLineArgs(0))
            End If
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Sei sicuro di caricare il file al doppio-clic?
    Intendo dire, nella tua applicazione hai previsto la procedura di apertura/lettura del file su cui l'utente ha fatto doppio-clic?

  6. #6
    Originariamente inviato da oregon
    Non c'è nulla di automatico ... il nome del file cliccato viene passato all'eseguibile e lo ottieni nel Form_Load. Una volta ottenuto il nome, ci fai quello che vuoi.

    Ad esempio, per vedere il primo parametro passato

    codice:
            If My.Application.CommandLineArgs.Count = 1 Then
                MessageBox.Show(My.Application.CommandLineArgs(0))
            End If
    Ciao e scusa l'ignoranza ma...copiando e incollando esattamente il tuo codice nel form_load, non succede nulla...credo di aver capito che debba aprirsi un messaggio con il percorso del file su cui faccio doppio clcik, ma non succede...ho capito bene?

  7. #7
    Originariamente inviato da gibra
    Sei sicuro di caricare il file al doppio-clic?
    Intendo dire, nella tua applicazione hai previsto la procedura di apertura/lettura del file su cui l'utente ha fatto doppio-clic?
    No...in apertura leggo una stringa txt e assegno i valori del txt alle textbox...ma nessun richiamo particolare al doppio click...come si fa?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da christian_Palla
    Ciao e scusa l'ignoranza ma...copiando e incollando esattamente il tuo codice nel form_load, non succede nulla...credo di aver capito che debba aprirsi un messaggio con il percorso del file su cui faccio doppio clcik, ma non succede...ho capito bene?
    Certo ... deve fare così ...

    Quando fai il doppio click sul file il tuo programma si avvia?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da christian_Palla
    No...in apertura leggo una stringa txt e assegno i valori del txt alle textbox...ma nessun richiamo particolare al doppio click...come si fa?
    QUando fai doppio-clic il nome del file (completo di percorso) viene passato come argomento al tuo eseguibile; è come se tu scrivessi:

    myapp.exe "C:\Documenti\miofile.txt"

    per cui devi verificare all'avvio del tuo programma se esistono uno o più argomenti sulla linea di comando:


    codice:
    If My.Application.CommandLineArgs.Count > 0 Then
        MessageBox.Show(My.Application.CommandLineArgs(0))        
    Else            
        MessageBox.Show("No args")        
    End If

  10. #10
    Originariamente inviato da gibra
    QUando fai doppio-clic il nome del file (completo di percorso) viene passato come argomento al tuo eseguibile; è come se tu scrivessi:

    myapp.exe "C:\Documenti\miofile.txt"

    per cui devi verificare all'avvio del tuo programma se esistono uno o più argomenti sulla linea di comando:


    codice:
    If My.Application.CommandLineArgs.Count > 0 Then
        MessageBox.Show(My.Application.CommandLineArgs(0))        
    Else            
        MessageBox.Show("No args")        
    End If
    Perfetto, grazie mille...funziona , si apre il messaggio con il percorso in cui si trova il file...ora posso farlo girare in lettura nel form_load...c'è solo ancora un problema: è normale che se ho un file con uno spazio lui riconosca il nome troncato fino allo spazio? Esempio: il nome "test1.nfpa" lo legge e lo apre, mentre "test 1.nfpa" non lo legge...come posso ovviare?
    Grazie ancora!

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.