2009-02-13 7 views

Répondre

1

Je ne pense pas. Au lieu de cela:

  • Vous pouvez avoir un service qui fait descendre un DeviceIoControl à l'appareil.
  • L'appareil conserve alors (ne termine pas) l'IOCTL
  • associée Lorsque l'appareil veut lancer l'application, il complète le IOCTL
  • Lorsque les avis de service que son DeviceIoControl a été terminé, il commence l'autre application

Un service peut lancer une application mais je ne sais pas s'il peut le lancer sur le bureau de l'utilisateur. Si vous voulez que l'application lancée interagisse avec l'utilisateur final connecté, alors, au lieu d'avoir un service comme décrit ci-dessus, il vaudrait mieux mettre la fonctionnalité DeviceIoControl dans une application (visible ou invisible), qui démarre automatiquement Dans le poste de travail de l'utilisateur lorsque l'utilisateur se connecte.

Si vous faites cela, méfiez-vous du fait qu'il n'y a qu'un seul utilisateur connecté (il peut y en avoir beaucoup, sur un serveur Citrix/terminal).

+0

Pour la plupart, je suis d'accord avec cela, sauf pour le dernier point. Il ne fonctionnera pas sur Vista s'il doit interagir avec le bureau de l'utilisateur et c'est une mauvaise pratique en général. Au lieu de cela, avoir un programme qui s'exécute lorsque l'utilisateur se connecte qui interagit avec le service via IPC. – casperOne

+0

Merci, je vais modifier ma réponse – ChrisW

+0

Il peut également y avoir plus d'un utilisateur via la commutation rapide d'utilisateur. – RBerteig

Questions connexes