Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Browser
Forum - C# / VB.NET - Browser

Avatar
Piowere (Normal User)
Pro


Messaggi: 102
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 15:09
Venerdì, 26/03/2010
Salve, sto lavorando a un browser per internet, e vorrei inserire la funzione "browser predefinito". come faccio:-?

PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 16:41
Venerdì, 26/03/2010
Testo quotato

Postato originariamente da Piowere:

Salve, sto lavorando a un browser per internet, e vorrei inserire la funzione "browser predefinito". come faccio:-?



Ecco come:
Testo quotato


Come si fa ad impostare un programma predefinito per una certa estensione?
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 Visual Basic
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

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 linea 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)
end if


Riferimenti:
- Parametri da riga di comando
http://totem.altervista.org/appunti/view.php?id=1
- Modifica del registro di sistema
http://totem.altervista.org/guida/versione2/D5.php


:k:

PM Quote
Avatar
Piowere (Normal User)
Pro


Messaggi: 102
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 10:05
Sabato, 27/03/2010
Grazie, ma dimmi come farlo per .htm8-|
cmq, mi serviva anche la mascherina che dice: "questo non e' il tuo browser predefinito"
Grazie:pat:

PM Quote