2009-05-21 5 views
2

Quelle est la meilleure et la plus propre façon de fermer une application console sur Windows Mobile?Fermeture d'une application Windows Mobile Console

L'application par défaut est invisible et vous ne pouvez pas le voir dans les programmes en cours d'exécution, ce qui est idéal pour l'exécution d'un processus d'arrière-plan, mais parfois l'utilisateur pourrait avoir besoin de fermer ..

Répondre

0

J'ai décidé de lire un booléen (keep alive) dans le fichier de configuration et d'avoir une autre application à false quand je veux quitter.

Son pas si sensible, mais au moins je peux sortir proprement ..

0

C'est une grande question. J'ai déjà passé un temps long en essayant de comprendre cela. Bien sûr, nous supposons que vous ne pouvez pas (facilement) revenir de Main. La bonne réponse sur le bureau est System.Environment.Exit; Mais cette méthode n'est commodément pas supportée par CF. Une seconde option apparente est Application.Exit. C'est sur CF, mais s'applique uniquement à WinForms, et n'est en fait pas garanti pour quitter votre application.

Donc, lancez une exception non gérée. ;)

EDIT: Pour le supprimer par programmation d'une autre application, vous pouvez consulter Process.GetProcessById et Process.Kill. Les deux sont disponibles sur CF. Vous devrez en quelque sorte laisser l'application "tueur" comprendre l'identité de la "victime". Des méthodes plus pratiques comme Process.GetProcessesByName ne sont pas disponibles sur CF. Cette technique n'est cependant pas très élégante et il peut y avoir des problèmes de permissions.

Vous pourriez également envisager une sorte de IPC (communication inter-processus), peut-être un aperçu dans this previous Windows Mobile answer.

+0

qui ne sonne pas comme une solution propre hehe. Je pensais à une deuxième application qui termine le premier. est quelque chose comme ça possible avec les applications de la console? puisqu'ils semblent être invisibles – Marcom

0

Comment un utilisateur pourrait-il le fermer si l'application n'est pas visible dans l'interface utilisateur?

+1

Tuer le processus !? – Galilyou

+0

quelqu'un a proposé que le processus principal vérifie périodiquement un fichier pour voir si l'indicateur à quitter est défini et se termine s'il le trouve. Mais je cherche une meilleure façon de faire les choses. – Marcom

1

Quitter Main. Sérieusement. Si vous avez besoin de quelqu'un pour pouvoir quitter est manuellement, il doit y avoir un mécanisme comme une icône de la coquille et un menu ou un programme dans le dossier Programmes de quelque chose. Sinon, comment l'utilisateur pourrait-il même savoir qu'il fonctionne? Chacun de ces indices visuels définirait alors un événement système nommé, et dans votre application Console, vous auriez quelque chose à écouter pour le même événement (probablement un travailleur). Quand il est défini, vous prenez les mesures nécessaires pour arrêter.