私はこのクラスを持っていますが、それを呼び出す方法がわかりません。申し訳ありませんが、私は新しく、まだ学んでいます。このクラスを使用して、MSSQLポートを開こうとします。別の方法があるかもしれませんが、私が言ったように私はまだ学びます。
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();
}
}
のでstartProcess
ある公共あなたはクラスの外からそれを呼び出すことができます。静的であるため、インスタンスを作成せずに呼び出すことができます。そう:
ProcessStart.startProcess(input);
さらに、Main
どこかに静的メソッドが必要になります。次に例を示します。
class Program {
static void Main() {
…
}
}
Main()
メソッドがどのクラスで定義されているかは関係ありません。に追加できProcessStart
ます。
編集:クラスに奇妙なことがあります。クラスで未使用の非静的 input
メンバーを宣言input
し、2行目で上書きするために無視する引数も宣言します。メンバー変数を削除して、渡された引数値を使用するか、引数を削除してメソッド本体で宣言するかを選択できます。
class ProcessStart {
public static void startProcess(string input) {
Process process = new Process();
// Don’t assign input here! Use the argument.
process.StartInfo. …
…
}
}
または
class ProcessStart {
public static void startProcess() { // No argument
Process process = new Process();
string input = @"…";
process.StartInfo. …
…
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加