【发布时间】:2016-12-25 04:57:52
【问题描述】:
该应用程序是在 .Net CF 3.5 中为 Windows CE 5.0 开发的。
出于安全考虑,设备上的 ActiveSync 已被禁用。 已设置以下注册表值来实现此目的:
HKEY_CURRENT_USER\ControlPanel\Comm\AutoCnct:0 HKEY_CURRENT_USER\ControlPanel\Comm\Cnct : ""
此外,Softtick CardExport 被用于通过 USB 大容量存储公开存储。 CardExport 始终使用它自己的 USB 驱动程序在此模式下运行。
目的是在 coredll 中使用 CeRunAppAtEvent 并注册 NOTIFICATION_EVENT_RS232_DETECTED
但是,这似乎仅在 CardExport 未激活且设备处于 ActiveSync 模式时才有效。 我相信这是由于操作系统没有收到 RS232 事件,因为它自己的 ActiveSync 驱动程序没有运行。
目前正在使用交流电源来检测设备是否停靠在它的底座中,使用 coredll 中的 RequestPowerNotifications 和 GetSystemPowerStatusEx。
但这不是一个可行的长期解决方案,因为并非终端系统中的所有通讯座都具有交流电源,这意味着我们无法检测到坞站。
有没有可以在 Windows CE 5.0 中访问以帮助解决此问题的遗漏内容?
【问题讨论】:
-
你在混淆术语吗? ActiveSync 是 Windows Mobile x.y 的一部分,而不是 Windows CE 的一部分。 Windows CE 通常使用 RAS 连接.... 如果这是 Windows Mobile 设备,则只需将 replog.exe 替换为您自己的东西并照常激活 ActiveSync。然后将针对事件 NOTIFICATION_EVENT_RS232_DETECTED 调用此 replog.exe,并在 args 中使用事件名称。在 PC 端,您可以使用 GuestOnly 并让 wmdcbase.exe 启动而不是 wmdc,以避免将 WMDC 启动到 GUI。
-
@josef 虽然它触发了“Windows Mobile Device Center”对话框,但WindowsCE确实支持ActiveSync,例如msdn.microsoft.com/en-us/library/aa513321.aspx
-
我没有写关于 RAPI 支持的文章,但是关于 Windows CE 没有像 Windows Mobile 那样带有“ActiveSync”应用程序。所以,我认为,Windows CE 上不会有 replog.exe。
-
@josef 也许这会让您信服:msdn.microsoft.com/en-us/library/ms879772.aspx“Microsoft ActiveSync 支持在基于 Windows 的台式计算机和基于 Microsoft Windows CE 的设备之间同步数据。”我使用过的所有 WindowsCE 设备都安装并启用了 ActiveSync。还是我看错了?
-
您能否添加设备上运行的确切 Windows 操作系统?或者,也许是设备的型号代码?
标签: .net .net-3.5 compact-framework windows-ce