2010-08-06 6 views
2

Firefox에서 실제로 동일한 컴퓨터의 Apache 웹 서버를 통해 실행중인 웹 페이지를 열었습니다. 그리고 C# 응용 프로그램을 동일한 컴퓨터에서 실행하고 있습니다. 이제 C#이 처리를 마친 이미 열려있는 웹 페이지를 새로 고침/알리고 싶습니다. 나는 Stackoverflow에서 웹상의 스레드와 비슷한 스레드를 보았지만 해결책을 찾지 못했습니다.C#에서 웹 페이지 통신 및 제어

어떻게 해결할 수 있을까요?

세부 정보 : C# 응용 프로그램이 외부 저장소에서 이미지를 전송합니다. 웹 페이지 (http://127.0.0.1/mypage.php)는 주기적으로 이미지를 찾고 있지만 모든 이미지가 전송되는지 여부를 알지 못하므로 이러한 이미지를 처리하여 더 많은 작업을 수행 할 수 있습니다. 이 시나리오에서는 모든 데이터가 전송 된 웹 페이지 (이미 firefox로 실행 중임)를 말하고 이제 데이터를 처리하기 위해 새로 고칠 수 있습니다.

+1

토론중인 코드를 게시 할 수 있습니까? 이제 우리는 자신이하고있는 일에 대해 더 잘 알고 있습니까? 당신이 묘사하고있는 것을 성취 할 수있는 많은 방법들이 있습니다, 우리는 좋은 대답을주기 전에 당신이 그것을하는 방식을보아야합니다. – Oded

+0

내 게시물에 세부 정보를 추가했습니다. 나는 그것이 내가 정말로 원하는 것을 설명하기를 바란다! – zHs

답변

0

많은 응용 프로그램에 Internet Explorer 컨트롤을 포함 할 수 있습니다. 이렇게하면 표시되는 페이지를 제어 할 수 있고 원하는대로 새로 고침을 호출 할 수 있습니다.

또 다른 방법은 html 페이지에 메타 새로 고침 태그를 포함시켜 주기적으로 주기적으로 업데이트를 찾고 새로 고침하는 것입니다.

나는 원격 제어 파이어 폭스에 대한 방법을 참조하십시오. 내가 생각할 수있는 유일한 것은 당신이 파이어 폭스를 시작할 때 프로세스 ID를 기억하고 프로세스를 죽이고 새 창을 시작하는 것이지만, 나는이 나쁜 스타일을 고려합니다.

+0

나는 브라우저를 죽이고 다시 여는 것을 생각했다. 그러나 나는 당신이 그 나쁜 접근 방법 인 – zHs

1

두 단계 : 서버를하자 당신은 어떻게 든 C# 프로그램이 웹에 완료 사실을 노출 할 필요가 그것을

에 반응 C 번호가 이루어집니다 통신 및 웹 페이지가 있습니다. 또한 IIS가 실행중인 경우 C#의 실행 여부를 나타내는 값을 반환하는 IIS에서 직접 제공하는 URL을 통해이 작업을 수행 할 수 있습니다. 그렇지 않으면 아파치 서버에이 값을 검사하는 스크립트가있는 파일이나 데이터베이스 등에 쓸 수있다. 무엇을 선택하든 www.myserver.com/are_you_finished와 같은 것을 원할 것입니다. [php, aspx, 뭐든지] 1 또는 0을 반환합니다.

그런 다음 정기적으로이 URL을 확인하고 반응하는 클라이언트 스크립트 페이지에서 JavaScript 스크립트를 빌드 할 수 있습니다 값이 1이되자 마자 전형적인 AJAX 호출이됩니다. 즉, XmlHttpRequest를 사용해야합니다. 이것은 훨씬 더 자세하게 설명 될 수 있지만 어쩌면 당신이 먼저 생각하는 것이 당신의 생각일지도 모르겠다. 나는 또한 이것을 어떻게하는지에 대한 많은 좋은 문서가 있다고 생각한다.

+0

을 다시 읽었을 때 브라우저, 아파치 및 C#이 모두 동일한 머신에서 실행되고 있다는 것을 알게되었다. 글쎄, 문제가 아니에요, 내가 제안한 솔루션은이 경우에도 실행됩니다, 그냥 브라우저가 원격 컴퓨터에서 실행되는 상황을 일반화. 단일 컴퓨터 상황과 관련된 다른 접근법이있을 수 있습니다. 그러나 그들은 특별히 귀엽다고 생각하지 않습니다;) – Nicolas78

+0

나는 당신이 언급 한 파일을 생성 할 생각을했습니다. 하지만 C# 응용 프로그램에서 일부 작업을하고 웹 페이지가 주기적으로 검사를 수행한다고 표시하면 어떨까요? C# 응용 프로그램이 어떻게 충돌하고 생성 된 파일이 여전히 C# 응용 프로그램이 여전히 진행 중임을 말하는 경우에도 상황을 처리하는 방법! – zHs

+0

괜찮 았는데 문제는 아니지만 설명하는 특정 접근법과 관련이 없습니다.C# 프로그램이 다른 프로세스에 적극적으로 알리는 것이라면 프로그램을 중단해도 C# 문제가 다른 응용 프로그램에 "끝났습니다"라고 말하지 않을 것이므로 다른 접근법도 파괴 될 것입니다. 따라서 기본적으로 접근법의 첫 부분을 미세 조정해야합니다. 한 가지해야 할 일은 마지막 n 초 동안 이미지가 추가되었는지 확인하고 그렇지 않은 경우 응용 프로그램이 완료되었다고 결론 내리는 것입니다. – Nicolas78