Accessoirement, une application peut-elle être notifiée explicitement lors
de l'insertion ou du retrait d'un périphérique USB de ce type ?
Merci de vos pistes,
--
johann.d
cf sources USBView, MS DDK (SetupDi* & Cie)
> Accessoirement, une application peut-elle être notifiée explicitement lors
> de l'insertion ou du retrait d'un périphérique USB de ce type ?
RegisterDeviceNotification()
Bonjour et merci de cette première réponse qui m'a déjà bien avancé. Je
parviens à récupérer la liste des périphériques puis avec
SetupDiGetDeviceRegistryProperty je peux identifier ceux qui m'intéressent.
Il reste pourtant une information que je n'ai pas trouvé, c'est le numéro du
port série virtuel. J'ai bien un SPDRP_FRIENDLYNAME qui me renvoie une
chaîne du type "Port série USB (COM9)", comment puis-je remonter directement
au "COM9" sans avoir à disséquer le friendly name ?
Merci,
--
johann.d
Avec SetupDiOpenDevRegKey() & "PortName" =>
// while( SetupDiEnumDeviceInfo ... etc
//
HKEY hKey = SetupDiOpenDevRegKey (hDeviceInfo, &DeviceInfoData,
DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_READ);
if (hKey)
{
char sPortName[MAX_PATH];
DWORD dwType = REG_SZ;
DWORD dwSize = sizeof(sPortName);
long nRet = RegQueryValueEx(hKey, "PortName", 0, &dwType,
(LPBYTE)sPortName, &dwSize);
...
> Avec SetupDiOpenDevRegKey() & "PortName" =>
>
> // while( SetupDiEnumDeviceInfo ... etc
> //
> HKEY hKey = SetupDiOpenDevRegKey (hDeviceInfo, &DeviceInfoData,
> DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_READ);
> if (hKey)
> {
> char sPortName[MAX_PATH];
> DWORD dwType = REG_SZ;
> DWORD dwSize = sizeof(sPortName);
> long nRet = RegQueryValueEx(hKey, "PortName", 0, &dwType,
> (LPBYTE)sPortName, &dwSize);
> ...
Merci, c'est parfait !
--
johann.d