JScriptとWSHのメモの変更点 - Masanoriのメモ帳

JScriptとWSHのメモの変更点

!!!JScript
WSHではない、JScriptそのものについてのメモです。
JScriptは、MicrosoftによるJavaScript(ECMA Script)の実装系です。
(なでしこの「JSCRIPTする」は、ScriptControlで実行されているようです。
それで実行されるJScriptもこれにあたります。)
*JScript 言語リファレンス{{br}}http://msdn.microsoft.com/ja-jp/library/z688wt03(VS.80).aspx

: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 ([魚拓|http://megalodon.jp/2010-0107-1855-16/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;
 }

{{category プログラミング,JavaScript,nolink}}


メニュー


未整理

Linux

プログラミングx

Android

サービス

製品

執筆中


筆者のサイト


スポンサード リンク