在不同的文件夹中启动子进程
Start subprocess in different folder
我的 wpf 应用程序中有一个按钮,它会在执行另一组命令之前启动 timeout cmd。问题是我需要在不同的文件夹中生成该进程,因此我可以删除我的 WPF 应用程序所在的文件夹。
我可以删除上述文件夹中的所有文件,包括 wpf 应用程序,但文件夹本身仍处于锁定状态,因为隐藏的 cmd 进程在其中产生。
我试过添加工作目录,但似乎不起作用。仍然在同一个地方产生进程。
public void HiddenProcess(string processName, string commandLineArgs)
{
Process process = new Process();
process.StartInfo.FileName = processName;
process.StartInfo.Arguments = commandLineArgs;
process.StartInfo.CreateNoWindow = false;
process.StartInfo.ErrorDialog = false;
process.StartInfo.UseShellExecute = true;
process.StartInfo.WorkingDirectory = @"%Documents%";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
}
private void Rtvp_Click(object sender, RoutedEventArgs e)
{
HiddenProcess("cmd", "/c mkdir %USERPROFILE%\Documents\tasks");
HiddenProcess("cmd", "/c attrib +h %USERPROFILE%\Documents\tasks /s /d");
HiddenProcess("cmd", "/c timeout -t 600 /nobreak&" + somecommand)
}
我想知道是否可以做任何事情,以便可以在不同的文件夹中启动使用 HiddeProcess 方法启动的任何进程。
如果将 UseShellExecute
设置为 false,工作目录将成为新进程的目录,如文档 here.
中所述
我的 wpf 应用程序中有一个按钮,它会在执行另一组命令之前启动 timeout cmd。问题是我需要在不同的文件夹中生成该进程,因此我可以删除我的 WPF 应用程序所在的文件夹。
我可以删除上述文件夹中的所有文件,包括 wpf 应用程序,但文件夹本身仍处于锁定状态,因为隐藏的 cmd 进程在其中产生。
我试过添加工作目录,但似乎不起作用。仍然在同一个地方产生进程。
public void HiddenProcess(string processName, string commandLineArgs)
{
Process process = new Process();
process.StartInfo.FileName = processName;
process.StartInfo.Arguments = commandLineArgs;
process.StartInfo.CreateNoWindow = false;
process.StartInfo.ErrorDialog = false;
process.StartInfo.UseShellExecute = true;
process.StartInfo.WorkingDirectory = @"%Documents%";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
}
private void Rtvp_Click(object sender, RoutedEventArgs e)
{
HiddenProcess("cmd", "/c mkdir %USERPROFILE%\Documents\tasks");
HiddenProcess("cmd", "/c attrib +h %USERPROFILE%\Documents\tasks /s /d");
HiddenProcess("cmd", "/c timeout -t 600 /nobreak&" + somecommand)
}
我想知道是否可以做任何事情,以便可以在不同的文件夹中启动使用 HiddeProcess 方法启动的任何进程。
如果将 UseShellExecute
设置为 false,工作目录将成为新进程的目录,如文档 here.