windows - 在不重置剪贴板链的情况下中止进程会导致麻烦吗?

标签 windows winapi clipboard

我有一个调用 SetClipboardViewer 的程序在启动时注册剪贴板更改通知。在关机时,它会调用 ChangeClipboardChain正确地从链中删除自己。

只要程序正常运行,一切都很好。但这让我想知道,如果程序被中止,会发生什么情况,要么是我在调试器下杀死它,要么是崩溃,要么是用户因为出错而杀死了进程?然后清理永远不会发生。这会以某种方式给系统带来麻烦吗?

具体来说,我知道 Windows 可以毫不费力地删除我的查看器,因为它是一个句柄,并且 Windows 可以在进程终止时清理所有句柄,但这会导致链下游的下一个值,我持有一个引用,以某种方式迷路?

最佳答案

是的,未能将自己从链条中移除将会破坏链条。死罪#2。请阅读整个列表以确保您遵守所有规则。 http://www.clipboardextender.com/developing-clipboard-aware-programs-for-windows/6 许多应用程序都受此影响,包括 Delphi IDE。也就是说,如果 Delphi 以某种方式崩溃,它会杀死剪贴板链(无论如何是 D2005)。

考虑在 Vista/Windows7 上使用 Vista 风格的通知。

关于windows - 在不重置剪贴板链的情况下中止进程会导致麻烦吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5709311/

相关文章:

c - fread 返回 0 并且无法在 Windows 计算机上打开 db 文件。找不到文件吗?或者是权限?

windows - 如何自动复制具有特定前缀的内容和文件的子文件夹

python - 启动 celery worker 时出现 ValueError : not enough values to unpack (expected 3, 为 0)

c++ - 在 std::locale 析构函数中退出时崩溃

c++ - HeapAlloc 返回 0xC0000017 : Not Enough Quota

c++ - 如何使用 C++ 将 Windows 系统时钟设置为正确的本地时间?

Javascript - 将字符串作为文本/html复制到剪贴板

c++ - 如何在剪贴板上放置多种格式?

XCode 4.3 通过输入自动在 TextView 中从剪贴板文本

windows - 从NodeJs启动一个独立的进程