Visual C#을 사용하여 프로그래밍 방식으로 기본 인터넷 브라우저 시작

이 문서에서는 Visual C#을 사용하여 기본 인터넷 브라우저를 시작하는 방법을 보여줍니다.

원래 제품 버전: Visual Studio
원래 KB 번호: 305703

참고

열 URL, FTP 또는 파일 지정

URL, 파일 또는 FTP(파일 전송 프로토콜) 주소를 지정할 수 있습니다. 이러한 세 가지 할당은 모두 유효합니다.

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

Process 클래스 Start 메서드를 사용하여 브라우저 시작

클래스에는 Process 정적 Start 메서드가 포함되어 있습니다. 정적 메서드이므로 클래스의 instance Process 없이 를 호출 Start 할 수 있습니다.

System.Diagnostics.Process.Start(target);

클래스에 대한 자세한 내용은 프로세스 클래스Process 참조하세요.

예외 처리 제공

메서드를 호출 Start 할 때 기본 UseShellExecute 속성을 활용하기 때문에 레지스트리를 명시적으로 쿼리하여 기본값인 브라우저를 확인할 필요가 없습니다. 그러나 브라우저가 설치되지 않은 컴퓨터에서 이 방법을 사용하면 예외가 발생합니다. 적절한 작업을 수행할 수 있도록 이 예외를 catch해야 합니다.

이 예제에서는 필요한 레지스트리 키를 찾을 수 없을 때 생성되는 오류를 명시적으로 트래핑하고 브라우저가 설치되지 않음을 나타냅니다. 또한 발생할 수 있는 다른 오류에 대한 일반적인 예외 처리기가 제공됩니다. 블록은 try...catch 전체 코드 목록에 설명되어 있습니다.

전체 코드 샘플

string target= "http://www.microsoft.com";
//Use no more than one assignment when you test this code.
//string target = "ftp://ftp.microsoft.com";
//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)
    MessageBox.Show(noBrowser.Message);
}
catch (System.Exception other)
{
    MessageBox.Show(other.Message);
}

문제 해결

이 코드는 레지스트리의 HKEY_CLASSES_ROOT(HKCR) 하이브에 있는 애플리케이션 파일 형식 연결에 따라 크게 달라집니다. 레지스트리가 손상된 경우 예기치 않은 결과 및 예외가 발생할 수 있습니다. 또한 파일 형식 및 확장명은 브라우저 이외의 애플리케이션과 연결될 수 있습니다. 예를 들어 HTM 또는 HTML 파일은 브라우저 대신 웹 개발 소프트웨어와 연결될 수 있습니다.