Come modificare il Web browser e di posta elettronica client predefinito a livello di programmazione in Windows XP

Traduzione articoli Traduzione articoli
Identificativo articolo: 299853 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sommario

In un computer basato su Windows XP, Windows XP imposta il browser predefinito Start menu Internet su Microsoft Internet Explorer e client di posta elettronica Microsoft Outlook Express. Browser Start menu Controlla solo l'applicazione che viene avviato quando si fa clic sul pulsante Start , sull'icona Internet o di posta elettronica . Questo è distinto dal Web browser o di posta elettronica client predefinito che viene utilizzato per avviare URL arbitrari da qualsiasi punto nel sistema. A livello di programmazione è possibile modificare le impostazioni predefinite per il sistema o singolarmente per ciascun utente.

Informazioni

Per impostazione predefinita, Windows XP utilizza un'impostazione globale nella chiave del Registro di sistema HKeyLocalMachine (HKLM) per impostare un iniziale, la posta elettronica predefinito e il client browser Web dal menu di avvio . Windows XP implementa inoltre nuove chiavi del Registro di sistema HKeyCurrentUser (HKCU) per archiviare i singoli internet e informazioni del client di posta elettronica per ogni utente come parte del proprio profilo se gli utenti selezionano un client diverso da quello predefinito. Nell'esempio di codice riportato di seguito aggiunge un client di posta elettronica e l'esplorazione del Web le opzioni disponibili nel sistema e Mostra come modificare il file globale e l'utente corrente:
  1. Creare un nuovo Microsoft Visual Basic progetto "EXE Standard".
  2. Dal menu progetto , fare clic su Aggiungi modulo , fare clic su modulo e quindi fare clic su Apri .
  3. Fare doppio clic sul nuovo modulo creato e quindi incollare il codice riportato di seguito nel modulo di codice.
    Const REG_SZ As Long = 1
    Const HKEY_CURRENT_USER = &H80000001
    Const HKEY_LOCAL_MACHINE = &H80000002
    Const KEY_SET_VALUE = &H2
    Const KEY_ALL_ACCESS = &H3F
    Const REG_OPTION_NON_VOLATILE = 0
    Const HWND_BROADCAST = &HFFFF
    Const WM_SETTINGCHANGE = &H1A
    
    
    
    Private Declare Function RegCloseKey Lib "advapi32.dll" _
      (ByVal hKey As Long) As Long
    Private Declare Function RegCreateKeyEx Lib "advapi32.dll" _
      Alias "RegCreateKeyExA" (ByVal hKey As Long, _
      ByVal lpSubKey As String, ByVal Reserved As Long, _
      ByVal lpClass As String, ByVal dwOptions As Long, _
      ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, _
      phkResult As Long, lpdwDisposition As Long) As Long
    Private Declare Function RegOpenKeyEx Lib "advapi32.dll" _
      Alias "RegOpenKeyExA" (ByVal hKey As Long, _
      ByVal lpSubKey As String, ByVal ulOptions As Long, _
      ByVal samDesired As Long, phkResult As Long) As Long
    Private Declare Function RegSetValueExString Lib "advapi32.dll" _
      Alias "RegSetValueExA" (ByVal hKey As Long, _
      ByVal lpValueName As String, ByVal Reserved As Long, _
      ByVal dwType As Long, ByVal lpValue As String, _
      ByVal cbData As Long) As Long
    Private Declare Function SendMessage Lib "user32" _
      Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
      ByVal wParam As Long, lparam As String) As Long
    Public Function SetClient(iClient As Integer, sDisplayName As String, _
      sClientCommandLine As String, sClientResourceDLL As String, _
      iLocalization As Integer, bGlobalClient As Boolean, _
      Optional sCLParameters As String, Optional bMakeDefault As Boolean) As Integer
      
      ' iClient - 1 for internet browser, 2 for e-mail client
      ' sDisplayName - the name to be displayed on the menu for the client
      ' sClientCommandLine - the path and filename of the e-mail client
      '
      ' The next two parameters are included for localization of the client.
      ' For backwards compatibility with applications that do not support localized
      ' strings, the name of the application in the installed language should be set
      ' as the Default value for the key.
      ' sClientResourceDLL - provides a path to an EXE or DLL containing the
      '   localized strings for the client.
      ' iLocalization - a string resource ID within the DLL whose value is
      '   to be displayed to the user allowing the same registration to
      '   be used for multiple languages.  For each language, provide a
      '   different Resource DLL, and the dynamic loading of the string
      '   from the DLL results in the correct strings being displayed, depending
      '   on the language.
      '
      ' bGlobalClient - sets the value for either all users (True) or the
      '   current user (False)
      ' sCLParameters - additional parameters on the command line to be passed to the
      '   browser or e-mail client.
      ' bMakeDefault - (Optional) set the browser or e-mail application as the default
      
      Dim iStatus As Integer
      Dim hHandle As Long
      Dim hGRegKey As String
      Dim hLRegKey As String
      Dim sCommand As String
      Dim sKey As String
      Dim sAll As String
      Dim sRoot As String
      Dim hKey As Long
      Dim sLoc As String
      hGRegKey = HKEY_LOCAL_MACHINE
      hLRegKey = HKEY_CURRENT_USER
      
      
      If iClient = 1 Then
        sRoot = "Software\Clients\StartMenuInternet"
      Else
        sRoot = "Software\Clients\Mail"
      End If
      
      ' Create and null terminate needed strings
      sCommand = "shell\open\command"
      sKey = sRoot & "\" & sDisplayName
      sAll = sKey & "\" & sCommand
      sLoc = "@" & sClientResourceDLL & "," & iLocalization & Chr$(0)
      sClientLocation = """" & sClientCommandLine & """" & _
        IIf(sCLParameters <> "", " ", "") & Trim(sCLParameters) & Chr$(0)
      sDisplayName = sDisplayName & Chr$(0)
      
      ' Create a registry key for the new client
      iStatus = RegCreateKeyEx(hGRegKey, sKey, 0&, vbNullString, _
        REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, hNewKey, lRetVal)
      iStatus = RegCreateKeyEx(hGRegKey, sAll, 0&, vbNullString, _
        REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, hNewKey, lRetVal)
      If iStatus = ERROR_NONE Then
        iStatus = RegOpenKeyEx(hGRegKey, sAll, 0, KEY_SET_VALUE, hKey)
        iStatus = RegSetValueExString(hKey, "", 0&, REG_SZ, sClientLocation, _
          Len(sClientLocation))
        iStatus = RegCloseKey(hKey)
        iStatus = RegOpenKeyEx(hGRegKey, sKey, 0, KEY_SET_VALUE, hKey)
        iStatus = RegSetValueExString(hKey, "", 0&, REG_SZ, sDisplayName, _
          Len(sDisplayName))
        ' Add the localization string
        iStatus = RegSetValueExString(hKey, "LocalizedString", 0&, REG_SZ, _
            sLoc, Len(sLoc))
        iStatus = RegCloseKey(hKey)
      Else
        SetClient = iStatus
        Exit Function
      End If
      
      '  Sets browser as local or global default if specified
      If bMakeDefault Then
        If bGlobalClient Then
          iStatus = RegOpenKeyEx(hGRegKey, sRoot, 0, KEY_SET_VALUE, hKey)
          iStatus = RegSetValueExString(hKey, "", 0&, REG_SZ, sDisplayName, _
            Len(sDisplayName))
          iStatus = RegCloseKey(hKey)
        Else
          iStatus = RegCreateKeyEx(hLRegKey, sRoot, 0&, vbNullString, _
            REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, hNewKey, lRetVal)
          iStatus = RegSetValueExString(hNewKey, "", 0&, REG_SZ, _
            sDisplayName, Len(sDisplayName))
          iStatus = RegCloseKey(hNewKey)
        End If
        UpdateMenus
      End If
    End Function
    Private Sub UpdateMenus()
      ' Refresh the menu choices with the updated client
      Dim iRetVal As Integer
      iRetVal = SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, _
        "SOFTWARE\Clients\mail")
      iRetVal = SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, _
        "SOFTWARE\Clients\StartMenuInternet")
    End Sub
    
    di seguito sono riportati esempi di chiamare questa funzione nel modulo.
    Dim x As Integer
    '  Sets up a browser for the current user and makes it default
    x = SetClient(1, "My Browser", "C:\Program Files\MyBrowser\mybrowser.exe", "C:\Program Files\MyBrowser\localization.dll", -123, True, "-homepage", False)
    '  Sets up an e-mail client for the current user and makes it default
    x = SetClient(2, "My E-mail", "C:\Program Files\MyEmail\myemail.exe", "C:\Program Files\MyEmail\localization.dll", -456, True, "-inbox", False)
    				
  4. Chiamare la funzione nel modulo, come illustrato di seguito.
    Dim x As Integer
    '  Sets up a browser for the current user and makes it default
    x = SetClient(1, "My Browser", "C:\Program Files\MyBrowser\mybrowser.exe", "C:\Program Files\MyBrowser\localization.dll", -123, True, "-homepage", False)
    '  Sets up an e-mail client for the current user and makes it default
    x = SetClient(2, "My E-mail", "C:\Program Files\MyEmail\myemail.exe", "C:\Program Files\MyEmail\localization.dll", -456, True, "-inbox", False)
    				
  5. Dal menu file , fare clic su Crea Project exe , digitare un nome per il progetto e quindi fare clic su OK .

    Nota Project è un segnaposto per il nome del progetto.
  6. Fare doppio clic su Project exe per eseguire il programma.

Riferimenti

Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
145679Come utilizzare l'API del Registro di sistema per salvare e recuperare l'impostazione

Proprietà

Identificativo articolo: 299853 - Ultima modifica: venerdì 10 agosto 2007 - Revisione: 3.2
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 5.0 Professional Edition alle seguenti piattaforme
    • Microsoft Windows XP Professional
    • Microsoft Windows XP Home Edition
Chiavi: 
kbmt kbapi kbhowto KB299853 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 299853
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com