不能使用c#中的tskill
本文关键字:中的 tskill 不能 | 更新日期: 2023-09-27 18:09:41
我有一个c#程序。它实际上是一行:
System.Diagnostics.Process.Start(@"C:'ProgramData'task manager'killtask.vbs");
那里有一个VBS文件,它生成一个批处理文件,允许你输入一个命令,它将被执行和关闭。然后发送以下密钥:"tskill /a notepad {ENTER}"
。我知道这可能是你见过的最糟糕的做法,但请耐心听我说。
手动运行VBS文件时,关闭记事本成功。当使用上面的行在c#中运行它时,它在关闭之前打印"tskill is not recognized"等。
为什么我不能通过c#通过VBS批处理使用tskill,但我可以通过VBS批处理使用它?记住,点击它并成功运行我的c#代码都试图杀死记事本,但只有用手点击它才能成功关闭记事本。
您可能需要设置工作目录。如果没有它,你的程序将从启动脚本的进程目录执行,而这个目录不是正确的目录。
试试
var processStartInfo = new ProcessStartInfo();
processStartInfo.WorkingDirectory = @"C:'ProgramData'task manager");
processStartInfo.FileName = "killtask.vbs";
Process proc = Process.Start(processStartInfo);