none
C#中使用OpenFileDialog控件的问题 RRS feed

  • 问题

  • 应用程序是由服务程序启动的,因为应用程序有UI,所以在服务程序中使用的是StartProcessAndBypassUAC方法来启动的。现在遇到问题:使用这种方式启动应用程序,在应用程序中使用OpenFileDialog控件时,弹出窗口会报以下错误:

    C:\Windows\system32\config\systemprofile\Desktop引用了一个不可用的位置。它可能是一个在本机或网络上的计算机上的硬盘驱动器。请检查以确认此盘正确连接,或者您连接到Internet或您的网络上,然后再试一次。 如果仍然不能定位,可能信息已经被移到其他地方。

    代码:

                    OpenFileDialog fileName = new OpenFileDialog();//定义一个文件打开控件
                    fileName.RestoreDirectory = true;
                    fileName.InitialDirectory = "C:\\Users\\Administrator\\Desktop";
                    fileName.Filter = "所有文件|*.*";
                    fileName.Title = "选择文件";
                    if (fileName.ShowDialog() == DialogResult.OK)

    查了相关文档,给的解释都是因为服务在启动应用程序的时候没有指定用户造成的,那么这样的问题该如何解决了。

    • 已移动 Joy-Qiao 2021年1月19日 6:49
    2021年1月18日 9:43

全部回复

  • 你好,

    经过我的测试,你给的这段代码是没有问题,但是关于StartProcessAndBypassUAC方法我目前没有找到相关信息。

    根据你最后的解释,我认为你可以尝试下面的方法来启动应用程序来指定使用管理员来运行这个程序。

               Process process = new Process();
                process.StartInfo.FileName = @"E:\Execute.exe";
                process.StartInfo.Verb = "runas";
                process.Start();

    Best Regards,

    Jack


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2021年1月19日 9:28
    版主
  • 因为用来启动应用程序的是一个系统服务,服务是system启动的,貌似直接启动外部程序会无法显示窗体。
    2021年1月19日 9:59
  • 你好,

    感谢您的反馈

    根据我的搜索,你可以参考下面的链接来了解如何从服务中启动UI界面的APP。

    Is there any way to start a GUI application from a windows service on Windows 7?

    Launching GUI App from Windows Service - Window Does Not Appear

    希望可以帮到你。

    Best Regards,

    Jack


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2021年1月20日 6:37
    版主