2011-10-29 4 views
0

화면에 변경 사항을 감지하는 방법에 대한 질문이 있습니다. 그 위치는 필요하지 않지만 도움이 될 수있는 위치를 얻는 것이 가능합니다. 나는 그것을 인터넷에서 찾았지만 어떤 적합한 대답도 찾지 못했습니다. 자, C#에서 프로그램을 만들고 있는데 화면에서 변화를 감지해야합니다. 나는 초당 네 장의 스크린 샷을 캡처하고 비교하려고 시도했다. 이 방법은 효과적이지만 PC의 성능에 나쁜 영향을 미칩니다.화면에서 변경 사항을 감지하는 방법은 무엇입니까?

어셈블리에서 비디오 메모리에 직접 액세스 할 수 있기 때문에 C 또는 어셈블리 언어 (x86)에서 쉽게 할 수 있다고 생각합니다.

C#으로 할 수 있습니까?

코드 샘플을 보내 주시면 감사하겠습니다.

프로젝트 :전체 화면 카메라 모니터링 소프트웨어의 변경 사항을 감지합니다.

+3

비디오 메모리에 액세스하는 것은 꽤 정교한 그래픽 카드가 일반적이라는 점에서 그다지 쉽지 않습니다. – icktoofay

+0

성취하고자하는 것이 무엇인지 물어봐도 될까요? 화면의 모든 단일 변경 (단일 픽셀조차도)에 반응하는 프로그램을 만드는 것이 정확하지 않은 것으로 보입니다. 당신은 당신의 작업을 수행하기 위해 다른 경로를 가질 수 있습니다. –

+0

어떤 종류의 모션 감지 코드를 찾고 있습니까? –

답변

1

도움말 - 수 있는가? 나는 그 일을 할 수 있을지 의심 스럽다. 캠 입력에서 움직임을 감지하려면 CodeProject의 Motion Detection Algorithms 문서를 살펴보십시오.

1

화면 캡처를 수행하고 (성능 문제를 일으킬 수있는) 시간 간격으로 비교하는 것 외에도 유일한 해결책은 시스템 이벤트, 즉 "다시 그리기"종류의 이벤트에 연결하는 것입니다.

프로그램을 연결할 이벤트를 선택해야합니다.

이 CodeProject의 튜토리얼은 당신이 정말로 당신이 당신의 모니터에 표시되는 내용의 간단한 차이를 바로 찾고 http://www.codeproject.com/KB/system/WilsonSystemGlobalHooks.aspx

관련 문제