2

我们有一个较旧的 WPF 应用程序,它使用“Windows API 代码包”来显示任务对话框(在 Vista 中引入的东西,但在 Windows 8 中一直有效)。

我现在尝试在 Windows 10 上运行该项目,当我尝试显示任务对话框时,出现以下异常:

System.AccessViolationException : 试图读取或写入受保护的内存。这通常表明其他内存已损坏。
在 Microsoft.WindowsAPICodePack.Dialogs.NativeTaskDialog.NativeShow()在 Microsoft.WindowsAPICodePack.Dialogs.NativeShow() 在 Microsoft.WindowsAPICodePack.Dialogs.NativeTaskDialog.NativeShow(
) 在 Microsoft.WindowsAPICodePack.Dialogs.NativeTaskDialog.NativeShow()
在 Microsoft.WindowsAPICodePack.Dialogs.TaskDialog.ShowCore()

这些 API 在 Windows 10 中不再可用吗?

是否有在 Windows 10 中可用的类似功能的替代品而无需编写自定义对话框?

编辑:我让它运行(我猜是运气好?我没有更改任何代码)并且对话框弹出如下:

Win10 任务对话框

应该有3个按钮,而且绝对没有汉字,所以我同意这里肯定有一些内存问题的例外。有任何想法吗?

4

1 回答 1

1

Windows 10 仍然支持任务对话框,但问题可能是您似乎正在使用的库中的这个问题:https ://github.com/aybe/Windows-API-Code-Pack-1.1/issues/3

如问题描述中所述,它可能会在64 位Windows上导致AccessViolationException(并且可能是不正确的字符) 。您可以通过应用引用的拉取请求中的更改来修复它。

注意:由于 WinForms 是开源的,因此要求在未来的 .NET Core 版本中包含官方任务对话框实现:https ://github.com/dotnet/winforms/issues/146

于 2018-12-28T14:25:17.173 回答