6

Windows からUSB 転送ケーブル (Belkin のEasy Transfer Cableなど) にプログラムでアクセスするにはどうすればよいですか?

私はlibusb-win32に精通していますが、私が知る限り、それを新しいデバイスや Windows Vista で使用するのは難しいようです。

Windows Easy Transferがこれを実行できることを知っています。Windows 転送ツールと同じことを行うコードを作成するにはどうすればよいですか?

これを行う方法について定型化されたドキュメントがない場合は、喜んで掘り下げますが、どこから始めればよいかわかりません。Windows 転送ツールの動作を監視して、その動作を確認するにはどうすればよいですか? Windows では、デバイス マネージャーで「転送ケーブル デバイス」という独自のカテゴリの転送ケーブルも提供されているようです。これらのドライバーの 1 つと低レベルの通信を行うにはどうすればよいですか?

4

3 に答える 3

5

Microsoft が現在、USB デバイスとの単純なユーザー モード通信用にWinUSBを提供していることを知りました。(最初に WinUSB デバイス ドライバーをデバイス用にインストールする必要があります。これは libusb-win32 デバイス ドライバーに多少似ています。) WinUSB は XP (SP2 以降) および Vista で動作します。

Easy Transfer Cable はデバイス ドライバーに WinUSB を使用しているため、Microsoft のWinUSB ハウツードキュメントのサンプル コードに従って通信することができました。

于 2009-03-10T20:51:14.923 に答える
2

これを行うには、低レベルの win32 API を使用する必要があります。Microsoft には、ヒューマン インターフェイス デバイスへのアクセスに関する優れた例がいくつかあります。転送ケーブルは、マウスやキーボードのように明示的に HID ではありませんが、HID 仕様に準拠しています。

たとえば、USB デバイスの名前を取得するには、次のように呼び出します。

HidD_GetProductString(...)

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

他にもたくさんあります。2000 から Vista までのすべてのバージョンの Windows で動作するサンプル c アプリをぜひご覧ください。

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

幸運を!

于 2009-03-04T00:35:17.330 に答える
0

API または SDK をサポートする USB データ転送ケーブル (USB データ リンク ケーブルとも呼ばれます) が必要です。次に、次のコードを使用します。

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();


}

参照: 参照 1参照 2

于 2013-11-11T07:23:51.737 に答える