2010-08-11 4 views
0

Dans un BHO exécuté dans Internet Explorer sous Windows 7 avec le mode protégé activé, j'essaie d'écrire dans le journal des événements Windows. J'écris à une source qui existe déjà, et c'est dans le journal des applications, donc je ne vois pas pourquoi cela serait bloqué. Cependant, mon appel à System.Diagnostics.EventLog.WriteEntry("MySource", "Some message") échoue avec une exception InvalidOperationException, avec le message "Impossible d'ouvrir le journal pour la source 'XXX'. Vous n'avez peut-être pas accès en écriture.". La trace de la pile indique qu'il s'agit de EventLog.OpenForWrite(String currentMachineName).Écriture dans Windows Journal des événements de l'extension IE en mode protégé - Echec avec accès refusé

La désactivation du mode protégé permet de le faire fonctionner correctement.

Une raison pour laquelle cela ne serait pas autorisé en mode protégé, et de toute façon je peux enregistrer mon BHO comme étant autorisé à écrire dans le journal des événements, ou le faire fonctionner autrement?

Selon this post l'appel à OpenForWrite() aboutit à un appel à UnsafeNativeMethods.RegisterEventSource(this.machineName, this.sourceName);, mais les documents pour cela ne m'ont pas plus loin. J'utilise .net 2.0

merci.

permuté ici: msdn_microsoft_ieextensiondevelopment

Répondre

1

Si vous avez vraiment besoin d'écrire dans le journal système je serais soit:

  • Créer un service et envoyer des messages à - si vous sera connecté quelque chose avec toute régularité je le ferais. Mais qui écrit un tas de messages dans le journal système?
  • lancer une application minuscule qui est élevée en silence à la confiance moyenne en tant que processus de courtier

allons-y avec l'option deux. Quelques façons de le faire mais je vais vous donner une idée. Ecrivez les données à consigner dans un fichier ou dans le registre dans un emplacement à faible intégrité. Puis lancez une petite application élevée à moyenne confiance qui récupère les données et les écrit. Est-ce efficace? Non. Mais si l'écriture dans le journal système est un événement très rare, cela entraînera le moins de frais au fil du temps.

L'approche de service sera moins évidente pour l'utilisateur, mais prendra un peu de tarte loin des ressources de l'ordinateur. Voir Démarrage des processus à partir du mode protégé dans Understanding and Working in Protected Mode Internet Explorer.

Questions connexes