我創建了一個使用XCreateWindow創建窗口的程序。這對我的系統和其他很多人來說都是完美的,但在很多情況下,這會造成一些奇怪的問題。例如我從中得到的ID與啓動程序的終端ID衝突。在這種情況下,gnome-terminal的窗口ID也是0x2400001(父是root),我的程序的窗口ID也是0x2400001(它的父節點也是root)。有什麼建議可能會出錯?XCreateWindow提供了一個與已有窗口衝突的窗口ID
回答
窗口ID的大概只有每一個連接到X服務器內是唯一的(即連接到X服務器可以得到相同的窗口ID不同的進程和X服務器使用的連接,窗口ID給他們內部分開)。我認爲X對窗口ID沒有任何承諾,例如,它們在流程或其他任何方面都是唯一的,所以最好不要嘗試將它們用於任何其他目的。
我也不會感到驚訝地看到X實現,只是回連續的數字作爲窗口的ID開始用相同的值(例如1)爲每個連接,這可以解釋你的經驗,例如每個客戶端中的第一個窗口似乎在該X實現上具有相同的窗口標識。
窗口ID在X顯示中是唯一的。否則,X客戶端將無法引用彼此的窗口。 – daf 2011-06-23 16:22:53
Xserver爲每個窗口創建一個唯一的不透明標識。 您用於識別窗口ID的方法可能是錯誤的。
你的問題是一個不同問題的症狀。 你真的想解決什麼問題?
窗口ID由X客戶端生成,而不是由X服務器生成。 – daf 2011-06-23 16:23:18
除了其他答案:運行xwininfo -root -all
(閱讀更多信息的手冊頁)。檢查gnome-terminal窗口ID和你的應用程序的窗口ID。
- 1. iOS彈出窗口衝突/衝突
- 2. 窗口onload衝突與身體onload javascript
- 3. SDL2訪問衝突多個窗口
- 4. 提取窗口的所有子窗口
- 5. C#在窗口窗體中有一個窗口的多個GUI
- 6. 從另一個窗口內打開已創建的窗口
- 7. 在GNOME窗口列表中突出顯示一個窗口
- 8. 衝突窗口和WPF應用
- 9. dlib和窗口功能衝突
- 10. 如何檢測哪個窗口模糊了另一個窗口?
- 11. 提示與窗口提示
- 12. Windows窗體 - 包括帶有另一個窗口的窗口
- 13. 此活動已經有一個窗口裝飾提供的操作欄(FEATURE_ACTION_BAR)
- 14. SDL1.2,另一個窗口中的窗口
- 15. 合併多個窗口,一個窗口
- 16. 如何將一個窗口與另一個窗口連接?
- 17. 從子窗口爲父窗口提供href url位置
- 18. 光標窗口:窗口已滿
- 19. 有關設置Windows窗體窗口窗口狀態的提示
- 20. 在另一個wpf窗口內部有一個wpf窗口
- 21. 找出一個窗口有一個子窗口
- 22. 打開一個與facebook窗口功能相同的JavaScript窗口
- 23. 檢測前臺窗口的哪個子窗口已被點擊?
- 24. 部分上了一個新的窗口
- 25. ssh和窗口id
- 26. CMD和窗口ID
- 27. 另一個窗口中的一個窗口的VisualBrush
- 28. 查看終端窗口上的所有GIT衝突
- 29. 窗口服務DbResource提供商
- 30. Eclipse alt + shift + l與窗口快捷方式衝突
請您詳細說明您如何獲取終端的窗口ID?另外一個代碼片段,勾畫你正在做的事情可能會有所幫助。 – EFraim 2009-03-03 06:42:11