2010-12-15 6 views
2

c를 나는 그러나 이것은 윈도우가 이미 열려 사실을 고려하지 않습니다는 - 그 다음 나는 경우 #

System.Diagnostics.Process.Start("iexplore.exe", uniquePartOfUrl); 

를 통해, 즉 뭔가를 엽니 다하기 위해 노력하고있어 그냥 사용하고 싶습니다. 어떻게이 일을 할 수 있겠습니까?

+0

왜 창 핸들이 필요합니까? IE의 API는 COM입니다. 새 창/탭을 제어하려면 IWebBrowser2를 요청해야합니다 (IWebBrowser2에서 창/탭 핸들을 가져올 수는 있지만). –

답변

0

는 CodeProject의에서 프로젝트가 존재하는 "Capturing the Running IE Instances in C#는"

그것은 당신에게 그것을 할 수있는 한 가지 방법을 제공합니다.

WIN32 API를 사용하면 열린 창을 열거하고 필터링하여 실행중인 IE 인스턴스를 가져올 수 있습니다.

도움이 될 수 있습니다.

0

당신은이 같은 시도 할 수 있습니다 :

var p = new System.Diagnostics.Process(); 
var s = new System.Diagnostics.ProcessStartInfo(uniquePartOfUrl); 
s.UseShellExecute = true; 
s.WindowStyle = ProcessWindowStyle.Normal; 
p.StartInfo = s; 
p.Start(); 

내가 지금 그것을 테스트 할 편리 컴파일러가없는,하지만 아이디어는 단순히 "이 URL을 엽니 다"로 OS를 말해해야한다는 것입니다 운영 체제가 응용 프로그램에 따라 기존 창을 사용할 수있는 방법을 결정하게하십시오. 그럴 가치가있어.

4

IMO, 웹 페이지를 열 수있는 가장 좋은 방법은 다음 구문을 사용하는 것입니다

Process.Start("http://www.mysite.com"); 

OS가 사용자의 기본 브라우저에서 열고,이 경우 브라우저의 탭 기능을 사용하는이 방법 그 능력. 아무리 좋은 이유라도없이 특정 브라우저를 사용하도록 강요하는 프로그램보다 나를 더 괴롭게하지 않습니다 (이미 사용하고있는 브라우저를 이미 선택했을 때). 사용자 결정을 존중하는 것은 좋은 일입니다.

0

IE의 기존 창을 재사용하는 경우, 당신은 2 개 가지 방법으로

  1. IE의 현재 인스턴스를 찾은 다음 해당 인스턴스를 사용하여 열에서 접근 할 수 있습니다. 이것은 @LaGrandMere가 제공 한 답변의 적용을받습니다.

  2. 내장 된 설정을 사용하여 Internet Explorer를 설정하면 재사용 할 수 있습니다. 이 방법을 사용하려면 this Microsoft support article에 나와있는 지침을 따르십시오.

관련 문제