当前位置: 代码迷 >> Windows Mobile >> 如何样判断有手机通过USB连接到电脑
  详细解决方案

如何样判断有手机通过USB连接到电脑

热度:59   发布时间:2016-04-25 07:45:43.0
怎么样判断有手机通过USB连接到电脑?
怎么样判断有手机通过USB连接到电脑? 怎么样捕获这一事件的? 谢谢。

------解决方案--------------------
给连接注册一个消息

查下这些东西
SHChangeNotifyEntry
SHGetSpecialFolderLocation CSIDL_CONNECTIONS
SHChangeNotifyRegister SHCNE_CREATE | SHCNE_DELETE
------解决方案--------------------
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services\AutoStartOnConnect 
里面写你想启动的程序路径,当连接时,你指定的程序会自动启动。 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services\AutoStartOnDisconnect 
下指定的程序就是断开连接时运行的程序了~~~
------解决方案--------------------
PC端可以用CeRapiInitEx来判断是否已经连接。可以开启一个线程去监听。
C/C++ code
HRESULT TryRapiConnect(DWORD dwTimeOut){    HRESULT            hr = E_FAIL;    RAPIINIT           riCopy;    bool          fInitialized = false;    ZeroMemory(&riCopy, sizeof(riCopy));    riCopy.cbSize = sizeof(riCopy);    hr = CeRapiInitEx(&riCopy);    if (SUCCEEDED(hr))    {        DWORD dwRapiInit = 0;        fInitialized = true;        dwRapiInit = WaitForSingleObject(                    riCopy.heRapiInit,                    dwTimeOut);        if (WAIT_OBJECT_0 == dwRapiInit)        {            //  heRapiInit signaled:            // set return error code to return value of RAPI Init function            hr = riCopy.hrRapiInit;          }        else if (WAIT_TIMEOUT == dwRapiInit)        {            // timed out: device is probably not connected            // or not responding            hr = HRESULT_FROM_WIN32(ERROR_TIMEOUT);        }        else        {            // WaitForSingleObject failed            hr = HRESULT_FROM_WIN32(GetLastError());        }    }   if (fInitialized && FAILED(hr))   {        CeRapiUninit();   }    return hr;}
  相关解决方案