2010-03-31 5 views
1

시스템 트레이의 아이콘 상태를 확인해야하는 프로그램이 있습니다. 시스템 트레이의 프로그램은 서버와의 통신 상태에 따라 아이콘이 바뀌며 지금 당장 사용중인 아이콘을 확인해야합니다. 현재 아이콘을 추출하는 방법을 찾았지만 어떤 아이콘인지 어떻게 확인합니까?C# 프로세스 아이콘을 확인하고 사용중인 프로세스 아이콘을 확인하는 방법

+0

그럼 결과 데이터를 추출 하시겠습니까? 그것은 Image 객체, 포인터입니까? – Peter

+0

아이콘을 테스트하는 것보다 상태 정보를 얻을 수있는 다른 방법이 없다고 확신합니까? 아이콘 크기 및 내용은 사용 된 DPI 설정 및 색 농도에 따라 달라 지므로 매우 안전하지 않습니다. – Lucero

답변

0

이미지 내용과 마찬가지로 아이콘 자체의 내용을 확인하고 싶다고 가정합니다.

이 경우, 사용할 수있는 번호는 image comparison algorithms입니다.

그러나 조금 지나친 것일 수 있습니다. 아이콘이 너무 작기 때문에 항상 아이콘이 주어진 특정 고유 상태에 있음을 알 수 있으므로 상태를 확인할 수있는 픽셀 또는 픽셀 그룹을 결정할 수 있습니다.

+0

좋아요, 제가 OP에서 약간의 명확하지 않은 점을 남겨 두었을 지 모릅니다. 시스템 트레이에서 제어 할 수없는 응용 프로그램이 있습니다. 그것은 장치에 연결 상태에 따라 아이콘을 변경합니다. 장치에 대한 포트를 확인하면 여러 시스템에서 시스템이 잠기는 원인이되며 응용 프로그램의 현재 상태를 수집 한 다음 아이콘을보고 다른 방법으로 생각할 수 없습니다. 아이콘은 내 응용 프로그램에 의해 덮여 있으며 프로그램이 장치와 통신 중인지 여부를 나타내는 상태 "light"가 필요합니다. – LordMage

+0

아이콘을 가져 오는 방법은 다음과 같습니다. Icon.ExtractAssociatedIcon (theProcess.MainModule.FileName); 아마도 최고가 아닐 수도 있습니다. 그러나 그것은 아이콘을 얻는다. 이 시점에서 어떤 아이콘인지 확인하고 그 상태를 판단 할 생각이 없습니다. 추출을 통해 아이콘을 식별 할 핸들 이름 또는 해시를 얻는 방법이 필요했습니다. 어쩌면 아닙니다. 누구든지 더 나은 해결책이 있다면 알려주십시오. – LordMage