Retour sur CreateFile et Borland C++ ( biblio win)
J'ai enfin réussi 'par chance' à ouvrir un handle.
Fallait trouver la conversion, sinon rien ne va.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| void __fastcall TForm1::ResumeUSBClick(TObject *Sender)
{
HANDLE HUSB;
char Guid[256];
if(DetectDevice(0xC251,0x1A01,Guid)) //IdDevice, IdVendor
{
// retourne Guid: "\\\\?\\usb#vid_c251&pid_1a01#0001a0000000#{a5dcbf10-6530-11d2-901f-00c04fb951ed}\0}\0ÌqÕ\0ÌqÕ\0`\0\0\0\x10\0\0\0\x13\0\0\0\0\0\0\0\x01\0\0\0 \0\0\0\x13\0\0\0\0\0\0\0\x02\0\0\00\0\0\0\x13\0\0\0\0\0\0\0\x01\0\0\0@\0\0\0\x13\0\0\0\0\0\0\0\x03\0\0\0P\0\0\0\x13\0\0\0\0\0\0\0\x01\0\0\0`\0\0\0\x17\0\0\0\x01\0\0\0\x04\0\0\0C251\0\0\0\0\x16\0\0\0\0\0\0\0\x04\0\0\01A01\0\0\0\0\x16\0\0\0\0\0\0\0\x04\0\0\0C251\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
Memo->Lines->Add("Device trouvé");
//Convertion Guid: "\\.xsb#vid_c251&pid_1a01#0001a0000000#{a5dcbf10-6530-11d2-901f-00c04fb951ed}\0}\0}\0ÌqÕ\0ÌqÕ\0`\0\0\0\x10\0\0\0\x13\0\0\0\0\0\0\0\x01\0\0\0 \0\0\0\x13\0\0\0\0\0\0\0\x02\0\0\00\0\0\0\x13\0\0\0\0\0\0\0\x01\0\0\0@\0\0\0\x13\0\0\0\0\0\0\0\x03\0\0\0P\0\0\0\x13\0\0\0\0\0\0\0\x01\0\0\0`\0\0\0\x17\0\0\0\x01\0\0\0\x04\0\0\0C251\0\0\0\0\x16\0\0\0\0\0\0\0\x04\0\0\01A01\0\0\0\0\x16\0\0\0\0\0\0\0\x04\0\0\0C251\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
strcpy(Guid,"\\.\usb#vid_c251&pid_1a01#0001a0000000#{a5dcbf10-6530-11d2-901f-00c04fb951ed}");
HUSB=CreateFile(Guid , GENERIC_READ |GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, NULL);
if(HUSB == INVALID_HANDLE_VALUE) Memo->Lines->Add("Erreur Creation Handle");
else
{
Memo->Lines->Add("Creation Handle OK");
CloseHandle( HUSB );
}
}
else Memo->Lines->Add("Device non trouvé");
} |
Le Guid de base est :
for(int R=0;R<256;R++) Guid[R]=detail->DevicePath[R];
La convertion adéquate se fait par strcpy....problème unicode...
PS: ShaiLeTrollJe prends bien note de tes remarques, mais j'essaie de faire fonctionner le code en premier.
Effectivement, c'est du Borland C++ 5.0 builder pour etre précis.
Il me reste ce fameux DeviceIoControl à faire fonctionner.
Merci.
Partager