2010-08-06 2 views
2

Я уже открыл веб-страницу в Firefox, которая фактически работает через веб-сервер Apache на том же компьютере. И у меня есть приложение C#, работающее на одном компьютере. Теперь я хочу обновить/сообщить мою уже открытую веб-страницу, что C# завершила обработку. Я видел потоки по всему Интернету, а также некоторые подобные потоки в Stackoverflow, но не нашел решения.Связь и управление веб-страницей от C#

Любая идея, как решить эту проблему?

Подробнее: Приложение C# переносит изображения из внешнего хранилища. Веб-страница (http://127.0.0.1/mypage.php) периодически ищет изображения, но никогда не знает, что все изображения переданы или нет, так что они могут обрабатывать эти изображения, чтобы сделать еще больше работы. В этом случае мы хотим сообщить нашей веб-странице (которая уже запущена в firefox) все переданные данные, и теперь вы можете обновлять данные для обработки.

+1

Можете ли вы опубликовать код, который вы обсуждаете, поэтому у нас есть лучшее представление о том, что вы делаете? Есть много способов добиться того, что вы описываете, и нам нужно увидеть, как вы это делаете, прежде чем мы сможем дать хороший ответ. – Oded

+0

Я добавил некоторые дополнительные сведения к моему сообщению. Надеюсь, это объясняет, чего я действительно хочу! – zHs

ответ

0

Вы можете включить управление Internet Explorer в приложении ouyr. Таким образом, вы можете контролировать, какая страница отображается, и вы можете вызвать обновление и все, что захотите.

Другим способом является включение тега meta refresh на странице html, чтобы он периодически просматривал обновления и обновлялся ifself.

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

+0

Я подумал об убийстве браузера и открытии снова, но я подумал, что с его плохим подходом – zHs

1

два шага: Пусть сервер сообщаться, что C# сделано, и есть веб-страницы реагировать на него

Вы как-то нужно выставить тот факт, что C# программа закончена в Интернете. Если у вас также запущен IIS, это можно сделать с помощью URL-адреса, обслуживаемого IIS, который возвращает значение, указывающее, работает ли C# или нет. Если вы этого не сделаете, вы можете записать файл, базу данных или что угодно и иметь скрипт на вашем сервере Apache, который проверяет это значение. Что бы вы ни выбрали, вам нужно что-то вроде www.myserver.com/are_you_finished.[php, aspx, независимо от того, что возвращает 1 или 0

Затем вы можете создать сценарий JavaScript на своей странице клиента, который периодически проверяет этот URL-адрес и реагирует как только значение равно 1. Это будет типичный вызов AJAX, т. е. вам нужно играть с XmlHttpRequest. Это можно было бы разработать гораздо дальше, но, возможно, вы сначала скажете, если это то, что вы имеете в виду, и я также думаю, что есть много хорошей документации о том, как это сделать здесь.

+0

после повторного чтения вопроса мне приходит в голову, что у вас может быть браузер, apache и C#, все запущенные на одном компьютере. хорошо, что это не проблема, решение, которое я предложил, запускается и в этом случае, оно просто обобщает на ситуации, когда браузер работает на удаленной машине. Могут быть другие подходы, характерные для ситуации с одним компьютером, но я не думаю, что они когда-либо получались особенно красивыми;) – Nicolas78

+0

Я думал о создании файла или того же, что вы упомянули. Но потом я подумал, что, если приложение C# указано, что я выполняю какую-то работу, и веб-страница периодически проверяет его. Как справиться с ситуацией, если приложение C# каким-то образом разбилось и сгенерированный файл все еще говорит о том, что приложение C# по-прежнему занято в процессе! – zHs

+0

ОК, это проблема, но не связанная с конкретным подходом, который я описываю.Если программа C# должна была активно уведомлять о другом процессе, сбой программы также уничтожит такие другие подходы, так как проблема C# никогда не дойдет до того, чтобы сообщить другому приложению «Я сделан». Поэтому в основном вы должны точно настроить первую часть подхода. Одно дело - посмотреть, добавлены ли изображения за последние n секунд и сделать вывод, что приложение выполняется, если нет. – Nicolas78

Смежные вопросы