我有这门课,但我不知道怎么称呼它。对不起,我是新人,我还在学习。有了这个类,我尝试打开MS SQL端口。可能有不同的方式,但就像我说我还在学习。
public class ProcessStart
{
public string input;
public static void startProcess(string input)
{
Process process = new Process();
input = @"
@echo Enabling SQLServer default instance port 1433
netsh advfirewall firewall add rule name =""SQLServer"" dir =in action = allow protocol = TCP localport = 1433
@echo Enabling Dedicated Admin Connection port 1434
@echo Enabling HTTP port 80
@netsh advfirewall firewall add rule name=""SqlServer1"" dir=in action=allow protocol=TCP localport=80
@echo Enabling Dedicated Admin Connection port 80
";
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.UseShellExecute = false;
process.Start();
process.StandardInput.WriteLine(input);
process.StandardInput.Flush();
process.StandardInput.Close();
process.WaitForExit();
Console.WriteLine(process.StandardOutput.ReadToEnd());
//Console.ReadKey();
}
}
答案 0 :(得分:3)
因为startProcess
public ,您可以从课外调用它。因为它是 static ,所以可以在不创建实例的情况下调用它。所以:
ProcessStart.startProcess(input);
此外,您需要在某处使用静态Main
方法,例如:
class Program {
static void Main() {
…
}
}
定义Main()
方法的类别无关紧要。您可以将其添加到ProcessStart
。
修改:您的课程有些奇怪:您在课堂上声明了一个未使用的非静态 input
成员,以及{{ 1}}然后你忽略的参数,因为你在第二行覆盖它。您可以删除成员变量并选择使用传入的参数值,或者删除参数并在方法体中声明它:
input
或
class ProcessStart {
public static void startProcess(string input) {
Process process = new Process();
// Don’t assign input here! Use the argument.
process.StartInfo. …
…
}
}