UWSCにまつわる小話

タイトルについて (2006/11/27)

このページのタイトルの『UWSCの誘惑』について書いておきます。今の私は『UWSCスクリプト作成中毒』です。夜更けに帰宅して、パソコンの電源を入れると『自動化が必要な案件はないかな』スクリプト作成をやりたくてたくらないのです。本当は、本や雑誌も読みたいし、録画でためているテレビ番組も見たい。部屋の片づけもしなければならない。それらをそっちのけで、スクリプトを書いているのです。『UWSCの誘惑』に負けて部屋が散らかっているのです。 部屋の片づけもUWSCで自動化できないかな。

iTunesCOM (2006/12/2)

iTunes に COM オブシェクトがあることを知りました。iTunes では、UWSCのclkitem()で選べるアイテムがひとつもないので面倒でしたが、これで励みができました。しかし、説明ページは英語なんですよね。ヘルプファイル iTunesCOM.chm の日本語対応がどこかに無いかな。

public 変数の多重定義 (2007/1/28)

うみうみ屋さんの掲示板で取り上げられた、public 文が多重定義できてしまう、について書きます。

結論:PUBLICは多重定義を許すのが仕様。
理由:CALL文で呼んでもエラーにならないように。

この仕様は、違和感があります。文法エラーにならない分、多重定義の有無などに人間が気を遣う必要がでてくる。スクリプトのバグが分かりにくくなるからです。それより、文法エラーで機械的にはじいてくれた方が安心。 PUBLIC多重定義の禁止をOPTION EXPLICIT と同様に、<OPTION指定>に追加するという要望を出すことも考えましたが、やめました。私はあまりPUBLICを使わないからです。

私が PUBLIC を使う上で、留意していることは、
(1)汎用関数ではPUBLIC変数は使わない。値の受け渡しは、関数の引数にて行う。
(2)単独のスクリプト内で、関数の引数による受け渡しが多すぎて、複雑になる場合にPUBLIC変数を使用。

----------
関連する投稿が、眠たい詩人の掲示板に寄せられています。(2007/1/30)

UWSC のEXE化機能 (2007/03/25)

うみうみ屋さんの掲示板で、UWSCの新機能・EXE化ツールを知りました。ボジティブ・サプライズでした。夢見ていたことが現実になりました。税込6,720円をすぐに払って、UWSC Proのライセンスを買いました。従来のインタープリタ型のスクリプトであっても、\10,000位が適正価格というのが、私の実感です。なので試用せずに、喜んで払いました。パッケージソフトをのぞけば、ソフトウエアにお金を払うのは、Alpha Chart以来です。自分の好きなことのためにお金を使うのは幸せです。


--- 私の会社でのひとこま・はじめ ---

[マニュアル執筆担当]うちのソフトのバージョンアップした部分のマニュアルを書かなきゃいけないんだけど、画像データあるかなァ?
[眠たい詩人]無いです。
[眠たい詩人]無いので、画面キャプチャーですね。
[眠たい詩人]取りたい画面を指定してください。
[眠たい詩人]画像ファイルは、サーバの共有フォルダに入れておきますよ。
[マニュアル執筆担当]うん。ありがとう。その画面キャプチャーのソフトいいね。フリーソフトなの?
[眠たい詩人]はい。
[マニュアル執筆担当]じゃ、ダウンロードできるアドレスをメールで送ってくれる?

ここで眠たい詩人の取りうる選択肢は、3つ。
  1. 自作スクリプト(.UWS)とUWSCがダウンロードできるアドレスを渡す。
    これは気が進まないです。もしも、自作スクリプトの中の記述をググられたら、自分のサイトが会社の人に知られてしまい、サイトの記者が私であると勘づかれるおそれがあります。
  2. 自作スクリプト(.UWS)にスクランブルをかけてからUWSCのアドレスと一緒に渡す。
    言葉では言い表せない嫌らしさが残ります。もったいぶって隠す程の技が書いてあるわけでもないですしね。
    さらに(1)(2)ともに、マニュアル執筆担当が、インストールを自分でできない可能性もあります。教えるのが面倒。うみうみ屋さんの掲示板の常連さん程には、私は親切ではないのです。そこで第三の選択肢。
  3. フリーソフトといっても、自分流に書き換えているし、インストールが面倒ですよ。などといってやんわりと断る。
--- 私の会社でのひとこま、の妄想おわり ---


EXEへ変換したスクリプトを渡せば、ソースも見えない。インストールも楽。文字通り一石二鳥です。さらに、プログラマー気分が味わえます。普通の人は、xxxx.exe を渡されたときに、言語の違いに気づかないでしょうからね。 6,720円でプログラマーになれました。

UWSCの公式ページからのリンク (2007/03/31)

UWSCの公式ページに、当サイトへのリンクが掲載されました。2007/03/20からのようです。ポジティブサプライズなのですが、EXE化機能を知った日と同じ日に気づいたので、サプライズの度合いが、かすんでしまいました。それでも喜びは大きいです。
あらためて自分が掲載したスクリプトを見ると、無駄な処理が多いと感じます。逆にいうと、スクリプトを書いた当時より、現在の方が技量が向上したのもしれません。
ところで、なぜスクリプトを公開するのかを改めて考えてみました。どうも目的がはっきりしません。
挙げつらってみましたが、どれも核心をついていない気がします。むしろ、
これがもっとも実感に近いかもしれません。

スレッド嫌い (2007/04/10)

スレッド thread()を、私はほとんど使いません。複数の処理が動いてしまうと、私の単純な頭では、処理を追いきれない気がするのです。唯一使ったのは、IEのinput type=file へ文字列を入力するときです。 そういえば、私は携帯電話で話しながらの自動車の運転ができません。
マルチスレッドを縦横無尽に使いこなす人は、きっと、いくつもの仕事を平行してできる優秀な人であるにちがいありません。

UWSC没頭一周年記念寄稿 (2007/05/23)

UWSCに出会ったのは、2006年の黄金週間でした。UWSCスクリプトを闇雲につくって1年経過。私の生涯3番目の趣味といえるくらいの比重を、今の生活の中に占めています。ひとつのことに集中して取り組んで、自分の思い通りにできることが多くなるのは、とても楽しいです。スポーツに熱中して、自分の進歩が実感できた体験と通い合うものがあります。

UWSCの個別機能は、だいぶ理解できました。連想配列、スレッド、PARAM_STR[]。このあたりは、自信を持って活用できるようになりました。特に連想配列で、重複の値が自動的に削除される点には感動しました。
クラス化は、ネット検索をしても意味不明でしたが、旧掲示板の umiumiさんのコメントで気が楽になりました。

----- 旧掲示版より引用・はじめ -----
Re:クラス化 umiumi 【2006/04/24 22:12:26】

クラス化としていますが、継承もインスタンス生成もできないので
クラス化というよりもグループ化と考えて下さい
現状では機能をグループ化できると言う程度の事しかできません。
将来的にもキチンと拡張するかは ...な所です
----- 旧掲示版より引用・おわり -----

実際クラス化を使ってみたら、ソースが見やすくなる利点を感じました。巨大なスクリプトを作るときには、有効でしょう。

あと、UWSCの標準機能で手つかずなのは、DEF_DLL です。そのうち取り組もうと思いながら、なかなか機会がありません。これについては、UWSC掲示板のいりやさんの投稿が目を引きました。

----- UWSC掲示版より引用・はじめ -----
RE:キー入力について いりや  DATE:2007/5/20(Sun) 00:46

(前略)
UWSC 初学者は DLL 使用の前に高・低レベル組み込み手続きの用法把握に注力するほうが目的に早く到達すると思われます。
----- UWSC掲示版より引用・おわり -----

自分の取り組み方が間違っていないという確信が持てました。DEF_DLLを使わなくても、UWSCではかなりのことができてしまうので、支障がないともいえます。DEF_DLLは道具すなわち、手段にすぎません。目的のために DEF_DLLが欠かせない状況に直面したら、DEF_DLLを学べば良い、その程度にとどめておきます。

UWSC掲示板は相変わらず、愛読しています。積極的に投稿もしてきましたが、正直飽きがきている感じです。今後は、少し違った取り組みをすべきかと思いを巡らしています。

株式会社ジェイケン (2007/05/30)

UWSC公式サイトの著作権表示が変更されています。

2007/03/20 : Copyright (C) 2007 J-ken Inc. All rights reserved.
 ↓
2007/05/29 : Copyright (C) 2007 umiumi All rights reserved.

他にも、株式会社ジェイケンの記述はUWSC公式サイトからすべて消えています。
さかのぼって、2007年3月19日 19:18:31 google のキャッシュのUWSC公式サイトの『LINK』には下の記述がありました。

UWSCを全面的にバックアップしてくれている会社です
株式会社ジェイケン


ジェイケンがUWSCの著作権者ではなくなったこと。および全面的にバックアップをしてくれる関係でもなくなったということのようです。
ジェイケンがドリコム(証券コード3793)の子会社になることによる事業再編の影響でしょうか。我々UWSCユーザにどんな影響があるかは不明ですが、少し心配です。
そういえば、2007/03/20 のUWSC公式サイトが一新したときに、本家掲示板のタイトルも変わっていました。著作権が変わったことをきっかけに、元の『うみうみ屋さんの掲示板』というタイトルに戻ることを願います。

[参考文献]
株式会社ジェイケンの株式取得に伴う子会社化に関するお知らせ

EXE生成時の圧縮オプション (2007/06/02)

UWSC V4.3 が公開されました。私が要望や質問したことが4つも反映されていました。とてもありがたいです。
ところで、個人的に目を引く追加機能がありました。

UPX(実行ファイルを圧縮)を呼び出すオプションを付けた

これを見た瞬間、勝手に感慨に耽りました。
拙作スクリプト『UWSCスクリプトからEXEを生成し、EXEを圧縮。』も寿命を終えた。短い賞味期限だったが、これもUWSCの進化の証だ。
と思ったのも束の間、新機能を検証すると、まだ拙作が生き残る余地があることが判明しました。結論から書きます。uws2exe.exe のUPXを呼び出すオプションでは、upx.exeの起動オプションを指定できないようです。実例で説明します。

(uws2exe.INI で指定の内容)
○ UpxPath=D:\PrgCp\upx203w
○ UpxPath=D:\PrgCp\upx203w\upx.exe
× UpxPath=D:\PrgCp\upx203w\upx.exe -9
× UpxPath="D:\PrgCp\upx203w\upx.exe -9"

  ○:EXE生成および圧縮正常。
  ×:EXE生成は正常。圧縮自体がされず。

upx.exe をオプション付きで起動したい方は、『UWSCスクリプトからEXEを生成し、EXEを圧縮。』をお使いください。この程度のことにUWSCスクリプトを使うのに抵抗のある方のために、バッチファイルも用意しました。今更ですが。

ちなみに、upx.exe に『-9』オプションをつけると、少し圧縮比率が高まるのです。

圧縮対象のスクリプト
--- TEST.UWS ---
msgbox("UWSC")
----------------
圧縮状態 ファイルサイズ(バイト)
圧縮しない 1,501,184
upxで圧縮(upx.exe起動オプションなし) 519,168
upxで圧縮(upx.exe /9) 513,024
(UWSC Pro 4.3 | UPX Ver2.03 | WinXp Home Sp2 で確認)

スレッドの障害? (2007/06/26)

スクリプトのメイン部で入力待ちの窓が表示されると、スクリプトのメイン部が停止する。この場合はスレッドで、事前に入力待ちの窓のボタンを押す処理を仕掛けて待機するのがセオリー。しかしながら、UWSC V4.3b でこれが通用しない箇所が2点確認されました。以前は動作していた気がしますが、過去版での動作確認は省きます。
ひとつは、スレッドの代わりに別プロセスのスクリプトを起動して解決。もうひとつは、input type=file への入力だったので、IESetData()関数で代用。代用といってもこの方が簡潔になりました。
スレッドについては、未解決の問題も残っているし対応がたいへんそうです。スレッドがらみの問題点でやっかいなのは、動作したりしなかったりという点です。『よし、動作確認完了。』と実稼働に組み入れても、2、3日動いたかと思えば、スクリプトを何も変更しないのに、翌日途中で停止するということがあります。
スレッドの動作が安定するまでは、別プロセスでスクリプトを起動する方策が無難かもしれません。バージョンアップのたびに、スレッドの動作確認に神経を使うのは切ないですから。

UWSCガイド本の出版 (脳内で企画倒れ) (2007/09/16)

『Windowsマクロテクニック』(小林シンヤ 著)が根強い人気のようです。プログラムやスクリプトは紙の本で学びたい人が多いと言うことのようです。情報量でいったら、インターネットに埋まっている情報の方が多いはずなので、少し不思議な感じもします。この本は読んだことがないのですが、分かりやすい記述がなされていると言うことかもしれません。
では、それにあやかって『UWSCでブラウザを自動操作』といった本を出したら売れるのでしょうか。まあ、UWSC人口は限られているので、VBScript や JScript も一緒に取り上げた方が、得策でしょうね。
ただ、現実問題として、UWSC掲示板に載っているスクリプトを本に載せる場合は著作権にまつわる問題を解決する必要があるし、UWSC掲示板のスクリプトを意図して避けるとしたら、それも不便そう。
やっぱりこの企画は当面見送り。

[参考文献]
掲示板に書かれたものの著作権について
ネット掲示板書き込みにも著作権!)!)東京地裁が初判断

IELINK関数で部分一致 (2007/09/30)

UWSC Ver4.3c の変更項目に、『IELINK関数で部分一致でもOKにした』がありました。
近い将来『完全一致だけを選択対象にしたいのに、部分一致のものが引っかかってしまう』という指摘がなされる予感がします。
その場合は、第4引数で完全一致か部分一致を指定するように変更されるかな?
※これは変更要望ではありません。私の場合は、IE系関数によらないCOM操作がメインですので。

Google には逆らえない? (2007/10/26)

UWSC のある動作の検証をしようとGoogleへ連続アクセスするスクリプトを走らせました。しばし後、下の表示がでました。その後は手操作で何回Google を呼んでも、判で押したように同じ画面となりました。

↓ ----- Google へのアクセス結果の引用 -----

Google Error

We're sorry...
... but your query looks similar to automated requests from a computer virus or spyware application. To protect our users, we can't process your request right now.

We'll restore your access as quickly as possible, so try again soon. In the meantime, if you suspect that your computer or network has been infected, you might want to run a virus checker or spyware remover to make sure that your systems are free of viruses and other spurious software.

We apologize for the inconvenience, and hope we'll see you again on Google.

↑ ----- Google へのアクセス結果の引用 -----

『あなたのコンピュータからの要求は、ウイルスやスパイウエアからの攻撃に似ています。だから、あなたの要求を処理できません。』といった意味です。
結局、Cookie を消したら、復旧しました。その間の心細さといったらありませんでした。Google から遮断・排除されたら、生活が成り立たない、といっても過言ではないかもしれません。あな恐ろしや。

UWSC Pro はプロ向けではない (2007/10/26)

RecIE は初心者にこそ、使わせたい。特に自称『初心者』や自称『素人』に対しては、UWSC 掲示板へIEの質問をする前に試用を強く勧めたいものです。
XLOPEN()関数などのExcelシート用関数は、COM が使える人には、必ずしも必要なものではありません。これも初心者にとって、とっつき易いことを意図していると思われます。
UWSC Pro の『Pro』が Professional の略だとしたら、これ程ミスマッチなものはありません。UWSC(Free)で精進して、UWSC Pro へランクアップする、という誤解を与えかねない名称です。
では、どんな名前がいいか。UWSC Easy (使いやすい) かな? でもこれじゃ売れなさそう。

定数の適用範囲 (2007/12/01)

関数内でのみ適用される定数の宣言がほしい。関数内で const 宣言をしても、関数の外側にも通用してしまいます。それがいやで、結局 dim で代用することが多いです。スクリプトで処理可能な内容には影響しないが、スクリプト作成時の小さなストレスになっています。

Hawkeye は JScript の集合 (2008/03/02)

UWSC で、IE の自動操作を行う場合、HTML の解析が欠かせません。その解析ツールは『スクリプト作成に役立てたいリンク集』に掲載しておきました。拙作のHTMLかんたん解析は、階層構造を追う意志が微塵もありません。なので、込み入ったHTML は各種ブラウザのプラグインで解析する必要があります。一通り試してみたのですが、Hawkeye がいちばん使い易いと感じます。
Hawkeye の『HTML の構造』は、結果をHTML ファイルに出力できるのが便利です。
ところで、私のメインのブラウザは、Sleipnir V1.66 です。Hawkeye を起動するときには、Sleipnir V2 をわざわざ起動していました。Hawkeye は、マウスで機能を選択するつくりなので、操作の手数が多いです。面倒なので、UWSC で自動化を試みましたが、×でした。機能選択では UWSC の clkitem()関数も無効でした。
色々試行していたら、Hawkeye の実体は、JScript であることに気づきました。(Sleipnir のディレクトリ配下の)plugins\scripts\embedded\ というフォルダに各機能に対応する JScript がありました。『HTML の構造』は『HawkeyeViewHtmlStructure.js』でした。このスクリプトは Sleipnir から起動するつくりになっています。これをブラウザの外側から起動して同機能を実現するように変更しました。何と、IE6 または、Sleipnir V1.xx でも『HTML の構造』が使えるようになりました。JScript を少しでもかじっておいて良かったです。
Hawkeye のフォルダには、他にもたくさんの JScript があります。学習対象として興味深い素材がいくつかありそうです。こんな優れた機能をソースコードが見える状態で配布するなんて太っ腹ですね。フェンリルさんに感謝。

日経ビジネスバックナンバー pdf を根こそぎダウンロード? (2008/05/21)

日経ビジネスを定期購読すると、バックナンバー記事を pdf ファイルで閲覧できます。そのサービスは、無料試読期間でも可能なので、試読を申し込みました。試読期間中に、可能な限り記事 pdf ファイルをダウンロード・実ディスクへ保存してしまおうというスケベ根性を抱いていました。UWSCスクリプトを使えば、数十年分の記事をもラクチンで取得できるはず、と踏んでのことでした。
しかし、そのもくろみは、成立しませんでした。ひと月間に閲覧(ダウンロード)できる記事ページ数に制限があったのでした。
往生際悪く、インターネット一時ファイルを削除、クッキーの削除をして再試行しましたが、やはりだめでした。 そんなうまい話は、そうそう無いということでした。

Lunascape API の自動操作 (2008/06/10)

タブブラウザ Lunascape4 は、Lunascape API が公開されています。Sleipnir.API と、とても似ているので、UWSC であっさり操作できました。『スクリプト実例・各種スクリプトでブラウザを操作』に基本スクリプトを載せました。
UWSC と VBScript は、期待した動作をしたのですが、JScript では、Lunascape4 を起動できませんでした。
Lunascape の掲示板で問い合わせたところ、Lunascape4 をスクリプトから起動するのは、仕様外の使い方とのことでした。とすると、『スクリプト実例・各種スクリプトでブラウザを操作』に載せた Lunascape4 の操作スクリプトは、掲載をやめるべきか、悩みどころです。

[参考]
Lunascape掲示板 - スクリプト関連掲示板 - JScript から Lunascape を起動できない

(追記:2008/7/8)
『スクリプト実例・各種スクリプトでブラウザを操作』に載せた Lunascape4 の操作スクリプトは、掲載をやめました。

同タイトルの複数のIE (2008/09/04)

UWSC Ver4.4c が公開されました。目を引く変更内容がありました。

GETACTIVEOLEOBJ関数にて IEの同タイトルが複数ある時に順番指定ができるようにした

IEの同タイトルが複数あるときの処理方法には、Shell.Application オブジェクトの windows() メソッドを使う方法が有名です。私自身は、その状況に遭遇しなかったので、真剣に取り組んだことがありませんでした。
ですが、半月前に自らの必要性が生じたときに、Shell.Application を使わずに同タイトルのIEを処理するスクリプトを作りました。
そのうち自サイトに載せるべ、と思っていました。ですが GETACTIVEOLEOBJ関数に新機能が追加されたので、もはや無意味となりました。この手のから振りは大歓迎です。

無料で Vista を使う方法 (2009/06/03)

Windows XP の環境を保持したまま、Windows Vista を使いたければ、Virtual PC 2007 を使うと良いです。下に紹介するサイトに詳しい方法が出ています。あるいは、異なるバージョンのIE で動作確認したい場合にも通用します。ただし、ゲストOSは、英語版のみです。

Virtual PCを使いIE6,7で検証できる環境を作る

上の記事は、日本語フォントのインストール方法が秀逸です。
UWSC掲示板で Vista が話題になったとき、参加できずにさびしさを味わっている方は、試してみてはいかがでしょうか。


月刊『Windows100%』に拙作スクリプトが掲載 (2010/03/13)

晋遊舎刊『Windows100% 2010年4月号』(2010/3/13発売)のUWSCの特集で、拙作スクリプトが紹介および付録DVDに収録されました。 同特集は見開き1ページ(52〜53ページ)で、UWSCの基本の使い方やゲームでの使用例が載っています。
マスコミから連絡を受けたのは、生涯で2回目でした。1回目はNHKからの取材(?)申し込みでした。番組でライブドア事件の特集を行うにあたって、当方のブログのライブドアの記事を見て連絡をくれたもよう。このときは、ブログに載せた問い合わせ先メールアドレスへの着信確認をあまり行っていなかったため、気づいて返信したときには、すでに番組が終わっていました。
現在は、きちんとメール着信確認を行っているので実を結びました。記念品として、掲載された雑誌『Windows100% 2010年4月号』をいただきました。掲載謝礼といえば、朝日新聞『声』欄に投書が載ったときに、図書券\3,000分をもらったことを思い出しました。まあ、謝礼の多寡とは無関係に、雑誌で取り上げられるのはうれしいことです。自己満足で執筆しているサイトとはいえ、反響があまりないことには寂しい思いがあります。なのでたまにこういう出来事があると励みになります。

[紹介・収録されたスクリプト]
iPodを安全に取り外す
iTunesで再生中の曲の歌詞を表示
ISOファイルをDVDドライブへ書き込みおよびDVD再生確認
ISOファイルをフルスクリーン再生

[掲載に関するあれこれ]
日付 出来事
2010/02/12 『UWSCスクリプト掲載のお願い/Windows100%編集部(晋遊舎)』というメールを受信
同日 当方から晋遊舎への質問を送信
2010/02/15 当方からの質問に対する晋遊舎からの回答を受信
2010/02/17 掲載の条件を晋遊舎へ送信
2010/03/13 掲載誌『Windows100% 2010年4月号』が発売
同日 掲載誌が拙宅へ到着


『週刊アスキー』に拙作スクリプトが掲載 (2010/09/14)

拙作「NemLyrics (ネムリリック)」がアスキー・メディアワークス社刊『週刊アスキー』2010年9月28日・10月5日合併号「無料ソフトコレクション800」にて紹介されました。 自分の作品をVector に載せるというのは、密かな目標でした。それを達成できたのみならず、雑誌紹介はとてもうれしいです。

 ↓ 『週刊アスキー』2010年9月28日・10月5日合併号180ページ
掲載写真



←トップページのカウンタと共通です。