【问题标题】:How to make OpenFileDialog show other user's home folders如何使 OpenFileDialog 显示其他用户的主文件夹
【发布时间】:2016-05-11 11:08:22
【问题描述】:

我使用了允许用户从文件夹中选择文件的 OpenFileDialog。但是,我在 SYSTEM 帐户下运行该进程,所以它只显示 SYSTEM 帐户文件夹(Home、Document、Picture 等)而不是实际用户。

如何在 SYSTEM 进程下创建 OpenFileDialog 以显示特定用户的文件夹?

谢谢。

【问题讨论】:

  • 也许正确的问题是:为什么必须在系统帐户下运行?
  • 您可以尝试创建工作线程来处理文件对话框并使用模拟让其他线程在其他用户的上下文中运行。
  • 然后您将使用 UI 控件跨线程,这通常不是一个好主意,尽管我对这如何影响常见对话框感兴趣。

标签: c# windows visual-studio


【解决方案1】:

您可以尝试使用自定义地点,例如:

openDlg.CustomPlaces.Add("C:\\Users\\User");

您可以指定路径或 GUID,后者可以让您添加特殊文件夹,您可以找到有效 GUID here 的列表,但是这些通常是帐户绑定的,因此在这种情况下对您没有帮助。

不幸的是,我认为您必须自己处理用户文件夹。

确保您还启用了AutoUpgradeEnabled

您可以在MSDN 上阅读有关自定义地点的更多信息。

【讨论】:

  • 谢谢@Lloyd。但是有没有办法让 OpenFileDialog 表现得像一个正常的进程(我的意思是就像一个普通用户使用它..),而不仅限于几个自定义路径?
  • 不容易,您可以按照建议尝试使用它运行的线程,但我只看到那个方向的痛苦。真的,您应该只在您需要的用户的上下文中运行。
猜你喜欢
  • 2012-07-22
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-30
  • 2013-09-21
相关资源
最近更新 更多