实现 pc与Windows mobile通讯方法之一
来源:互联网 发布:js的indexof 编辑:程序博客网 时间:2024/04/29 20:49
实现windows mobile 和pc机通讯,大家熟知的方法就是 CeRapiInvoke()方式;
在PC机端使用 CeRapiInvoke()调用windows mobile 端的一个dll;
比如说,windows mobile 方的dll 名字是 Test.dll
pc机端 调用方式:
PBYTEpByOut;
DWORDdwOut;
IRAPIStream*pIRAPIStream = NULL;
unsigned longdwTem = sizeof(SHFILEINFO);
PC2WM_GETINFO stGetInfo; // 自己定义的结构,windows mobile/pc机端需要一致(本人实验传递不同的数据然后根据结构解析,作出不同功能调用)
stGetInfo.iPackageType = GET_RECEIVE_INFO; // 当前操作的行为
stGetInfo.iSmsBoxType = m_iCurrentBox; // 当前操作的函数
BYTE strOrder[PC2WM_GETINFO]
memset( strOrder, 0, sizeof(strOrder));
memcpy( strOrder, &stGetSms, sizeof(PC2WM_GETINFO));
// 注意这里 Test.dll在Windows mobile端的路径
HRESULT hr = CeRapiInvoke( L"//Test.dll", L"CeRemoteControl", sizeof(strOrder), strOrder, &dwOut, &pByOut, &pIRAPIStream, 0);
BYTE strStream[10];
int iSmsCount= 0;
if(S_OK == hr)
{
pIRAPIStream->Read( &strStream, sizeof(int), &dwTem);
memcpy( &iSmsCount, &strStream, sizeof(int));
}
windows mobile 端收到这个流信息以后,根据不同的要求返回 不通的信息 ;
然后将自己的数据写入流中,
pStream->Write( &stDetails, sizeof(DETAILS), &ulWritten);
PC机端就可以收到传递过来的数据了,
这方面的资料网上非常多,大家可以在 google ,baidu 输入 CeRapiInvoke()搜索,
但是当代码写好以后,讲手机端的dll拷贝到对应路径,启动手机端调用程序,你会发现你的调用代码没有任何反应?
我遇到过这样的问题,研究了好久,终于找到了解决方法;
Windows mobile的注册表中,禁止运行他认为不安全的程序,所以我的调用没有任何反应,那么这个问题怎么解决呢?
网上介绍了很多种方法,但是我基本上都没有实验成功,
后来我找到了一种可以修改注册表的安全属性,做到 CeRapiInvoke()函数正常调用。
做法是,首先做一个 可执行的 手机端可执行程序,Modify.exe先修改手机的注册表信息,
然后我们的CeRapiInvoke()就可以正常调用了
修改注册表信息代码如下:
HKEY hSubKey;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Security//Policies//Policies", 0, KEY_SET_VALUE, &hSubKey);
DWORD dwType = REG_DWORD;
DWORD dwData = 1;
int nRet = GetLastError();
HRESULT lRetValue = RegSetValueEx(hSubKey,L"00001001" , NULL, dwType,(LPBYTE)(&dwData), sizeof(DWORD));
nRet = GetLastError();
nRet = RegCloseKey(hSubKey);
- 实现 pc与Windows mobile通讯方法之一
- windows mobile 6.0 基于WebService方式与PC Server通讯的demo
- Windows Mobile 模拟器与PC同步问题
- Windows Mobile 模拟器与PC同步问题
- 用HTTP实现手机与PC通讯
- java 实现单片机与PC串口通讯
- pc 连接 windows mobile
- 三菱FX系列PLC与PC通讯的实现之专有协议(计算机联接)的程序设计之一
- 基于windows Mobile 2003的pocket PC应用软件开发方法
- PC-1500与PC通讯
- Windows Phone 7 下 Socket(TCP) 与 PC 通讯
- windows mobile通过wap通讯
- PC机并口与CAN通讯的实现
- 嵌入式系统与PC串口通讯的实现
- 如何用IPHONE实现PC与手机的视频通讯
- Android手机终端与PC实现socket通讯 Socket编程
- 运用C#编程通过OPC方式实现PC机与西门子PLC通讯-同步通讯篇
- 运用C#编程通过OPC方式实现PC机与西门子PLC通讯-同步通讯篇
- C#代码与javaScript函数的相互调用
- lucene-索引HTML文档
- 导出word
- 使用Java编写Telnet客户端
- 生活小常识
- 实现 pc与Windows mobile通讯方法之一
- VC窗口启动隐藏时闪烁问题解决方法(原创)
- 导出到excel
- 让CPU利用率曲线听你指挥
- An internal error occurred during: "Items filtering". Class file name must end with .class
- lucene-使用Digester分析XML索引
- 导出到Word自动分页
- 如何将Qt Designer 产生的*.UI文件转换成QT可以使用的*.H和*.CPP
- lucene-用SAX API进行XML解析并索引