JSLを使用してWindowsでアクティブな実行中のプロセス、たとえばnumber of notepad.exeを数える方法は?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />私はWindowsメモリ内のアクティブなプロセスを数えるのに問題があります。
私はwindows APIには馴染みがありません。誰かが与えられたプロセス名のために実行中のプロセスの数を数えるためにDLL関数を使ってこれを手伝ってくれる?
3 notepad.exeを開くと、ウィンドウタスクマネージャは3つのメモ帳セッションを実行しています。
入力としてプロセス名を、戻りとしてプロセス数を受け取るJSL関数が必要です。
どうもありがとうございました!
再:どのようにJSLを使用してWindowsでアクティブな実行中のプロセスを数える、例えばnotepad.exeの数?クレイジ、
JMP 11でrunprogram関数を試してから、count words関数を書いてみました。必要な解決策を得ることができます。どうもありがとう!
私がこれをするもう一つの面白いことは私がopen()テキストファイル関数がJMP 9から11へのアップグレードから変更されているのに気づいたからです。
私はJMP 9を使用して.exeファイルを起動し、複数のスレッドデータベースクエリを実行します。その後、すべての.exeセッションが完了した後で、データをロールアップします。
JMP9では、データファイルを開くと常に成功しますが、JMP11では何度も警告が表示され、不完全なデータファイルの読み取りと失敗の半分が発生します。データファイルのサイズは、通常2Mから3Mを超え、大きすぎません。JMP11で実際に何が変更されたのかわからない。そうでなければ、私はこのような解決策を見つけるために気にする必要はありません。
もう一度解決策をありがとう。
再:どのようにJSLを使用してWindowsでアクティブな実行中のプロセスを数える、例えばnotepad.exeの数?RunProgramはJMP 11ではじめて登場しました。 JMPと外部プログラム間の通信にディスクファイルを使用しません。標準入力と標準出力を使用します。 アプリケーションのニーズによっては、RunProgramを使用して別のプログラムを実行してnotepad.exeが終了したかどうかを判断するのではなく、runProgramからnotepad.exeプログラムを実行することをお勧めします。 (あなたは完全に投票を避けることができます。)
JMP 9では、これを機能させる方法がいくつかあります。 調べたいと思うかもしれませんオートメーションビジュアルベーシックなどの他の言語を使用してJMPを制御するそして notepad.exe。 あなたは.BATファイルを書き、batファイルを実行するためにJMPのopen()を使用したいかもしれません。 これには、batファイルがいつ終了したかを判断するためのポーリングループが必要です。 ポーリングの合間にJMPをスリープさせるには、JMPのwait(seconds)関数を使用できます。 最後に、あなたの最初の質問が示唆するように、あなたはシステムDLLにアクセスするためにJMPのDLLインターフェースを使用することができます。この郵便受けより良いDLLインターフェースがJMP 10で登場したことを示唆しています。必要なDLLを古いインターフェースで呼び出すことは不可能かもしれません。 どんなAPI / DLLが必要になるかわかりません。
再:どのようにJSLを使用してWindowsでアクティブな実行中のプロセスを数える、例えばnotepad.exeの数?クレイジ、
あなたの返事をありがとう。私はさらに二つの質問がある。
1。私はまだJMP9を使っているので、run programはJMP9の機能ではないようです。
2。あなたの解決策はハードディスクにファイルを書きますか?私は並列セッションをやろうとしていて、無限ループで待機しています。合計プロセス数がゼロになったら、ループを中断して残りのJSLコードに進みます。ファイルをハードディスクに書き込む場合は、DLLを使用してメモリから直接情報を取得するのに比べて好ましくありません。
ありがとうございます。
再:どのようにJSLを使用してWindowsでアクティブな実行中のプロセスを数える、例えばnotepad.exeの数?ここから始めました Windowsのコマンドラインにすべてのプロセスを一覧表示する方法 - スーパーユーザー
そしてこれを書いた
x=runprogram(executable("wmic"),options({"process list"}),
readfunction(function({this},write(this<
);
おそらくwrite()を使ってログにダンプするのではなく、この<< readからテキストをパースしたいでしょう。 不要なテキストが多く、おそらく "C:¥Program Files(x86)¥Microsoft Office¥Office15¥OUTLOOK.EXE"のようなものです。