Advertisement
RaamGeneral

usbmonitor

Nov 16th, 2013
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.84 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO;
  6. using System.Windows.Forms;
  7. using System.Management;
  8. using System.Diagnostics;
  9.  
  10.  
  11.  
  12. namespace ConsoleApplication1
  13. {
  14.     class Program
  15.     {
  16.  
  17.         static void Main(string[] args)
  18.         {
  19.  
  20.             List<String> prec = query();
  21.  
  22.             while (true)
  23.             {
  24.                 System.Threading.Thread.Sleep(1000);
  25.  
  26.                 List<String> succ = query();
  27.  
  28.                 if (succ.Count > prec.Count)
  29.                 {
  30.                     checknexecute(succ, prec);
  31.                 }
  32.                 prec = null;
  33.  
  34.  
  35.                 prec = succ;
  36.                 succ = null;
  37.  
  38.                 GC.Collect();
  39.             }
  40.  
  41.         }
  42.  
  43.  
  44.         static List<String> query()
  45.         {
  46.             List<String> lsusb = new List<string>();
  47.             ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT deviceid FROM cim_logicaldevice");
  48.             ManagementObjectCollection usb = searcher.Get();
  49.  
  50.             foreach (ManagementObject obj in usb)
  51.             {
  52.                 lsusb.Add(obj.Properties["deviceid"].Value.ToString());
  53.             }
  54.  
  55.             searcher.Dispose();
  56.             usb.Dispose();
  57.             GC.Collect();
  58.  
  59.             return lsusb;
  60.  
  61.         }
  62.  
  63.  
  64.         static void checknexecute(List<String> succ, List<String> prec)
  65.         {
  66.             foreach (String usbid in succ)
  67.             {
  68.                 if (!prec.Contains(usbid))
  69.                 {
  70.                     File.AppendAllText("log.log", "PLUGGED " + DateTime.Now.ToString() + " --- " + usbid + "\r\n");
  71.  
  72.                 }
  73.             }
  74.             File.AppendAllText("log.log", "\r\n");
  75.             succ = null;
  76.             prec = null;
  77.             GC.Collect();
  78.         }
  79.  
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement