작은 C # 응용 프로그램을 디자인하고 있으며 웹 브라우저가 있습니다. 나는 현재 내 컴퓨터의 모든 기본값을 Google 크롬이 기본 브라우저라고 말하지만 응용 프로그램에서 링크를 클릭하여 새 창에서 열면 인터넷 탐색기가 열립니다. 대신 기본 브라우저에서 이러한 링크를 열 수있는 방법이 있습니까? 아니면 내 컴퓨터에 문제가 있습니까?
내 문제는 응용 프로그램에 웹 브라우저가 있으므로 Google로 이동하여 “스택 오버플로”를 입력하고 첫 번째 링크를 마우스 오른쪽 버튼으로 클릭하고 “새 창에서 열기”를 클릭하면 Chrome 대신 IE에서 열립니다. 이 코드가 잘못 코딩되었거나 컴퓨터에 설정이 올바르지 않은 것입니까
=== 편집 ===
이것은 정말로 성가신 일입니다. 브라우저가 IE임을 이미 알고 있지만 이전에는 제대로 작동했습니다. 링크를 클릭하면 크롬으로 열립니다. 나는 c #을 시작할 수 없기 때문에 응용 프로그램을 만들기 위해 날카로운 개발을 사용하고있었습니다. 나는 새로운 Windows 설치를했는데 응용 프로그램에서 너무 멀지 않아서 다시 시작하기로 결정했으며 이제는이 문제가 있습니다. 그것이 내 컴퓨터인지 아닌지 확실하지 않은 이유입니다. 기본 브라우저에서 단순히 새 링크를 열지 않고 링크를 클릭하면 IE가 전체 브라우저를 시작하는 이유는 무엇입니까?
답변
당신은 단지 쓸 수 있습니다
System.Diagnostics.Process.Start("http://google.com");
편집 : WebBrowser
컨트롤은 IE의 포함 된 복사본입니다.
따라서 그 안의 모든 링크는 IE에서 열립니다.
이 동작을 변경하기 위해 Navigating
이벤트를 처리 할 수 있습니다 .
답변
dotnet core 에서이 질문을 찾는 사람들을 위해. 여기서 해결책을 찾았습니다 .
암호:
private void OpenUrl(string url)
{
try
{
Process.Start(url);
}
catch
{
// hack because of this: https://github.com/dotnet/corefx/issues/10361
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
url = url.Replace("&", "^&");
Process.Start(new ProcessStartInfo("cmd", $"/c start {url}") { CreateNoWindow = true });
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
Process.Start("xdg-open", url);
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
Process.Start("open", url);
}
else
{
throw;
}
}
}
답변
public static void GoToSite(string url)
{
System.Diagnostics.Process.Start(url);
}
문제를 해결해야합니다
답변
http://msdn.microsoft.com/de-de/library/system.diagnostics.process.aspx에서Process
언급 했습니까 ?
당신은 사용할 수 있습니다
Process myProcess = new Process();
try
{
// true is the default, but it is important not to set it to false
myProcess.StartInfo.UseShellExecute = true;
myProcess.StartInfo.FileName = "http://some.domain.tld/bla";
myProcess.Start();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
답변
상기 살펴보세요 GeckoFX 제어 .
GeckoFX는 오픈 소스 구성 요소로 Mozilla Gecko (Firefox)를 모든 .NET Windows Forms 응용 프로그램에 쉽게 포함시킬 수 있습니다. 완전히 주석 처리 된 C #으로 작성된 GeckoFX는 기본 Internet Explorer 기반 WebBrowser 컨트롤을 완벽하게 대체합니다.
답변
구식 방법으로 시도해보십시오.)
public static void openit(string x)
{
System.Diagnostics.Process.Start("cmd", "/C start" + " " + x);
}
사용 : openit ( “www.google.com”);
답변
많은 연구를 한 후에 나는 주어진 대답의 대부분이 닷넷 코어에서 작동하지 않는다고 생각합니다. 1 System.Diagnostics.Process.Start("http://google.com")
.; -닷넷 코어와 작동하지 않습니다
2. 작동하지만 기본 브라우저가 크롬 인 경우 새 창 열기를 차단합니다
myProcess.StartInfo.UseShellExecute = true;
myProcess.StartInfo.FileName = "http://some.domain.tld/bla";
myProcess.Start();
아래는 가장 간단하며 모든 시나리오에서 작동합니다.
Process.Start("explorer", url);