我在C#VS2005中有这个程序用于从USB记忆棒复制文件
因为它将用于只有触摸屏的嵌入式Windows,它从usb加载为“autorun.exe”(执行为“检测到的usb驱动器”对话框显示),没有从硬盘运行的安装是允许的。
我无法弹出正在使用的驱动器,因为它从那里运行,有没有办法让exe结束Form然后在所有执行结束后执行我的“RemoveDrive”功能?
这是我的代码:
private void button2_Click_1(object sender, EventArgs e)
{
this.Close();
System.Threading.Thread.Sleep(3000);
RemoveDriveTools.RemoveDrive(discz);
}
这会得到与程序仍然打开时相同的错误
“discz”的字母驱动器分配为“F:”
RemoveDriveTools.RemoveDrive
是弹出驱动器的方法。
感谢您的建议。
答案 0 :(得分:0)
这是我的建议:
这不能在代码中完成,因为在程序执行时,系统被锁定。我建议采用以下两种方法之一来完成任务:
使用或不使用标志启动程序。 一个。当程序在没有标志的情况下启动时,它会将自身复制到拇指驱动器(以及任何所需的DLL)之外的另一个目录(想想临时目录),并在启用标志的情况下启动该程序版本。 湾启用标志的版本将运行,并且由于该标志将知道它未从驱动器运行。
正常从拇指驱动器运行。退出程序后,启动批处理文件,该文件将: 一个。暂停以确保程序真正退出。 湾运行命令行以关闭拇指驱动器。 (Safely remove USB from batch file?)
选择1,更容易。这将强制执行程序的“正常”执行从临时区域而不是拇指驱动器。