📄 captureoptions.cs
字号:
str = TxtBufferSize.Text;
thisCaptureOptions.BufferSize = int.Parse( str );
str = TxtMinBytesToCopy.Text;
thisCaptureOptions.MinBytesToCopy = int.Parse( str );
str = TxtNumWrites.Text;
thisCaptureOptions.NumWrites = int.Parse( str );
str = TxtReadTimeOut.Text;
thisCaptureOptions.ReadTimeOut = int.Parse( str );
if( CmbCaptureMode.SelectedIndex == 0 )
thisCaptureOptions.CaptureMode = (int) Packet32h.PACKET_MODE_CAPT;
if( CmbCaptureMode.SelectedIndex == 1 )
thisCaptureOptions.CaptureMode = (int) Packet32h.PACKET_MODE_STAT;
if( CmbCaptureMode.SelectedIndex == 2 )
thisCaptureOptions.CaptureMode = (int) Packet32h.PACKET_MODE_DUMP;
if( CmbCaptureMode.SelectedIndex == 3 )
thisCaptureOptions.CaptureMode = (int) Packet32h.PACKET_MODE_STAT_DUMP;
thisCaptureOptions.HardwareFilter = 0;
if( ChkBoxHardwareFilter.GetItemChecked(0) )
thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_DIRECTED;
if( ChkBoxHardwareFilter.GetItemChecked(1) )
thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_MULTICAST;
if( ChkBoxHardwareFilter.GetItemChecked(2) )
thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_ALL_MULTICAST;
if( ChkBoxHardwareFilter.GetItemChecked(3) )
thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_BROADCAST;
if( ChkBoxHardwareFilter.GetItemChecked(4) )
thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_SOURCE_ROUTING;
if( ChkBoxHardwareFilter.GetItemChecked(5) )
thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_PROMISCUOUS;
if( ChkBoxHardwareFilter.GetItemChecked(6) )
thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_SMT;
if( ChkBoxHardwareFilter.GetItemChecked(7) )
thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_ALL_LOCAL;
if( ChkBoxHardwareFilter.GetItemChecked(8) )
thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_MAC_FRAME;
if( ChkBoxHardwareFilter.GetItemChecked(9) )
thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_FUNCTIONAL;
if( ChkBoxHardwareFilter.GetItemChecked(10) )
thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_ALL_FUNCTIONAL;
if( ChkBoxHardwareFilter.GetItemChecked(11) )
thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_GROUP;
thisDisplayOptions.UpdateListInRealTime = ChkDisplayOptionsRealTime.Checked;
thisDisplayOptions.AutomaticScrollInLiveCapture = ChkDisplayOptionsAutomaticScroll.Checked;
thisCaptureLimits.LimitToPackets = ChkCaptureLimitsPackets.Checked;
thisCaptureLimits.LimitToKiloBytes = ChkCaptureLimitsKiloBytes.Checked;
thisCaptureLimits.LimitToSeconds = ChkCaptureLimitsSeconds.Checked;
str = TxtCaptureLimitsPackets.Text;
thisCaptureLimits.PacketSize = int.Parse( str );
str = TxtCaptureLimitsKiloBytes.Text;
thisCaptureLimits.KilobyteSize = int.Parse( str );
str = TxtCaptureLimitsSeconds.Text;
thisCaptureLimits.SecondSize = int.Parse( str );
thisNameResolution.EnableMAC = ChkNameResolutionMAC.Checked;
thisNameResolution.EnableNetwork = ChkNameResolutionNetwork.Checked;
thisNameResolution.EnableTransport = ChkNameResolutionTransport.Checked;
thisNameResolution.EnableManufacturer = ChkManufacturerNameResolution.Checked;
P32.CaptureLimits = thisCaptureLimits;
P32.CaptureOptions = thisCaptureOptions;
P32.DisplayOptions = thisDisplayOptions;
P32.NameResolution = thisNameResolution;
P32.SaveSettings();
ParamsLoaded = false;
this.Hide();
}
private void BtnCancel_Click(object sender, System.EventArgs e)
{
this.Hide();
}
private void CaptureOptions_Enter(object sender, System.EventArgs e)
{
int i = 0;
P32.ReadSettings();
thisCaptureLimits = P32.CaptureLimits;
thisCaptureOptions = P32.CaptureOptions;
thisDisplayOptions = P32.DisplayOptions;
thisNameResolution = P32.NameResolution;
Adapters = P32.InstalledAdapters;
CmbAdapter.Items.Clear();
for( i = 0; i < Adapters.GetLength(0); i ++ )
CmbAdapter.Items.Add( Adapters[i] );
if( CmbAdapter.Items.Count > 0 )
CmbAdapter.SelectedIndex = 0;
TxtEachPacketSize.Text = thisCaptureOptions.PacketSize.ToString();
ChkCaptureLimit.Checked = thisCaptureOptions.LimitPackets;
TxtEachPacketSize.Enabled = thisCaptureOptions.LimitPackets;
ChkCaptureMode.Checked = thisCaptureOptions.PromiscuousMode;
TxtFilter.Text = thisCaptureOptions.Filter;
CmbAdapter.SelectedIndex = thisCaptureOptions.AdapterIndex;
TxtAdapterBufferSize.Text = thisCaptureOptions.AdapterBufferSize.ToString();
TxtBufferSize.Text = thisCaptureOptions.BufferSize.ToString();
TxtMinBytesToCopy.Text = thisCaptureOptions.MinBytesToCopy.ToString();
TxtNumWrites.Text = thisCaptureOptions.NumWrites.ToString();
TxtReadTimeOut.Text = thisCaptureOptions.ReadTimeOut.ToString();
if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_CAPT )
CmbCaptureMode.SelectedIndex = 0;
else if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_STAT )
CmbCaptureMode.SelectedIndex = 1;
else if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_DUMP )
CmbCaptureMode.SelectedIndex = 2;
else if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_STAT_DUMP )
CmbCaptureMode.SelectedIndex = 3;
TxtMinBytesToCopy.Text = thisCaptureOptions.MinBytesToCopy.ToString();
TxtMinBytesToCopy.Text = thisCaptureOptions.MinBytesToCopy.ToString();
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_DIRECTED ) == Packet32h.NDIS_PACKET_TYPE_DIRECTED )
ChkBoxHardwareFilter.SetItemChecked( 0 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_MULTICAST ) == Packet32h.NDIS_PACKET_TYPE_MULTICAST )
ChkBoxHardwareFilter.SetItemChecked( 1 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_ALL_MULTICAST ) == Packet32h.NDIS_PACKET_TYPE_ALL_MULTICAST )
ChkBoxHardwareFilter.SetItemChecked( 2 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_BROADCAST ) == Packet32h.NDIS_PACKET_TYPE_BROADCAST )
ChkBoxHardwareFilter.SetItemChecked( 3 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_SOURCE_ROUTING ) == Packet32h.NDIS_PACKET_TYPE_SOURCE_ROUTING )
ChkBoxHardwareFilter.SetItemChecked( 4 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_PROMISCUOUS ) == Packet32h.NDIS_PACKET_TYPE_PROMISCUOUS )
ChkBoxHardwareFilter.SetItemChecked( 5 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_SMT ) == Packet32h.NDIS_PACKET_TYPE_SMT )
ChkBoxHardwareFilter.SetItemChecked( 6 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_ALL_LOCAL ) == Packet32h.NDIS_PACKET_TYPE_ALL_LOCAL )
ChkBoxHardwareFilter.SetItemChecked( 7 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_MAC_FRAME ) == Packet32h.NDIS_PACKET_TYPE_MAC_FRAME )
ChkBoxHardwareFilter.SetItemChecked( 8 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_FUNCTIONAL ) == Packet32h.NDIS_PACKET_TYPE_FUNCTIONAL )
ChkBoxHardwareFilter.SetItemChecked( 9 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_ALL_FUNCTIONAL ) == Packet32h.NDIS_PACKET_TYPE_ALL_FUNCTIONAL )
ChkBoxHardwareFilter.SetItemChecked( 10 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_GROUP ) == Packet32h.NDIS_PACKET_TYPE_GROUP )
ChkBoxHardwareFilter.SetItemChecked( 11 , true );
ChkDisplayOptionsRealTime.Checked = thisDisplayOptions.UpdateListInRealTime;
ChkDisplayOptionsAutomaticScroll.Checked = thisDisplayOptions.AutomaticScrollInLiveCapture;
ChkCaptureLimitsPackets.Checked = thisCaptureLimits.LimitToPackets;
ChkCaptureLimitsKiloBytes.Checked = thisCaptureLimits.LimitToKiloBytes;
ChkCaptureLimitsSeconds.Checked = thisCaptureLimits.LimitToSeconds;
TxtCaptureLimitsPackets.Text = thisCaptureLimits.PacketSize.ToString();
TxtCaptureLimitsKiloBytes.Text = thisCaptureLimits.KilobyteSize.ToString();
TxtCaptureLimitsSeconds.Text = thisCaptureLimits.SecondSize.ToString();
TxtCaptureLimitsPackets.Enabled = ChkCaptureLimitsPackets.Checked;
TxtCaptureLimitsKiloBytes.Enabled = ChkCaptureLimitsKiloBytes.Checked;
TxtCaptureLimitsSeconds.Enabled = ChkCaptureLimitsSeconds.Checked;
ChkNameResolutionMAC.Checked = thisNameResolution.EnableMAC;
ChkNameResolutionNetwork.Checked = thisNameResolution.EnableNetwork;
ChkNameResolutionTransport.Checked = thisNameResolution.EnableTransport;
ChkManufacturerNameResolution.Checked = thisNameResolution.EnableManufacturer;
}
private void ChkCaptureMode_CheckStateChanged(object sender, System.EventArgs e)
{
if( ChkCaptureMode.Checked )
ChkBoxHardwareFilter.SetItemChecked( 5 , true );
else
ChkBoxHardwareFilter.SetItemChecked( 5 , false );
}
private void ChkBoxHardwareFilter_SelectedValueChanged(object sender, System.EventArgs e)
{
ChkCaptureMode.Checked = ChkBoxHardwareFilter.GetItemChecked( 5 );
}
private void CaptureOptions_Activated(object sender, System.EventArgs e)
{
int i = 0;
if( ! ParamsLoaded )
{
P32.ReadSettings();
thisCaptureLimits = P32.CaptureLimits;
thisCaptureOptions = P32.CaptureOptions;
thisDisplayOptions = P32.DisplayOptions;
thisNameResolution = P32.NameResolution;
Adapters = P32.InstalledAdapters;
CmbAdapter.Items.Clear();
for( i = 0; i < Adapters.GetLength(0); i ++ )
CmbAdapter.Items.Add( Adapters[i] );
if( CmbAdapter.Items.Count > 0 )
CmbAdapter.SelectedIndex = 0;
TxtEachPacketSize.Text = thisCaptureOptions.PacketSize.ToString();
ChkCaptureLimit.Checked = thisCaptureOptions.LimitPackets;
TxtEachPacketSize.Enabled = thisCaptureOptions.LimitPackets;
ChkCaptureMode.Checked = thisCaptureOptions.PromiscuousMode;
TxtFilter.Text = thisCaptureOptions.Filter;
CmbAdapter.SelectedIndex = thisCaptureOptions.AdapterIndex;
TxtAdapterBufferSize.Text = thisCaptureOptions.AdapterBufferSize.ToString();
TxtBufferSize.Text = thisCaptureOptions.BufferSize.ToString();
TxtMinBytesToCopy.Text = thisCaptureOptions.MinBytesToCopy.ToString();
TxtNumWrites.Text = thisCaptureOptions.NumWrites.ToString();
TxtReadTimeOut.Text = thisCaptureOptions.ReadTimeOut.ToString();
if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_CAPT )
CmbCaptureMode.SelectedIndex = 0;
else if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_STAT )
CmbCaptureMode.SelectedIndex = 1;
else if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_DUMP )
CmbCaptureMode.SelectedIndex = 2;
else if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_STAT_DUMP )
CmbCaptureMode.SelectedIndex = 3;
TxtMinBytesToCopy.Text = thisCaptureOptions.MinBytesToCopy.ToString();
TxtMinBytesToCopy.Text = thisCaptureOptions.MinBytesToCopy.ToString();
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_DIRECTED ) == Packet32h.NDIS_PACKET_TYPE_DIRECTED )
ChkBoxHardwareFilter.SetItemChecked( 0 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_MULTICAST ) == Packet32h.NDIS_PACKET_TYPE_MULTICAST )
ChkBoxHardwareFilter.SetItemChecked( 1 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_ALL_MULTICAST ) == Packet32h.NDIS_PACKET_TYPE_ALL_MULTICAST )
ChkBoxHardwareFilter.SetItemChecked( 2 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_BROADCAST ) == Packet32h.NDIS_PACKET_TYPE_BROADCAST )
ChkBoxHardwareFilter.SetItemChecked( 3 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_SOURCE_ROUTING ) == Packet32h.NDIS_PACKET_TYPE_SOURCE_ROUTING )
ChkBoxHardwareFilter.SetItemChecked( 4 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_PROMISCUOUS ) == Packet32h.NDIS_PACKET_TYPE_PROMISCUOUS )
ChkBoxHardwareFilter.SetItemChecked( 5 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_SMT ) == Packet32h.NDIS_PACKET_TYPE_SMT )
ChkBoxHardwareFilter.SetItemChecked( 6 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_ALL_LOCAL ) == Packet32h.NDIS_PACKET_TYPE_ALL_LOCAL )
ChkBoxHardwareFilter.SetItemChecked( 7 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_MAC_FRAME ) == Packet32h.NDIS_PACKET_TYPE_MAC_FRAME )
ChkBoxHardwareFilter.SetItemChecked( 8 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_FUNCTIONAL ) == Packet32h.NDIS_PACKET_TYPE_FUNCTIONAL )
ChkBoxHardwareFilter.SetItemChecked( 9 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_ALL_FUNCTIONAL ) == Packet32h.NDIS_PACKET_TYPE_ALL_FUNCTIONAL )
ChkBoxHardwareFilter.SetItemChecked( 10 , true );
if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_GROUP ) == Packet32h.NDIS_PACKET_TYPE_GROUP )
ChkBoxHardwareFilter.SetItemChecked( 11 , true );
ChkDisplayOptionsRealTime.Checked = thisDisplayOptions.UpdateListInRealTime;
ChkDisplayOptionsAutomaticScroll.Checked = thisDisplayOptions.AutomaticScrollInLiveCapture;
ChkCaptureLimitsPackets.Checked = thisCaptureLimits.LimitToPackets;
ChkCaptureLimitsKiloBytes.Checked = thisCaptureLimits.LimitToKiloBytes;
ChkCaptureLimitsSeconds.Checked = thisCaptureLimits.LimitToSeconds;
TxtCaptureLimitsPackets.Text = thisCaptureLimits.PacketSize.ToString();
TxtCaptureLimitsKiloBytes.Text = thisCaptureLimits.KilobyteSize.ToString();
TxtCaptureLimitsSeconds.Text = thisCaptureLimits.SecondSize.ToString();
TxtCaptureLimitsPackets.Enabled = ChkCaptureLimitsPackets.Checked;
TxtCaptureLimitsKiloBytes.Enabled = ChkCaptureLimitsKiloBytes.Checked;
TxtCaptureLimitsSeconds.Enabled = ChkCaptureLimitsSeconds.Checked;
ChkNameResolutionMAC.Checked = thisNameResolution.EnableMAC;
ChkNameResolutionNetwork.Checked = thisNameResolution.EnableNetwork;
ChkNameResolutionTransport.Checked = thisNameResolution.EnableTransport;
ChkManufacturerNameResolution.Checked = thisNameResolution.EnableManufacturer;
ParamsLoaded = true;
}
}
private void ChkCaptureLimit_CheckStateChanged(object sender, System.EventArgs e)
{
TxtEachPacketSize.Enabled = ChkCaptureLimit.Checked;
}
private void ChkCaptureLimitsKiloBytes_CheckStateChanged(object sender, System.EventArgs e)
{
TxtCaptureLimitsKiloBytes.Enabled = ChkCaptureLimitsKiloBytes.Checked;
}
private void ChkCaptureLimitsSeconds_CheckStateChanged(object sender, System.EventArgs e)
{
TxtCaptureLimitsSeconds.Enabled = ChkCaptureLimitsSeconds.Checked;
}
private void ChkCaptureLimitsPackets_CheckStateChanged(object sender, System.EventArgs e)
{
TxtCaptureLimitsPackets.Enabled = ChkCaptureLimitsPackets.Checked;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -