Oppure

Loading
09/12/08 17:34
Piso94
Salve a tutti vi vorrei chiedere:

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?

Grazie 1000:k::k::k::k:
aaa
09/12/08 17:42
Tonino70
se non mi sbaglio,

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...

e dovresti aver fatto.

ciao
aaa
09/12/08 18:06
I)eathBringer
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:D
aaa
10/12/08 9:02
Il Totem
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:
Imports Microsoft.Win32

'...

Private Sub RegisterProgram()
    Dim RegKey As RegistryKey = Registry.ClassesRoot.OpenSubKey(".new")
    Dim WParam As RegistryKeyPermissionCheck = RegistryKeyPermissionCheck.ReadWriteSubTree

    If RegKey IsNot Nothing Then
        Exit Sub
    End If

    RegKey = Registry.ClassesRoot.CreateSubKey(".new", WParam)
    RegKey.SetValue("", "MyProgramNew")
    RegKey = Registry.ClassesRoot.CreateSubKey("MyProgramNew", WParam)
    RegKey.SetValue("", "File NEW")
    RegKey = Registry.ClassesRoot.OpenSubKey("MyProgramNew", True)
    RegKey = RegKey.CreateSubKey("shell\open\command", WParam)
    RegKey.SetValue("", String.Format("""{0}"" ""%1""", Application.ExecutablePath))
End Sub
aaa
10/12/08 16:14
Piso94
Ok grazie mille :k::k:
aaa
10/12/08 17:55
Il Totem
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:
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)
End If
aaa