2009-06-10 5 views

Répondre

1

Vous pouvez toujours terminer des applications à partir du gestionnaire de tâches si vous avez les privilèges. Vous pouvez simplement désactiver ou ne pas afficher les options du menu système qui ont l'icône de fermeture et l'option de menu de fermeture dans la fenêtre de l'application, mais cela n'empêchera pas l'utilisateur de le terminer du gestionnaire de tâches comme mentionné précédemment. Au lieu de cela, je voudrais juste montrer une icône de traitement occupé dans l'application afin que l'utilisateur comprenne ce qui se passe.

2

Avoir l'interface graphique de travail dans un thread séparé de sorte qu'il est (espérons-le) jamais "ne répond pas".

+0

Je suis d'accord. Si votre programme ne répond pas, vous faites quelque chose de mal. – Talljoe

5

Qu'est-ce que vous demandez est non seulement impossible (tout utilisateur peut mettre fin à priviledges suffisant un processus ... peu importe quel système d'exploitation), il est horrible expérience utilisateur de décision (UX). Pensez-y du point de vue de l'utilisateur. Vous êtes assis là à regarder une application. L'application ne semble pas faire quoi que ce soit et ne vous fournit aucun retour visuel sur le fait qu'elle fonctionne. Vous pensez que l'application a été suspendue et que vous la redémarrez. Vous pouvez faire n'importe quoi en affichant une barre de progression de défilement pour que le processus de longue durée mette à jour certaines informations sur le thread de l'interface utilisateur (pensez à un installeur en cours d'installation ... il vous indique constamment les fichiers plutôt que de vous faire attendre). Dans tous les cas, vous devez fournir des commentaires visuels à l'utilisateur afin qu'il sache que votre application est toujours en cours d'exécution.

2

S'il s'agit d'une question de programmation, votre programme ne devrait jamais être dans cet état puisque vous avez lié le fil de l'interface graphique d'une manière ou d'une autre. Et vous ne pouvez pas (et ne devriez pas) empêcher Windows ou l'utilisateur de fermer votre programme. Ils ont détecté que votre code est un déchet et ont le droit de le jeter hors de leur espace d'adresse.

Dans tous les cas, votre programme de trop occupé à faire d'autres choses - si elle ne peut pas répondre à l'utilisateur, il ne peut probablement pas perdre du temps à se protéger non plus. À un certain point, les développeurs ont besoin de passer à travers leur crâne épais que l'ordinateur appartient à l'utilisateur , pas eux.

Bien sûr, si vous parlez de la façon de configurer Windows pour empêcher cela (comme sur votre PC), cette question appartient à serverfault.

1

Ne pas. Peu importe l'importance de votre application, la capacité de vos utilisateurs à contrôler leurs propres systèmes est plus importante.

0

La seule chose que vous pouvez faire est de désactiver le bouton de fermeture. Les utilisateurs peuvent toujours le tuer à partir du gestionnaire de tâches ou d'un outil similaire, pour contourner cela. Vous pourriez faire en sorte de le tuer plus dur en le lançant comme un processus privilégié, mais cela vient avec beaucoup plus de problèmes de son côté.

Questions connexes