[C#] Hardwareerkennung

corey

Ensign
Registriert
März 2005
Beiträge
254
Hi all,

Ich möchte, dass wenn mein Memorystick eingesteckt wird, mein Programm gestartet wird. Wie kann ich mit einem Programm "abhören" ob dieser Memoriestick eingesteckt wurde oder nicht?

Gruss

corey
 
Zuletzt bearbeitet:
wenn du das programm auf den stick machen willst, dann kannst du es über eine autostart-datei automatisch starten lassen.
such mal nach dem stickwort autostart.ini. das kommt eigentlich von cd's, geht aber eigentlich mit allen datenträgern, die windows im betrieb einbinden kann!
 
Auszug aus der Windows API Doku:

WM_DEVICECHANGE

The WM_DEVICECHANGE device message notifies an application of a change to the hardware configuration of a device or the computer.

A window receives this message through its WindowProc function.

Das müsste auf das einstecken eines MS zutreffen.

MfG

Arnd
 
Hi all,

@Wolf: die Idee gefällt mir ganz gut. könnte / werde ich so machen.

@arnd: leider kenne ich mit api - calls gar nicht aus und ich weiss auch nicht wie die in c# zu implementieren wären, deshalb gefällt mir das mit dem autostart von wolf ganz gut:)

vielen dank für eure antworten.
 
Wenn Du das mit dem Autostart hast, berichte mal darüber.
Das ist nämlich auch nicht ganz so simpel :-).
Mein letzer Versuch damit war nicht so erfolgreich. Ich habe es aber auch nicht weiter vertieft.

Bzgl. Api Calls in C# kann ich Dir auch nicht viel weiterhelfen, da ich C# nicht kenne.

Das Prinzip ist aber ganz einfach. Du musst die Stelle in C# finden in der die Windows Nachrichten abgearbeitet werden und Dich dort reinhängen und eine eigene Methode aufrufen. Mehr nicht.

MfG

Arnd
 
Arnd schrieb:
Das Prinzip ist aber ganz einfach. Du musst die Stelle in C# finden in der die Windows Nachrichten abgearbeitet werden und Dich dort reinhängen und eine eigene Methode aufrufen. Mehr nicht.

Genau und das geht so:

Code:
protected override void WndProc (ref Message message)
{
        int WM_DEVICECHANGE = 0x0219; 
	if (message.Msg == WM_DEVICECHANGE)
	{
		.. machwas		
	}
	base.WndProc (ref message);
}

So hier sind noch ein Paar Links im PSDK:

ms-help://MS.PSDKXPSP2.1033/devio/base/wm_devicechange.htm
ms-help://MS.PSDKXPSP2.1033/devio/base/detecting_media_insertion_or_removal.htm

Da steht alles nötige drin.

André
 
Zurück
Oben