Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使Microsoft.VisualBasic.FileSystem在Windows服务中正常工作?_C#_Vb.net_Windows Services_Copy Paste - Fatal编程技术网

C# 如何使Microsoft.VisualBasic.FileSystem在Windows服务中正常工作?

C# 如何使Microsoft.VisualBasic.FileSystem在Windows服务中正常工作?,c#,vb.net,windows-services,copy-paste,C#,Vb.net,Windows Services,Copy Paste,我正在尝试创建自动复制应用程序,一旦USB闪存插入,然后服务开始复制。。我已经用Windows窗体应用程序完成了,它工作得很好。当服务开始复制时,会弹出“复制”对话框。 但是,当我在Windows服务应用程序中实现Microsoft.VIsualBasic.FIlesystem时,它不会显示“复制”对话框,它只是复制而没有任何通知 这是我的密码 private void BackupWithVisual() { sourceDir = "D:\\images";

我正在尝试创建自动复制应用程序,一旦USB闪存插入,然后服务开始复制。。我已经用Windows窗体应用程序完成了,它工作得很好。当服务开始复制时,会弹出“复制”对话框。 但是,当我在Windows服务应用程序中实现Microsoft.VIsualBasic.FIlesystem时,它不会显示“复制”对话框,它只是复制而没有任何通知

这是我的密码

    private void BackupWithVisual()
    {
        sourceDir = "D:\\images";

        DriveInfo[] ListDrives = DriveInfo.GetDrives();

        foreach (DriveInfo Drive in ListDrives)
        {
            if (Drive.DriveType == DriveType.Removable)
            {
                USBLocation = Drive.RootDirectory.ToString() + "Backup\\" + DateTime.Now.ToString("MMMM") + "\\" + DateTime.Now.ToString("ddMMyy");
            }
        }

        eventLog1.WriteEntry(USBLocation);


        Directory.CreateDirectory(sourceDir);

        if (!System.IO.Directory.Exists(USBLocation))
        {
            System.IO.Directory.CreateDirectory(USBLocation);
        }

        FileSystem.CopyDirectory(sourceDir, USBLocation, UIOption.AllDialogs, UICancelOption.DoNothing);
    }

在我的最后一行代码中,我使用windows对话框进行复制,就像我们使用CTRL+C然后CTRL+V一样,在windows窗体应用程序中,它工作得非常好!但在windows服务中,对话框不会显示,它只是在后台复制,我已经将我的服务设置为允许与桌面交互。有什么我遗漏的吗?

如果您的服务在LOCALSYSTEM帐户下运行,那么您可以选中“允许服务与桌面交互”,以了解如果无法显示UI将失败的旧服务的好处。但它无论如何也帮不了你,因为UI将在会话0中显示,而在会话0中它从未出现过


您可以在此处阅读有关会话0的mor:

windows服务“无法”访问gui。登录选项卡中写入“允许服务与桌面交互”的功能如何?请参阅windows服务常见问题解答。将问题标记为已回答