john1990_1 Ответов: 2

Как заставить новый сайт Google translate работать в системе управления веб-браузером?


Мне нужно изменить версию IE, они сказали мне, что я должен сделать это в реестре во время установки, я понятия не имею, как изменить установку.

Что я уже пробовал:

Я помещаю элемент управления веб-браузером в форму win и перемещаю его в translate.google.com раньше он работал, но перестал работать над новым дизайном своего сайта!

Dave Kreskowiak

Это полностью зависит от приложения, которое вы используете для сборки установщика, о котором вы не упомянули.

john1990_1

Я исправил эту проблему, не узнав, как это сделать, и не прибегая к изменению установщика.

2 Ответов

Рейтинг:
12

john1990_1

Это работает как волшебство, у меня было печальное время, когда Google Translate перестал работать, и это могло бы исправить его, у меня давно не было моей программы по глупой причине.

Чтобы получить элемент управления WebBrowser для отображения современного содержимого:

Элемент управления WebBrowser использует ту же версию Internet Explorer, которая установлена в вашей ОС, но по умолчанию он не использует последний режим документа и отображает содержимое в режиме совместимости.

Как симптом, вы можете увидеть сайт в Internet Explorer, но WebBrowser control не показывает сайт правильно, и для некоторых сайтов он также показывает ошибку скрипта.

Решение:

Вы можете указать элементу управления WebBrowser использовать последний режим документа без режима совместимости в элементе управления WebBrowser. Вы можете следовать инструкциям здесь, чтобы отключить этот параметр с помощью реестра.

Это устанавливает режим документа в версии в IE текущего процесса на 99999, что означает максимальную версию.

var appName = System.Diagnostics.Process.GetCurrentProcess().ProcessName + ".exe";

using (var Key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true))
{
   Key.SetValue(appName, 99999, RegistryValueKind.DWord);
}

Что произойдет, если я установлю значение режима документа FEATURE_BROWSER_EMULATION выше, чем версия IE на клиенте?

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


BillWoodruff

Мне непонятно, что это делает; почему бы вам не написать Здесь совет/трюк, описывающий, что он делает, чтобы другие люди могли извлечь выгоду ?

john1990_1

Конечно, я отредактировал ответ, теперь он ясен?

BillWoodruff

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

твое здоровье, Билл

john1990_1

Да.

BillWoodruff

Это легко разместить совет/трюк: смотрите это для получения информации о начале работы, и дайте мне знать, как это происходит; будьте счастливы помочь, если вам это нужно.

https://www.codeproject.com/Messages/3123931/Note-From-Code-Project-The-Article-Writing-Forum.aspx

0x01AA

5 за то, что вы поделились своим решением.

Рейтинг:
1

MadMyche

Использование элемента управления браузером и переход на страницу перевода-это сама проблема:
1. он полагается на ваш веб-браузер (который может измениться, как вы уже выяснили)
2. Он также полагается на веб-страницу, возвращаемую из Google (которая также может измениться)
3. возможные нарушения условий предоставления услуг Google.

Лучше всего было бы использовать API Translate и настроить свою форму в соответствии с вашими потребностями.
Документация API облачного перевода |  API облачного перевода  |  Облако Google[^]


BillWoodruff

+5

Dave Kreskowiak

Да, мы были в этом квартале с операцией много раз. Об использовании API для него просто не может быть и речи по какой-то неизвестной причине.

Он действительно хочет сделать это трудным путем.

john1990_1

Моя программа теперь потрясающе работает со страницей Google Translate, спасибо за попытку помочь, я видел программу API, и это совсем не похоже на страницу Google Translate, также можно войти в свою учетную запись Google и сохранить историю переводов, а также звездные переводы, я хорош, в первую очередь мне придется заплатить за API Google, не так ли?

Dave Kreskowiak

Заплатить за это? Не совсем. Это зависит от того, сколько запросов вы делаете в месяц и при каких обстоятельствах.

Если это будет "коммерческое" приложение, то у вас нет другого выбора, кроме как использовать API, потому что ваше приложение нарушает условия предоставления услуг Google для веб-сайта.

Условия предоставления услуг Google[^]

Использование API translate никогда не бывает бесплатным.
Ценообразование - облачный API перевода[^]

Часто задаваемые вопросы - Cloud Translation API[^]

john1990_1

Программа не является коммерческой, и я открываю страницу Google Translate в веб-браузере точно так же, как Edge или Firefox, просто браузер выводится вперед, когда пользователь нажимает клавишу F1.

MadMyche

Я думаю, что все зависит от того, как вы определяете "коммерческий"

john1990_1

Моя программа-это полноценный веб-браузер, который открывает веб-сайт, вот и все!

MadMyche

Используется в какой обстановке?

john1990_1

Моя программа и исходный код доступны здесь:

https://sites.google.com/site/workofmylife1234/

в разделе "TranslateProgram".

Программа, которая при нажатии клавиши F1 в любом месте Windows выводит на передний план веб-браузер со страницей Google Translate в нем в winform с текстовым полем для URL-адреса, а при нажатии клавиши Escape winform сворачивается.