Comment lire les arguments de ligne de commande d'un autre processus en C#?
Comment puis-je obtenir les arguments de ligne de commande d'un autre processus?
À l'aide des fonctions statiques de la System.Diagnostics.Process
de classe I peuvent obtenir une liste des processus en cours d'exécution, par exemple par nom:
Process[] processList = Process.GetProcessesByName(processName);
Cependant, il n'existe aucun moyen d'accéder à la ligne de commande utilisée pour lancer ce processus. Comment pourrait-on le faire?
Pouvez-vous expliquer ce que vous essayez de faire cela? Il pourrait aider à obtenir une meilleure solution.
Je veux récupérer les arguments de ligne de commande pour trouver le bon exemple d'une application, dans mon cas, msiexec.
Article intéressant par Raymond Chen: blogs.msdn.com/oldnewthing/archive/2009/11/25/9928372.aspx
Je veux récupérer les arguments de ligne de commande pour trouver le bon exemple d'une application, dans mon cas, msiexec.
Article intéressant par Raymond Chen: blogs.msdn.com/oldnewthing/archive/2009/11/25/9928372.aspx
OriginalL'auteur Dirk Vollmar | 2009-02-02
Vous devez vous connecter pour publier un commentaire.
Stuart WMI suggestion est bonne:
notez que précisément le retour de la ligne de commande sera nulle si le processus qui exécute le code ci-dessus fonctionne sous unpriviledged compte, comme dans mon cas (service qui s'exécute sous le compte LocalService)
Ligne de commande retourne le chemin complet de l'exécutable. Peut-être que c'est un problème sous Windows7. Je didi pas tester sous XP.
Ce n'est pas sous windows 7
Fonctionne pour moi avec Win 7 SP1 x64. J'ai eu Admin priv.
OriginalL'auteur xcud
Si vous ciblez Windows XP ou une version ultérieure et que vous pouvez vous permettre les frais généraux de WMI, une possibilité serait de regarder le processus cible à l'aide de WMI Classe WIN32_Process, qui a une ligne de commande de la propriété.
OriginalL'auteur stuartd
Process.StartInfo
renvoie une ProcessStartInfo objet qui aurait mais pas forcément les arguments de la propriété Arguments.En fait, les Arguments de la propriété n'est installé que si le processus a été lancé à partir d'un processus géré à l'aide d'un objet ProcessStartInfo.
OriginalL'auteur plinth
Sont à la fois des projets de la vôtre? Pourriez-vous modifier la source pour le processus que vous essayez d'examiner à faire de vous donner ses arguments de ligne de commande, plutôt que d'essayer de les lire à partir de quelque part en dehors de ce processus?
OriginalL'auteur JMD