HTAの話についてまとめたので、アップしておきます。
To: 【おじさま】 さん
>日本語版が出たら入れてみたい気がしますが、このところ WSH 自体に
>あまり触れていません(WSH に限らずプログラミング全体に)。
私も一時遠ざかっていたことがありますが、間をおくと勘が鈍りますね。
今回のバージョンアップは、マイナーバージョンアップにとどまるような気もします。
ところで、IE5.5・Windows Script5.5でバージョンがそろうのでしょうか。
#何でIE5.01・Windows Script5.1なんでしょう…。
To: abuku さん
> IE4がここまで関わっているとは知りませんでした。
世の中には、Windows98からIE4を分離するツールがあるくらいで。
>5.00.2919.6307ICだと思います。僕は友達に聞いて恐る恐るインス
>トールしてみました。あまり変化は無いと思いますが。
バージョンだけを見ても、あまり変わらないですね(^^;
> ここは思いきってWIN98にしてしまうというのはどうでしょう?
究極的にはそれがいいのかもしれませんね。
To: 悩み者 さん
>VBで入力する項目の所で、Windows標準のホップアップメニューを利用
>出来ないようにしたいのですが?どのように対応するか分かりますか?
テキストボックスで、「コピー」とかのメニューを出さないようにするということ
ですよね。
これは、APIを使って何とかする類ではなかったでしょうか。
どこかでサンプルを見たのですが、何処だったか…。
たしか、MSのサイトだったと思うのですが、VBのメニュー「ヘルプ」から飛べる
サイトを探してみてはいかがでしょうか。
To: Sido Muller さん
>>Set WSHSysEnv = WSHShell.Environment("SYSTEM")
>
> この行でやはり「書き込みできません」というエラーが出ます。
おかしいですね。SYSTEM以外のPROCESSとかではどうですか?
こんにちは〜。
>IE4があるかないかで、Win95の"Win98度"(なんだそれは)が異なってきます。
>IE4をシェル統合でインストールしたWin95に、IE5を上書きインストールすると、
>かなりWin98+IE5環境に近づくと思います。
>IE4の有無が今回の不具合を生み出しているかどうかはわかりませんが。
IE4がここまで関わっているとは知りませんでした。
>5.00.2314以上をお使いになることをおすすめします。
>また、現在、IE5.01というのが出ています。
>私はまだインストールしてませんので、ビルドバージョンは知りません。
5.00.2919.6307ICだと思います。僕は友達に聞いて恐る恐るインス
トールしてみました。あまり変化は無いと思いますが。
>IE5.01にはVBS5.1のスクリプトエンジンが同梱されているはずです。
>Windows Script 5.1相当のスクリプトエンジンだと思います。
しかし、スクリプトエンジンが0.1遅いだけで文字化けが起こるとは
思えないんですけど・・。というか、因果関係は無いように思えますが
ここは藁にもすがりましょう(T_T)
ここは思いきってWIN98にしてしまうというのはどうでしょう?
アップデートパッケージを使って・・。
#たかが文字化けだけに一万チョイもかけれられん!と言われたら
それまでなのですが・・。
会社にアップグレードパッケージはありませんか?>さむさん
質問を書いてみます。分かる方教えてください。
VBで入力する項目の所で、Windows標準のホップアップメニューを利用
出来ないようにしたいのですが?どのように対応するか分かりますか?
突然ですが、お聞きしたいことがあるのですが?VBについてです。
管理人さんのサンプルをコピー&ペーストして実行してみたんですが
>Set WSHSysEnv = WSHShell.Environment("SYSTEM")
この行でやはり「書き込みできません」というエラーが出ます。
私のマシンの設定が悪いのかなぁ。
管理人さん、ありがとうございます。
私がきちんと読んでなかったんですね。(^_^;)
リファレンスの方を読んでみたんですが、こちらも読み落としていたかも。
早速試してみます。
To: Sido Muller さん
>>Set WSHEnv = WshShell.Environment '1.WshEnvironmentオブジェクトを作成
>のところで、「書き込み禁止です」というエラーが出ます。
Lesson11を隅から隅まで読むと、実は解答があります。
以下、Lesson11から…
Win9xでは、Environmentプロパティに指定できる引数は、"Process"だけ(よって省略可)
なのですが、NTではそのほかに、"System"、"User"、"Volatile"の3つの引数が指定でき
るのです。
Set WSHShell = WScript.CreateObject("Wscript.Shell")
Set WSHSysEnv = WSHShell.Environment("SYSTEM")
MsgBox WSHSysEnv("NUMBER_OF_PROCESSORS")
のように、NTではEnvironmentプロパティの引数を省略できません。
#「指定できるのです」ではなく、「指定しなければなりません」としておくべきかも。
管理人むたぐち さん
>実は知ってました(^^;
実は多分既にご存知だろうなと思っていました(^^;)。
日本語版が出たら入れてみたい気がしますが、このところ WSH 自体に
あまり触れていません(WSH に限らずプログラミング全体に)。
連休も家族サービスで終わってしまいましたし。
自己レスです。
リファレンスをみると、98/95、Win2000は有るのですが、NT4.0の記述はありません。
どうもNT4.0ではサポートされてないような感じです。
VBScriptを使うと、マシンの管理が自動化できそうで、興味があったんですが、なかなか良い参考書を見つけられず、今まで手を着けていませんでした。
ここの掲示板は具体的で、理解しやすくありがたいです。
早速質問なんですが、「Lesson11 環境変数と特殊フォルダ」の一番最初の例題を自分のマシンで実行してみたところ、
>Set WSHEnv = WshShell.Environment '1.WshEnvironmentオブジェクトを作成
のところで、「書き込み禁止です」というエラーが出ます。
最新のWSH5.1を入れてるのですが、どこか設定し治さないといけないでしょうか。
マシンはNT4.0SP5です。お願いします。
久しぶりに「オブジェクトの解説」更新しました。(というか、更新自体久しぶり)
といっても、前に書いたことの焼き直しですが(^^;
それと、スクリプトも一つ追加しました。まあダウンロードして笑ってやってください。
10行のVBSに、200行のHTAのインストーラーをつけるという暴挙に出ています(爆)
このVBS自体は、前にとあるニュースグループに投稿したものです。
このスクリプトの存在意義については、付属ドキュメント参照。
To: さくら さん
>このhoge.exeにパラメータを与えて起動させてやりたいのですが、
>そのパラメータが固定されたものではなく、tStringという変数に格納されているものな>のです。
wshshell.run "C:\PROGRA~1\hoge\hoge.EXE " & tString
が正解です。
ポイントは、
・パラメータはパスの後に記述するが、そのとき空白を一つ以上
いれなければならない
・変数名を""でくくると単なる文字列として扱われてしまう。
・「+」は、文字列同士だと連結演算子となるが、数値だと足し算になる。「&」の
方が確実(これは好みです)
・VBSでは、値を参照しない場合は、引数に括弧をつけないのが基本(と思う)。
ret=wshshell.run ("C:/PROGRA~1/hoge/hoge.EXE " & tString)
のように、値(この場合終了コードかな)を参照するときに括弧をつける。
はじめまして、さくらと申します。
runについて少し解らないことがあったのでご教示願います。
wshshell.run("C:/PROGRA~1/hoge/hoge.EXE")
通常、hoge.exeを起動させるにはこれでよいと思います。
このhoge.exeにパラメータを与えて起動させてやりたいのですが、
そのパラメータが固定されたものではなく、tStringという変数に格納されているものなのです。
こいつをhoge.exeに渡そうと
wshshell.run("C:/PROGRA~1/hoge/hoge.EXE + tString")
や
wshshell.run("C:/PROGRA~1/hoge/hoge.EXE & tString")
やら
wshshell.run("C:/PROGRA~1/hoge/hoge.EXE" + "tString")
など悪あがきをしてみたのですが、どうしてもパラメータが渡せません、どのようにしたらよいのでしょうか?
To: Decorative さん
>推奨されていませんが、2つのスイッチ -f -q を実行するコマンドへ追加で可能です。
そんなオプションがあるのですね。
うーん、よくご存じですね(驚嘆)
というわけで、のなのなさん、これを試してみてはいかがでしょう。
To: abuku さん
>OSはWIN98ですけど・・・これって関係ありますかね?>むたぐちさん
IE4があるかないかで、Win95の"Win98度"(なんだそれは)が異なってきます。
IE4をシェル統合でインストールしたWin95に、IE5を上書きインストールすると、
かなりWin98+IE5環境に近づくと思います。
IE4の有無が今回の不具合を生み出しているかどうかはわかりませんが。
To: 【おじさま】 さん
>Version 5.5 ベータ 1 というスクリプトエンジンが出ているようです。
実は知ってました(^^;
どうも、正規表現のオブジェクトが機能拡張されているようですよ。
WSH自体は、たぶん2.0のままです。
参考:http://msdn.microsoft.com/voices/scripting.asp
To: さむ さん
>長い質問を3回も書き込んだみたいですみませんでした。
Y2Kのせいにしてしまいましょう。(この手は今年限り)
>OSは,WIN95「4.00.950B」です。
>IE5は,IE5「5.00.2014.0216」です。
IE5のバージョンが古いですね。
エクスプローラがやたら重くなるという不具合は出ていませんか?
(これは、IE4をインストールしていないWin95では関係ないかも)
5.00.2314以上をお使いになることをおすすめします。
また、現在、IE5.01というのが出ています。
私はまだインストールしてませんので、ビルドバージョンは知りません。
>ひょっとして,IE5に付属してインストールされたとすれば,
>前のバージョンはわかりません。(そんな事があれば,ですけど)
IE5.0には、VBS5.0のスクリプトエンジンが同梱されています。
「Visual Basicスクリプトサポート」とかいうのが該当します。
Windows Script 5.0相当のスクリプトエンジンです。
IE5.01にはVBS5.1のスクリプトエンジンが同梱されているはずです。
Windows Script 5.1相当のスクリプトエンジンだと思います。
管理人むたぐち さん こんにちは。
"<..> #-nオプション以外に、ダイアログ非表示のオプションとかあるのかな? <..>"
推奨されていませんが、2つのスイッチ -f -q を実行するコマンドへ追加で可能です。
さむ さん こんにちは。
IE501(<>IE5) のインストール(最小構成OK)で奇跡が起きるかも・・・って私は信じています。
むたぐちさん、さむさん
>OSは,WIN95「4.00.950B」です。
>IE5は,IE5「5.00.2014.0216」です。
う〜ん・・・IE僕は5.01ですけど、それは関係無いと思います。
OSはWIN98ですけど・・・これって関係ありますかね?>むたぐちさん
ああ・・・でもWSH自体は実行できてるんだよなぁ・・・
ってことはOSは関係ないのかなぁ。
>WSHは,今回インストールしたのが初めてです。(Win95だし)
>ひょっとして,IE5に付属してインストールされたとすれば,
>前のバージョンはわかりません。(そんな事があれば,ですけど)
確かIE5をインストールすると自動的にWSHも組み込まれる、というの
を聞いたような気がします。ですが、カスタマイズ(最少構成)等ですと
もしかしたら入っていないので、なんらかの原因があるのかも知れませ
んけど・・・(多分平気だとは思うのですが)
逆に質問みたいで申し訳ないっす。
Version 5.5 ベータ 1 というスクリプトエンジンが出ているようです。
でも今のところ英語版だけ。Windows2000 用は他の Windows 用と別フ
ァイルになっています。落としてみたいけれど英語版だけなので落とし
ていません。
(はじめに)
長い質問を3回も書き込んだみたいですみませんでした。
ぜんぜん気がつかず,本人もびっくりしてます。
to むたぐちさん
ありがとうございます。
セーフモードで立ちあげてみましたが,ダメでした。
インストールしたフォントがあるので,これをアンインストールするのと,
IEの修復は今度やってみます。(今は時間がありませんので)
to abukuさん
横レス(っていうんですね)ありがとうございました。
OSは,WIN95「4.00.950B」です。
IE5は,IE5「5.00.2014.0216」です。
WSHは,今回インストールしたのが初めてです。(Win95だし)
ひょっとして,IE5に付属してインストールされたとすれば,
前のバージョンはわかりません。(そんな事があれば,ですけど)
To: abuku さん
> ちょこっとしたY2K問題はありましたね。
本当にちょこっとした問題ですね。
こんなに何も起こらないと、かえって不気味な気もします。
次の注意日は2月29日ですね。とはいえ、
閏年の条件:(4で割り切れる And 100で割り切れない) Or 400で割り切れる
今年は、例外(100年に一度)の例外(400年に一度)の年なので、別に4で割り切れる
ということだけで閏年の判定をプログラムされていても誤動作しないので、
特に心配はないでしょう。(2000も00も1900も19100も4で割り切れる)
100年後の2100年(平年)は知りませんが…。
#閏年の判定は、プログラミングの論理演算の例として最適です(^^;
To: abuku さん・さむ さん
> 僕が使用しているWSHはさむさんのおっしゃるDLL群と同一のものです。
> バージョンも全て同じでした。もちろんwscript.exeも同じです。
> (サイズも更新日時も同じです)しかし文字化けは起こっていません。
調べたところ、私も同じでした。
> 1.相性が悪いアプリがインストールされている
> 2.フォントの問題
2.が怪しいですね。
フォントキャッシュが壊れているのかもしれません。
その場合は、おきまりの対処法がありまして、Windowsを一度セーフモードで立ち上げると
たいてい直ります。
ただ、今回の現象がwscript.exeのエラーダイアログだけに起こるのであれば、
これが原因ではないかもしれません。
あと、IE5が関係している可能性もあるのではないでしょうか。
IE5の修復セットアップを試されるのもいいかもしれません(根拠はあまりありません)
なるべくエラーのでないスクリプト作りを心がけていただくというのは、だめですかやっぱり(爆)
To: のなのな さん
>アプリケーションの追加と削除を自動化したいと考えています。
>プログラム更新作業の自動化を図りたいわけです。
インストールに関しては、WshShell.Runで直接setup.exeを実行するので
構わないと思います。ただ、その後ショートカットの指定などが
あるので、自動化は難しいでしょう。
もし、のなのなさん作のアプリの更新作業ということであれば、
VBのセットアッププログラム自体をカスタマイズする(たとえば、ダイアログ等を
出さずに、自動でインストールするオプションをつける)
という手もあると思います。
ただ、VB5ではセットアッププログラムsetup1.exeがvbpファイルとして編集可能で
あるのに対し、VB6ではそれができないみたいですね。(自分でアプリを配布したことが
ないので、詳しくは知りません)
VBのアプリをインストールすると、レジストリに
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\ST6UNST #1
というキーが作られます。
ST6UNST #1 のうち、6はVBのバージョン、#1は、インストール順につけられる番号です。
このキーの、UninstallStringという値の名前に入った値のデータが、
アンインストールを実行するコマンドです。
このコマンドをWshShell.Runで実行させると、アンインストールウィザードが実行されます。
C:\WINDOWS\st6unst.exe -n "C:\Program Files\アプリ\ST6UNST.LOG"
という感じです。このコマンドは、一つのアプリで固有なので、
わざわざスクリプト中で、レジストリキーを読み込んで調べる必要もないでしょう。
この後SendKeysで適当なキーコードを送ってやるといいかもしれませんが、
VBのセットアッププログラムは、「削除しますか」というダイアログに
はAlt+Yを送ればいいですが、次に共有ファイルの削除の質問がある場合とない
場合があるので、これの処理が難しいですね。
アンインストールに関しては、st6unst.exeがおこなうので、これも変更
できません。#-nオプション以外に、ダイアログ非表示のオプションとかあるのかな?
(これはVB5のアンインストーラでも基本的に同じ)
自分でアンインストーラを作るしかないでしょう。
また、exeファイルの更新というだけなら、exeファイルを上書きするだけで問題は
ないと思います。他のdllや、とくにocxの手動上書きはまずいですが。
VB5でコンパイルされたexeに、VB6でコンパイルしたものを上書き、とかも当然不可です。
いろいろ書いてみましたが、あまり役にたつことは書いてないかも(^^;
むたぐちさん
お久しぶりです&明けましておめでとうございます。
ちょこっとしたY2K問題はありましたね。むたぐちさ
んのHPは平気っぽいのですが、知り合いのページで
掲示板の書き込み時間が100年もしくは19100年にな
ってしまうという事がありました。すぐ直せたみたい
ですけど(^_^;)
さむさん
横レス失礼します。abukuといいます。
>なんか怪しそうな気がします。wscript.exe だけが新しくなったste51jp.exe
>をDL&INSTしてしまったのでしょうか?
>そしてこれ(ste51jp.exe 5.1.0.4711)のバグ?
僕が使用しているWSHはさむさんのおっしゃるDLL群と同一のものです。
バージョンも全て同じでした。もちろんwscript.exeも同じです。
(サイズも更新日時も同じです)しかし文字化けは起こっていません。
やはり他の原因が考えられるのではないでしょうか?
例えば・・・
1.相性が悪いアプリがインストールされている
2.フォントの問題
ですかねぇ・・(あくまでも可能性です)
・OS
・以前のWSHをインストールしていたか(もしくは既にインストール済み)
↑この二つを教えていただけませんか?
アプリケーションの追加と削除を自動化したいと考えています。
プログラム更新作業の自動化を図りたいわけです。
プロセスとしては
1 旧プログラムを削除
2 新プログラムの追加
どちらもVBで開発し、ディストリビュージョンウィザードで作成したセットアップモジュールを実行できるものです。
今現在コントロールパネルを開くステップまではわかっています。
そのあとの、該当モジュールの削除と登録をユーザーがキー入力なしで行う方法を探しています。
なんとかWSHで済ませる方法がないでしょうか。
>ど素人ですみません。もう一度教えて下さい。
>>日本語版って,何の日本語版ですか?
>もちろんWindows Script 5.1の日本語版ということですが、
>>ste51jp.exe(....これの日本語版でしょうか)
>これです。これが正常にセットアップされていれば、問題はないはずなんですが…。
昨年の暮れ,WSHのエラー表示の文字化けについて,質問させて頂いた者です。
年末年始は田舎に帰っていたので,しばらくWSHをいじっていませんでした。
そんな訳で,結果報告が遅くなってしまいました。
で,相変わらず,エラー表示が文字化けしています。
むたぐちさんから「ste51jp.exe で間違っていない」という御返事だったので,
いろいろアンインストールしたり,再インストールしたりしましたが,効果が
ありません。
ste51jp.exe を実行して,WSHがインストールされる時に表示される
「著作権表示」(?) に同時にインストールされるランタイムとかが書いてあったので
いろいろ見ていると,たいていのファイルのバージョンが「5.1.0.4615」で
(正確には,vbscript.dll, vbsjp.dll, jsjp.dll, jscript.dll
scrrun.dll, scrnjp.dll, dispex.dll, wshom.ocx, wshext.dll)
一部のファイル(scrobj.dll, scojp.dll)だけが「1.1.0.4615」になっていました。
「x.1.0.4615」は,何かの符合(もしくはバージョンの付け間違い?)でしょうか?
話がそれましたが,wscript.exe だけが,「5.1.0.4711」になっているのです。
なんか怪しそうな気がします。wscript.exe だけが新しくなった ste51jp.exe を
DL&INSTしてしまったのでしょうか?
そしてこれ(ste51jp.exe 5.1.0.4711)のバグ?
私は,WSH1カ月未満の超初心者なので,快適に動作している他のみなさんより
新しいのをDLしてしまった可能性は充分あるような気がします...。
ちなみに,
サイズ :88.0KB(90,162バイト)
作成日時:1999.10.27
更新日時:1999.11.11
です。
どなたか,私の wscript.exe が古いかどうか,教えて下さい。
>ど素人ですみません。もう一度教えて下さい。
>>日本語版って,何の日本語版ですか?
>もちろんWindows Script 5.1の日本語版ということですが、
>>ste51jp.exe(....これの日本語版でしょうか)
>これです。これが正常にセットアップされていれば、問題はないはずなんですが…。
昨年の暮れ,WSHのエラー表示の文字化けについて,質問させて頂いた者です。
年末年始は田舎に帰っていたので,しばらくWSHをいじっていませんでした。
そんな訳で,結果報告が遅くなってしまいました。
で,相変わらず,エラー表示が文字化けしています。
むたぐちさんから「ste51jp.exe で間違っていない」という御返事だったので,
いろいろアンインストールしたり,再インストールしたりしましたが,効果が
ありません。
ste51jp.exe を実行して,WSHがインストールされる時に表示される
「著作権表示」(?) に同時にインストールされるランタイムとかが書いてあったので
いろいろ見ていると,たいていのファイルのバージョンが「5.1.0.4615」で
(正確には,vbscript.dll, vbsjp.dll, jsjp.dll, jscript.dll
scrrun.dll, scrnjp.dll, dispex.dll, wshom.ocx, wshext.dll)
一部のファイル(scrobj.dll, scojp.dll)だけが「1.1.0.4615」になっていました。
「x.1.0.4615」は,何かの符合(もしくはバージョンの付け間違い?)でしょうか?
話がそれましたが,wscript.exe だけが,「5.1.0.4711」になっているのです。
なんか怪しそうな気がします。wscript.exe だけが新しくなった ste51jp.exe を
DL&INSTしてしまったのでしょうか?
そしてこれ(ste51jp.exe 5.1.0.4711)のバグ?
私は,WSH1カ月未満の超初心者なので,快適に動作している他のみなさんより
新しいのをDLしてしまった可能性は充分あるような気がします...。
ちなみに,
サイズ :88.0KB(90,162バイト)
作成日時:1999.10.27
更新日時:1999.11.11
です。
どなたか,私の wscript.exe が古いかどうか,教えて下さい。
>ど素人ですみません。もう一度教えて下さい。
>>日本語版って,何の日本語版ですか?
>もちろんWindows Script 5.1の日本語版ということですが、
>>ste51jp.exe(....これの日本語版でしょうか)
>これです。これが正常にセットアップされていれば、問題はないはずなんですが…。
昨年の暮れ,WSHのエラー表示の文字化けについて,質問させて頂いた者です。
年末年始は田舎に帰っていたので,しばらくWSHをいじっていませんでした。
そんな訳で,結果報告が遅くなってしまいました。
で,相変わらず,エラー表示が文字化けしています。
むたぐちさんから「ste51jp.exe で間違っていない」という御返事だったので,
いろいろアンインストールしたり,再インストールしたりしましたが,効果が
ありません。
ste51jp.exe を実行して,WSHがインストールされる時に表示される
「著作権表示」(?) に同時にインストールされるランタイムとかが書いてあったので
いろいろ見ていると,たいていのファイルのバージョンが「5.1.0.4615」で
(正確には,vbscript.dll, vbsjp.dll, jsjp.dll, jscript.dll
scrrun.dll, scrnjp.dll, dispex.dll, wshom.ocx, wshext.dll)
一部のファイル(scrobj.dll, scojp.dll)だけが「1.1.0.4615」になっていました。
「x.1.0.4615」は,何かの符合(もしくはバージョンの付け間違い?)でしょうか?
話がそれましたが,wscript.exe だけが,「5.1.0.4711」になっているのです。
なんか怪しそうな気がします。wscript.exe だけが新しくなった ste51jp.exe を
DL&INSTしてしまったのでしょうか?
そしてこれ(ste51jp.exe 5.1.0.4711)のバグ?
私は,WSH1カ月未満の超初心者なので,快適に動作している他のみなさんより
新しいのをDLしてしまった可能性は充分あるような気がします...。
ちなみに,
サイズ :88.0KB(90,162バイト)
作成日時:1999.10.27
更新日時:1999.11.11
です。
どなたか,私の wscript.exe が古いかどうか,教えて下さい。
To: ゲーム作成者見習中 さん
>VBスクリプトで
>ボタンを押して別のページを開けるようにするには
>どーしたらいいのでしょう。
<html><body>
<input type="button" value="Go!" id="button1">
<SCRIPT LANGUAGE="VBScript">
Sub button1_onclick()
window.navigate "http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/"
End Sub
</SCRIPT>
</body></html>
こんなかんじですか。
一般的に、タグのid要素が、スクリプトで扱うオブジェクト名になります。
あとは、Scriptタグ内に、VBと同じように、
Sub オブジェクト名_イベント名(引数)
としてイベントプロシージャを記述するだけです。
この場合は、onclickイベント(クリックした時)を使います。
windowオブジェクト(現在のウィンドウそのもの)のnavigateメソッドで、
任意のページに移動できます。
今HTAの勉強をしているので、こういう質問にも答えられるようになりました(^^;
To: X さん
>あーASPじゃなかった。。。
>聞き流して下さい m(_ _)m
フォローどうもです。
ASPはやっぱり未知の領域です。
あーASPじゃなかった。。。
聞き流して下さい m(_ _)m
VBSじゃないけどこれじゃだめなんでしょうか?
(ボタンっていうのはサブミットボタンじゃないのかな?)
<FORM ACTION="○○.asp" METHOD="POST">
<INPUT TYPE="SUBMIT" VALUE="次">
</FORM>
(○○.asp又は○○.html)
VBスクリプトで
ボタンを押して別のページを開けるようにするには
どーしたらいいのでしょう。
どなたか教えて下さい。
尚、スクリプト始めて1ヶ月ほどなので
極力かんたんにお願いします。
To: 【おじさま】 さん
>心配した(?) Y2K もとりあえず今のところは何も起こっていないようで
>すね。
明日(1/4)に何も起こらなければ、とりあえず心配はないでしょう。
私も含め、ちょっと悲観的になりすぎだったようです。
>今年も宜しくお願いします。
こちらこそよろしくお願いします。
To: Decorative さん
>一般的な英語(スラング)なのでしょう。
ははあ、スラングですか。それなら辞書に載ってるわけがないですね(^^;
>次のスクリプト(Newbie.wsf) で *確認* しました。(笑)
WSH2.0のwsfファイルはサンプルが少ないですからね。参考になります(笑)
"私の座右の書.ハッカーズ大辞典"というProgIDを「オブジェクト解説」に
載せておきます。(嘘)
それにしてもなかなか興味深い成り立ちをもった言葉ですね。
>p.s. 別件ですが、横の Scroll Bar は <body scroll="no">...</body> で消えますヨ。
またおおぼけを… > 私
できないと思いこんでました。
新年明けましておめでとうございます
心配した(?) Y2K もとりあえず今のところは何も起こっていないようで
すね。
今年も宜しくお願いします。
こんにちは、管理人むたぐち さん。Decorative です。
ご明察のとおり、"Newbie" == "初心者" だと思います。
タレントの早見優さんが、(記憶が正しければ)"Beginner" の
くだけた感じのスラングだと言っていたように思います。
一般的な英語(スラング)なのでしょう。
でも、"microsoft.public.scripting.wsh" 内のハッカー達が
使用する場合には、厳密には意味が違うかもしれません。
次のスクリプト(Newbie.wsf) で *確認* しました。(笑)
<job>
<script language="VBScript">
Dim oHacker
Set oHacker = WScript.CreateObject("私の座右の書.ハッカーズ大辞典")
MsgBox oHacker.Newbie
Set oHacker = Nothing
</script>
</job>
== 実行結果 ==
/n[y]oobee/ と読む。
元々はイギリスのパブリックスクールや軍隊のスラング 'new boy' (新入り)から。
USENET の新参者。この用語が最初に登場したのはニューズグループ(newsgroup)
talk.bizarre だが、今は広く使われている。新米(newbie)と見なされる基準は
とてつもなくまちまちだ。あるニューズグループで常連として尊重されている人が、
別のニューズグループでは新米と呼ばれる場合もある。長年 USENET にいるのにその形跡を
慎重に隠している人物に対して、新米というレッテルが重大な侮辱として使われることがある。
p.s. 別件ですが、横の Scroll Bar は <body scroll="no">...</body> で消えますヨ。
(http://msdn.microsoft.com/workshop/author/hta/reference/objects/hta.asp の Remarks を参照下さい)
良いお年を!
新たにキーワード・コメントが色分けできるエディタを発見。まあ、フリーじゃないですが。
・ViVi
ViViは、マクロがJavaScript互換なので、JavaScript使いにはたまらない
エディタでしょう。また、vi互換モードというのがあり、vi派には最適。
シェアウェア\3,000
・WZ Editor
こちらはC言語がベースのマクロを実装しています。
メーラ、ニュースリーダが付属しているのが魅力的。
市販ソフト\9,800
どっちも捨てがたい魅力があります。EmEditorもマクロを搭載したらいいんですが。
まあそうなると値段も跳ね上がるでしょうね(^^;
EmEditorは、マクロではなくプラグイン方式で開発が進んでおり、残念ながら
マクロ搭載の見込みはありません。
#クイックマクロ(キーボードマクロ)は割と使えます。
To: YOU さん
>一つ思ったのですが、横のスクロールバーは消せないのですか。
消せないと思います。そういう属性が、HTA applicationタグにないので。
HTAはでてきたばかりなので、これからってところなんでしょう。
まだアイコンすらないし。
To: Decorative さん
>私は Flash を持っていませんし、HTML Help も Read-Only の Newbie ですが、
この"Newbie"って単語、よく見かけるのですが意味がわからないです。
#ためしにmicrosoft.public.scripting.wshの記事に検索をかけると42件もヒットしました。
こっそり教えていただけませんか?
「初心者」くらいの意味合いなのかな?
>提示された内容が興味深く、ちょっと試して、現象を確認しました。
情報のご提供に感謝します。助かります。
>管理人 むたぐち さんが指摘されているように、.chm ファイルの
>絶対パス(location.href から取り出せます)を元ネタにして、
HTML Helpとはいえ、パスを取り出す方法は普通のHTMLと同じなんですね。
#ということはHTAでも同じ。hta.commandlineでコマンドラインオプションを
#取り出す方法が見えてきました。
To: 松田 出 さん
>突然ですがだいぶ前のお礼を申し上げようと思います。ファイルのソート法
>でお世話になりました松田です。
ご丁寧にどうもです。
>WSHの情報を入手するのがなぜか下手なので、こういう書籍情報もたいへん
>助かります。
もともと情報の絶対量が少ないですからね。
私としても、これからも質のいい情報をみなさまに提供していけるように、
精進していきたい次第です。
それではみなさま良いお年を。
>管理人むたぐち さん
ネットワーク接続のHTA ダウンロードして使ってみました。
一つ思ったのですが、横のスクロールバーは消せないのですか。
ウィンドウサイズの変更をできないようにしたら、
スクロールバーは全く意味無いですよね。
はじめまして、Decorative と名乗る者です。
みっちー さん へ。
私は Flash を持っていませんし、HTML Help も Read-Only の Newbie ですが、
提示された内容が興味深く、ちょっと試して、現象を確認しました。
Script を組むのを避けるような提案なんですが、Flash の .swf ファイルを
HTML Help の .chm ファイル内へ取り込むというのは、どうでしょうか?
各ページで、取り込む .swf ファイルだけ扱えるように設定すれば済むだけでしょうし、
相対パスを使っても取り込めます。設計時にリンケージが解決できれば楽なのでは?!
一方、外部ファイルとして .swf ファイルを配布するには、
管理人 むたぐち さんが指摘されているように、.chm ファイルの
絶対パス(location.href から取り出せます)を元ネタにして、
.swf ファイルを特定する Script が必要だと思います。
TO:管理人むたぐち さん
突然ですがだいぶ前のお礼を申し上げようと思います。ファイルのソート法
でお世話になりました松田です。
>WSHクイックリファレンス 羽山博著 オライリー・ジャパン 3500円
WSHの情報を入手するのがなぜか下手なので、こういう書籍情報もたいへん
助かります。
いろいろありがとうございました。
To: みっちー さん
>そのなかでFlashアニメーションを使用したいのですが、
>EMBEDタグを使用する場合に絶対パスでファイルを指定しなければ
>コンパイルしたときにリンクが外れてしまいます。
えっと、何か難しそうな話ですね(爆)
HTMLヘルプは作ったことがないもので。
code="../hogehoge.ext"のように、相対パスで記述できないというわけですか。
HTMLヘルプ(*.chm)は、自分自身のパスをどうやって取得するのでしょうか。
自分自身のパスが取得できれば、VBSを使って、そこからファイルのパスを生成することは
可能だとは思います。
こんにちは、初めまして。
Microsoft HTML helpを作っております
そのなかでFlashアニメーションを使用したいのですが、
EMBEDタグを使用する場合に絶対パスでファイルを指定しなければ
コンパイルしたときにリンクが外れてしまいます。
このデータはCD-ROMで配布する予定なので、
ファイル指定をVBSCRIPTでドライブや階層に関係なくリンクさせることは
できないでしょうか?
To: さむ さん
>ど素人ですみません。もう一度教えて下さい。
>日本語版って,何の日本語版ですか?
もちろんWindows Script 5.1の日本語版ということですが、
>ste51jp.exe(....これの日本語版でしょうか)
これです。これが正常にセットアップされていれば、問題はないはずなんですが…。
むたぐちさん,ありがとうございました。
実はスクリプトデバッガ(ie401dbg.exe)をDLしただけで,インストールを
してませんでした。
...でも,インストールしても同じです。これじゃないのか...。
全く,勘違いしてるようです。
ど素人ですみません。もう一度教えて下さい。
日本語版って,何の日本語版ですか?
WSH&VBS関係で,これまでにインストールしたのは
HTMLHELP.EXE
VBSdoc.exe
ste51jp.exe(....これの日本語版でしょうか)
WSHDOC.exe
we020lt.exe
ie401dbg.exe
こんな所です。
私の環境は,Win95 + IE5.0 + VB6.0 こんな所です。
よろしくお願いします。
To: さむ さん
>って,文字化けしてます。(エラー:の所は,実際には半角カタカナ)
ちゃんと日本語版をインストールしていますか?
>バックアップをとる為の,簡単なスクリプトを書いてるんですが,
>終了したら,Msgboxを表示するようにしています。
>でも,バックアップ中は何も表示されないし,タスクバーにも何も表示されないし,
>実際には,きちんと実行されているので良いのですが,
>実行されているのを視覚的(?)に確認する方法は,WSHだけではできないのでしょうか?
これはFAQ化していますね…。#「テクニック集」の次のお題はこれに決まりですね。
過去ログを見てもらえばわかると思いますが、WSHの標準機能だけで実現するには、
cscript.exeを使い、WScript.Echoでメッセージを表示するしかないと思います。
もしくは、IEのコントロールを呼び出してメッセージ表示窓代わりにする手も
ありますが、コードが煩雑になり、動作も重いのでおすすめできません。
ファイルコピーに限って言うと、Shellオブジェクトを使えば、経過表示ダイアログを
表示させることができます。詳しくは、「オブジェクトの解説」をどうぞ。
まだいろいろ問題点もありますが…。
そういうことができるコンポーネントもどこかに存在すると思うのですが。
一番いいのは、WSHを見限って(おい)、HTAでスクリプトを作成してしまうことです。
HTAならウィンドウが表示されますし、もちろんスクリプティングランタイムや
WshShellなどの機能も呼び出せます。難点といえば、IE5が必要であることと、
HTMLにスクリプトを書く方法を知らなければならないことです。
HTAの参考例を、「ダウンロード」のところにアップしてますのでどうぞ。
二度めまして。
もうひとつ質問があります。
バックアップをとる為の,簡単なスクリプトを書いてるんですが,
終了したら,Msgboxを表示するようにしています。
でも,バックアップ中は何も表示されないし,タスクバーにも何も表示されないし,
実際には,きちんと実行されているので良いのですが,
実行されているのを視覚的(?)に確認する方法は,WSHだけではできないのでしょうか?
始めまして。だれか教えて下さい。
vbsファイルを実行した時に,コードにエラーがあると,
「Windows Scripting Host」ウィンドウのエラーが出ますよね。でも
スクリプト:c:\Progrm Files\WHWditor\xxx.vbs
行:55
文字:1
エラー:エヨクァッネgオン・U掲DjD.......(以下省略)
コード:800A01B6
ソース:Microsoft VBScript 欄Bィ鳶
って,文字化けしてます。(エラー:の所は,実際には半角カタカナ)
インストールで何か失敗したのでしょうか。
例のネットワーク接続のHTAをとりあえず公開します。
これに機能を足していきたいのですが、どなたか、ネットワークドライブの接続履歴が
格納されたレジストリの場所と内容についてご存じの方はいらっしゃいませんでしょうか?
とにかく私はPCを1台しか所有していないもので、確認ができないのです…。
次の予定は、これらのスクリプトのバージョンアップと、HTA版CDプレイヤーです。
#ActiveX Control Padも入手しました。
To: 松田 出 さん・SIGNAL9 さん
>ASPをお使いなんですね。でしたらJScriptのsortメソッドを
>VBScriptから呼び出す方法の方が合理的かもしれません。
>#WSH2でも同様のことができるんではないでしょうか。
できます。wsfファイルというのに複数のスクリプティング言語で書いたスクリプトを
共存させることができます。
また、松田さんのおっしゃる、インクルードも可能です。これもVBS、JSどちらかあるいは
両方同時にインクルードできます。詳しくは、「WSH2.0の新機能」をご覧ください。
ここにはサンプルはありませんが、そんなに難しくないので、ヘルプ付属の例で
使い方がわかると思います。
>Dictionary自体は単にキー部分に数字以外が使える配列というだけ
>のものです。
了解しました。ヘルプには「PERLの関連配列と同等のもの」と記載されていますね。
MSはやはりUNIXを意識していますね。
ちなみに、Windows Script 5.5βでは、正規表現のオブジェクトに機能増強が
なされているようです。
>Sort(整列)には各種アルゴリズムがありますが、
以下、非常に参考になりました。
また、そこら辺の本を読んで、アルゴリズムの基礎から勉強してみたいですね。
どうせなら、私にとって未知の言語で。
本と言えば、雑誌の書籍紹介に、WSHの本がありました。
WSHクイックリファレンス 羽山博著 オライリー・ジャパン 3500円
だそうです。
>実は最初に試したのが、SIGNAL9 さんが紹介しておられたADOのレコードセ
>ットを使う方法でした。ASPでなじみのあるモノについ流れてしまって・・
ADOやらASPなどという言葉には馴染みがなくて…。
そういえば、WSHのメーリングリストがあり、そこでは私に答えられない、そういう系
の質問にレスポンスが期待できると思いますよ。
http://w33.mtci.ne.jp/~ktomo/wsh/ をご覧ください。
To: 【おじさま】 さん
>本当にそう思います。ソートなんて書きたくもない(^^;)。簡単に使える外部のが
>あれば迷わずそれを使いたいです。
同感です。が、ソートとかを書いていると、何かプログラミングをやっているような
錯覚に陥ってそれもまた良いです。(良いのか?)
スクリプトをプログラミング入門としてとらえるか、実用的な自動処理を構築するための
手段とするか、目的によっても異なってくるんでしょうけど。
To: SIGNAL9 さん
心の師匠殿のページも拝見しました。ありがとうございます。VBSによるソート
という意味ではそのものずばりです。ある所にはあるもんですねえ、という感
じです。このページには他にも使いたくなる小物がいろいろありましたが、
WebDBではかなりの苦労人とお見受けします。
松田の環境では、システムファイル操作に限っては完全にASPの外でやること
になるため、「JavaScript の sort を VBScript から使う」の直接の適用は
できませんでしたが、今後の大きなヒントになりました。
また、WSH2についてですが、まだドキュメントを読んでいるところです・・・
これは別の点(インクルードができる等)でも大きく期待してます。
なかなかお目にかかれないものをいろいろご紹介いただきありがとうござい
ます。
あ、すいません書き忘れたんでちょっと追加。
>松田 出 さん
ASPをお使いなんですね。でしたらJScriptのsortメソッドを
VBScriptから呼び出す方法の方が合理的かもしれません。
おなじくぼくの心の師匠(^^)のHPにあります。
http://www.geocities.co.jp/SiliconValley/4334/unibon/archive/javascriptsort.html
ASPになれていないと「えっ」と思われる手法ですが、これはMSの
マニュアルにもあるまったく合法的な方法です。ASP使いはよくや
る手ですので検討されてみてはいかがでしょう。
#WSH2でも同様のことができるんではないでしょうか。
管理人むたぐちさん:
>こういう手もあるのですね。Dictionaryオブジェクトは
>使ったことがないですが、キー順でソートされるんでしょうか。
ちょっと説明不足でした(^^;)
Dictionary自体は単にキー部分に数字以外が使える配列というだけ
のものです。
Dictionary自体にキー順にsortするとかがあるわけではないですが、
FileSystemObjectから読み出すときに一定のハッシュの計算をする
ことで似たことができます。原理的にはみなさんがかかれているよ
うな配列を使ったソートと同じです(だから「小細工」^^;)
Sort(整列)には各種アルゴリズムがありますが、資源の消費量・速度・
安定(並び替えた後に同じキーだった場合、もとの並びが保持さ
れるかどうか)など、局面に応じて選択肢がいろいろあります(実際の
製品では局面に応じて内部的にアルゴリズムを切り替えているものが
多いようです)。学者さんの世界では一ジャンルなので、調べてみると
面白いですよ。
ただ、スクリプトでの実装は効率的に問題が多いので、COM(ActiveX)
などのネイティブバイナリで実装するのが普通でしょう。
その意味では出来合いのものがあれば利用すればよろしいと思います。
もっとも、世間では非常に特殊な整列処理が要求されるケースが多々
ありますし、自前以外の外部オブジェクトが使えない場合もあります
ので、コンピュータで飯を食ってこうと思っている人は、自分で実装
できないと後で困る場合もあります(いやマジで^^;)
管理人むたぐち さん
>私もなんですよ。やっぱりプログラム手法をちゃんと勉強しないと駄目ですね(^^;
私、ソートって本当にダメなんです。どう読んでも頭が混乱してきます。
>競争してみますか?
やめときます。後で調べてみましたが、私が書いたのは「単純ソート」とかいう
らしくて、名前からしていかにも遅そうです。ずっと昔のCの入門書に書かれて
いたものでした。
>スクリプトを書くときは、こういう本筋とは関係ないところで延々と処理を
>書くより、外部のオブジェクトを利用するというのがスマートかつ合理的ですね。
本当にそう思います。ソートなんて書きたくもない(^^;)。簡単に使える外部のが
あれば迷わずそれを使いたいです。
To: 管理人むたぐち さん、SIGNAL9 さん、【おじさま】さん
あまりにも迅速で丁寧な皆様のレスポンスに感激したり驚いたりしており
ます。皆様本当にありがとうございます。いろいろな事を知らなかったも
のだと気がつきました。
SIGNAL9 さんの最後のレスを読ませていただいてからしばらくそのマネを
しようとやっきになっていたため、その後のレスを読んでいませんでした。
実は最初に試したのが、SIGNAL9 さんが紹介しておられたADOのレコードセ
ットを使う方法でした。ASPでなじみのあるモノについ流れてしまって・・
管理人むたぐち さんと【おじさま】さんの「バブルソート」にも挑戦させ
ていただこうと思ったのですが、情報処理試験を思い出してしまい、肩に力
が入ってやらずじまいになったんです。ごめんなさい。でも捨てた訳ではあ
りません。MDACのバージョン等々に影響されない堅牢さを感じます。
To: SIGNAL9 さん
いろいろなサンプルやオブジェクトのご紹介ありがとうございます。最終的
には、ご紹介いただいた
http://www.geocities.co.jp/SiliconValley/4334/unibon/archive/adogetrows.html
にあるサンプルを大いに参考にさせていただきました。
たまたま環境にMDAC2.1が入っていたので「まずこれから」と思ったのです。
RecordSetのSortというのは、私の狭い経験範囲では一度も見聞きしたことが
なかったのですが、いとも簡単にソートできたのでちょっと信じがたいものが
あります。これは上記サイトで言われるようにMDAC2.xがあってはじめて可能
なメソッドなのでしょうか。ASP2.0の書籍では見たことがないのですが・・・
いずれにしましても、WSHをここまで使っている方々がやはりいるのだとわか
り、とても励まされた次第です。皆様今後ともよろしくお願いいたします。
To: 【おじさま】 さん
>ディスクに書き込まれている順番そのままだと思うのですが。松田さんの環境で
>はたまたま名前順で書き込まれていたのではないかと思います
そうかもしれませんね。あまり順番とか気にしていなかったので。
>ソートにもいろいろあるらしいのですが、私良く知りません(^^;)。
私もなんですよ。やっぱりプログラム手法をちゃんと勉強しないと駄目ですね(^^;
>雑誌などでソートの特集を組んでいることもありますが、
>読んでいると眠くなるので。
そういう系の雑誌は読みもしませんねえ…。
>ソートは管理人むたぐちさんのほうが良さそう。私のは田舎臭い。
競争してみますか?
サンプルとして、C:\Windowsでどうでしょう(笑)
いっぱいファイルがあって、時間がかかりますよ。
バブルソートっていうのは、チャート式(数学)で学びました(爆)
To: SIGNAL9 さん
>いわゆるソート処理ですが、スクリプトエンジンVer2の
>Dictionaryオブジェクトにいったん格納してしまい、
>キー順に読み出すような小細工も出来ますが
こういう手もあるのですね。Dictionaryオブジェクトは
使ったことがないですが、キー順でソートされるんでしょうか。
>以前ご紹介させていただいたbabaqさんのBASP21ですと、
>そのものずばり配列ソートのsortメソッドがあります。
やはりあるところにはありますね(謎)
スクリプトを書くときは、こういう本筋とは関係ないところで延々と処理を
書くより、外部のオブジェクトを利用するというのがスマートかつ合理的ですね。
松田 出 さん
>で取得したmyItemがファイル名順に並んでしまっているのです。Filesコレク
>ションはファイル名順に並ぶというデフォルト的な性質があるのでしょうか。
>また、この性質は変更することができないものなのでしょうか。
試してみましたが、必ずしもファイル名順ではないようです。要するに FAT
そのものに書き込まれている順番ではないでしょうか。多分取得する際にわ
ざわざ何かの要素でソートするような面倒なことはしないと思います。ディ
スクに書き込まれている順番そのままだと思うのですが。松田さんの環境で
はたまたま名前順で書き込まれていたのではないかと思います(全く自信が
ありません)。
デフォルトが何であるにせよ、やはり一度配列変数に入れてご自分でソート
するしかないでしょう。ソートにもいろいろあるらしいのですが、私良く知
りません(^^;)。雑誌などでソートの特集を組んでいることもありますが、
読んでいると眠くなるので。
で、唯一使ったことがあるソートで書いてみました(何というソート法なの
かも存じません)。File オブジェクトそのものを配列変数に代入しています
のでメモリを食うかもしれません。実際にはお使いになる要素だけを代入し
たほうが良いと思います。昇順降順は13行目の不等号の向きを変えてくだ
さい。
ソートそのものに全く自信がありませんので、その部分はあまり参考になさ
らないでください。ソートのアルゴリズム自体は書籍などで適切な方法を調
べられたほうが良いと思います。
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder("C:\")
For Each objFile in objFolder.Files
ReDim Preserve objItem(intCount)
Set objItem(intCount) = objFile
intCount = intCount + 1
Next
intFileNum = UBound(objItem)
For intI = 1 To intFileNum
intJ = intI - 1
Set objFile = objItem(intI)
Do While intJ <> -1
If objFile.DateLastModified > objItem(intJ).DateLastModified Then
Exit Do
End If
Set objItem(intJ + 1) = objItem(intJ)
intJ = intJ - 1
Loop
Set objItem(intJ + 1) = objFile
Next
For intCount = 0 To intFileNum
strResult = strResult & objItem(intCount).Path & vbTab & objItem(intCount).DateLastModified & vbCrLf
Next
Call MsgBox(strResult)
あっ、ごめんなさい。既に管理人むたぐちさんがレスを書かれていますね。
折角書いたので一応これも書き込みます。 ソートは管理人むたぐちさんの
ほうが良さそう。私のは田舎臭い。
たまにお邪魔しているSOGNAL9でございます。
>>Filesコレクションはファイル名順に並ぶというデフォルト的な性質があるのでしょうか。
>どうも、そうらしいですね。日付順のソートは、自分でしなければいけないようです。
いわゆるソート処理ですが、スクリプトエンジンVer2の
Dictionaryオブジェクトにいったん格納してしまい、
キー順に読み出すような小細工も出来ますが、やはり、
なんらかの外部オブジェクトを利用されると便利かと
思います。
以前ご紹介させていただいたbabaqさんのBASP21ですと、
そのものずばり配列ソートのsortメソッドがあります。
その他、ADO(MDAC2.1)が使える環境なら、メモリ上に
擬似的にデータベースを作ってしまうようなことも可能
です。良いサンプルがこちらで紹介されています。
http://www.geocities.co.jp/SiliconValley/4334/unibon/archive/adogetrows.html