2016-08-18 1 views
1

L'application est développée dans .Net CF 3.5 pour Windows CE 5.0.Windows CE 5.0 Dock de détection (connexion au PC) avec ActiveSync désactivé

En raison de problèmes de sécurité, ActiveSync a été désactivé sur l'appareil. Les valeurs de Registre suivantes ont été définies pour y parvenir:

HKEY_CURRENT_USER \ ControlPanel \ Comm \ AutoCnct: 0 HKEY_CURRENT_USER \ ControlPanel \ Comm \ CNCT: ""

Pour ajouter à cela, Softtick CardExport est utilisé pour exposer le stockage via USB Mass Storage. CardExport fonctionne toujours dans ce mode avec son propre pilote USB.

L'intention était d'utiliser CeRunAppAtEvent dans coredll et inscrivez-vous NOTIFICATION_EVENT_RS232_DETECTED

Cependant, cela semble ne fonctionner que lorsque CardExport n'est pas actif et l'appareil est en mode ActiveSync. Je crois que cela est dû au fait que le système d'exploitation ne reçoit pas l'événement RS232 car ses propres pilotes ActiveSync ne fonctionnent pas.

Actuellement AC Power est utilisé pour détecter que le dispositif est arrimé dans son berceau à l'aide RequestPowerNotifications dans coredll et GetSystemPowerStatusEx.

Cependant, il ne s'agit pas d'une solution viable à long terme car tous les berceaux du système d'extrémité ne sont pas alimentés en courant alternatif, ce qui signifie que nous ne pouvons pas détecter la station d'accueil.

Y a-t-il quelque chose qui peut avoir été manqué qui peut être consulté dans Windows CE 5.0 pour aider à résoudre ce problème?

+0

Mélangez-vous des termes? ActiveSync fait partie de Windows Mobile x.y et non de Windows CE. Windows CE utilise normalement une connexion RAS .... S'il s'agit d'un périphérique Windows Mobile, remplacez simplement replog.exe par quelque chose de votre choix et activez ActiveSync comme d'habitude. Ce replog.exe sera ensuite appelé pour l'événement NOTIFICATION_EVENT_RS232_DETECTED avec le nom de l'événement dans les arguments. Côté PC, vous pouvez utiliser GuestOnly et laisser wmdcbase.exe démarrer à la place de wmdc pour éviter que WMDC ne soit lancé sur l'interface graphique. – josef

+0

@josef Bien qu'il déclenche la boîte de dialogue "Windows Mobile Device Center", WindowsCE prend en charge ActiveSync, voir par exemple https://msdn.microsoft.com/en-us/library/aa513321.aspx –

+0

Je n'ai pas écrit sur RAPI support mais à propos de Windows CE ne vient pas avec une application "ActiveSync" comme le fait Windows Mobile. Donc, je suppose, il n'y aura pas de replog.exe sur Windows CE. – josef

Répondre

0

ActiveSync fonctionne définitivement avec n'importe quel périphérique Windows CE général (en supposant qu'il a ActiveSync dans l'image du système d'exploitation, bien sûr).

Malheureusement, CeRunAppAtEvent est un non-démarreur pour vous, comme vous l'avez trouvé. IIRC, aucun des événements ne se déclenchera si vous êtes en mode invité, mais juste pour les grimaces, j'essaierai aussi NOTIFICATION_EVENT_SYNC_END.

Puisqu'il s'agit de la connexion client USB, il est peu probable que vous receviez une notification de périphérique du sous-système du pilote de périphérique, mais c'est la direction que je suivrais. Voir si une notification (en utilisant RequestDeviceNotifications) apparaît. Il suffit de passer un NULL pour le devclass pour obtenir toutes les notifications, puis si vous en trouvez un, passez à l'utilisation de ce devclass en production.

+0

" Malheureusement, CeRunAppAtEvent est un non-démarreur pour vous, comme vous l'avez trouvé. IIRC, aucun des événements ne se déclenchera si vous êtes en mode Invité. "L'événement est déclenché sur le périphérique et GuestMode est un paramètre sur PC.Je cours mon PC avec GuestMode (plus de 5 appareils en changement) et les feux ActiveSync sur tous les appareils (WinCE5/6, WM6, WM65 ou WEH65 et WEC7) et sur mon PC Vous avez raison, mon appareil WEC7 a une application appelée ActiveSync, mais celle de WinCE 6 ne l'est pas, elle utilise RAS – josef

+0

Merci pour tous les commentaires qui ont confirmé mes conclusions.J'ai finalement dû compter sur le pilote USB dans CardExport qui a fourni des commentaires. – Kevlar81