private void do仅录像_Click(object sender, EventArgs e) { var _网卡 = (ICaptureDevice)this.in网卡.SelectedItem; var __录像目录 = H路径.获取绝对路径("录像\\"); if (!Directory.Exists(__录像目录)) { Directory.CreateDirectory(__录像目录); } var __录像机 = new CaptureFileWriterDevice(Path.Combine(__录像目录, _当前项目.称 + " " + DateTime.Now.ToString("yyyy-MM-dd hh-mm-ss"))); PacketArrivalEventHandler __处理抓包 = (object sender1, CaptureEventArgs e1) => __录像机.Write(e1.Packet); _网卡.OnPacketArrival += __处理抓包; _网卡.Open(); _网卡.Filter = H公共.获取过滤表达式(_当前项目.当前通信设备); _网卡.StartCapture(); XtraMessageBox.Show(string.Format("开始时间: {0}, 按OK键终止录像!", DateTime.Now), "录像中", MessageBoxButtons.OK, MessageBoxIcon.Information); _网卡.OnPacketArrival -= __处理抓包; _网卡.Close(); __录像机.Close(); }
private void 开始() { _停止后台处理 = false; _后台线程 = new Thread(处理原始报文); _后台线程.Start(); _网卡.OnPacketArrival += 处理抓到报文; _网卡.OnCaptureStopped += 处理停止抓包; try { _网卡.Open(); _网卡.Filter = H公共.获取过滤表达式(_配置.项目.当前通信设备); Debug.WriteLine("过滤条件: " + _网卡.Filter); _网卡.StartCapture(); } catch (Exception ex) { XtraMessageBox.Show("抓包出现错误, 请关闭后重试: " + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }