Wie verwendet man JSL, um die aktiven laufenden Prozesse in Windows zu zählen, z. B. Anzahl der notepad.exe?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe ein Problem, aktive Prozesse im Windows-Speicher zu zählen.
Ich bin nicht mit Windows API vertraut. Könnte jemand bei der Verwendung der DLL-Funktion helfen, um die Anzahl der laufenden Prozesse für einen bestimmten Prozessnamen zu zählen?
Wenn Sie 3 notepad.exe öffnen, werden im Fenster Task-Manager drei Notepad-Sitzungen ausgeführt.
Ich brauche eine JSL-Funktion, die den Prozessnamen als Eingabe und die Nummer des Prozesses als Rückgabe verwendet.
Vielen Dank!
Betreff: Wie verwendet man JSL, um die aktiven laufenden Prozesse in Windows zu zählen, z. B. Anzahl der notepad.exe?Craige,
Ich habe die Runprogramm-Funktion in JMP 11 ausprobiert und dann eine Count Word-Funktion geschrieben. Ich kann die Lösung bekommen, die ich will. Danke vielmals!
Eine andere interessante Sache, warum ich dies mache, ist, weil ich bei open () festgestellt habe, dass eine Textdatei-Funktion vom Upgrade von JMP 9 auf 11 geändert wurde.
Ich verwende JMP 9, um eine .exe-Datei auszulösen, um eine mehrteilige Threading-Datenbankabfrage auszuführen. Anschließend wird die .exe-Sitzung abgeschlossen, und die Daten werden aufgerollt.
Wenn ich in JMP9 die Datendatei öffne, ist dies immer erfolgreich. In JMP11 wird jedoch oft eine Warnung angezeigt, dass die Datendatei vollständig gelesen wurde und die Hälfte verfehlt wurde. Die Dateigröße beträgt normalerweise> 2M-3M und ist nicht zu groß. Nicht sicher, was in JMP11 wirklich geändert wurde. Ansonsten brauche ich mir keine Mühe, eine solche Lösung zu finden.
Nochmals vielen Dank für die Lösung.
Betreff: Wie verwendet man JSL, um die aktiven laufenden Prozesse in Windows zu zählen, z. B. Anzahl der notepad.exe?RunProgram erschien erstmals in JMP 11. Es verwendet keine Plattendatei für die Kommunikation zwischen JMP und dem externen Programm. es verwendet stdin und stdout. Je nachdem, was Ihre Anwendung benötigt, möchten Sie vielleicht das Programm notepad.exe über runProgram ausführen, anstatt RunProgram zu verwenden, um ein anderes Programm auszuführen, um herauszufinden, ob notepad.exe beendet ist. (Sie können das Abfragen vollständig vermeiden.)
Mit JMP 9 haben Sie noch mehrere Möglichkeiten, um dies zu erreichen. Vielleicht möchten Sie nachforschen Automatisierung eine andere Sprache zu verwenden, wie zum Beispiel Visual Basic, um JMP zu steuern und notepad.exe. Möglicherweise möchten Sie eine .BAT-Datei schreiben und JMPs open () verwenden, um die bat-Datei auszuführen. Dies erfordert eine Abfrageschleife, um festzustellen, wann die Bat-Datei fertig ist. Sie können die Funktion "Warten" (Sekunden) von JMP verwenden, um den JMP-Ruhezustand zwischen Abfragen zu aktivieren. Schließlich können Sie, wie Ihre ursprüngliche Frage schon sagt, die DLL-Schnittstelle von JMP für den Zugriff auf eine System-DLL verwenden. Dieser Beitrag schlägt die bessere DLL-Schnittstelle in JMP 10 vor; Es ist möglicherweise nicht möglich, die erforderlichen DLL-Aufrufe mit der älteren Schnittstelle auszuführen. Ich weiß nicht, welche API / DLL Sie benötigen.
Betreff: Wie verwendet man JSL, um die aktiven laufenden Prozesse in Windows zu zählen, z. B. Anzahl der notepad.exe?Craige,
Danke für Ihre Antwort. Ich habe noch zwei Fragen:
1 Es sieht so aus, als ob das Programm ausführen keine Funktion in JMP9 ist, da ich immer noch JMP9 verwende.
2 Schreibt Ihre Lösung eine Datei auf die Festplatte? Ich versuche, parallele Sitzungen durchzuführen und in der Endlosschleife zu warten. Wenn der Gesamtprozesszähler null ist, unterbrechen Sie die Schleife und fahren Sie mit dem restlichen JSL-Code fort. Beim Schreiben von Dateien auf die Festplatte ist dies weniger vorzuziehen als bei Verwendung von DLL, um die Informationen direkt aus dem Arbeitsspeicher abzurufen.
Vielen Dank!
Betreff: Wie verwendet man JSL, um die aktiven laufenden Prozesse in Windows zu zählen, z. B. Anzahl der notepad.exe?Hier angefangen Wie listen Sie alle Prozesse in der Befehlszeile in Windows auf? - Super User
und schrieb das
x=runprogram(executable("wmic"),options({"process list"}),
readfunction(function({this},write(this<
);
Sie möchten wahrscheinlich den Text aus diesem << read-Befehl parsen, anstatt ihn einfach per write () in das Protokoll zu kopieren. Viel Text, den Sie wahrscheinlich nicht möchten, und ähnliches wie "C: \ Programme (x86) \ Microsoft Office \ Office15 \ OUTLOOK.EXE"