在發現和/或設置我的應用程序所在的桌面/工作區(當然是在Linux/Solaris下)時,是否有任何進步?Java中的工作區或桌面
2
A
回答
1
發現/設置在現代的窗口管理器,桌面將通過閱讀完成/從EWMH規範設置_NET_WM_DESKTOP
屬性(http://packages.debian.org/search?keywords=proftpd-basic&searchon=names&suite=all§ion=all)
我不知道任何整齊的封裝API的這麼公開此功能,但谷歌出現http://code.google.com/p/ewm/source/browse/trinity/fusion-X11/trunk/src/main/java/org/fusion/x11/ewmh/NetFrameExtents.java這可能是一個開始。
0
我的「NetFrmeExtents.java」
這裏proviously的鏈接項目的作者是我的答案:
很難,除非鞦韆/ AWT已經實施,如果不是不可能的純java做目前爲止。最直接的(也是唯一的)方法是使用JNI並通過xlib/xcb來完成。但它是可能做你所問。
有一個名爲EWMH的桌面協定,可以幫助你想要什麼。 您需要的步驟的基本順序是:
- 獲取您的應用程序的窗口標識。要做到這一點谷歌如何檢索awt中的窗口句柄/窗口標識。
- 接下來,您需要閱讀由原子定義的幾個「屬性」。如果你不知道這是谷歌如何從xlib/xcb中的窗口讀取屬性。
- 在EWMH中,有一個屬性列出了由窗口管理器定義的所有虛擬桌面。 見http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html#id2449367
- 設置屬性您的應用程序的窗口上的屬性,看http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html#id2507080你希望你的應用程序能夠在虛擬桌面的數量。
如果你所做的一切都是正確的,窗口管理器支持EWMH(大多數人)它應該工作。
相關問題
- 1. 獲取Java中桌面工作區的列表
- 2. Java的遠程桌面(與Internet工作)
- 3. 將Linux桌面中的工作區變成永久終端
- 4. SelectIndexChanged不工作(C#桌面)
- 5. 如何更新Window的桌面工作區?
- 6. Ubuntu:如何獲取當前桌面工作區的名稱?
- 7. Java桌面中的廣告
- 8. java中的桌面共享
- 9. Flex桌面在Vertica中如何工作?
- 10. 桌面用戶界面設計工具,最好是Java或Java包裝
- 11. libGDX按鈕在桌面上工作,但不是在桌面上工作
- 12. 限制窗口位置到桌面工作區域
- 13. 在工作區/虛擬桌面之間移動窗口
- 14. 在所有虛擬桌面/工作區上顯示PyGTK窗口
- 15. 桌面TCP流(java)
- 16. Java遠程桌面
- 17. Java桌面框架
- 18. Java桌面郵件不起作用
- 19. Phonegap的iOS getjson不工作 - 但在桌面工作
- 20. AJAX無法在桌面上工作
- 21. 窗口工作站和桌面
- 22. 桌面視圖如何工作 - IOS?
- 23. php不工作在Ubuntu桌面16.04.02
- 24. 隱藏桌面項目 - 不工作
- 25. ng-class不能在桌面上工作?
- 26. IOS桌面選擇行不工作
- 27. 用的Java Swing桌面
- 28. Bootstrap。桌面響應不在面板中工作
- 29. Java中的桌面屏幕流式
- 30. 桌面Java程序中的swf
我發現了一種方式,使用窗口ID KD3 KWin但我發現同樣很難發現窗口ID。如何獲得_NET_VM_DESKTOP屬性? – brad12s
我最終通過JIN從Xlib獲取窗口ID,然後進入KWIN操作Frame的桌面設置。 – brad12s