AutoRun mit USB Memoy-Sticks


Thomas Wölfer
Thomas Wölfer

29. August 2006


Manchmal wäre es nett, wenn man auch mit USB-Sticks Autorun-Möglichkeiten hätte. Wenn also, nachdem der Stick reingesteckt wurde, automatisch eine Anwendung vom Stick gestartet wird. Mit USB Memory-Sticks geht das aber eigentlich nicht - zumindest nicht von Haus aus.

Wenn man aber ein bisschen Software auf dem eigenen Rechner installiert, dann geht das schon. Mit einer Windows.Forms Anwendung könnte das beispielsweise so aussehen: Man macht eine normale Forms-Anwendung, und kümmert sich drum, das die nicht in der Taskleiste angezeigt wird. Das Ding startet man per Autostart. Diese Anwendung muss dann nur noch darauf horchen, ob ein neues Medium in den USB-Slot gesteckt wurde, und kann dann darauf reagieren.

Im Kern sieht das so aus:

public partial class Form1 : Form
{
   public Form1()
   {
      InitializeComponent();
   }

   private const UInt32 WM_DEVICECHANGE = 0x0219;
   private const int DBT_DEVICEARRIVAL = 0x8000;

  protected override void WndProc(ref Message m)
  {
   base.WndProc(ref m);
   this.Location = new Point(-300, -300);

   if (m.Msg == WM_DEVICECHANGE)
   {
      if (m.WParam == (IntPtr )DBT_DEVICEARRIVAL)
      {
         // hier gehts dann los ...
      }
   }
  }
}