To: むたぐちさん
こんにちわ アオタです
こちらによりも、2ch の「このフォルダのカスタマイズ」に
書くほうがいいかとは思ったんですが、Folder.htt を
公開しているサイトを発見しました。
http://communities.msn.com/windowsscript/
の
[downloads]-[Utilities]
(http://communities.msn.com/windowsscript/utilities.msnw)
にありました。
hotmail のメールアドレスがあればダウンロードできます。
To: たる さん
> 春風亭工房さんのところのFlashですか。誰か本物のゲーム作ってください。
http://gamereview.g--z.com/glove_01.htm
すでにゲーム化されていますが何か?
(決して本気にしないでくださいね)
> でも現物見たことないんですよね。
あ、私は1も2も持ってますよん。
avex、感じ悪いねー。さすが、↓こういうことするだけのことはある。
http://www.zdnet.co.jp/news/0203/13/cdswhy.html
あれはプロテクトじゃないそうですが。
> うし2才はチェックしてますので聞いたことはあるんですけど。(ぉぃ
ヴァーチャルネットアイドルなら知ってますけど、何ですかそれ。
> とりあえず投げてみただけで、私もわかりません。何か発展するかなぁ思っていてはいるのですが。
> ところでギコがなぜこんなところに。
結城 浩ってわりと有名な人ではなかったか。
うぁー、このやる気のない返信は何だ(^^;
松島さん、たるさん 回答ありがとうございます。
WSFファイルに encoding="Shift-JIS" を追加することで動作させることが
出来ました。ありがとうございました。
ところで、この encoding="..." を追加してファイルの拡張子をxmlに変更
してIEで表示するとエラーになりますが、これは正しい動作なのでしょうか?
To:管理人むたぐち さん
>なになに? Glove on Fight? (このネタがここで通じるとは思ってないけど)
春風亭工房さんのところのFlashですか。誰か本物のゲーム作ってください。
でも現物見たことないんですよね。
うし2才はチェックしてますので聞いたことはあるんですけど。(ぉぃ
>http://www.hyuki.com/dp/cat_AbstractFactory.html
>ほう、そういうことか。
>(ぜんぜんわからん…)
とりあえず投げてみただけで、私もわかりません。何か発展するかなぁ思っていてはいるのですが。
ところでギコがなぜこんなところに。
To:里美 さん
FSOで取得できる順番はFATに書き込まれた順番で変更不可ですので、以前に
53-03 アオタ さん
53-06 Lib30 さん
53-09 管理人むたぐち さん
53-10 土屋 さん
という風なやり方を前に書いています。参考になされるといいでしょう。
To:すのー さん
>WSF→UTF-8、VBS→S-JIS以外の組合せだとエラーが発生します。
>これは何か設定等がおかしいのでしょうか。
wsfの場合は松島さんが言われている通りXMLの指定に基づきます。
もし他のエンコーディングを使用したいときは最初に
<?xml version="1.0" encoding="Shift_JIS"?>
とか宣言をつけてやってください。
VBSの場合はおかしいですね。スクリプトエンジンのバージョンが古いのでは?
当方UTF-8は直接起動は出来ませんでしたけど、WSFを介してだったら出来ましたし
それ以外UTF-16,Shift_JIS,ISO-2022-JPでは直接間接問わず起動出来ましたよ。最後のは文字化けしますけど
EUC-jpは両方ともだめでした。
To: 土屋 さん
> Select Caseの使い方がちょっと素敵だと思いません?
ちょっと粋な使い方ですねー。
「True と FS.FileExists(XCopyPath98) が一致したら〜〜」という。素晴らしい。
> IEやMozillaなどはデフォルトでUnicodeに対応しているので
Unicodeと一言で言っても、よく使われるもので、UTF-8 と UTF-16 があります。
IEやMozillaは、UTF-8 は理解しますが、UTF-16は、解読できない様です。
で、件のUnicodeはどちらだろう。
To: Lib30 さん
大学合格おめでとう御座います〜。
> ここは動作保証外のAthlonXPを使おうかなあ。
こやつですかな?
http://slashdot.jp/article.pl?sid=02/03/18/1414245&mode=nested
> ディスプレーぬきで30万円を超しそうな勢い
値段とパフォーマンスのバランスを考えて、多少お得な感じにしていた方が
良いかもしれませんよ〜。
To: むたぐち さん
> WSHからは、やっぱりあんまり触れるべきでない世界のようですね。
WSHをCOM化してホニャララ(以下省略)、とした時に、
どこまで応用が広がるか想像がつきませんけどね(^^;)。
To: すのー さん
> WSF→UTF-8、VBS→S-JIS以外の組合せだとエラーが発生します。
WSFは、XMLベース。よって、XMLの規定の文字コード(UTF-8)。
VBSは、普通のテキスト。よって、OSの規定の文字コード(Shift_JIS)。
という事が予想されますね。
> これは何か設定等がおかしいのでしょうか。
設定等が正しければ「自動変換される」とお考えでしたら、残念ながら外れです。
FileSystemObject オブジェクトの OpenTextFile では、
文字コードを「システム規定, Unicode, Ascii」で指定して
指定した文字コードで記述されたファイルとして読み込みます。
こちらを利用してみては?
始めまして「すのー」です。
win2000sp2+IE5.5sp2+WSH5.1の環境でスクリプトの作成
をしています。
WSFファイル内で外部VBSファイルを参照しているのですが、
文字コードの組み合わせ?や日本語の有無によってエラー
が発生しています。
WSF→UTF-8、VBS→S-JIS以外の組合せだとエラーが発生します。
これは何か設定等がおかしいのでしょうか。
里美と申します。
Windows98環境でWSHのプログラムを作成しています。
FileSystemObjectオブジェクトから派生する、Filesコレクションの
Itemプロパティーで、あるフォルダ内のファイル一覧を「ファイル名順」にテキストファイルに
表示したいのですが、どうしたらよいのでしょうか?
以下のようなコーディングですが、実行毎に並び順が違ってしまいます。
(コーディング例)
Set fs = CreateObject(″scripting.FileSystemObject″)
Set fl = fs.GetFolder(c:\temp)
Set fc = fl.Files
For Each fn In fc
sofuw.WriteLine fn.Name
Next
以上、よろしくお願い致します。
フォルダカスタマイズスレで、私的には超便利と思う機能をお披露目したのに、
ぜんぜん反応がなくてさびしい…。
だれか遊びに来てください。
WSHスレの方は、ここの掲示板と似たような展開になりつつあるので、そろそろ引退も
考えてます。WSH啓蒙活動としての、11の使命は終わったと。
To: 土屋 さん
> 実はQXエディタの常駐リストのようなものが欲しかったので、
> これはこれでいいのです。(上の機能を持つツールは他にありますし)
> まあ、技術的に私には今のところできませんですし。
> しかも使う本人が希望したインターフェースなもので、、
なるほど。でも、サイズ的にはもうちょっと工夫した方が、使いやすいと思いますよ。
もしかして、私のデスクトップがせまいから、こういう感想になるのかな。
> XCOPYを使うと簡単なものですねえ。
XCOPYはいいっす。
なんでもかんでもスクリプト化しない方がいいこともある、ということを教えてくれますね。
To: 松島 さん
> 他のプロセスでのキー入力もフックするには、
> フックする関数をdll中に置く必要がある様です。
>
> 同じプロセスのキーのみならVB系でもAPIを駆使して可能なんですが、
> WSHだと意味が無い……ですよね(^^;)。
補足どうもです。
WSHからは、やっぱりあんまり触れるべきでない世界のようですね。
To: 土屋 さん
> (Select Caseの使い方がちょっと素敵だと思いません?自分で思っているだけですが)
If...Then...Elseでは駄目なんでしょうか?
あえてSelect Caseを使うところが風流ってことですか。
To: Lib30 さん
> 大学も合格したことですし、自分へのご褒美にパソコンを作ることを計画中。
> 大学でDTPや映像関連を扱う可能性が高いため、ちょっと奮発しようかと。
> CPUはAthlonを二つ使って、DVD-RAM/Rドライブを載っけて、メモリーは1Gでー...
> とか考えてたら、ディスプレーぬきで30万円を超しそうな勢い。メモリーは特に、
> 年末と比べてかなり値上がりしてしまってますし、デュアル動作を保証してるCPUは
> AthlonMP、PenIII、Xeonだけでちょっと値段が高いです。ここは動作保証外の
> AthlonXPを使おうかなあ。
こういうことを書くと、アレなので、ぼかして書くけど、
予算調整で超ハイスペックPCがお目見えしましたよ。うちんとこ。
まさに、そういうスペックです。
To: たる さん
> ついでにXCopyPathXP="C:\WINDOWS\system32\XCOPY.exe"
> も入れといてください。
XPってNT系なのにC:\Windowsでしかも\system32なんだなあ。
つくづく扱いづらいOSだ。
フォルダのカスタマイズも制約だらけという噂だし。
> 変数XCopyにクラスインスタンスを入れればGoF本で言うところのAbstract Factoryパターンですね。
> VBSだとコピーする共通の部分を別クラスで持って合成してやることはできないのでアレですけど。
なになに? Glove on Fight? (このネタがここで通じるとは思ってないけど)
http://www.hyuki.com/dp/cat_AbstractFactory.html
ほう、そういうことか。
(ぜんぜんわからん…)
To:ひろすけ さん
ちょっと気になったこと。
私もIIS5 + DynamicDNSで時間限定Webサーバー立てているので気になって調べていたんです。
どこかは失念してしまったのですがその関係の英語のサイトを通して斜め読みしていたら、まるでNimda対策のようなことが書いてあったので。
だもんでもしIndexServerとかを使わないなら使わないスクリプトマッピング全て外していた方がよいと思いますよ。(あやふやな情報提供でごめんなさい。でも一応これ自体はNimda対策のひとつですので必須かと)
はぁ、ASP.NETの実験と思って立てたのにあと3日で発売日か。
To:土屋 さん
Caseって動的にも出来るんですね。
ついでにXCopyPathXP="C:\WINDOWS\system32\XCOPY.exe"
も入れといてください。
変数XCopyにクラスインスタンスを入れればGoF本で言うところのAbstract Factoryパターンですね。
VBSだとコピーする共通の部分を別クラスで持って合成してやることはできないのでアレですけど。
あ、ちなみによーすけというのは私です(オートコンプリートが働いた(汗))。
最近、ここ以外ではそう名乗ってるので。
大学も合格したことですし、自分へのご褒美にパソコンを作ることを計画中。
大学でDTPや映像関連を扱う可能性が高いため、ちょっと奮発しようかと。
CPUはAthlonを二つ使って、DVD-RAM/Rドライブを載っけて、メモリーは1Gでー...
とか考えてたら、ディスプレーぬきで30万円を超しそうな勢い。メモリーは特に、
年末と比べてかなり値上がりしてしまってますし、デュアル動作を保証してるCPUは
AthlonMP、PenIII、Xeonだけでちょっと値段が高いです。ここは動作保証外の
AthlonXPを使おうかなあ。
To つとむ さん
>Unicode をブラウザで表示できる方法をご存知の方がいらっしゃいましたら
>教えていただけると助かります。
IEやMozillaなどはデフォルトでUnicodeに対応しているので、エンコードを
変更してやればいいでしょう。あるいはASPの方で適切なHTTPヘッダやMETAタグを出力するよう
修正してみては。
To 土屋さん
うちのWin2000ではパス省略していけました。
To シャキちゃき さん
ここのサイトの「WSHで使えるオブジェクトの解説」内の「Shellオブジェクト」の
解説の中にサンプルがありますよ。
vbにあるディレクトリリストボックスコントロールのようなものをつかって、
vbsでフォルダ名を取得したいのですが、何かいい方法をしりませんか?
inputboxからでは、ちょっと、きついもので、、、
Dear 松島 さん
> 環境変数やレジストリ情報を使って汎用に出来ません?
> #パス通っていてもフルパスじゃないとダメでしたっけ(^^;)。
98系だとフルパスだけでなく、XCOPYだけでもOKですが、
NT系の方は実際どうなのでしょう。(自宅だと確かめられません)
で、もしもだめなときは次のようにするとどうでしょう。
(Select Caseの使い方がちょっと素敵だと思いません?自分で思っているだけですが)
FolderFrom = "C:\Data"
FolderTo = "D:\Data\"
Set FS = CreateObject("Scripting.FileSystemObject")
XCopyPath98 = "C:\Windows\Command\XCOPY.exe"
XCopyPath2000 = "C:\WinNT\system32\XCOPY.exe"
Select Case True
Case FS.FileExists(XCopyPath98) : XCopy = XCopyPath98
Case FS.FileExists(XCopyPath2000) : XCopy = XCopyPath2000
Case Else MsgBox "コピーできません" : WScript.Quit
End Select
Set WShell=CreateObject("WScript.Shell")
WShell.Run XCopy & " """ & FolderFrom & """ """ & FolderTo & """ /e /d /r /y"
初めて書き込みします。
MS SQL サーバー 7.0 内のデータを ASP で表示すると、どうしても文字がすべて ? になってしまいます。Unicode でデータがデータベース内に保存されているためと聞いたのですが、Unicode をブラウザで表示できる方法をご存知の方がいらっしゃいましたら教えていただけると助かります。VBScript 版の StrConv があれば解決する問題なのでしょうか?
よろしくお願いします。
to むたぐちさん
ご連絡ありがとうございました。私自身いろいろ調べてみました。
やはり、私以外でも多くの方がIISの突然停止に悩まされているようでした。
原因はいくつも情報があり特定するまでにはいたっておりません。
だたし、いままではHTTPのポートを80番にしてありましたが、変更したら
突然停止が止まった気がします。まだ、長期的に確認とっていませんので
なんともいえませんが。。。(やはり外部的な要因がありそうです)
いずれにしてもWSHにてサービスのコントロールができるようにしていきたいと
思います。
ほんとうにアドバイスありがとうございました。
ひろすけ
WH_KEYBOARD はメッセージじゃなくて、ハンドラの種類でした。
C++で組むならこの辺りが参考になるかも。
http://www.kab-studio.com/Programing/Codian/DLL_Hook_SClass/07.html
http://hp.vector.co.jp/authors/VA016117/hook.html
http://www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm
To: 土屋さん
> Set WShell=CreateObject("WScript.Shell")
> WShell.Run "C:\WINNT\system32\XCOPY.exe ""C:\Data"" ""D:\Data\"" /e /d /r /y"
環境変数やレジストリ情報を使って汎用に出来ません?
#パス通っていてもフルパスじゃないとダメでしたっけ(^^;)。
WShell.Run と言えば、職場で、自分用環境設定スクリプトにWSHを使っています。
(他の人も使う端末なので、あれこれスタートアップに入れられない(笑))
To: お! さん
> WSHで無理に実装するなら、DynaCallを使ってキーイベントをフック
> してやるとかでしょうか。できないかもしれませんが。
ここ数日、個人的にその手のアプリを(VC++で)組んでいるのですが、
他のプロセスでのキー入力もフックするには、
フックする関数をdll中に置く必要がある様です。
同じプロセスのキーのみならVB系でもAPIを駆使して可能なんですが、
WSHだと意味が無い……ですよね(^^;)。
APIのSetWindowsHookEx と、メッセージの WH_KEYBOARD 辺りが
検索のキーワードになると思います。
ところで、C-h を BS にしてしまうと、
Office系のアプリで「置換」のショートカットが殺されません?
Dear むたぐち さん
おっ、展開が速くなってきましたねぇ。
> なんと言うか、辛口批評させてもらいますと、これは使いにくいです。
> 少なくとも、タスクトレイに入ってもらわないと、邪魔ですし。
> それに、ウィンドウ生成/破棄の自動取得が最低限欲しいです。
ご指摘ありがとうございます。
実はQXエディタの常駐リストのようなものが欲しかったので、
これはこれでいいのです。(上の機能を持つツールは他にありますし)
まあ、技術的に私には今のところできませんですし。
しかも使う本人が希望したインターフェースなもので、、
でもタブ式も面白いものがありますねぇ。
TeraPadを見つけて、そこの脇にとりつくというのも、
API使ってできそうですし。(こっちの方はなんとかなりそう)
ところで、(話はかわりますが)
WSHでバックアップ用に更新されたファイルだけをコピーするのに、
FileSystemObjectを使ってサブフォルダを回帰しながら更新日時を比較していたのですが、
XCOPYを使うと簡単なものですねえ。
以下Win2000の場合、Meや98系はシステムフォルダを書き換えてください。
コピーした一覧もでて便利。
(フォルダの指定方法がミソ。コピー先は最後に\をつけよう)
Set WShell=CreateObject("WScript.Shell")
WShell.Run "C:\WINNT\system32\XCOPY.exe ""C:\Data"" ""D:\Data\"" /e /d /r /y"
To: こたろー さん
> このあたりの記述は省略しても問題ないと認識しているんですが、
> 一応それぞれの定数を調べ、
> Sort(key1, 1, key2, 1, 0, 1, False, 1, 1, 0, 0)
> なんてしてもだめでした。
ヘルプを良く見ましょう。
expression.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod)
4つめの引数、Typeを忘れてます。
VBSの場合、VBAとは違って、名前つき引数(Key1:=Keyのようなもの)がサポートされていないため、
途中の引数を省略することができません。(この場合、Typeを省略してKey2とOrder2を指定することはできない)
仕様に忠実に、順番どおり引数を指定していく必要があります。
ただ、VBSでも、省略可能な引数なら、ある引数以降のすべての引数を省略することは可能です。
(この場合、Header以降の引数を省略することは可能)
ども、こたろーです。アオタさん、有難うございます。
一応私もEXCELでマクロ記録し、それを参考にしております。
Sort(key1, 1)
で上手くソート出来まして、よし!とばかりに
Sort(key1, 1, key2, 1)
とすると駄目だった訳です(ToT)
> Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
> Orientation:=xlTopToBottom, _
> SortMethod:=xlPinYin
このあたりの記述は省略しても問題ないと認識しているんですが、
一応それぞれの定数を調べ、
Sort(key1, 1, key2, 1, 0, 1, False, 1, 1, 0, 0)
なんてしてもだめでした。
複数キーのソートはWSHでも問題なく出来るものなのでしょうか。
To: お! さん
> WSHでメモリ使わないでキー変更できるプログラム作れませんか?
> 当方Windows98使ってます。
> CapsLock⇒Control
> C-h⇒BackSpace
メモリ使わないで、の意味がいまいちわからないんですが…。
WSHでは基本的に、常駐を要するプロセスの自動化には向いていません。
この手のプログラムは、やはりC++とかの開発用プログラミング言語を使って
作るべきだと思われます。
WSHで無理に実装するなら、DynaCallを使ってキーイベントをフック
してやるとかでしょうか。できないかもしれませんが。
To: アオタ さん
> 某2ch でご活躍、拝見させていただいております。
> 影ながら応援しておりますので頑張ってください。
どうもです。11に伝えておきます。
みなさんこんにちわ
To: こたろー さん
複数キーの指定の方法は
Excel を立ち上げて、マクロを記録するにしてから
実際にソートしてみればわかりますよ。
一応Excel 97でのVBAのコードをつけときます。
WSH で使用する場合は、適宜変えてください。
Selection.Sort _
Key1:=Range("C1"), Order1:=xlAscending, ' これがキーの一つ目
Key2:=Range("A1"), Order2:=xlAscending, _ ' これがキーの二つ目
Key3:=Range("B1"), Order3:=xlAscending, _ ' これがキーの三つ目
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin
To: むたぐちさん
某2ch でご活躍、拝見させていただいております。
影ながら応援しておりますので頑張ってください。
>はい、そのとおりでございます。
矢っ張!! (^^)v
WSHでメモリ使わないでキー変更できるプログラム作れませんか?
当方Windows98使ってます。
CapsLock⇒Control
C-h⇒BackSpace
...
みたいなやつ。
それほど難しいことできなくていいのですが、、、
教えてください。
ども、こたろーです。
> Sort メソッドに「xlAscending」ではなく直に「1」を渡せば
> 同じ動作をします
出来ました。有難うございました。
ただ、ソートのキーがひとつしか指定できないようです。
Sort(key1, 1, key2, 1)
といった感じでやると、エラーになります。うーむ。
仕様なんでしょうか…。
To: 細かいですが さん
> のShortNameとこはShortPathでは…。
ほんまに細かいっすねー。
はい、そのとおりでございます。
To: Lib30 さん
> ほかにもちらほらそれらしい人物をみたことがあったりなかったり。
> あっちで情報提供者を演じてる人って少ないですからねえ。
え、私が仮ハンで参加してるスレなんて、せいぜい5〜6個くらいですよ?
あとは名無しさん。名無しで書き込むときは、さらに別人格っす。
To: ひろすけ さん
> 2番目にWSHなどでIISのサービス、サービス名である既存のWEBサイトが
> 停止しているかどうかを取得してプログラム的にサービスを開始させたいのです。
> 実際のメニューでの表現は既存のWEBサイトの(項目)の開始です。
> 現在のところ未確認なのが、WWWのみの(停止)なのか、サービスのなかの
> IIS Admin Service自体が停止させられたのか確認できていません。
原因はわからないので、こちらのみ。
IShellDispatch2(Shell32)オブジェクトのService関係のメソッドを使うと良いかと。
IIS Admin Serviceサービスが動いているかどうかを調べたり、サービスを再起動
したりできます。
細かいことは知りませんが、IISってのはWSHからもいろいろ制御できるらしいです。
↓参考になるかどうかはわかりませんが。
http://www.microsoft.com/japan/technet/treeview/default.asp?url=/japan/technet/prodtechnol/iis/maintain/optimize/autoadm2.asp
To: 土屋 さん
> SDIのテキストエディタTeraPadをMDIっぽく使うツールを作ってみました。
なんと言うか、辛口批評させてもらいますと、これは使いにくいです。
少なくとも、タスクトレイに入ってもらわないと、邪魔ですし。
それに、ウィンドウ生成/破棄の自動取得が最低限欲しいです。
すでにこういうのがあるからなあ…。TeraPadではちゃんと動作しないようですが。
http://www.geocities.co.jp/Playtown-Denei/4192/ttwc.html
インターフェース的にはこういう感じにして、タグジャンプ等の機能で
差別化を図るという方針がいいと思います。
To: こたろー さん、アオタ さん
WSFファイルを使うという方法もあります。
はじめまして こたろー さん
アオタでございます
おっしゃるとおり、「xlAscending」はExcelの組み込み定数ですので
VBScript では、Const宣言で定数を作っておりました。
Const xlAscending = 1
しかし、J(ava)Script には、定数が無いので
var xlAscending = 1;
で代用できますので、「xlAscending」を使う前に宣言するか、
Sort メソッドに「xlAscending」ではなく直に「1」を渡せば
同じ動作をします
ども、こたろーです。WSH+JScriptでEXCELを操作するのに躍起になっている今日この頃です。こちらの過去ログ等を参考にさせて頂いているのですが、どうしてもソートで躓いてしまいます。
2001年11月26日のアオタさんの書き込みの
Call objExcel.Range( objExcel.Cells( 1, 1 ), objExcel.Cells( i, 1 )).Sort( objExcel.Range( objExcel.Cells( 1, 1 ), objExcel.Cells( i, 1 )), xlAscending )
あたりの記述を参考にやってみているのですが、どうしても上手く行きません。「xlAscending」で引っかかります。これを書かないとソートできはするのですが、なんだか気になって…。「xlAscending」ってEXCELの組み込み定数だと認識してるんですが、WSHでは使用不可なんでしょうか。
また、EXCEL等の外部アプリ操作に関する詳しいページをご存知の方いらっしゃいましたら、是非是非教えて下さい。色々探してはいるんですが、VBAのページはあってもWSHでの話となると、見つけられませんでした。
宜しくお願いいたします。
SDIのテキストエディタTeraPadをMDIっぽく使うツールを作ってみました。
http://csx.jp/~tsuchiya/WeLoveTP.lzh
起動すると画面の左端を占領して、MDIタブの取得をクリックすると、
開いているTeraPadの一覧が表示され、ファイル名のダブルクリックで、
ウィンドウ位置とサイズが調節されます。
CLIPタブは、サブフォルダにあるテキストファイルの中身を表示して、
ダブルクリックで、最前面のTeraPadに文字列を貼り付けます。
TAGタブは、右側の文書を正規表現で検索して、検索結果一覧を表示し、
クリックするとその行にジャンプするようにしたものです。
いわゆるタグジャンプというものです。
まだ製作途中で、バグ取りや感想受け付けのために公開しているものですが、
(実は名前も決まっていない・・・)
VBScriptの入力支援になると思うので、紹介しました。
TeraPadの作者さんなどが、いろいろ支援してくれてますので、
なんとか早いうちに正式版を出したいな。
Delphi6で製作してランタイムは特に要りません。レジストリも触りません。
すみません。ひろすけです。
半角かなで投稿していたようです。
恐れ入りますが、下記表現に読み替えてください。
抂整→ルーター
2番目にWSHなどでIISのサービス、サービス名である既存のWEBサイトが
停止しているかどうかを取得してプログラム的にサービスを開始させたいのです。
実際のメニューでの表現は既存のWEBサイトの(項目)の開始です。
現在のところ未確認なのが、WWWのみの(停止)なのか、サービスのなかの
IIS Admin Service自体が停止させられたのか確認できていません。
こんばんは、ひろすけといいます。
かなり困ったことがあり、質問させて頂きます。
WSHとは少し、質問がずれてしまうのですが、どこに質問して良いのか
わからず、こちらに投稿させて頂きました。どんな情報でもかまいません。
アドバイスをお願いします。(質問の内容にあったBBSの紹介でもかまいません)
現在の環境(ADSL8M + DynamicDNS + W2000Pro + IIS5.0 + ASP + WSH)
上記にてWEBサーバーを公開してます。
このPCではWSHにて1分間に一度、時間を取得するプログラムが24時間動いていて
さらに、このサーバー
(実際には抂整の外側のグローバルIPとDynamicDNSとを関連ずける便利な
FreeSoftがサービスではなくアプリケーションとして常駐稼動しています。
この動作は1時間に一回定期的に実行されます。)
深刻な問題とは。。。
時間が不定期(だいたい同じような時刻)なのですがIISのWEBサービス(既存のWEBサイト)が原因不明でサービスを停止させられてしますのです。
イベントビューアのシステムログを見てもサービスコントロールマネジャーが
エラーを起こしておりイベントが7031となっておりました。
説明ではWWWが不正な終了をしたようなことが記述してありました。
1番気になるのは何がこのような事態を引き起こしているのかなのです。
2番目にWSHなどでIISのサービスイa犬ホWEBサイト(停止)C箸覆辰討い訃a屬C匹ΔC鮗萋世渓詰C笋鶫ISのサービスを開始させたいのです。
実際のメニューでの表現は(項目)の開始です。
現在のところ未確認なのが、イa犬ホWEBサイト(停止)C箸覆襪里ャ
サービスの中のIIS Admin Service自体を停止してしまっているのか、または
IISの既存のWEBサイトのみを停止しているのか確認してません。
わかり次第報告します。
ぜひ、アドバイスよろしくお願いします。
おっと、ワイルドカードのやつ、メタ文字をエスケープしなければ(汗)
function isMatch(strStr, strPattern){
strPattern = strPattern.replace(/([]^[\$+.()|{}])/g,"\\$1")
strPattern = strPattern.replace(/\?/g,".")
strPattern = strPattern.replace(/\*/g,".*?")
var objRE = new RegExp("^" + strPattern + "$")
return objRE.test(strStr)
}
>暴れているのは私の別人格らしいです。
>あっちでは、11とか名乗っているようです。
ほかにもちらほらそれらしい人物をみたことがあったりなかったり。
あっちで情報提供者を演じてる人って少ないですからねえ。
WSHテクニック集の
>Set WshShell = WScript.CreateObject("WScript.Shell")
>Set Fs = WScript.CreateObject("Scripting.FileSystemObject")
>WshShell.Run Fs.GetFile("C:\Program Files\Internet Explorer\IEXPLORE.EXE").ShortName
>'まあ、こんな手もあるというくらいで…。
のShortNameとこはShortPathでは…。
To: Lib30 さん
> むたぐちさん、2chで大暴れですな(笑)
暴れているのは私の別人格らしいです。
あっちでは、11とか名乗っているようです。
ほどほどにしないと、そのうち痛い目に遭うと思うのですが。
> ただ、私はクラシック表示を使ってるため話に入っていけないです。
何か、フォルダカスタマイズが、今静かなブームになりつつあったりなかったりですね。
>
> たまには、WSHに関連した話題も載せないと。そういうわけで、
> ワイルドカードを展開するスクリプトを作ってみました(正確にはWSHではない)
これ、ちょっと目鱗でしたよ。
なるほどねえ。
> あと、大学受かりました。
おお、おめでとうございます。
本命だそうで。めでたいめでたい。
就職活動中……
むたぐちさん、2chで大暴れですな(笑)
ただ、私はクラシック表示を使ってるため話に入っていけないです。
たまには、WSHに関連した話題も載せないと。そういうわけで、
ワイルドカードを展開するスクリプトを作ってみました(正確にはWSHではない)
はっきり言って手抜きですが(汗)
//JScript版
function isMatch(strStr, strPattern){
strPattern = strPattern.replace(/\?/g,".")
strPattern = strPattern.replace(/\*/g,".*?")
var objRE = new RegExp("^" + strPattern + "$")
return objRE.test(strStr)
}
'VBScript版
Function isMatch(strStr, strPattern)
strPattern = Replace(strPattern, "?", ".")
strPattern = Replace(strPattern, "*", ".*?")
Set objRE = New RegExp
objRE.Pattern = "^" & strPattern & "$"
isMatch = objRE.test(strStr)
End Function
あと、大学受かりました。
フォルダのカスタマイズ、いよいよ本格的にサイト立ち上げです。
Folder Customizing Project
http://www.roy.hi-ho.ne.jp/mutaguchi/htt/index.html
フォルダのカスタマイズに関する、ノウハウをいろいろ書いていくつもりです。
このコンテンツに関しては、
http://pc.2ch.net/test/read.cgi/win/1011536679/
↑こっちでよろしくお願いします。
2ちゃんねるが嫌いな方は、ここでもOKですけど。
To: youkazu さん
> 「NameSpace」とは、具体的にどういう動作をさせるものなのでしょう?
> 名前空間?ってなんなのですか?
わからない言葉があったらWebで引きませう。
http://www.geocities.co.jp/SiliconValley/5634/t82C8_0001.html#1558
おっと間違えた。こっちです。
http://www.atmarkit.co.jp/aig/01xml/namespace.html
これは、XMLにおける名前空間の解説ですが、基本的には他の世界でも
同じことです。名前空間の一般的な解説はいいのがなかった…。
To: Laut さん
> 私の環境
> XP 2600.0000
> 2000 1085.0005
私も2000ですが、バージョンは同じです。
私はWMI SDK入れてますよ。
自己レスです。
>現行インストールされているWMIのバージョンはどうやって、
>調べれば良いのでしょう。
すみません。何も調べないで書いたのが見え見えです。
(1)「ファイル名を指定して実行」でwmimgmt.msc起動
(2)WMIコントロール(ローカル)を右クリックしてプロパティを表示
(3)全般タブのWMIのバージョン
私の環境
XP 2600.0000
2000 1085.0005
でした。
こたろーです。
> window.close
> window.location.pathname
> かな。
なるほど、そういう手ですか。目から鱗です。
ありがとうございました。
くだらない質問で申し訳ないのですが、
「NameSpace」とは、具体的にどういう動作をさせるものなのでしょう?
名前空間?ってなんなのですか?
>Win2000に入ってるWMIのWin32_Printerクラスには、CancelAllJobsメソッドが
>実装されていなかったからですね。
回答ありがとうございます。やはり駄目なんですね。
>WMIのアップグレードモジュールとかあるのかな。
WMI SDKの1.5とかはダウンロードしたのですが、古そうなのと
NT用とかいてあるので、2000にはインストールしていません。
2000にはサービスパックとかはきちんと当てています。
sp3でアップグレードしてくれれば良いのですが。
現行インストールされているWMIのバージョンはどうやって、
調べれば良いのでしょう。
>COBOL Script
>http://www.np.hitachi-sk.co.jp/cobolscript/
>ふーん、こんなもんもあるんだ。
個人で試しに使ってみるには、高すぎる値段ですよね。
お試し版をダウンロードしようとしたら、うちのIEの
セキュリティ設定では、ダウンロード画面まで辿りつか
なかったので、やめました。
(いちいち設定を変えるのは面倒くさい)
DonutPに、検索バー内の文字列をハイライト/ページ内
検索する機能がついた!
これで、IE+GoogleToolbarを超えたのじゃないかな。
COBOL Script
http://www.np.hitachi-sk.co.jp/cobolscript/
ふーん、こんなもんもあるんだ。
To: Laut さん
> ところが2000で実行するとoPrinter.CancelAllJobs() のところで、
> エラーが発生します。
Win2000に入ってるWMIのWin32_Printerクラスには、CancelAllJobsメソッドが
実装されていなかったからですね。
WMIのアップグレードモジュールとかあるのかな。
初めて書き込みいたします。VBやVBAはかじったことが、ありますが、
VBSは良く分かりません。もっとよく勉強してから質問しろと言われそ
うですが...
WindowsXPには標準でいくつかのVBスクリプトが添付されています。
その中でプリンタのキューを操作するPRNQCTL.VBSから、プリンタの
キューをALLクリアする機能だけを抜き出して下のVBSを作りました。
見よう見まねで作ったのですが、XP上ではうまく動いてくれました。
ところが2000で実行するとoPrinter.CancelAllJobs() のところで、
エラーが発生します。
エラー:オブジェクトでサポートされていないプロパティまたはメソッドです。
コード:800A01B6
Windows2000の環境では使えないと言うことなのでしょうか?
なお、2000のWSHのバージョンはV5.6に上げて、セキュリティパッチも当
ててあります。
申し訳ありませんが、ワーム対策で、正しくないメールアドレスを載せます。
正しくは「x」をすべて削除してください。
main
sub main
const kErrorSuccess=0
const kNameSpace = "root\cimv2"
dim oPrinter
dim oService
dim oLocator
dim uResult
set oLocator = CreateObject("WbemScripting.SWbemLocator")
if Err.Number <> kErrorSuccess then ErrDsp
set oService = oLocator.ConnectServer("", kNameSpace, "", "")
if Err.Number <> kErrorSuccess then ErrDsp
oService.Security_.impersonationlevel = 3
oService.Security_.Privileges.AddAsString "SeLoadDriverPrivilege"
set oPrinter = oService.Get("Win32_Printer.DeviceID='プリンタ名'")
if Err.Number <> kErrorSuccess then ErrDSp
uResult = oPrinter.CancelAllJobs()
if Err.Number <> kErrorSuccess then ErrDSp
exit sub
ErrDsp:
wscript.echo "エラー" & Err.Number
end sub
'//プリンタ名にはお使いのプリンタ名が入ります。
To: こたろー さん
> 自分がやっているのはHTMLに埋め込んだVBScriptなんですが、スクリプトを途中終了させる事と、自分自身のファイルパスを取得する事がどうしても出来ません。
> Wscript.Quit
> Wscript.ScriptName
window.close
window.location.pathname
かな。
はじめまして、こたろーと申します。VBScriptの勉強中にこのサイトを知り、大変参考にさせて頂いております。
さて、いきなりで恐縮なんですが質問をさせて下さい。
自分がやっているのはHTMLに埋め込んだVBScriptなんですが、スクリプトを途中終了させる事と、自分自身のファイルパスを取得する事がどうしても出来ません。
Wscript.Quit
Wscript.ScriptName
のような事をやりたいのですが、上記のような処理は埋め込みのVBScriptでは無理なのでしょうか。
でWSHではないんですが、
To:管理人むたぐちさん(っていうか、この掲示板をご覧のみなさん)
>> C:\WINDOWS\Application Data\Microsoft\...\Quick Launchに
>> デスクトップの表示.SCF というエクスプローラコマンドがありますが、
>> これをVBSから起動させてやることはできないのでしょうか?
>WshShell.Runじゃだめですか。
すいませんでした。
あっさり動きました。
私のIEが腐っていたようで、OSから再インストールし直しました。
>> ProcessIDと共に、ウインドウのタイトルを取得できないものでしょうか?
>無理な気がします。
>API(DynaCall)を使うか、その手のコンポーネントを作るか探すしか…
>DynaCallを使う場合の参考例:39-40 いちにい さん 2001/06/19 00:12
ありがとうございました。
今後、既出の話題で掲示板を汚さないよう、過去ログすべてに目を通したいと
思っています。
いろいろ、忙しいのです。
というか、掲示板書き込めねえ、と思ったら。
> Panasonic hi-ho では、レンタルウェブでお使いいただけるCGI として、当初
> からPerl4 に対応しておりましたが、世の中はPerl5 が主流となり、CGI の解
> 説書も、すべてPerl5 対応となっています。
> また、以前よりPerl5 対応のご要望が多い為、今回対応させていただくことに
> なりました。
>
> ●Perl4 からPerl5 への移行に関して
> www.ann.hi-ho.ne.jp, www.tim.hi-ho.ne.jp, www.roy.hi-ho.ne.jpの
> 各サーバーは、3月6日より、#!/usr/local/bin/perlと書きますと、
> Perl5と認識されます。
> (他のサブドメインのWeb サーバーも順次対応の予定です。)
>
> ●切替日時:2002年3月6日 14:00〜15:00の間に切り替え
> 切り替え時、数分間CGIがお使いいただけません。
>
> ●hi-ho 提供のCGI について
> 下記のCGIにつきましては、一部修正が必要です。
> 再セットアップのwebを準備しましたので、再セットアップをお願いします。
> ・Form to Mail
> ・ssendmail
> ・掲示板
と、いうわけでした。
すいません。
To: たる さん
> ウィザードということはuuidgen.exeのことじゃないですよね。(C++持っていないのでよく
> 知らないんですが)ちょっと分からないです。
Script Component Wizard ってのがあるらしいです。WSHのヘルプによると。
昔、現物を見たことがあるような気がします。最近は見ないなあ。
> 私のやっているのは、手動で登録してレジストリの中身をclassidに付け足すスクリプトを
> 書いてやっていますが、作った意義と意味が不明。整形式のXMLであるかのチェックぐらい
世界中で自分のwscをProgIDとClassID一対一対応させることができる。というメリットが。
To: い〜だ さん
> C:\WINDOWS\Application Data\Microsoft\...\Quick Launchに
> デスクトップの表示.SCF というエクスプローラコマンドがありますが、
> これをVBSから起動させてやることはできないのでしょうか?
WshShell.Runじゃだめですか。
> ProcessIDと共に、ウインドウのタイトルを取得できないものでしょうか?
> WMIのSDKをいろいろつついてみたんですが私の力ではどうにもなりません。
無理な気がします。
API(DynaCall)を使うか、その手のコンポーネントを作るか探すしか…
DynaCallを使う場合の参考例:39-40 いちにい さん 2001/06/19 00:12
To: ぼりす さん
> VBSを使ってあるMDIアプリを開き、複数のウィンドウが開いた状態から
> そのうち1つのウィンドウをActiveにしたいのですが可能でしょうか?
>
> MDIの子ウィンドウを最大化してタイトルを元にAppActivateとCtrl+Tabで
> とれないかとがんばってみたのですが無理なようです。
これも↑と同じ回答です。
To: ぜっと さん
> ・あるアプリが立ち上がっているか確認する。
WMIのWIn32_Processで。具体例は過去記事参照してください。
> ・ルータとの接続を確認する。
ルータにpingでも送ってやっては?
WshShell.Execでping実行。標準出力の結果に、timeoutとかの文字列がなかったら
接続していると見なす、とか。
> ・ルータへパケットを送信する。
パケットと一口に言っても、いろいろありますしね。
pingだってパケットを送ってることに代わりはないし…。
いろいろ、忙しい。
はじめまして。
今日WSHの存在を知って調べ始めた初心者です。
以下のことをやれと言われて困っております。
・あるアプリが立ち上がっているか確認する。
・ルータとの接続を確認する。
・ルータへパケットを送信する。
以上の事を定期的に実行する。
Networkオブジェクトは、ドライブかプリンタに繋ぎにいってしまうので
相手がルータではどうしようもありません。
自分が立ち上げたのでないアプリの監視も、やり方の見当がつきません。
そもそもWSHで可能かどうかだけでも教えていただけると有難いのですが。
よろしくお願いします。
初めまして。
VBSを使ってあるMDIアプリを開き、複数のウィンドウが開いた状態から
そのうち1つのウィンドウをActiveにしたいのですが可能でしょうか?
MDIの子ウィンドウを最大化してタイトルを元にAppActivateとCtrl+Tabで
とれないかとがんばってみたのですが無理なようです。
どなたか解決方法を教えてください。
>> 質問2:VBSから起動したわけではない、外部アプリケーションの
>> ProgIDの取得をする方法がありますか?(VBScriptの範囲内で)
>> GetObjectはあるようだが、単純なEXEには通用しない模様。
-------- 以下は頂いた回答 ------------------------------
PIDはProgIDのことじゃなくて、ProcessIDのことです。
だから、WMIのWin32_Processを使ってやれば解決します。
Set WshShell = WScript.CreateObject("WScript.Shell")
For Each Process in GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_Process where Name='mspaint.exe'")
WshShell.AppActivate Process.ProcessID
Next
-------- 頂いた回答ここまで ------------------------------
できました!凄いっス。Win32プロセスに対してSQL文が動くとは。。
こんな情報どうやって入手されているんでしょうか?
脱帽です。ありがとうございました。