cmd命令msg不起作用
本文关键字:不起作用 msg 命令 cmd | 更新日期: 2023-09-27 18:25:01
它只是说"'msg'不被识别为内部或外部程序……"我找了很多,仍然没有找到任何东西。为什么它不认识它??
private void button1_Click(object sender, EventArgs e)
{
string strCmdText;
string user = textBox1.Text;
string host = textBox2.Text;
string time = textBox3.Text;
string text = textBox4.Text;
if (textBox1.Text == "")
{
System.Windows.Forms.MessageBox.Show("You haven't specified a user!");
}
else if(textBox2.Text == "")
{
System.Windows.Forms.MessageBox.Show("You haven't specified the host!");
}
else if (textBox3.Text == "")
{
System.Windows.Forms.MessageBox.Show("You haven't specified the shutdown timer");
}
else
{
strCmdText = "/c msg " + user + "/server:" + host + " /time:" + time + " /w " + text;
System.Diagnostics.Process.Start("CMD.exe", strCmdText);
}
}
我想你有64位机器。因此,尝试指定msg.exe
C:'Windows'Sysnative'msg.exe
的完整路径或将C:'Windows'Sysnative
添加到路径变量中。
源
请确保"msg"命令在命令行本身(CMD.exe)运行良好。
如果它也提供了相同的错误,请确保msg.exe存在于System32文件夹中,并且PATH环境变量具有System32文件夹路径。
下面的代码看起来很好,但不起作用。它给出的"msg.exe"未被识别为内部或外部命令错误。
ProcessStartInfo pi = new ProcessStartInfo();
pi.FileName = "cmd.exe";
pi.Arguments = "/c msg.exe arguments";
pi.UseShellExecute = false;
Process.Start(pi);
Thread.Sleep(5000);
但将用户信息设置为ProcessStartInfo,它起作用了,我可以访问位于System32文件夹中的exe。
ProcessStartInfo pi = new ProcessStartInfo();
pi.FileName = "cmd.exe";
pi.Arguments = "/c msg.exe arguments";
pi.UserName = "administrator";
System.Security.SecureString s = new System.Security.SecureString();
s.AppendChar('p');
s.AppendChar('a');
s.AppendChar('s');
s.AppendChar('s');
s.AppendChar('w');
s.AppendChar('o');
s.AppendChar('r');
s.AppendChar('d');
pi.Password = s;
pi.UseShellExecute = false;
Process.Start(pi);
Thread.Sleep(5000);
请参阅https://stackoverflow.com/a/10932062/2382414