2012-11-12 24 views
5

Chrome'dan C# 'den bir url açmaya çalışıyorum ve hash (#)' yı koruyorum. Örnek: işlemine başlamadan hash (#) de dahil olmak üzereC# chrome ile açık url hash (#)

string command = "http://127.0.0.1/test.html#foobar"; 
ProcessStartInfo ps = new ProcessStartInfo(command) { UseShellExecute = true }; 
Process.Start(ps); 

sonra her şey ve kaybolur. Ben url karma dahil komut isteminden el Chrome'u çalıştırabilirsiniz

C: \ Program Files (x86) \ Google \ Chrome \ Application> chrome.exe'ye 127.0.0.1/test.html#foobar

Varsayılan tarayıcı IE veya FireFox olarak ayarlandığında

ve karma değeri korunur.

Her türlü öneri çok takdir edilmektedir. Teşekkürler!

test.html:

<!DOCTYPE HTML> 
<html> 
<head> 
    <title>Test</title> 
</head> 
<body> 
<h1>Test</h1> 
<div style="height:1000px; background: #ccc; width: 100%"></div> 
<a name="foobar">foobar</a> 
</body> 
</html> 

Not: Ben kullanıcı kromu kullanmak istediği tahmin etmek istemiyorum, bu şimdiye kadar kullanıcıların varsayılan tarayıcı nedir içinde çalışmak gerekir. Kullanıcının varsayılan tarayıcısı IE veya Fire Fox olduğunda çalışır, ancak kullanıcıların varsayılan tarayıcısı Chrome olduğunda karma kaybolur.

+0

Chrome'u açık bir şekilde komutda mı çalıştırmayı deneyin? –

cevap

1

Varsayılan tarayıcıda bir URL açma komutu start myURL, sadece myURL değil.

Sen komutu çalıştırmak gerekir:

başlangıç ​​"127.0.0.1/test.html#foobar" tırnak, çıkan dizede değil olması gerektiğini

Not C# içinde; Bunun için C# kodu olacaktır:

string command = @"start" + @"""127.0.0.1/test.html#foobar"""; 
+0

Kullanıcının varsayılan olarak ayarladığı tarayıcıda çalışmak için buna ihtiyacım var. Kullanıcıları Chrome'u kullanmaya zorlamak istemiyorum, yalnızca Chrome'u kullanırken URL'ye hash değerini iletmek için ihtiyacım var. – SteveHansen

+0

@SteveHansen Öyleyse, neden soruyu krom olarak açıp krom olarak açtığınız gibi neden chrome.exe olarak etiketlediniz ve kabuğunu doğrudan kullanırken yaptığınız örnekteki chrome.exe'yi kullanın? Önce kabukta ne yapmak istediğinizi belirleyin, sonra C# 'ya çevirmekten endişe edin. Her halükarda, cevabı buna göre güncelledim. – Servy

+0

Soruda açıkladığım gibi, bu IE ve FireFox'ta çalışır. Bu, kullanıcıların varsayılan tarayıcısı Chrome olarak ayarlanmışsa sorun teşkil eder. Sorun, Chrome'da karma içeren bir URL'nin açılmasıyla ilgilidir. Kabuğun kullanılmaya başlanması örneği, karma'nın Chrome'da saklanabileceğini, ancak C# ile gösterildiği şekilde (gösterildiği gibi), karma yitirildiğini göstermektedir. – SteveHansen

0

Benim varsayılan tarayıcı krom ve bu komut mükemmel düzgün çalışır:

System.Diagnostics.Process.Start(@"http://www.bitterminion.com/excel-launchpad#gopro"); 

"#gopro" sağlam kalır.

+0

Windows ve .NET Framework'ün hangi sürümü çalışıyorsunuz? – SteveHansen

+0

Windows 7'deyim. Sadece .NET 2, 3, 3.5 ve 4 ile test ettim. Hepsi aynı sonuca sahipti. Konfigürasyon ile kodun tam satırını çalıştırdığınızda doğru çalışmıyor mu? –

+0

Maalesef, benim için çalışmıyor. Window 8, Chrome 23.0.1271.97'yi çalıştırıyorum.Aynı sonuca sahip birkaç farklı Win8 makinesinde test yaptım. – SteveHansen