Plusieurs exemples de code traitent de la détection USB via le message Windows WM_DEVICECHANGE, mais sont peu ou pas génériques.
Je vous propose donc mon objet DeviceNotify, totalement générique et prêt à l'emploi pour vos projets.
Le projet TestUSB, comme son nom l'indique, montre l'utilisation de cet objet.
Conclusion :
Il s'agit d'une source créée sur .NET 1.1
13 mars 2006 à 18:55
private extern static bool GetVolumeInformation(
string RootPathName,
StringBuilder VolumeNameBuffer,
int VolumeNameSize,
out uint VolumeSerialNumber,
out uint MaximumComponentLength,
out uint FileSystemFlags,
StringBuilder FileSystemNameBuffer,
int nFileSystemNameSize);
comment le CLR fait l'association entre les types .net et les types natives de Win32?
J'ai entendu dire que la prochaine API de windows, WinFX, qui va remplacer Win32 est complètement orientée objet et que .net va être la plateforme idéale pour en tier plein profit, c'est rassurant non :D
13 mars 2006 à 16:54
et puis même si c'était mon code bah... tant mieux, ca veut dire qu'il a pu etre utile a quelqu'un... c'est le but non ? :)
et puis personne n'est tout blanc, ca m'est arrivé aussi d'utiliser des codes et d'oublier de citer :)
13 mars 2006 à 15:10
13 mars 2006 à 14:00
j'ai créé DeviceNotify le 29 mars 2005 et ne connaîs pas TON CODE GetVolumeInformation. Désolé.
13 mars 2006 à 13:32
et pour récuperer le numéro de serie du device :
public static uint GetSerialNumber(string drive)
{
StringBuilder volname = new StringBuilder(256);
StringBuilder fsname = new StringBuilder(256);
uint sernum, maxlen, flags;
if (!GetVolumeInformation(drive, volname, volname.Capacity, out sernum, out maxlen, out flags, fsname, fsname.Capacity))
return (0);
return (sernum);
}
[DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private extern static bool GetVolumeInformation(
string RootPathName,
StringBuilder VolumeNameBuffer,
int VolumeNameSize,
out uint VolumeSerialNumber,
out uint MaximumComponentLength,
out uint FileSystemFlags,
StringBuilder FileSystemNameBuffer,
int nFileSystemNameSize);
(tiré de http://pinvoke.com)
merci à eux
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.