您的位置:首页 > 其它

Window Mobile/CE的PC端安装测试

2010-03-08 14:22 399 查看
PDA通过数据线同步电脑后,将netcf和SQLCE的CAB文件手动的复制到PDA里,还得手动的建立目录,创建快捷方式(麻烦)。现在不止实施人员这么做,连客户也要这么做(PDA备电没电了,就还原了),想了想有没有简便方式,好像在见过,在网上搜索一番,然后开始动手,不过都得感谢下面“2位”:

1.OpenNETCF.Desktop.Communication

2.Microsoft ActiveSync 4.5

大致原理:利用Rapi对PDA里的文件,目录创建,复制的操作,其次就是用 Microsoft ActiveSync 安装目录里CEAPPMGR.EXE在PC给PDA安装CAB。

首先,在网上下载的OpenNETCF.Desktop.Communication的源码,换个8.0的解决方案,然后编译成DLL。

然后,创建一个Windows程序项目,引入刚编译的DLL,然后在CS文件添加:

using OpenNETCF.Desktop.Communication;
using System.Collections;
using System.IO;
using System.Threading;

接下来就是实例化RAPI类(主角),然后就是声明点全局变量来使用:

#region 升级
private void btnUpdate_Click(object sender, EventArgs e)
{
if (MesBox.Show("是否开始升级?\r\n请确保PDA已经与PC同步!") == DialogResult.No) return;
ConnectPDA();
if (!UpdateData())
{
MesBox.Show("升级失败!请查看日志文件!", 0);
return;
}
LogAdd("升级完成", "");
SaveLog();
MesBox.Show("升级成功!", 0);
}
private bool UpdateData()
{
List<string> tmp = FindFile();
foreach (string s in tmp)
{
string newPath = _newPath + s.Substring(s.LastIndexOf("\\") + 1);
bool b = CopyFileToPDA(s, newPath);
if (!b)
{
SaveLog();
return false;
}
}
return true;
}
/// <summary>
/// 找Data目录所有文件
/// </summary>
/// <returns></returns>
private List<string> FindFile()
{
List<string> tmp = new List<string>();
string path = _loadPath;
DirectoryInfo dinf = new DirectoryInfo(path + "\\" + _exePathName);
FileSystemInfo[] fs = dinf.GetFileSystemInfos();
for (int i = 0; i <= fs.Length - 1; i++)
{
tmp.Add(fs[i].FullName);
}
return tmp;
}
#endregion

关于卸载的话,因为一时之间还没想到好的办法来存储目录信息,所以就还没做的。。。(懒啊)

最后就是测试了,通过公司的硬件资源测试了下,预期功能都正常,就是还有一些小的细节可能需要完善了。现在贴出来分享下,希望高手进来指点一下了,呵呵!

参加测试的有:PT982,MC3000,多普达S1,PA600
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: