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);
        }
    }

cmd命令msg不起作用

我想你有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