JScriptとWSHのメモ - Masanoriのメモ帳

JScriptとWSHのメモ


JScript

WSHではない、JScriptそのものについてのメモです。
JScriptは、MicrosoftによるJavaScript(ECMA Script)の実装系です。
(なでしこの「JSCRIPTする」は、ScriptControlで実行されているようです。
それで実行されるJScriptもこれにあたります。)


JavaScriptカテゴリ
JavaScriptに関するページについてはCategory/JavaScriptも御覧ください。

 WSHの機能(wScriptのオブジェクト)を使う

ActiveXObjectオブジェクトで、wScriptのオブジェクトを定義することで、
WSH(wScript)の一部の機能が使えるようになります。
var wScriptShell = new ActiveXObject("WScript.Shell");
var wshSysEnv = wScriptShell.Environment("PROCESS")
引用元:http://sei.qee.jp/docs/program/hta/com/wshshell.html

WSH(Windows Script Host)

WSH(Windows Script Host)は標準でWindowsに付属している、
スクリプト実行環境です。
標準で、JScript(MicrosoftのECMAScript(JavaScript))および、VBScript(Visual Basicのサブセット)が実行できます。
また、WSH上で実行するによって、WSHが提供するオブジェクトや機能を、
それらから利用することができます。

WSH(Windows Script Host)については下記URLを参照。
http://msdn.microsoft.com/ja-jp/library/cc364455.aspx
WSHによって提供されるオブジェクトや機能は下記URLを参照。
http://msdn.microsoft.com/ja-jp/library/cc364460.aspx
(WSHでスクリプト(JScriptまたはVBScriptなどで記述。)を実行することで、
これらのオブジェクト等を、スクリプトから利用することができる。)

JScript(.jsファイル)、VBScript(.vbsファイル)のいずれも、
初期状態で、WSHに関連付けされており、通常、エクスプローラやデスクトップで、
それらのスクリプトファイルをダブルクリックすることなどで、
関連付けされたWSHの実行エンジンが起動し、スクリプトの実行が行われる。
(関連付けが変更されている場合も、%systemdir%\wscript.exeに実行させることで、WSH上での実行が可能。)

 InternetExplorer(IE)を制御する

http://d.hatena.ne.jp/language_and_engineering/20090713/p1 (魚拓)

 MSNメッセンジャを制御する (VBScriptコード)

MSN MessengerをWSHから制御するコード。
v7.5で動作を確認しました。
http://blog.joycode.com/mvm/archive/2006/03/01/72137.aspx 

STATUS_OFFLINE = 1
STATUS_ONLINE = 2

Set obj = CreateObject("Messenger.UIAutomation")
Select Case obj.MyStatus
     Case STATUS_OFFLINE :MsgBox "オフラインです"
     Case STATUS_ONLINE :MsgBox "オンラインです"
End Select

こんな感じでオンライン状態の取得ができます。

引用元:http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list155.shtml

 ファイルをWindows標準の機能でZIP圧縮する

/*Script by Masanori.*/
dirToZip("C:\\hogehoge\\","C:\\test.zip");
function dirToZip(targetDirPath,zipPath){
	var objFS  = new ActiveXObject("Scripting.FileSystemObject");
	var objShell = new ActiveXObject("Shell.Application");
	if(objFS.FileExists(zipPath)){
		objFS.deleteFile(zipPath);
	}
	var zipf = objFS.CreateTextFile(zipPath,"True");
	zipf.Write("PK"+String.fromCharCode(5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));
	zipf.Close();
	
	objShell.NameSpace(zipPath).CopyHere(targetDirPath);
	WScript.Sleep(1000);
	while(1){
		try{
			objFS.OpenTextFile(zipPath,8,"False").Close();
		}catch(e){
			WScript.Sleep(100);
			continue;
		}
		break;
	}
	if(objFS.GetFile(zipPath).Size <= 24){
		WScript.Echo("失敗");
		return 0;
	}
	WScript.Echo("完了");
	return 1;
}



スポンサード リンク



メニュー


未整理

Linux

プログラミングx

Android

サービス

製品

執筆中


筆者のサイト


スポンサード リンク