Frage

Wie kann ich programmgesteuert Zugriff auf ein USB-transfer-Kabel (wie Belkin Easy Transfer-Kabel) von Windows?

Ich bin vertraut mit libusb-win32, aber was ich sagen kann, über, die auch mit neueren Geräten und mit Windows Vista scheint zweifelhaft.

Ich weiß, dass Windows Easy Transfer dies tun kann.Wie kann ich code schreiben, der nicht die gleiche Sache wie Sie Windows-Easy-Transfer?

Wenn es keine Dosen Dokumentation, wie dies zu tun, ich bin bereit zu tun, einige Graben, aber ich weiß nicht, wo zu beginnen.Wie kann ich sehen, was Windows Easy Transfer ist zu tun, um herauszufinden, wie Sie es tut?Ich sehe, dass Windows selbst gibt transfer-Kabel eine eigene Kategorie in den Geräte-Manager, "Transfer-Kabel-Geräten." Wie kann ich tun, low-level-Kommunikation mit einem dieser diese Treiber?

War es hilfreich?

Lösung

Ich fand heraus, dass Microsoft jetzt bietet WinUSB für einfache Benutzer-Modus-Kommunikation mit USB-Geräten.A WinUSB device Treiber muss zuerst installiert werden, um die Gerät;dies ist etwas ähnlich zu einem libusb-win32-device-Treiber.) WinUSB funktioniert auf XP (SP2 und oben) und Vista.

Die Easy-Transfer-Kabel verwendet WinUSB für Ihr Gerät-Treiber, so konnte ich kommunizieren mit Sie, indem Sie die folgenden Beispiel-code in Microsoft WinUSB howto Dokument.

Andere Tipps

Sie müssen den niedrigen Niveau win32-API verwenden, um dies zu tun. Microsoft hat einige schöne Beispiele hier auf ein Human Interface Device zugreifen. Das Übertragungskabel ist nicht explizit ein HID wie eine Maus oder Tastatur, aber es passt sich an die HID-Spezifikation.

Um zum Beispiel den Namen des USB-Geräts bekommen Sie nennen würden

HidD_GetProductString(...)

http://msdn.microsoft.com/en-us/library /ms790920.aspx

Es gibt viel mehr gibt, sollten Sie unbedingt einen Blick auf die Probe c app nehmen, die für alle Versionen von Windows 2000 bis Vista funktioniert.

http://msdn.microsoft.com/en-us/library /dd163258.aspx

Good Luck!

Sie benötigen einen USB-Datenübertragungskabel haben (auch USB-Datenverbindungskabel genannt), das Unterstützung API oder SDK, verwenden Sie dann den folgenden Code:

void CU2uDlg::OnOK() 
{
BYTE        buf[65530];
LPU2URET    pU2uRet;
BOOL        bRet;
int         ret;
CString     msgstr;

ret = u2u_open();
if (ret == -1){
    AfxMessageBox("Open U2U device Success.");
}else{
    msgstr.Format("Open U2U device fail,return:%d", ret);
    AfxMessageBox(msgstr);
    return;
}

//send data
bRet = u2u_SendData(buf, 65530, ret);
if(!bRet)
{
    msgstr.Format("Send data error,return:%d", ret);
    AfxMessageBox(msgstr);
    return;
}

//receive data
while (1){
    bRet = u2u_RecvData(recvData, dataLen, ret);
    if( !bRet )
    {
        msgstr.Format("Receive data error,return:%d", ret);
        AfxMessageBox(msgstr);
        u2u_close();
        return;
    }else{
        break;
    }
}
u2u_close();


}

Siehe auch: Regelwerk1 , Referenz2

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top