2010-07-23 1 views
4

저는 서버, 웹 및 데이터베이스 프로그래밍 만 해본 적이 있으며 결코 데스크톱 프로그래밍을 해보지 않았습니다. 지금은 배우려고 시도하고 싶은 작은 프로젝트가 있지만 사용할 라이브러리/프레임 워크를 잘 모르겠습니다.데스크톱 응용 프로그램에 대한 질문 : 윈도우 변경 이벤트 (수신 대기, 수신 거부 등)를 수신 할 수있는 최상의 크로스 플랫폼 라이브러리입니까?

시스템 트레이 (그리고 OSX에 상응하는 것이 무엇이든지)에서 실행되는 작은 크로스 플랫폼 응용 프로그램을 만들고 싶습니다. 바탕 화면의 창 변경 사항을 수신 대기합니다. 구체적으로 :

  1. Windows XP, Vista, 7, Gnome, KDE, OSX. BSD, Android 및/또는 iOS는 좋지만 필수는 아닙니다.
  2. 창이 포커스를 얻거나, 포커스를 잃거나, 열거 나 닫히거나, 창 제목이 변경된 경우 (예 : 탭 브라우저에서 탭을 전환 할 때)를 수신 대기합니다. 창에서 긁을 수있는 다른 정보도 유용 할 것입니다.
  3. 이러한 이벤트는 SQLLite와 같은 내장 데이터베이스에 저장할 수 있습니다.
  4. 가벼울수록 좋습니다.
  5. 시스템 트레이 아이콘에서 오른쪽 클릭 메뉴를 통해 액세스 할 수있는 옵션 GUI가 포함됩니다.
  6. 바람직하게는 FOSS이지만 FOSS가 아닌 것을 알고 있으면 목록에도 함께 표시하십시오.

여러 플랫폼에서 모든 작업을 수행 할 수있는 단일 라이브러리 또는 프레임 워크가 있습니까? QT? 파이썬? 자바? 다른 것? TIA.

답변

3

자신의 응용 프로그램이 포커스를 얻거나 잃는 경우 (또는 언급 한 다른 작업) 거의 모든 GUI 프레임 워크에서 쉽게 알 수 있습니다. 그러나 임의의 응용 프로그램 인 기타에 대한 이러한 이벤트를 수신하는 것은 확실히 플랫폼에 따라 다르며 가능하지 않을 수도 있습니다.

Windows에서이 작업을 수행하는 하나의 프레임 워크는 CBT callback hook입니다. 이 기술 사용에 대한 제한 사항에 대한 정보는 CBT Hook not working in Windows Vista을 참조하십시오.

+0

감사합니다. Greg,이 소리는 내가 생각한 것보다 훨씬 어렵고 비표준입니다. CBT를 들여다 볼 수도 있지만 적어도 Windows에서는 상대 권한 수준의 문제가있을 수 있습니다. – Kurtosis