【问题标题】:How can I use the Browse for Folder dialog from a WPF app on Windows Server Core?如何从 Windows Server Core 上的 WPF 应用程序使用“浏览文件夹”对话框?
【发布时间】:2011-07-29 07:16:33
【问题描述】:

我尝试过使用 FolderBrowserDialog,这似乎可以在我的开发机器上使用。但是,Windows 2008 R2 Server Core 不支持此功能。无论如何我尝试运行此代码 - 出现对话框,但主显示窗格不可用。

我也尝试过使用 Windows shell32 API (SHBrowseForFolder) 获得完全相同的结果。 ComDlg32 GetOpenFileName 似乎适用于选择文件。

不知道还能尝试什么。

【问题讨论】:

  • 您了解 Server Core 明确不打算运行显示用户界面的应用程序吗?
  • 是的,这是从替换 shell UI 的应用程序中运行的。用户实际上无权访问命令行。
  • 这没有任何意义。 Server Core 没有外壳 UI,因此您无法替换它。为什么会有一个用户? Server Core 的全部目的是减少远程数据中心中孤立服务器的攻击中心,仅由喜欢命令行界面的管理员远程控制。它不适合用户,也不适合想要 GUI 的人。用完整版本的Windows Server重新安装机器是最好的选择;这就是我日常使用的操作系统。

标签: .net wpf windows-server-2008-r2 folderbrowserdialog server-core


【解决方案1】:

关于为什么这是必要的一直存在疑问。我同意这种情绪。我没有透露很多关于什么和原因的细节,这可能会导致一些混乱。

这个问题的编程答案是 SHBrowseForFolder 中使用的 BROWSEINFO 结构中的标志包括 NEWDIALOGSTYLE。删除该标志会为我正确显示浏览对话框。

【讨论】:

  • 我认为问题描述在documentation:Note: If COM is initialized through CoInitializeEx with the COINIT_MULTITHREADED flag set, SHBrowseForFolder fails if BIF_NEWDIALOGSTYLE is passed.
【解决方案2】:

你不能使用不存在的东西。请管理员重新配置机器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多