Nous avons un cas intéressant où nous essayons de déterminer comment différentes instances de notre application ont été lancées. Existe-t-il un moyen pour .NET d'interroger une autre instance en cours d'exécution et de passer les paramètres de ligne de commande à cette instance? Je n'ai pas trouvé de moyen de le faire dans .NET jusqu'ici, alors j'ai pensé vérifier ici si quelqu'un avait déjà fait quelque chose comme ça auparavant.Est-ce que .NET peut vérifier d'autres paramètres de ligne de commande en cours d'exécution?
Répondre
Vous pouvez récupérer ces informations via WMI.
Voir la classe Win32_Process, en particulier sa propriété de ligne de commande. Ce Code Project article fournit des pointeurs sur la façon de le faire,
Généralement, ces variables sont stockées dans l'espace mémoire du programme, auquel vous ne devriez pas (en théorie) avoir accès.
Vous devrez découvrir comment lancer une communication interprocessus avec les autres instances et échanger des données. Les tubes nommés sont une bonne option, mais vous pourriez vouloir commencer une nouvelle question de stackoverflow pour obtenir de bonnes options à ce sujet.
-Adam
Pour référence future, voici un extrait de code de la façon dont je l'ai eu à travailler. C'était juste pour un test pour voir comment tout cela a fonctionné. Le code réel implémenté analyse les paramètres de ligne de commande pour ce dont nous avons besoin.
try
{
ManagementScope connectScope = new ManagementScope();
connectScope.Path = new ManagementPath(@"\\" + Environment.MachineName + @"\root\CIMV2");
SelectQuery msQuery = new SelectQuery("SELECT * FROM Win32_Process Where Name = '" + "PROGRAMNAMEHERE.exe" + "'");
ManagementObjectSearcher searchProcedure = new ManagementObjectSearcher(connectScope, msQuery);
foreach (ManagementObject item in searchProcedure.Get())
{
try
{
MessageBox.Show(item["CommandLine"].ToString());
}
catch (SystemException)
{}
}
}
- 1. Comment accéder aux paramètres de ligne de commande en dehors de Main en C#
- 2. Comment imprimer sur la ligne en cours dans une application de ligne de commande?
- 3. Comment obtenir des arguments de ligne de commande pour un processus en cours
- 4. Exécutez firefox addons en ligne de commande
- 5. Cours de design .NET?
- 6. Erreur de l'utilitaire de ligne de commande WSDL .Net
- 7. En mode ligne de commande VIM, quel est le caractère/symbole spécial de la ligne en cours?
- 8. Utilitaires de ligne de commande .NET, dumpbin.exe et coreflag.exe
- 9. oracle ligne de commande de la question
- 10. Comment vérifier si NetStream est en cours de lecture
- 11. Analyse de ligne de commande
- 12. Utilitaire diff de ligne de commande
- 13. Comment configurer WebBrowser de .NET pour obéir aux paramètres de langue en cours
- 14. Aide en ligne de commande TFS
- 15. Passage des paramètres de la ligne de commande JUnit en eclipse
- 16. Ligne de commande .cmd/.bat script, comment obtenir le répertoire du script en cours d'exécution
- 17. Impossible d'avoir un paramètre de ligne de commande en Python
- 18. Outils d'édition vidéo en ligne de commande
- 19. QtCreator et arguments de ligne de commande
- 20. Entrée de ligne de commande MyGeneration
- 21. commande personnalisée pour Eclipse fichier en cours
- 22. arguments de ligne de commande
- 23. Problème d'analyse des arguments de la ligne de commande contenant le caractère '&' en C# .Net
- 24. Interfaçage MFC et ligne de commande
- 25. Compilateur de ligne de commande Windows Mobile
- 26. Comment vérifier que [out] params dans COM peut être utilisé?
- 27. .NET: Vérifier que l'URL est l'image
- 28. Arguments de la ligne de commande WinMain
- 29. Utilitaire de ligne de commande personnalisé. Comment?
- 30. CD de ligne de commande (changement de répertoire) en C#?