Please Enable JavaScript!
Gon[ Enable JavaScript ]

C# 프로그램에서 외부 브라우저로 사이트 이동시키기

기타 언어/C# & MFC
반응형

Application 프로그램 내부에서 특정 사이트로 유도 할때가 있을것이다.

Application 내에서 자신의 홈페이지로 바로가기 버튼을 클릭하면 브라우저가 열리면서 입력한

주소로 찾아간다던지 안내를 위한 특정 주소로 링크를 걸어 클릭하면 찾아가는 서비스 등을

말한다.

 

이것의 실행원리는 C# 에서 제공하는 System.Diagnostics.Process 클래스를 사용하여

외부프로그램인 explorer.exe, iexplore.exe 실행시켜 이동시키는 것이다.

이 외에도 외부프로그램을 실행시키는 예제는 다음과 같이 많이 쓴다.

윈도우 종료 : System.Diagnostics.Process.Start("cmd.exe","ShutDown.exe -s -f -t 00");

원도우 재부팅 : System.Diagnostics.Process.Start("cmd.exe","ShutDown.exe -r -f -t 00");

특정폴더 열기: System.Diagnostics.Process.Start("explorer.exe","C:\Temp”);

특정사이트열기 : System.Diagnostics.Process.Start(“explorer.exe”, “http://www.naver.com”);

도스명령어 실행 : System.Diagnostics.Process.Start(“cmd.exe”, “*/c dir”);

 

위의 예제에서도 나와 있지만 Start 함수를 실행할 때 explorer 와 두번째 파라미터에 URL

넘겨주면 일반 브라우저에서 실행한것처럼 URL 사이트로 이동하게 된다.

하지만 위의 예제와 같이 URL 뒤에 파라미터가 없으면 상관이 없지만 아래와 같이

파라미터가 존재하는 주소를 넘기게 되면 찾을수 없는 디렉토리라며 연결되지 않고 에러를

발생시킨다.

http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=10cc340b-f857-4a14-83f5-25634c3bf043

 

그래서 디렉토리가 아닌 사이트만 연결하고자 할때에는 explorer 대신 iexplorer.exe

실행시켜야 된다.

System.Diagnostics.ProcessStartInfo pro = new System.Diagnostics.ProcessStartInfo(“iexplore.exe”, “http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=10cc340b-f857-4a14-83f5-25634c3bf043”);

System.Diagnostics.Process.Start(pro);

 

내가 이 예제를 언급한 것은 이것을 이용해서 프로그램을 설치할 컴퓨터에 NET Framework

설치 되어있는지 검사해서 없으면 마이크로소프트 NET Framework 다운로드 사이트로

이동하게 하는 것이다..

 

로컬 컴퓨터에 CLR 설치정보를 알기위해선 System.Environment 의 많은 환경정보들중

Version 속성값으로 알수 있다. 이 버전정보를 통해서 설치되어있지 않거나 버전이 낮으면

위에서 언급한 내용처럼 사이트로 이동을 시키는 것이다.
string frameworkVersion = System.Environment.Version.ToString(); // CLR 버전정보
if ((frameworkVersion == null) || (frameworkVersion.CompareTo("2.0.0.0") < 1))
{ 
    System.Diagnostics.ProcessStartInfo pro = new    
    System.Diagnostics.ProcessStartInfo("iexplore.exe",                           
         "http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=
         10cc340b-f857-4a14-83f5-25634c3bf043");
    System.Diagnostics.Process.Start(pro);
}
반응형
Posted by 녹두장군1
,