Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby,windows剪贴板错误?_Ruby_Windows_Clipboard - Fatal编程技术网

Ruby,windows剪贴板错误?

Ruby,windows剪贴板错误?,ruby,windows,clipboard,Ruby,Windows,Clipboard,问题:Ruby TK GUI应用程序在退出时清空windows剪贴板是否正常 问题:我有一个TkText,其中有一些文本,如果我按Ctrl+C组合键关闭应用程序,剪贴板是空的,如果我在应用程序仍然打开时粘贴,一切正常,粘贴后,即使关闭应用程序也无所谓,它仍然保留在剪贴板中 这是有意的吗?听起来延迟渲染可能会生效。您可能已经在Excel、Word、Outlook等应用程序中看到了这一点,或者任何大型绘图程序都可以看到。您复制,当您关闭应用程序时,会显示类似“您已将大量数据放在剪贴板上,是否要将其提

问题:Ruby TK GUI应用程序在退出时清空windows剪贴板是否正常

问题:我有一个TkText,其中有一些文本,如果我按Ctrl+C组合键关闭应用程序,剪贴板是空的,如果我在应用程序仍然打开时粘贴,一切正常,粘贴后,即使关闭应用程序也无所谓,它仍然保留在剪贴板中


这是有意的吗?

听起来延迟渲染可能会生效。您可能已经在Excel、Word、Outlook等应用程序中看到了这一点,或者任何大型绘图程序都可以看到。您复制,当您关闭应用程序时,会显示类似“您已将大量数据放在剪贴板上,是否要将其提供给其他程序?”。这是因为复制是通过“延迟渲染”完成的,数据实际上不在剪贴板上。剪贴板只有空句柄,如果/当有东西实际请求粘贴(特别是奇异或昂贵的格式,如WKS1、SYLK、EMF、HTML等),应用程序需要当场生成。因此,在关机时,这些应用程序实际上只是在处理这些未履行的责任,因为它们离开后,将无法回复WM_RenderFormat消息。
我预计您的ruby环境甚至会对CF_文本这样的简单格式使用延迟渲染,而不是使用完全填充的数据更新剪贴板(许多应用程序都是以静默方式进行的),它们只是将其吹走。或者它们确实会在那里留下空句柄。运行旧的XP clipboard viewer将向您显示真正空的剪贴板与认为它有文本(文本显示在可用格式列表中)但实际上只有空句柄的剪贴板之间的区别。

您在其他应用程序中尝试过这一点吗?剪贴板可能只是出于内容类型协商的目的保存对应用程序的引用。我没有,但该程序只是由一个TK根和一个TkText组成,除此之外,我自己也不会访问剪贴板api。如果它只是一个参考,为什么在我把它放到其他地方后它会像预期的那样工作?这个问题还不清楚吗?对于那些想知道的人来说,Strg==Ctrl。