6
Użyłem narzędzia netsh do dodania mojej aplikacji do zapory w następujący sposób. Czy przed dodaniem go do zapory sieciowej wiem, że aplikacja nie została dodana do zapory? ponieważ nie chcę wielokrotnie dodawać aplikacji do zapory.Skąd wiadomo, że moja aplikacja nie została dodana do zapory?
ProcessStartInfo info = null;
try
{
using (Process proc = new Process())
{
string productAssembly = new Uri(Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase)).LocalPath + "\\" + this.ProductName + ".exe";
string args = string.Format(CultureInfo.InvariantCulture, "advfirewall firewall add rule name=\"{0}\" dir=in action=allow program=\"{1}\" enable=yes", this.ProductName, productAssembly);
info = new ProcessStartInfo("netsh", args);
proc.StartInfo = info;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.RedirectStandardOutput = false;
proc.Start();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Sprawdź ten post: http://stackoverflow.com/questions/113755/programmatically-add-an-application-to-windows-firewall –
@TheGreatCO Oba różnią się pytanie, że jest to temat dodawania i jest o wykryciu –
Zwykle robisz to jeden raz podczas instalacji - w takim przypadku po prostu dodajesz go do zapory (i usuwasz podczas odinstalowywania) bez potrzeby sprawdzania. –