作者:肖波
最近项目中需要通过程序自动设置windows 防火墙,查了一下资料,可以通过命令行netsh firewall来实现。封装了一个类来实现对允许放开的程序(Allowed program)进行管理。管理其他内容比如放开端口等方法是类似的。
程序中用到一个公共类 RunProcess,这个类可从我的另一篇文章 一个C#写的调用外部进程类 获得
调用的相关例程
最近项目中需要通过程序自动设置windows 防火墙,查了一下资料,可以通过命令行netsh firewall来实现。封装了一个类来实现对允许放开的程序(Allowed program)进行管理。管理其他内容比如放开端口等方法是类似的。
程序中用到一个公共类 RunProcess,这个类可从我的另一篇文章 一个C#写的调用外部进程类 获得
namespace
WinFirewall
{
public enum TScope
{
ALL,
SUBNET,
CUSTOM,
}
public enum TMode
{
ENABLE,
DISABLE,
}
/// <summary>
/// Manage the allowed program with the Windows Firewall.
/// </summary>
public class AllowedProgram
{
Set AllowedProgram Help
private field
public property
public method
}
}
{
public enum TScope
{
ALL,
SUBNET,
CUSTOM,
}
public enum TMode
{
ENABLE,
DISABLE,
}
/// <summary>
/// Manage the allowed program with the Windows Firewall.
/// </summary>
public class AllowedProgram
{
Set AllowedProgram Help
private field
public property
public method
}
}
调用的相关例程
private
void
buttonSetAllowProgram_Click(
object
sender, EventArgs e)
{
try
{
AllowedProgram allowedProgram = new AllowedProgram();
allowedProgram.Program = textBoxProgramFilePath.Text.Trim();
if (checkBoxEnable.Checked)
{
allowedProgram.Mode = TMode.ENABLE;
}
else
{
allowedProgram.Mode = TMode.DISABLE;
}
allowedProgram.Scope = (TScope)comboBoxScope.SelectedItem;
allowedProgram.Address = textBoxAddress.Text.Trim();
allowedProgram.Set();
MessageBox.Show("OK", "Information", MessageBoxButtons.OK);
}
catch (Exception e1)
{
MessageBox.Show(e1.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void buttonDelAllowProgram_Click( object sender, EventArgs e)
{
try
{
AllowedProgram allowedProgram = new AllowedProgram();
allowedProgram.Program = textBoxProgramFilePath.Text.Trim();
allowedProgram.Delete();
MessageBox.Show("OK", "Information", MessageBoxButtons.OK);
}
catch (Exception e1)
{
MessageBox.Show(e1.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
{
try
{
AllowedProgram allowedProgram = new AllowedProgram();
allowedProgram.Program = textBoxProgramFilePath.Text.Trim();
if (checkBoxEnable.Checked)
{
allowedProgram.Mode = TMode.ENABLE;
}
else
{
allowedProgram.Mode = TMode.DISABLE;
}
allowedProgram.Scope = (TScope)comboBoxScope.SelectedItem;
allowedProgram.Address = textBoxAddress.Text.Trim();
allowedProgram.Set();
MessageBox.Show("OK", "Information", MessageBoxButtons.OK);
}
catch (Exception e1)
{
MessageBox.Show(e1.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void buttonDelAllowProgram_Click( object sender, EventArgs e)
{
try
{
AllowedProgram allowedProgram = new AllowedProgram();
allowedProgram.Program = textBoxProgramFilePath.Text.Trim();
allowedProgram.Delete();
MessageBox.Show("OK", "Information", MessageBoxButtons.OK);
}
catch (Exception e1)
{
MessageBox.Show(e1.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}