2010-08-14 41 views
4

我能流利地使用C++,Java和Python,並且在給定足夠時間的情況下幾乎可以拿起其他任何技能(不出所料,我相信99.9%的人閱讀這個共享相同的能力)。我應該怎樣控制輸入設備以及更多

我對Mac OS X的一個小應用程序的想法,我想知道我應該採用什麼技術/學會讓它工作。我需要一些最小的OS X集成才能完成這項工作。

我想我應該可能使用Objective-C與可可,但如果這可以用一些Java庫來完成,我寧願這樣做。

我的Mac OS X應用程序將執行以下操作:

  • 能夠截獲所有鍵盤和鼠標輸入,不考慮活動(聚焦)應用程序,並選擇爲阻止它(有效禁止輸入)或採取行動收到某些鍵盤快捷鍵。
  • 有一個Mac OS X菜單欄項目(位於電池,網絡適配器等屏幕的右上角)
  • 能夠佔用整個屏幕(有時用一些OpenGL畫布顯示動畫,很像屏幕保護程序)
  • 有聲音。

您會推薦哪些技術?

回答

4

我的Mac OS X應用程序將執行以下操作:

  • 能夠截獲所有鍵盤和鼠標輸入,不考慮活動(聚焦)應用程序,並選擇爲阻止它(有效禁止輸入)或在收到某些鍵盤快捷鍵時採取行動。

CGEventTap

有一個Mac OS X的菜單欄項目

NSStatusItem(在屏幕的右上角的電池,網絡適配器等旁)。

能夠佔據有時整個屏幕(有一些OpenGL的畫布上顯示動畫,很像一個屏幕保護程序)

任何NSView可以do this,但對於OpenGL的,你會想特別是NSOpenGLView

除了通常的全屏方法,您可能更願意將視圖放在window處的the screen-saver level。嘗試兩種方式,看看哪個最適合你。

有聲音。

NSSound

2

如果你熟悉基於C的語言,Cocoa是一個很好的開始,並且可能是你描述的任務最簡單的地方。從這裏開始爲可可:http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CocoaFundamentals/Introduction/Introduction.html

Python有一些優秀的支持,以及,你可以看看這裏的模塊可能包含你所需要的:http://docs.python.org/library/mac.html

如果您願意的Java,這裏是我將開始尋找你需要的功能:http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/05-CoreJavaAPIs/CoreJavaAPIs.html

我不確定要推薦哪個,我可以說可可可能會對你可能需要的任何集成有最好的支持。

1

這開始作爲評論,但太大了。

我認爲你可以用Java做大部分工作 - 例如,菜單圖標可以通過SystemTray API完成,它將它們放在Windows或OS X上的相關位置。以前的具體答案如下:System Tray (Menu Extras) icon in Mac Os using Java

關鍵問題是Java是否具有從操作系統獲取「原始」事件的API,或者只有在應用程序上關注焦點時。例如,標準KeyListener鏈接到具有焦點的組件。

但是,考慮到應用程序的性質,我建議使用可可。這也可以讓你使用Core Animation(比Quartz/OpenGL更高層次的抽象)。

相關問題