private void watch_created(object sender, FileSystemEventArgs e) { //事件内容 Console.WriteLine("create:" + e.FullPath); diskClass diskStr = (diskClass)diskMap[disk]; if (filePath == e.FullPath) { if (copytime != DateTime.Now.ToString().Substring(0, 14) || copyname != filePath || copydiskdir != diskStr.diskdir) { copyname = filePath; copytime = DateTime.Now.ToString().Substring(0, 14); copydiskdir = diskStr.diskdir; this.WriteToExcel(path, diskStr.diskname, DateTime.Now.ToString(), diskStr.diskdir, "拷入:" + e.FullPath); } } else { if (copytime != DateTime.Now.ToString().Substring(0, 14) || copyname != filePath || copydiskdir != diskStr.diskdir) { copyname = filePath; copytime = DateTime.Now.ToString().Substring(0, 14); copydiskdir = diskStr.diskdir; this.WriteToExcel(path, diskStr.diskname, DateTime.Now.ToString(), diskStr.diskdir, "拷出:" + e.FullPath); } } }
public void WriteInsert() { StartWatch(); WatchStartOrSopt(true); diskClass diskObj = new diskClass(); Console.WriteLine("开始监听剪切板"); Console.WriteLine(dir); diskinfo = new ManagementObject("win32_logicaldisk.deviceid=\"" + disk + "\""); string diskdir; object diskserdata = diskinfo.Properties["VolumeSerialNumber"].Value; object disknamedata = diskinfo.Properties["VolumeName"].Value; if (disknamedata != null) { diskname = disknamedata.ToString(); } diskser = diskserdata.ToString(); diskdir = diskser; if (diskname == "" || diskname == null) { diskname = "可移动磁盘(" + disk + ")"; } diskObj.diskname = diskname; diskObj.diskdir = diskdir; diskMap.Add(disk, diskObj); this.WriteToExcel(path, diskname, DateTime.Now.ToString(), diskdir, "插入"); }
/// <summary> /// 当指定目录的文件或者目录发生重命名的时候的事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void watch_renamed(object sender, RenamedEventArgs e) { //事件内容 Console.WriteLine("rename:" + e.FullPath); diskClass diskStr = (diskClass)diskMap[disk]; this.WriteToExcel(path, diskStr.diskname, DateTime.Now.ToString(), diskStr.diskdir, "重命名:" + e.FullPath); }
/// <summary> /// 当删除目录的文件或者目录的时候的监听事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void watch_deleted(object sender, FileSystemEventArgs e) { //事件内容 Console.WriteLine("del:" + e.FullPath); diskClass diskStr = (diskClass)diskMap[disk]; this.WriteToExcel(path, diskStr.diskname, DateTime.Now.ToString(), diskStr.diskdir, "删除:" + e.FullPath); }
public void getData() { try { //根据.net自带Clipboard类,获取裁切板中的数据 if (Clipboard.ContainsFileDropList()) { System.Collections.Specialized.StringCollection file = Clipboard.GetFileDropList(); IList fileIList = (IList)file; if (fileIList.Count > 0) { for (int i = 0; i < fileIList.Count; i++) { Console.WriteLine(fileIList[i]); filePath = fileIList[i].ToString(); if (filePath.StartsWith(disk)) { Console.WriteLine("U盘数据被复制"); diskClass diskStr = (diskClass)diskMap[disk]; if (copytime != DateTime.Now.ToString().Substring(0, 14) || copyname != filePath || copydiskdir != diskStr.diskdir) { copyname = filePath; copytime = DateTime.Now.ToString().Substring(0, 14); copydiskdir = diskStr.diskdir; this.WriteToExcel(path, diskStr.diskname, DateTime.Now.ToString(), diskStr.diskdir, "拷入:" + filePath); } } } } } } catch (Exception e) { MessageBox.Show(e.Message); } }
protected override void WndProc(ref Message m) { if (m.Msg == WM_DRAWCLIPBOARD) { SendMessage(nextHandle, m.Msg, m.WParam, m.LParam); this.setSingleThread(); } else if (m.Msg == WM_CHANGECBCHAIN) { if (m.WParam == nextHandle) { this.nextHandle = m.LParam; } else { SendMessage(nextHandle, m.Msg, m.WParam, m.LParam); } } else if (m.Msg == WM_CLIPBOARDUPDATE) { this.setSingleThread(); } else if (m.Msg == WM_DEVICECHANGE) { int wp = m.WParam.ToInt32(); //存储设备插/拔/弹 if (wp == DBT_DEVICEARRIVAL || wp == DBT_DEVICEQUERYREMOVE || wp == DBT_DEVICEREMOVECOMPLETE || wp == DBT_DEVICEREMOVEPENDING || wp == DBT_DEVICEQUERYREMOVEFAILED) { DEV_BROADCAST_HDR dbhdr = (DEV_BROADCAST_HDR)Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_HDR)); if (dbhdr.dbch_devicetype == 2) { DEV_BROADCAST_VOLUME dbv = (DEV_BROADCAST_VOLUME)Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_VOLUME)); if (dbv.dbcv_flags == 0) { char[] volums = GetVolumes(dbv.dbcv_unitmask); disk = volums[0].ToString() + ":"; path = dir + "USB接口使用记录" + DateTime.Today.Year + DateTime.Today.Month + DateTime.Today.Day + ".xlsx"; if (wp == DBT_DEVICEARRIVAL) //存储设备插入 { WatcherStrat(disk, "*.*"); //开始监听U盘 if (!File.Exists(path)) { try { this.CreateExcelFile(path); } catch (Exception e) { msg(e.Message); } } (new NameFrom()).ShowDialog(); WriteInsert(); } else //存储设备拔/弹出 { try { if (watcher.Path == "true") { } diskClass diskStr = (diskClass)diskMap[disk]; this.WriteToExcel(path, diskStr.diskname, DateTime.Now.ToString(), diskStr.diskdir, "拔出"); diskMap.Remove(disk); if (watcher.EnableRaisingEvents != false) { EndWatch(); WatchStartOrSopt(false); Console.WriteLine("直接拔出"); } Console.WriteLine("结束监听剪切板"); } catch (Exception) { } } } } } } base.WndProc(ref m); }