怪异的问题:Wince6下ActiveSync无法自动连接

时间:2022-06-01 21:43:09

软硬件环境:Wince6 + Pxa300

 

我的wince6的BSP是从Windows mobile项目上移植过来的,mobile项目已经成熟量产,所以板子硬件绝对没有问题。

 

现在碰到的问题是:插上usb之后在PC上能够发现设备,驱动也能够安装成功,但是ActiveSync不能够自动连接,注册表中已经设置了自动连接了,如下:

    [HKEY_CURRENT_USER/ControlPanel/Comm]
    "Cnct"="`USB"
    "AutoCnct"=dword:00000001

 

在控制面板中新建一个网络连接,双击之后弹出连接对话框,之后设备上提示已经连接成功,PC机端的ActiveSync的绿色图标也开始转动起来了,但是却转个不停,大约3分钟后,PC上提示ActiveSync连接不成功,绿色图标变灰。

 

郁闷ing...

 

在网上搜了一圈,发现也有很多人遇到这个问题了,但是大多是问,却没有人提出解决方法,看到一个国外论坛上有人说在设备端运行repllog.exe可以自动连接成功,于是插上usb之后我也在设备的windows目录下面双击repllog.exe运行,果然,设备端自动弹出连接成功的对话框,PC机上ActiveSync的绿色图标也开始转起来了,然后一个清脆的声音提示后,ActiveSync连接成功了,哈哈。。。

 

但是,我总不能这样手动去运行repllog.exe来达到自动连接ActiveSync的目的吧!但是转念一想,既然这样能够连接成功,说明设备的usb驱动是没有任何问题的,usb连接的配置也是没有问题的,插上usb不能自动连接ActiveSync应该是我是设备上CE系统的问题。由于我CE6的项目的注册表也是全部来自于Mobile项目,所以开始怀疑注册表有问题。

 

最后,经过对比CE6项目的注册表,Mobile项目的注册表以及CE5项目的注册表,发现拿掉我CE6中注册表开始的一部分代码后,usb竟然可以自动连接成功了,这部分代码是mobile项目上的,ce5的项目上没有,所以才试着拿掉的,结果竟然OK。

 

拿掉的注册表部分代码如下:

    IF IMGPERSISTENTSTORAGE
    [HKEY_LOCAL_MACHINE/System/Platform]
        "DataPath" = "//"
        "PSAtRoot"=dword:1

    [HKEY_LOCAL_MACHINE/System/OOM]
        "Reserved"=dword:300000

    [HKEY_LOCAL_MACHINE/Software/Microsoft/Shell/LowMem]
        "ProgramMem"=dword:5A
        "ShellExecMem"=dword:7d000
        "StorageLimit"=dword:493E00

    [HKEY_LOCAL_MACHINE/SYSTEM/GWE/Notify]
        "volume"="//mxip_notify.vol"

    ; @CESYSGEN IF FILESYS_FSDBASE
    [HKEY_CURRENT_USER/Software/Microsoft/Windows]
        "DbPath" = "//mxip_initdb.vol"
        "LangDbPath" = "//mxip_lang.vol"
    ; @CESYSGEN ENDIF FILESYS_FSDBASE

    [HKEY_CLASSES_ROOT/.mid]
        @="midifile"
    [HKEY_CLASSES_ROOT/midifile/DefaultIcon]
        @="sndplay.exe,-100"
    [HKEY_CLASSES_ROOT/midifile/Shell/Open/Command]
        @="sndplay.exe %1"

    ENDIF ; IMGPERSISTENTSTORAGE

 

 

问题虽然解决了,但是却不知道为什么!再次郁闷ing...

 

看上去注册表这部分代码跟usb没有任何关系啊,唉,不管了,解决了问题最重要,如果哪位达人知道为什么的话,敬请留下脚印,指导一下。谢谢。

 

 

 

Hzh

2010.02.21 8:23 PM