如何使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服务中,对话框没有显示,它只是在后台复制,我已经将我的服务设置为允许与桌面交互。我错过什么了吗?
如果您的服务在LOCALSYSTEM帐户下运行,那么您可以勾选"允许服务与桌面交互",以便遗留服务在无法显示UI时失败。但它不会帮助你,因为UI将显示在会话0,它从来没有见过!
您可以在这里阅读更多关于会话0:http://msdn.microsoft.com/en-us/library/bb756986.aspx