見出し画像

WSHがお好きでしょ?(3)

こんにちは、なるーらぼです。今回もWSHのお話をしていきます。こんなの、いまどき使いみちないよ、と吐き捨てるのはかんたんなのですが、使おうと思えば割と近代的なことにも使えると思います。もちろん、PowerShellを使ったほうがいいです。あちらのほうがよりパワフルで、クロスプラットフォームで動作し、明快です。そうではない環境の方は、WSHです。

一括処理と対話処理

WSHは大きく一括処理をするものと対話処理するものにわけることができます。そんなのスクリプトなんだから当たり前だろう、と考える方も多いことでしょう。実は少し違います。
以前にMsgBoxを表示させたスクリプトですが、ダブルクリックしたときとコマンドプロンプトやPowerShellから起動するときで実は異なります。VBSやJSを実行しているのは2種類ありまして、ひとつが「wscript.exe」でもうひとつが「csript.exe」です。
何が違うかというと、前者はモーダルウィンドウを使うことができますので、ダイアログが表示できます。後者はコンソールでの動作を想定しています。よって、動作のおおまかなところに違いはありませんが「wscript.exe」を使うと対話的な処理を行うことができます。たとえば処理の継続を確認する、入力ダイアログを表示する、というようなことです。
一方の「csript.exe」はコンソールが中心ですので、対話処理もできなくはありませんが、一括実行するような処理のほうが向いているでしょう。

スクリプトツールとブラウザスクリプト

WSHはVBS、JS単独で実行するとスクリプトツールになります。これはスクリプトそのものを実行するランタイムがそういうアプリだからです。しかし、いまは滅亡しつつあるInternetExplorerの拡張的な機能を使用すると、ブラウザ内で動作してあたかもhtmlをアプリケーションのようにすることができます。たとえば次のhtmlをご覧ください。

<!DOCTYPE html>
<html lang="ja">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
</head>
<body>
   
</body>
</html>

これをそのまま拡張子htmlで保存すると、ブラウザで表示することができますよね。この拡張子をhtaにしてみてください。アイコンが変化したと思います。これもいにしえの技術「HTMLApplication」です。

画像1

この技術の恐ろしいところはCOMを使うことができるというものです。つまり、ブラウザからExcelなどのOfficeスイートを操作したり、直接ファイルシステムにアクセスすることができるのです。
現在ではhtml5の仕様で追加されたさまざまなAPIを駆使することで、マイクやカメラアクセスなどを可能にされました。HTMLApplicationではもっとはるか以前から、COMをつかって近しいことを実行することができたということです。
特に便利なところとしては、COMアクセスを可能にしているデータベースドライバを提供しているデータベースでは、ブラウザ用のhtmlに記述したスクリプトで直接データベースアクセスをすることができます。また、ファイルシステムへアクセスすることができるので、ちょっとした業務アプリケーションもExcelなしに開発することができます。セキュリティ的にいかがなものか、というところはありますが実行形式ファイルを直接ブラウザから実行することもできます。

さいごに

今回はWSHの可能性についてお話してみました。いまさら可能性と言われても、という気がしなくはありませんが、使えるものは使わないと損ですからお試しください。HTMLApplicationはいずれWindows10から削除されてもおかしくない機能です。お試しいただくならいまのうちかもしれません。

この記事が気に入ったらサポートをしてみませんか?