2011-09-14 39 views
4

問題: Ruby TK GUI應用程序在退出時清空Windows剪貼板是否正常?紅寶石,windows剪貼板的bug?

問題:我有它的一些文字TkText,如果我按Ctrl + C,然後關閉應用程序剪貼板是空的,如果我粘貼,而應用程序仍處於打開狀態一切正常,粘貼後一旦它不即使關閉應用程序,它仍然保留在剪貼板中。

這是打算髮生嗎?

+0

您是否嘗試過使用其他應用程序?爲了內容類型協商的目的,剪貼板可能只是持有對應用程序的引用。 –

+0

我沒有,但程序只包含一個TK根和一個TkText,沒有更多,我沒有自己訪問剪貼板API。如果它只是一個參考,爲什麼它會在我Strg + V之後的其他地方按照預期工作?問題不清楚嗎? – Onetimeposter123

+0

對於那些想知道的,Strg == Ctrl。 –

回答

2

這聽起來像延遲渲染可能會生效。您可能已經使用過Excel,Word,Outlook等應用程序或幾乎任何大型繪圖程序。您複製,當您關閉應用程序時會說「您已將大量數據放在剪貼板上,您希望將其提供給其他程序嗎?」。這是因爲複製是通過「延遲渲染」完成的,數據並不在剪貼板上。剪貼板只有空的句柄,並且如果/當某些東西實際上需要粘貼(特別是WKS1,SYLK,EMF,HTML等特殊或昂貴的格式)時,應用程序需要現場製作。所以在關閉時,這些應用程序真的只是照顧這些未完成的責任,因爲他們不會在WM_RenderFormat消息消失後​​回答。 我希望你的ruby環境對CF_TEXT這樣的簡單格式使用延遲渲染,而不是使用完全填充的數據更新剪貼板(很多應用程序默默地進行),他們只是把它吹掉。或者,他們可以在那裏留下空的句柄。運行舊的XP剪貼板查看器會告訴你一個真正的空剪貼板和認爲它有文本(TEXT顯示在可用格式列表中)之間的區別,但實際上只有空處理。