BeforeNavigate2 не возвращает параметры URL - PullRequest
0 голосов
/ 13 апреля 2010

У меня есть программа на C ++, которая отображает браузер с помощью элемента управления Microsoft WebBrowser. Я передаю подсказки в параметрах URL в код, чтобы можно было предпринять альтернативные действия, а не просто позволить браузеру перейти на новую страницу.

Например, я мог бы передать URL «WRITE.EXE? RUN», чтобы указать, что я хочу запустить исполняемый файл в URL.

В C # я получаю полный URL-адрес в событии BeforeNavigate, но я получаю только URL до?. Таким образом, в C # я получаю «WRITE.EXE? RUN», тогда как в C ++ URL, переданный BeforeNavigate2, является просто «WRITE.EXE»

Есть идеи, как получить доступ ко всему URL через C ++?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2010

Не передавая URL-адрес, я только предполагаю, что Windows не привязывает его к URL-прозвищу , а к прозвищу, с которым он связан, удаляет его из пути.

URL (как определено в RFC 1738): : <схема конкретной>

Без дополнительных подробностей неясно, что вы делаете с элементом управления веб-браузера и как вам нужно обрабатывать то, что передается в него, но ответ на эти вопросы определит, нужно ли вам писать собственный URL-прозвище (например, myapp: //write.exe?dosomething).

0 голосов
/ 13 апреля 2010

Я полагаю, что проблема здесь вызвана тем фактом, что, поскольку я не указываю протокол для URL, WebBrowser обрабатывает его по-другому.

Так что, если я укажу http://write.exe? RUN , я получу полный URL-путь, включая параметры, тогда как если оставить протокол выключенным или указать FILE: //write.exe? RUN, он удалит аргументы. Хорошая вещь в файловом протоколе заключается в том, что в качестве URL-адреса будет возвращаться весь путь к EXE-файлу.

...