JS というと、多くの人は Web ページを思い浮かべるかもしれません。実際、JS は他の言語が実行できることを、ブラウザーに支配されるのではなく、主導権を持って実行することもできます。
この記事では、WSH プラットフォーム上に構築され、JS を通じて実装された、本当に使える Windows タスク マネージャーを紹介します。
1: コードとコメント
/*
JS タスク マネージャー
作成者:X!ao_f
Mail:Xiao_f.mail@163.com
QQ:120000512
*/
/ /オブジェクト Shell オブジェクトを作成します。このオブジェクトは、ポップアップ プロンプト ボックス、実行中のプロセス、オペレーティング レジストリなどの基本的な機能を提供します。
var shell = WScript.CreateObject("WScript.Shell");
//WMI オブジェクトを作成します。これには、プロセス管理部分が含まれます。 CreateObject( "WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2");
//データ出力用の IE ウィンドウを作成します
var browser = WScript.CreateObject("InternetExplorer.Application" ; >
function foreach(object, fn){
var i = 0;
for(var e = new Enumerator(object);!e.atEnd();e.moveNext()){
fn(i, e.item());
}
}
//初期化ウィンドウ
~function(){
browser.navigate("about:blank" );
browser.visible=false
browser.document.write('
🎜>//ブラウザが読み込まれるまで待機します
while(browser.Busy) WScript.Sleep(100);
//ブラウザの外観を設定します
browser.document.title = "プロセス マネージャー"
browser.toolBar = false;
browser.fullScreen = true;
var h = browser.height;フルスクリーン = false;
browser.height = h;
browser.top = 0; ;
// ボタンを作成し、イベントをバインドします
var button = browser.document.createElement("button");
button.innerHTML = "新しいプロセス.."; open;
browser.document.body.appendChild(button);
var button = browser.document.createElement("button");
button.innerHTML = "リストを更新"; >button.onmousedown = 更新;
browser.document.body.appendChild(button);
var divList = browser.document.createElement("div"); ";
browser.document.body.appendChild(divList);
//プロセスを終了するコールバック関数
browser.document.__kill__ = function(pid){
var process = wmi .ExecQuery("Select * From Win32_Process Where ProcessID = '" pid "'")
foreach(process, function(i, o){
o.terminate();
}); > };
browser.visible = true
}()
//リストを更新
function update(msg){
browser.document.body.all.divList.innerHTML = msg;
}
//新しいプロセス
function open(){
//最初のポップアップ ダイアログ ボックスはブラウザ ウィンドウによってブロックされるため、ブラウザを非表示にするとこの問題を解決する Question
if(!commonDialog.Filter){
browser.visible=false
browser.visible=true
}
//ここでダイアログ ボックスを開くためのフィルタリング ルールを設定します
commonDialog.Filter = "すべてのタイプ (*.*)";
commonDialog.DialogTitle = "プロセス マネージャー - ファイルの選択";
commonDialog.CancelError = false;
/ / ダイアログ ボックスを遅延して開くと、ダイアログ ボックスがフロント エンドで確実に表示されます。
window.setTimeout(function(){
commonDialog.ShowOpen();
var path = commonDialog .Filename;
//Path 空でない場合は、OK ボタンを押したとみなして、シェルを使用してパス
if(path){
shell.run('" ' パス '');
commonDialog.Filename = '';
}
},10); 🎜>function reports(){
listProcess();
}
//プロセスリストを処理するためのメイン関数
function listProcess(){
//まずはここからWMI を介してすべてのプロセスの基本情報をクエリすることもできます。または、cmd で wmic -? を実行してヘルプ情報を表示することもできます。
var process = wmi.ExecQuery("Select * from Win32_Process");
var p1 = {};
var p2 = {}//以下の CPU 使用率を計算します。 ://www.techish.net/2009/03/get-process-cpu-usage-using-wmi/
var data1 = wmi.ExecQuery("select * from Win32_PerfRawData_PerfProc_Process");
foreach(data1, function(i, object){
p1[object.IDProcess] = object;
});
WScript.sleep(1000)
var data2 = wmi.ExecQuery("select * from Win32_PerfRawData_PerfProc_Process" );
foreach(data2, function(i, object){
p2[object.IDProcess] =
(p1[object.IDProcess].PercentProcessorTime - object.PercentProcessorTime)/
(p1[ object.IDProcess].TimeStamp_Sys100NS - object.TimeStamp_Sys100NS) * 100;
})
// テーブルを生成し、
var memSum = 0; cpuSum = 0;
table.push('
' ['シリアル番号','PID','名前','オペレーション','CPU使用率','メモリ使用量','パス'].join(' | ') ' |
');
foreach(process, function(i, object){
var tr = [];
td.push(i);
td.push(オブジェクト名); >td.push('
End< ; /span>');
td.push((~~(p2[object.ProcessID]*100))/100);
td.push((object.WorkingSetSize/1024/ 1024) )*100))/100 'MB');
td.push((object.executablepath||'-') ' ');
memSum =(object.WorkingSetSize/1024/1024); 🎜>if(object.processid!=0){
cpuSum =p2[object.ProcessID];
}
tr.push('' td.join( ' | ') ' |
');
table.push(tr);
table.push(' < ;tr>メモリ使用量:' ((~~(memSum*100))/100) 'MB' '、CPU 使用量:' ((~~(cpuSum*100))/100 ) ' %');
table='' (table);
}
//WScript のプロセスはブラウザのプロセスとは別であるため、ここにループが必要です。ループがない場合、ここでプログラムが実行されると WScript は終了します。
try{
while(!browser.Closed) { try{refresh();}catch(e){};
}catch(e){}; >
動作効果:
2. ソースコードのダウンロード
Process.rar
実行方法: .js の開き方が特別にされていない場合。設定したら、それをダブルクリックして実行できます。IDE に関連付けられている場合は、開く方法として「Microsoft Windows Based Script Host」を選択する必要があります。