Comment utiliser JSL pour compter le nombre de processus actifs dans Windows, par exemple le nombre de notepad.exe?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'ai un problème pour compter les processus actifs dans la mémoire Windows.
Je ne suis pas familier avec Windows API. Quelqu'un pourrait-il aider à utiliser cette fonction DLL pour compter le nombre de processus en cours pour un nom de processus donné?
Si vous ouvrez 3 notepad.exe, le gestionnaire de tâches de la fenêtre a trois sessions de bloc-notes en cours d'exécution.
J'ai besoin d'une fonction JSL qui prend le nom du processus en entrée et le nombre de processus en retour.
Merci beaucoup!
Re: Comment utiliser JSL pour compter le nombre de processus actifs dans Windows, par exemple le nombre de notepad.exe?Craige,
J'ai essayé la fonction runprogram dans JMP 11, puis écris une fonction de comptage de mots. Je peux obtenir la solution que je veux. Merci beaucoup!
Une autre chose intéressante à cela est que j’ai remarqué open () une fonction de fichier texte est passée de la mise à niveau de JMP 9 à 11.
J'utilise JMP 9 pour déclencher un fichier .exe afin d'effectuer une requête de base de données de threading multiple, puis, une fois la session .exe terminée, cumulez les données.
Dans JMP9, lorsque j'ouvre le fichier de données, cela réussit toujours. Cependant, dans JMP11, il est souvent indiqué qu'un fichier de données incomplet est averti et qu'il en manque une moitié. La taille du fichier de données est généralement> 2M-3M, pas trop grande. Pas sûr de ce qui a vraiment été changé dans JMP11. Sinon, je n'ai pas besoin de me préoccuper de trouver une solution comme celle-là.
Encore merci pour la solution.
Re: Comment utiliser JSL pour compter le nombre de processus actifs dans Windows, par exemple le nombre de notepad.exe?RunProgram est apparu pour la première fois dans JMP 11. Il n'utilise pas de fichier disque pour la communication entre JMP et le programme externe. il utilise stdin et stdout. Selon les besoins de votre application, vous voudrez peut-être exécuter le programme notepad.exe à partir de runProgram plutôt que d'utiliser RunProgram pour exécuter un autre programme afin de déterminer si notepad.exe est terminé. (Vous pourriez éviter de voter complètement.)
Avec JMP 9, vous avez toujours plusieurs façons de faire fonctionner ce travail. Vous voudrez peut-être enquêter automatisation d'utiliser un autre langage, comme Visual Basic peut-être, pour contrôler JMP et notepad.exe. Vous voudrez peut-être écrire un fichier .bat et utiliser la méthode open () de JMP pour exécuter le fichier bat. Cela nécessite une boucle d'interrogation pour déterminer quand le fichier bat est terminé. Vous pouvez utiliser la fonction d'attente (secondes) de JMP pour laisser JMP en veille entre les scrutations. Enfin, comme le suggère votre question initiale, vous pouvez utiliser l'interface DLL de JMP pour accéder à une DLL système. Ce post suggère que la meilleure interface de DLL apparaisse dans JMP 10; il peut ne pas être possible d'effectuer les appels de DLL requis avec l'ancienne interface. Je ne sais pas de quelle API / DLL vous auriez besoin.
Re: Comment utiliser JSL pour compter le nombre de processus actifs dans Windows, par exemple le nombre de notepad.exe?Craige,
merci pour votre réponse.J'ai encore deux questions:
1. ressemble à exécuter le programme n'est pas une fonction dans JMP9 car j'utilise toujours JMP9.
2 Votre solution écrit-elle un fichier sur le disque dur? J'essaie de faire des sessions parallèles et d'utiliser l'attente dans la boucle sans fin. Lorsque le nombre total de processus est égal à zéro, coupez la boucle et passez au code JSL restant. Si vous écrivez un fichier sur un disque dur, cela est moins préférable que d’utiliser DLL pour obtenir les informations directement à partir de la mémoire.
Merci!
Re: Comment utiliser JSL pour compter le nombre de processus actifs dans Windows, par exemple le nombre de notepad.exe?Commencé ici Comment listez-vous tous les processus sur la ligne de commande sous Windows? - Super utilisateur
et a écrit ceci
x=runprogram(executable("wmic"),options({"process list"}),
readfunction(function({this},write(this<
);
vous voudrez probablement analyser le texte de cette << lecture plutôt que de simplement le transférer dans le journal via write (). Beaucoup de texte que vous ne voulez pas, probablement, et des choses comme "C: \ Program Files (x86) \ Microsoft Office \ Office15 \ OUTLOOK.EXE"