注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

银河军团大本营

光荣的军团,永远的丰碑 <坚持原创>

 
 
 

日志

 
 

Motorola Symbol MC3090 Windows Mobile 6 开发问题  

2012-08-16 13:30:19|  分类: 应用点滴 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  关联文章:Motorola Symbol MC3090 升级到 MC3190

  以前在MC3090+WinCE5的系统下用VS2005 C#开发了一个条码应用,前些天有客户买了个Windows Mobile 6系统的MC3090,结果运行后出现了一些问题:

  1、扫描枪屏幕分辨率是320*320的,小程序也是为这个分辨率开发的,结果在Windows Mobile系统下只能显示一部分!经过多次试验,终于发现原因:VS中新建C#窗体时,窗体的AutoScaleMode属性默认为“Dpi”,这样设置在Windows CE5和CE6下运行没有问题,但到Windows Mobile下就不行,将AutoScaleMode改为“None”就正常了。
  2、因为Windows Mobile 6的内核是Windows CE 5.1的,所以刚开始在Windows Mobile系统中装的小程序是在Windows CE 5环境下编译出来的,当时以为正常了,也就没有仔细测试,结果用户使用时发现某些窗口里不能连续扫描条码,扫描一个条码后,必须(按回车键)保存之后,才能继续扫描下一个条码。经过漫长的测试之后确定了问题所在,即如果在条码的扫描事件Symbol.Barcode.Reader.ReadNotify中用类似以下代码继续读取下一个条码就会有问题:
public class Scanning
{
private static Symbol.Barcode.Reader _MyReader = null;
private static Symbol.Barcode.ReaderData _MyReaderData = null;
//...

/// <summary>
/// Read next barcode when the event has processed
/// </summary>
public static void ReadNext()
{
if ((Scanning._MyReader != null) &&
(Scanning._MyReaderData != null))
{
if (!Scanning._MyReaderData.IsPending)
Scanning._MyReader.Actions.Read(Scanning._MyReaderData);
}
}
//...
}
  解决方法:换成为Windows CE 6编译的版本就好了(相关链接Motorola Symbol MC3090 升级到 MC3190),估计是因为CE5版本的程序用的是SMDK中的Symbol.Barcode.Design.dll,这是在CE5开发环境下使用Barcode控件时所带的DLL,而CE6版本使用的是Motorola EMDK所带的Symbol.dll和Symbol.Barcode.dll。遗憾的是,手头没有CE5系统的扫描枪,没法进一步验证。
  3、之前在Windows CE5及CE6下,用cabwiz.exe做的安装包可以将程序的真正安装包和其他一些文件如.Net安装包及开机启动需要的一些cpy/reg等文件,再加上定制的setup.dll一起打包,在安装完后还可以自动安装里面包含的cab包进行真正的安装,但这个功能到windows mobile 6下就不行了,试了好多方法都没成功,连附带setup.dll的主程序包安装到最后都说没成功,但所有文件已经安装到目的地了。

  后来查了些资料,说是安装Windows Mobile 6 SDK后,其中有一个Multi CAB的例子,可以成功安装cab包中的多个cab包,不过我因为没装这个SDK,所以也就没试。

  4、 MC3090安装的Windows Mobile 6中文版可能会出现字体过大的问题,表现为很多字(包括中文和英文)只能显示上面一半,其他部分看着就像被挡住了一样。解决这个问题也很简单:安装一个小一些且好看一些的字体,比如微软雅黑,大概有4M多,然后再调整一下字体设置,如下所示(可以将以下文本存为.reg文件,在Windows Mobile中双击并导入到系统):

REGEDIT4

[HKEY_LOCAL_MACHINE\System\GDI\V1\FontAlias]
"Tahoma:-11"="Tahoma:10"
"Tahoma:-1"="Tahoma:10"
"Tahoma:-10"="Tahoma:10"
"Tahoma:-9"="Tahoma:9"
"Arial:-14"="Tahoma:-11"
"Tahoma:-16"="Tahoma:-13"
"Tahoma:-8"="Tahoma:-9"
"Tahoma:-12"="Tahoma:12"
"Tahoma:16"="Tahoma:-13"
"MS Sans Serif:-13"="Tahoma:-9"

  当然,也可以下载一个Windows CE/Mobile下的注册表工具TRE.exe,在TRE里找到以上路径,直接修改或建立以上键值。

  安装完字体及修改好字体大小后需要启动系统,重启后字体显示就正常了。注意MC3000系列的热启动(重启)按键是“按住7,9键不放,同时按右下角的红键”,比较不爽的是Windows中没有直接热启动的命令,晕。

  评论这张
 
阅读(10743)| 评论(26)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018