Obtenir PATH de l'exécution de * .exe


6

Je développe actuellement un système personnalisé CafeSuite pour mon cybercafé. Et j'utilise Java et JNI (interface native Java) pour accéder au registre Windows. Mais j'ai ce module, je ne peux pas obtenir ou voir s'il est possible de travailler sur Windows XP.

Quand je commandais sur la ligne de commande, tasklistou tlistil me retourner tous le fonctionnement *.exedu système. Mais avec tous les paramètres qui pourraient être ajoutés à la ligne, je ne peux pas voir un paramètre qui renverrait le répertoire ni l' pathemplacement où un * .exe a été exécuté.

Malheureusement, je n’utilise aucun système d’exploitation Windows Server et je ne compte sur aucun pare-feu UACni sur la fonction de contrôle de compte utilisateur du système d’exploitation.

Avec les moyens donnés, est-il possible de poursuivre un tel concept?


Voulez-vous simplement savoir où un processus a été lancé ou devez-vous le déterminer à partir de votre application? A-t-il besoin d'être en ligne de commande?
Paul

Tout oui. J'ai besoin de connaître le pathfile de chaque retour de processus par tasklistou tlist. De plus, j'ai besoin que ce soit dans la ligne de commande pour que je puisse afficher les résultats dans le programme sur lequel je travaille.
Kaido Shugo

Peut-être que vous pouvez utiliser des appels WMI à la place. L'exécution de la "liste de processus wmic" dans l'invite de commande répertorie tous les processus en cours avec le chemin d'accès complet. Avec certains batch-fu, vous pouvez techniquement extraire le chemin d’un exécutable s’il existe.
Mart

@Mart, pourriez-vous fournir des détails concernant l'utilisation wmic process listde la réponse ici. Merci.
Kaido Shugo

Je pourrais le faire, mais cela prendrait un certain temps de fouiller microsoft.com et de faire des recherches correctement. Si vous essayez d'exécuter cette commande et de la rediriger vers un fichier texte, vous pouvez voir différentes propriétés. Il existe également des spécificateurs de format et des commutateurs que vous pouvez utiliser pour exporter ces informations dans un fichier CSV ou XML et les analyser ultérieurement. Ajoutez /?à n'importe quelle commande wmic pour obtenir de l'aide.
Mart

Réponses:


7

Sous XP et au-dessus, vous pouvez utiliser l’outil «Informations système», qui indique le chemin. Vous pouvez le lancer depuis le menu «Démarrer» → «Tous les programmes» → «Accessoires» → «Outils système» ou depuis la ligne de commande en tant que msinfo32  (ou «Démarrer» → «Exécuter…» → msinfo32ENTER).

Cliquez sur «Environnement logiciel» → «Tâches en cours d'exécution». Le chemin d'accès s'affiche.

http://www.raymond.cc/blog/determine-program-path-from-task-manager-for-each-program-in-windows-xp-windows-server-2003/

entrez la description de l'image ici


2

Sous Windows Powershell, si vous souhaitez connaître le chemin d'accès à "firefox.exe", vous pouvez procéder comme suit:

(Get-WmiObject -class Win32_Process -Filter 'Name="firefox.exe"').path.SubString(0, (Get-WmiObject -class Win32_Process -Filter 'Name="firefox.exe"').path.LastIndexOf('\'))

Cela retournerait:

C:\Program Files (x86)\Mozilla Firefox

Remplacez "firefox.exe" par le fichier exécutable souhaité.


Est-ce que je vais demander wmicavant d'entrer la commande ci-dessus?
Kaido Shugo

Pas besoin. Mais vous devez exécuter ceux qui utilisent Windows Powershell, pas l'invite de commande. <code> Get-WmiObject </ code> est une cmdlet dans Powershell. Vous pouvez l'exécuter avec le commutateur <code> -? </ Code> pour plus d'informations d'aide.
Mart

0

Je pense que cela a résolu le problème. Je l'ai google ici à ce sujet et cela a fonctionné en utilisant la ligne de commande.


Votre réponse WMIC est OK mais la réponse de GlenG est bien meilleure, car il est facile à retenir et natif. Je vous suggère de changer votre réponse acceptée à la sienne.
barlop

@barlop, votre commentaire n'a pas de sens - wmic est natif de Windows depuis XP. De plus, il fournit une sortie texte qui peut ensuite être filtrée facilement avec des outils tels que findstr.
Daniel

@ Daniel Je conviens que mon commentaire est plutôt étrange. Je ne sais pas pourquoi j'ai écrit ça. Peut-être que je ne disais pas que WMIC n'était pas natif. Je disais que la réponse de Glen est native et facile à retenir. Et au sens strict du terme, Nano's ne l’est pas, car ce n’est pas aussi facile à retenir, car Glenn répond aux deux critères. Nano's ne répond pas aux deux critères. WMIC étant si grand, c'est un petit sujet en soi. mais rien de mal à cela .. Sur une note connexe, il aurait dû inclure la réponse dans sa réponse, alors ce serait un peu plus facile à retenir, mais toujours pas aussi facile à retenir que Glen's ..
barlop
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.