Je veux déterminer le chemin absolu des fichiers utilisés par un processus connu en lisant la ligne de commande. Actuellement, le processus est démarré avec des chemins relatifs dans la ligne de commande qui pointent vers divers fichiers tels que les fichiers de configuration. Le problème est que si les chemins ne sont pas relatifs au dossier contenant l'exécutable, je n'ai aucun moyen de convertir les chemins relatifs fournis à la ligne de commande, bien je ne peux pas être sûr à 100%.C# Obtenir le répertoire de travail d'un autre processus
Par exemple deux fichiers batch:
LOT 1 CD c: \ test \ bin test.exe .. \ config \ config.ini
LOT 2 CD c: \ test bin \ test.exe config \ config.ini
Pour le fichier de commandes 1, la ligne de commande que j'obtiens est "c: \ test \ bin \ test.exe .. \ config \ config.ini" et pour le fichier de commandes deux, je obtenir "c: \ test \ bin \ test.exe config \ config.ini". Ainsi, voyez ceci je ne peux pas résoudre les chemins.
Quoi qu'il en soit pour les démarreurs, j'ai obtenu la ligne de commande à partir d'une requête WMI en utilisant ManagementObjectSearcher. Maintenant, je dois obtenir le répertoire de travail à partir duquel le processus a été démarré pour résoudre les chemins passés sur la ligne de commande, mais comment?
EDIT: J'ai oublié un détail clé. Je veux obtenir le répertoire de travail d'un autre processus. Fondamentalement, mon programme principal rassemble des informations d'un autre programme. Je suis capable de déterminer l'ID du processus car je connais le nom de l'exécutable. Je peux aussi déterminer la ligne de commande. Je dois maintenant trouver le répertoire de travail ou le répertoire courant dans lequel l'exécutable a été démarré afin que je puisse résoudre les chemins relatifs de la ligne de commande. J'espère que j'ai clarifié la question.
Je pense que le titre de la question est pas tout à fait ce que vous demandez. "Get process working directory" est une question du répertoire de travail, qui peut vraisemblablement changer pendant l'exécution, mais la question elle-même semble demander le répertoire dans lequel l'exécutable a été démarré, qui peut être très différent exécution du processus). Réponse @ chris166 adresse le titre de votre question, mais ma réponse aborde la question elle-même, à mon humble avis. Peut-être pouvez-vous clarifier la confusion? – Cyberherbalist