Partager via


Démarrez le navigateur Internet par défaut par programmation à l’aide de Visual C++

Cet article montre comment démarrer le navigateur Internet par défaut à l’aide d’extensions managées pour Visual C++.

Version du produit d’origine : Visual C++
Numéro de base de connaissances d’origine : 307382

Note

Spécifier l’URL, FTP ou le fichier à ouvrir

Vous pouvez spécifier une URL (Uniform Resource Locator), un fichier ou une adresse FTP (File Transfer Protocol). Les trois affectations suivantes sont valides :

System::String * target= "http://www.microsoft.com";
System::String * target = "ftp://ftp.microsoft.com";
System::String * target = "C:\\Program Files\\Microsoft Visual Studio\\INSTALL.HTM";

Utiliser la méthode Process class Start pour démarrer le navigateur

La Process classe contient une méthode statique Start . Comme il s’agit d’une méthode statique, vous pouvez appeler Start sans avoir d’instance d’une Process classe.

System::Diagnostics::Process::Start(target);

Fournir la gestion des exceptions

Étant donné que vous tirez parti de la propriété par défaut UseShellExecute lorsque vous appelez la Start méthode, vous n’avez pas besoin d’interroger explicitement le Registre pour déterminer quel navigateur est la valeur par défaut. Toutefois, si vous utilisez cette approche sur un ordinateur qui n’a pas de navigateur installé, une exception se produit. Cette exception doit être interceptée afin que l’action appropriée puisse être effectuée. Cet exemple intercepte explicitement une erreur générée lorsque la clé de Registre nécessaire est introuvable et indique qu’aucun navigateur n’est installé. En outre, un gestionnaire d’exceptions général est fourni pour d’autres erreurs qui peuvent se produire. Le try...catch bloc est illustré dans l’exemple de code complet.

Exemple de code complet

#using <mscorlib.dll>
#using <system.dll>
#using <System.Windows.Forms.dll>
int main()
{
    //Use no more than one assignment when you test this code.
    //System::String * target= "http://www.microsoft.com";
    //System::String * target = "ftp://ftp.microsoft.com";
    System::String * target = "C:\\Program Files\\Microsoft Visual Studio\\INSTALL.HTM";
    try
    {
        System::Diagnostics::Process::Start(target);
    }
    catch (System::ComponentModel::Win32Exception * noBrowser)
    {
        if (noBrowser->ErrorCode==-2147467259)
           System::Windows::Forms::MessageBox::Show(noBrowser->Message);
    }
    catch (System::Exception * other)
    {
        System::Windows::Forms::MessageBox::Show(other->Message);
    }
    return 0;
}

Dépannage

Ce code dépend fortement des associations de types de fichiers d’application dans la ruche HKEY_CLASSES_ROOT du Registre. Ce qui peut entraîner des résultats inattendus et des exceptions si le Registre est endommagé. En outre, les types de fichiers et les extensions peuvent être associés à des applications autres que le navigateur. Par exemple, les fichiers HTML (Hyper Text Markup Language) ou HTM peuvent être associés au logiciel de développement web au lieu du navigateur.