Связь между приложением .Net Desktop и веб-приложением ASP.NET - PullRequest
0 голосов
/ 30 января 2012

Сценарий 1: Рабочий

В приложении для рабочего стола Windows я открываю окно браузера (с помощью ShDocVw.InternetExplorer), загружаю страницу размещенного сайта и присваиваем свойству какое-либо значение (скажем, lblName.Text = "Steve M." ). Теперь, используя ShDocVw.InternetExplorer, я могу проверить, существует ли объект браузера с указанным именем. Поступая так, я не буду открывать двойное окно браузера.

Сценарий 2: выпуск

Теперь я хочу сделать следующее. Я открою предыдущую страницу, набрав адрес в адресной строке Internet Explorer. Поэтому он будет загружаться с тем же именем (скажем, lblName.Text = "Steve M."). Если я открою Настольное приложение и повторю Сценарий 1 , откроется двойное окно.

Как я могу предотвратить проблему?

Я пытался добавить ссылку на настольное приложение в веб-приложение. Но ничего не сработало: (

1 Ответ

1 голос
/ 30 января 2012

Контролируете ли вы этот сайт asp.net (можете ли вы изменить его код)?

Я недостаточно знаю о настольных приложениях, чтобы сказать вам, возможно ли это; это кажется невозможным или очень трудным для меня; в конце концов, это бизнес, связанный с закрытыми и открытыми веб-страницами браузера, то, какие объекты JS для него запускаются [страница].

Однако, возможно, вы можете сделать это: поскольку этот объект JS инициализируется, используйте код JS, чтобы изменить заголовок страницы на что-то фиксированное, что будет означать для вашего настольного приложения, что этот объект, который вы ищете, был готов.

Например, заголовок страницы, как правило, называется «Моя специальная страница», когда эта страница загружается. Возможно, после загрузки объекта вы можете изменить заголовок на «Моя специальная страница готова» (или что-то такое, что не будет выглядеть странно для пользователя, если вам это даже нужно).

Затем вы можете искать окна браузера «Моя специальная страница готова» в приложении для настольных ПК, выполняющем поиск процесса, и, если вы его не найдете, вы запускаете браузер; в противном случае вы не делаете. Это довольно просто, по сравнению с исследованием того, как попросить IE (или другой браузер, в котором вы работаете) сказать вам, существует ли какая-либо переменная в открытых вкладках и имеет значение (опять же, если это вообще возможно).

...