私と一緒にWindows JSスクリプトを書きます(一):Hello World
7858 ワード
作成者:[email protected]新浪微博@孫雨潤新浪ブログCSDNブログ日付:2012年11月1日
1. Introduction to Windows JS
作業中に自動化ツールを書くことがよくありますが、スクリプトは最適な選択です.しかし、どのスクリプト言語を選択するかは常に頭を悩ませ、perl/pythonはまず文法を熟知してからライブラリを熟知する必要があり、batバッチの文法はもっと変態で時代遅れで、vbsはよくウイルスと見なされ、powershellは同様に文法とライブラリを学ぶ問題に直面し、同時に実行しなければならない.Netプラットフォームでは…文法を学ぶ必要がなく、オブジェクトを学ぶ必要がなく、追加のインストールを必要とせず、XPシステム以上でサポートされているスクリプト言語はありませんか.javascriptです.
1.1 Windows JSとは
よく知られているJSは最もポピュラーなスクリプト言語としてブラウザで実行され、ブラウザのJSは以下の2つのことをすることができます.呼び出しオブジェクトの属性メソッド イベントに応答する これらの機能は実際にはブラウザが提供するものである:ブラウザのJS解釈器はJSコード解釈を実行し、いくつかの組み込みオブジェクトを提供し、イベント通知が必要なときにJS関数をコールバックする.当然,インタプリタ,オブジェクト,イベントコールバックを提供すれば,JSはブラウザ以外の場面で機能すると考えられる.例えばQtライブラリにおけるQtScriptは、従来のC++dll方式に代えるJSを用いてプラグインを開発するスクリプト実行環境である.
サードパーティ製ライブラリQtに比べ、Windows 98からオペレーティングシステムの組み込みオブジェクトをスクリプト呼び出し、ファイルシステム、ネットワーク、I/Oなどを管理できる環境が用意されており、公式名はWSH(Windows Script Host)--Windowsスクリプトホストと呼ばれている.
厳密に言えば、WSHは言語に関係のないスクリプトエンジンであり、COM/OLE技術を利用して言語に関係のないバイナリ互換性(公式名は自動化技術)を提供し、REXX、BASIC、Perl、Ruby、Tcl、PHP、JavaScript、Delphi、Python、XSLT、Powershellなど十数種類のスクリプトのサポートを実現した.
1.2 Windows JSで何ができるか自動バッチ ファイルシステムの管理:ディスク、ファイル、フォルダの作成、削除、アクセスなど;ファイル読み書き 管理ネットワーク:socket接続、ftp、smtp、http など管理I/O:標準入出力、ハードウェア機器 制御デスクトップShell:ショートカット、デスクトップウィンドウ 制御アプリケーション:word、excle、wmp、QQなどのオブジェクトを取得し、メソッド を呼び出す.
1.3 Windows JSの使用理由スクリプトにより、生産性が大幅に向上 js言語の学習コストはほぼ0 である.開発プラグインは安全で安定しており、他のモジュール に影響を与えない.
2.開発、デバッグ、運転
2.1開発
もちろんどの言語でもNotepadで開発できますが、windowsの組み込みオブジェクトを大量に使用するため、さまざまなドキュメントを調べてオブジェクトが提供する方法の属性を明らかにするよりも、フレンドリーで便利なIDEを使用するほうがいいです.ここではベテランスクリプトIDEPrimalSCRIPTをお勧めします.ここを猛撃して試用版をダウンロードします.
2.2デバッグコード量の少ないデバッグは万能方法を用いることができる:印刷出力 IDEのブレークポイント、watch機能の使用を推奨し、デバッグバグは である.
2.3運転
ファイルjsは接尾辞名として、以下のいくつかの実行方法があります. cmdコマンドラインに入り、 と入力する.はcmdコマンドラインに入り、入力 マウスをダブルクリックします.jsファイル、デフォルトはWscript.Exce運転 IDEで実行、デフォルトはCScript.Exce運転 3.実用機能優先体験
次の節では、一般的なオブジェクトの実用性について詳しく説明します.
3.1 Hello World
作用:Hello Worldを出力する
保存するjsをダブルクリックします.MessageBoxにHello Worldと書かれているものがポップアップされます.IDEで実行すると、出力ボックスに「Hello World」文字列が表示されます.
3.2デスクトップにショートカットを作成する
役割:デスクトップにnotepadを作成します.exeのショートカット
3.3アプリケーションを開くの役割:メモ帳を開き、すぐに後続のスクリプトを実行し、ボタン をシミュレートします.の役割:メモ帳を開き、メモ帳が閉じるのを待ってから後続スクリプト を実行します.作用:QQを開いてリターンキーをシミュレートして自動的に登録する(ユーザー名のパスワードが保存されている場合) 3.4ファイルシステムへのアクセス機能:デスクトップのすべてのファイル名 を出力機能:ディスク関連属性 がリストされます.役割:ファイル詳細 を取得する.
3.5時間関数
≪アクション|Action|ldap≫:現在の時刻を表示します.
3.6環境変数
≪アクション|Action|emdw≫:OS環境変数のリスト
3.7ネットワーク関連
役割:Webページをキャプチャしてファイルに保存する
3.8 COM/OLEコントロールを呼び出す
役割:WMPlayerコントロールにアクセスして音楽を再生するもしこの文章があなたに役に立つならば、CSDNブログに伝言を残してください. 転載ご明記ください:雨潤からの技術ブログhttp://blog.csdn.net/sunyurun
1. Introduction to Windows JS
作業中に自動化ツールを書くことがよくありますが、スクリプトは最適な選択です.しかし、どのスクリプト言語を選択するかは常に頭を悩ませ、perl/pythonはまず文法を熟知してからライブラリを熟知する必要があり、batバッチの文法はもっと変態で時代遅れで、vbsはよくウイルスと見なされ、powershellは同様に文法とライブラリを学ぶ問題に直面し、同時に実行しなければならない.Netプラットフォームでは…文法を学ぶ必要がなく、オブジェクトを学ぶ必要がなく、追加のインストールを必要とせず、XPシステム以上でサポートされているスクリプト言語はありませんか.javascriptです.
1.1 Windows JSとは
よく知られているJSは最もポピュラーなスクリプト言語としてブラウザで実行され、ブラウザのJSは以下の2つのことをすることができます.
window.location.assign("http://www.yy.com");
<input type="text" id="email" onchange="checkEmail()">
サードパーティ製ライブラリQtに比べ、Windows 98からオペレーティングシステムの組み込みオブジェクトをスクリプト呼び出し、ファイルシステム、ネットワーク、I/Oなどを管理できる環境が用意されており、公式名はWSH(Windows Script Host)--Windowsスクリプトホストと呼ばれている.
厳密に言えば、WSHは言語に関係のないスクリプトエンジンであり、COM/OLE技術を利用して言語に関係のないバイナリ互換性(公式名は自動化技術)を提供し、REXX、BASIC、Perl、Ruby、Tcl、PHP、JavaScript、Delphi、Python、XSLT、Powershellなど十数種類のスクリプトのサポートを実現した.
1.2 Windows JSで何ができるか
1.3 Windows JSの使用理由
2.開発、デバッグ、運転
2.1開発
もちろんどの言語でもNotepadで開発できますが、windowsの組み込みオブジェクトを大量に使用するため、さまざまなドキュメントを調べてオブジェクトが提供する方法の属性を明らかにするよりも、フレンドリーで便利なIDEを使用するほうがいいです.ここではベテランスクリプトIDEPrimalSCRIPTをお勧めします.ここを猛撃して試用版をダウンロードします.
2.2デバッグ
WScript.Echo("The size of array = " + arr.length);
2.3運転
ファイルjsは接尾辞名として、以下のいくつかの実行方法があります.
WScript.exe test.js
CScript.exe test.js
WscriptとCStripの違いは主に前者がUI方式で対話し、後者がコンソール入出力方式で対話することである.次の節では、一般的なオブジェクトの実用性について詳しく説明します.
3.1 Hello World
作用:Hello Worldを出力する
WScript.Echo("Hello World");
保存するjsをダブルクリックします.MessageBoxにHello Worldと書かれているものがポップアップされます.IDEで実行すると、出力ボックスに「Hello World」文字列が表示されます.
3.2デスクトップにショートカットを作成する
役割:デスクトップにnotepadを作成します.exeのショートカット
var sh = WScript.CreateObject("WScript.Shell");
desktop = sh.SpecialFolders("Desktop");
shortcut = sh.CreateShortcut(desktop + "\\ .lnk");
shortcut.TargetPath = "c:\\Windows\
otepad.exe";
shortcut.Save();
3.3アプリケーションを開く
var sh = WScript.CreateObject("WScript.Shell");
sh.Run("notepad " + WScript.ScriptFullName);
WScript.Sleep(1000);
sh.SendKeys("what the hell are you doing?");
var sh = WScript.CreateObject("WScript.Shell");
sh.Run("notepad " + WScript.ScriptFullName, 1, true);
sh.Popup(" !");
var sh = WScript.CreateObject("WScript.Shell");
try {
WScript.Echo("launch qq...");
var path = "\"D:\\Program Files\\Tencent\\QQ\\Bin\\QQ.exe\"";
sh.Run(path);
sh.SendKeys("{ENTER}");
} catch(e) {
WScript.Echo(e);
}
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var dir="C:\\Users\\Administrator\\Desktop";
var fsofolder = fso.GetFolder(dir);
var colFiles = fsofolder.Files;
var fc = new Enumerator( colFiles );
WScript.Echo("Files under \""+dir+"\":");
for (; !fc.atEnd(); fc.moveNext() ){
WScript.Echo(fc.item());
}
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var driveTypeNames=[" ", " ", " ", " ", " ", " "];
var e = new Enumerator(fso.Drives);
var s = "";
for (; !e.atEnd(); e.moveNext()) {
x = e.item();
WScript.Echo(x.DriveLetter+":")
WScript.Echo(" :" + x.DriveType + " (" + driveTypeNames[x.DriveType] + ")");
WScript.Echo(" :" + x.ShareName);
WScript.Echo(" :" + x.IsReady);
if (x.IsReady){
WScript.Echo(" :" + x.VolumeName);
WScript.Echo(" :" + x.AvailableSpace + " ");
}
}
var fileName = WScript.ScriptFullName;
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var f = fso.GetFile(fileName);
var fileinfo = "Results for " + fileName + "
";
fileinfo += " :" + f.Name + "
";
fileinfo += " :" + f.Attributes + "
";
fileinfo += " :" + f.Size + " Bytes
";
fileinfo += " :" + f.DateCreated + "
";
fileinfo += " :" + f.DateLastAccessed + "
";
fileinfo += " :" + f.DateLastModified + "
";
fileinfo += " :" + f.Drive + "
";
fileinfo += " :" + f.Type + "
";
WScript.Echo(fileinfo);
3.5時間関数
≪アクション|Action|ldap≫:現在の時刻を表示します.
var today = new Date();
WScript.Echo(" :"+today.toLocaleString());
3.6環境変数
≪アクション|Action|emdw≫:OS環境変数のリスト
var sh = WScript.CreateObject("WScript.Shell");
var envObj = sh.Environment("SYSTEM");
WScript.Echo("====== :======");
WScript.Echo("No. of env. variables = "+envObj.length);
var it = new Enumerator(envObj)
for (it.moveFirst(); !it.atEnd(); it.moveNext()) {
WScript.Echo(it.item()+" ===> "+envObj(it.item()));
}
3.7ネットワーク関連
役割:Webページをキャプチャしてファイルに保存する
var http = WScript.CreateObject("WinHttp.WinHttpRequest.5.1");
http.Option(4) = 13056;
http.Option(6) = false;
http.Open("GET", "http://www.baidu.com/", false);
http.SetRequestHeader("Accept", "*/*");
http.SetRequestHeader("Accept-Language", "zh-cn,zh");
http.SetRequestHeader("User-Agent", "Mozilla/6.0");
http.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http.SetRequestHeader("Referer", "http://www.baidu.com/");
http.SetRequestHeader("Connection", "Close ");
http.SetRequestHeader("Content-Length", "100");
http.Send();
http.WaitForResponse(1000);
WScript.Echo(http.ResponseText);
var fs = WScript.CreateObject("Scripting.FileSystemObject");
var file = fs.CreateTextFile("output.html", true);
file.Write(http.ResponseText);
3.8 COM/OLEコントロールを呼び出す
役割:WMPlayerコントロールにアクセスして音楽を再生する
var wmp = WScript.CreateObject("WMPlayer.OCX");
wmp.URL = "E:\\360 \\music\\ - \\ .mp3";
WScript.Sleep(2000);
WScript.Sleep(wmp.currentMedia.duration * 1000);
WScript.Quit();