如何使Microsoft.VisualBasic.FileSystem工作?它应该在Windows Service中

本文关键字:Windows Service Microsoft 何使 VisualBasic FileSystem 工作 | 更新日期: 2023-09-27 18:03:14

我试图创建自动复制应用程序,一旦USB闪存盘插入,然后服务开始复制。我已经用Windows窗体应用程序做过了,它工作得很好。当服务开始复制时,会弹出复制对话框。但是,当我在Windows Service应用程序中实现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服务中,对话框没有显示,它只是在后台复制,我已经将我的服务设置为允许与桌面交互。我错过什么了吗?

如何使Microsoft.VisualBasic.FileSystem工作?它应该在Windows Service中

如果您的服务在LOCALSYSTEM帐户下运行,那么您可以勾选"允许服务与桌面交互",以便遗留服务在无法显示UI时失败。但它不会帮助你,因为UI将显示在会话0,它从来没有见过!

您可以在这里阅读更多关于会话0:http://msdn.microsoft.com/en-us/library/bb756986.aspx