Como modificar o padrão email e navegador cliente da Web programaticamente no Windows XP

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 299853
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Em um computador baseado no Windows XP, Windows XP define o navegador de Internet de menu Iniciar padrão no Microsoft Internet Explorer e cliente de email para o Microsoft Outlook Express. O navegador da Internet menu Iniciar só controla o aplicativo é iniciado quando você clicar no ícone Internet ou email no menu Iniciar . Ela é separada do padrão cliente Web do navegador ou email que é usado para iniciar URLs arbitrários de qualquer lugar no sistema. Você pode alterar programaticamente os padrões para o sistema ou individualmente para cada usuário.
Mais Informações
Por padrão, o Windows usa uma configuração global na chave do Registro HKeyLocalMachine (HKLM) para definir um inicial, cliente de navegador da Web e email padrão no menu Iniciar . O Windows XP também implementa novas chaves de registro em HKeyCurrentUser (HKCU) para armazenar internet individuais e informações de cliente de email para cada usuário como parte do seu perfil se os usuários selecionam um outro cliente que o padrão. O exemplo de código a seguir adiciona um cliente de email e navegação da Web para as opções disponíveis no sistema e mostra como modificar o modelo global e o usuário atual:
  1. Criar um novo Microsoft Visual Basic "Standard EXE" projeto.
  2. No menu Project , clique em Adicionar módulo , clique em módulo e em seguida, clique em Abrir .
  3. Clique duas vezes o novo módulo que você criou e, em seguida, cole o código a seguir no módulo código.
    Const REG_SZ As Long = 1Const HKEY_CURRENT_USER = &H80000001Const HKEY_LOCAL_MACHINE = &H80000002Const KEY_SET_VALUE = &H2Const KEY_ALL_ACCESS = &H3FConst REG_OPTION_NON_VOLATILE = 0Const HWND_BROADCAST = &HFFFFConst WM_SETTINGCHANGE = &H1APrivate Declare Function RegCloseKey Lib "advapi32.dll" _  (ByVal hKey As Long) As LongPrivate 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 LongPrivate 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 LongPrivate 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 LongPrivate Declare Function SendMessage Lib "user32" _  Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _  ByVal wParam As Long, lparam As String) As LongPublic 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 IfEnd FunctionPrivate 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
    aqui estão exemplos de chamar essa função no módulo.
    Dim x As Integer'  Sets up a browser for the current user and makes it defaultx = 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 defaultx = SetClient(2, "My E-mail", "C:\Program Files\MyEmail\myemail.exe", "C:\Program Files\MyEmail\localization.dll", -456, True, "-inbox", False)				
  4. Chamar a função no módulo da seguinte maneira.
    Dim x As Integer'  Sets up a browser for the current user and makes it defaultx = 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 defaultx = SetClient(2, "My E-mail", "C:\Program Files\MyEmail\myemail.exe", "C:\Program Files\MyEmail\localization.dll", -456, True, "-inbox", False)				
  5. No menu arquivo , clique em criar Project .exe , digite um nome para o projeto e, em seguida, clique em OK .

    Observação Project é um espaço reservado para o nome do projeto.
  6. Clique duas vezes .exe de Project para executar o programa.
Referências
Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
145679Como usar a API de registro para salvar e recuperar configuração

Propriedades

ID do Artigo: 299853 - Última Revisão: 12/06/2015 02:55:07 - Revisão: 3.2

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

  • kbnosurvey kbarchive kbmt kbapi kbhowto KB299853 KbMtpt
Comentários