gpt4 book ai didi

使用 Windows API 代码包外壳扩展的 C# 应用程序不会关闭

转载 作者:行者123 更新时间:2023-11-30 22:31:20 24 4
gpt4 key购买 nike

我有一个使用 Microsoft Windows API 代码包的 C# 应用程序 - 特别是 Shell 扩展,我用它来监视存储设备和媒体插入和移除。

但是,当我尝试在 Visual C# 2010 (Express) 中关闭应用程序时,我必须手动停止调试器。 Win API 代码包中似乎有一个后台循环仍在运行,即使我手动处理 ShellObjectWatcher 也是如此。我能杀死它的唯一方法是手动停止调试器。

该应用程序是在 WPF 中构建的。

最终,VisC#2010 放弃了在调试器下运行应用程序的尝试。您告诉它开始调试,但它没有。让它再次运行的唯一方法是使用任务管理器终止应用程序,然后关闭 VC#2010 - 去喝杯咖啡 - 然后再次启动它。奇怪的。我怀疑有一个隐藏的进程或窗口在我尝试清理应用程序时没有被关闭。

知道如何更有效地清理这个 ShellObjectWatcher 吗?

最佳答案

要修复 Code Pack Shell 项目中的错误,请在 MessageListener.WndProc() 中添加一行:

case (uint)WindowMessage.Destr​oy:
**_running = false;**
break;

现在 ThreadMethod() 将退出消息循环。

关于使用 Windows API 代码包外壳扩展的 C# 应用程序不会关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9291929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com