【问题标题】:Windows API Code Pack features on windows xp machineWindows XP 机器上的 Windows API 代码包功能
【发布时间】:2015-03-21 11:51:02
【问题描述】:

我有一个需要在所有 Windows 平台上运行的 Windows 应用程序。我最近安装了 Windows API 代码包并将文件夹浏览器替换为“CommonOpenFileBrowser”。这很棒,直到我尝试在出现异常的 Windows XP 机器上运行我的程序:

PlatformNotSupportedException,CommonOpenFileDialog 需要 vista 或更高版本。

我想继续在 vista 及更高版本中使用 CommonOpenFileDialog,但是如果它在运行时检测到 Windows XP 操作系统,是否可以恢复到旧的文件夹浏览器?

更多想法:

我可以使用以下方法检测我的操作系统:

// 如果是 Windows Vista 或更高版本
if (Environment.OSVersion.Version.Major >= 6)

但异常发生在启动时,甚至在显示 CommonOpenFileDialog 之前。我听说过一些关于动态加载代码的事情,但我对此知之甚少。

【问题讨论】:

    标签: c# windows-xp windows-applications windows-api-code-pack


    【解决方案1】:

    所以事实证明我一直都有解决方案。我所要做的就是:

     if (Environment.OSVersion.Version.Major >= 6)
     {
         var openCommonDialog = new CommonOpenFileDialog();
     }
     else 
     {
         var openFileDialog = new FolderBrowserDialog();
     }
    

    我在启动时崩溃的原因是 CommonOpenFileDialog 是在 Designer.cs 文件中实例化的。一旦这被删除,我的修复工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      相关资源
      最近更新 更多