Как заставить IE-8 32-битный для Win7 и не сломать IE-7 на WinXP? - PullRequest
0 голосов
/ 17 ноября 2011

Мы запускаем приложение на C # .net с пользователями, у которых может быть WinXP или Win7. WinXP в основном на IE-7, пользователи Win7 имеют IE-8. В приложении должна отображаться веб-страница, и она будет работать только в 32-разрядном браузере (Crystal Reports).

В WinXP браузер вызывается с помощью C: \ Program Files \ Internet Explorer \ iexplore.exe.

В Win7 64-разрядный браузер вызывается с тем же, но 32-разрядный браузер вызывается с C: \ Program Files (x86) \ Internet Explorer \ iexplore.exe.

Итак, нам нужно определить ОС пользователя, а затем использовать соответствующий IE. Или нам нужно каким-то образом сделать IE 32-битным браузером по умолчанию.

Когда мы впервые столкнулись с этим, я был одним из немногих пользователей Win7, и мы переназначили iexplore на моем компьютере, чтобы указать на 32-битный IE. Это работало в течение нескольких месяцев, пока мы не получили обновление, и оно настолько сильно сломало IE, что не запустилось вообще, и я закончил переоборудованием своего ПК. Я не думаю, что это хорошее решение для наших обычных пользователей!

Должны ли мы как-то получить ОС пользователя, а затем вызвать соответствующий IE? Как это будет сделано? Или есть лучший способ справиться с этим? Вероятно, какое-то время, возможно, несколько лет будет смесь ОС.

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

Вам нужно просто позвонить Process.Start(@"\path\to\file.html"), чтобы открыть страницу в браузере пользователя по умолчанию.

Если вам действительно нужен путь к 32-битному IE, позвоните

Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86),  
    @"Internet Explorer\iexplore.exe"
)
0 голосов
/ 17 ноября 2011
Process.Start("http://www.example.com/path/to/file.html");

При запуске URL откроется браузер по умолчанию. Это может быть не IE, хотя. Я также рекомендовал бы форматировать URL с протоколом и всем остальным.

...