Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Io ho creato un programma e vorrei che quando l'utente clicca sopra un file creato con quell programma lo apra con quel programma e non con altri ad esempio il file txt lo apre con il Blocco Note come predefinito e non con internet explorer capito?
sul file in questione e relativa estensione, clicca col mouse tasto dx e fai apri con,
scegli programma predefinito, seleziona il tuo prg e metti la spunta su usa sempre il prg...
Credo che il suo problema sia quella di visualizzare il file aperto all'interno del programma, infatti anch'io ho lo stesso problema con un programma di modifica delle immagini e, anche se lo imposto come predefinito, quando clicko sull'immagine da aprire mi apre il programma ma non mi carica nessuna immagine nella picturebox perchè, giustamente, non sa cosa ci deve fare con quell'immagine.
Quindi se qualcuno sa risolvere il problema gliene sarei grato anch'io
Sarà la centesima volta che lo chiedono, e l'ennesima volta che rispondo. Il bello è che ogni volta la discussione ha un titolo diverso e la funzione "Cerca" non dà nessun risultato soddisfacente. Per questo motivo, a partire da oggi, allestirò un topic in testa a questa sezione con le domande più frequenti e relative risposte, per non continuare a risposndere alle stesse.
Per associare un programma predefinito a un'estensione particolae di file bisogna modificare il registro di sistema. Il luogo dove vengono depositate tutte le informazioni sulle estensioni è la chiave globale HKEY_CLASSES_ROOT. In essa sono presenti moltissime sottochiavi con il nome dell'estensione.
Quindi, per prima cosa si deve creare in questa chiave globale una sottochiave col nome dell'estensione (es.: ".new"). All'intero di quest'ultima, si deve modificare il valore (Predefinito) con un nome sintetico che descriva l'applicazione usata e il tipo di file (es.: "MyProgramNew").
Dopodiché, sempre all'interno di HKEY_CLASSES_ROOT, si crea un'altra sottochiave di primo livello, usando lo stesso nome inserito come valore predefinito in precedenza (es.: "MyProgramNew"). All'interno di questa chiave, il valore (Predefinito) può essere modificato a piacere a indica la descrizione che apparirà nell'explorer (es.: "File NEW"). Per creare un collegamento con l'applicazione predefinita, si devono creare le sottochiavi shell\open\command: all'interno dell'ultima (command), il valore (Predefinito) deve essere il percorso dell'applicazione predefinita per l'apertura, seguita da "%1" o "%l" (es.: "C:\Programmi\MyProgram\MyProgram.exe" "%1").
Per quanto riguarda il codice:
Codice sorgente - presumibilmente VB.NET
Imports Microsoft.Win32
'...
PrivateSub RegisterProgram()
Dim RegKey As RegistryKey = Registry.ClassesRoot.OpenSubKey(".new")
Dim WParam As RegistryKeyPermissionCheck = RegistryKeyPermissionCheck.ReadWriteSubTree
Ah, nella foga mi sono dimenticato la parte più importante. Ovviamente se non dite al programma cosa fare, lui se ne fa un baffo del percorso che riceve in input. Bisogna controllare i parametri da line di comando:
Codice sorgente - presumibilmente Delphi
If My.Application.CommandLineArgs.Count > 0 Then
'Ci sono parametri: il primo è il percorso del file da aprire
Dim Path As String = My.Application.CommandLineArgs(0)