1 :
名無し~3.EXE :
01/10/10 04:11 やっぱ、便利っしょ。 JScript でも VBScript でも書けるし、 ショートカットも作れるし、ドラッグ&ドロップもサポートしてるし、 レジストリもいじれるし、EXCEL や IE も制御できるし……。 使い勝手がいいと思うんだよね。 てなわけで、WSH をマターリと語りましょうぜ。 とりあえず、「おれはこんなことしてる自慢」とかでもいいです。 プログラム板じゃないんだし、簡単なネタでいいですよん。
へー
自動化はほとんどひまわりでやってます。
ほー
はぁー
あはぁ うふん
うぃー
ほぇほぇ〜
9 :
名無し~3.EXE :01/10/10 04:25
ずっこんばっこん
Virus作ってます。 I Love Youはとても流行ったね。
ひまわり。やっぱ、便利っしょ。 日本語でしか書けないけど、 ショートカットも作れるし、ドラッグ&ドロップもサポートしてるし、 レジストリもいじれるし、EXCEL や IE もWordも他色々制御できるし……。 使い勝手がいいと思うんだよね。 てなわけで、ひまわり をマターリと語りましょうぜ。 とりあえず、「おれはこんなことしてる自慢」とかでもいいです。 プログラム板じゃないんだし、簡単なネタでいいですよん。
>日本語でしか書けないけど、 逆にしんどい つーか覚えても・・(以下略)
無意味にしんどい ネタとしては桶
15 :
名無し~3.EXE :01/10/10 05:19
ひたすらしんどい
ひまわり重過ぎる。 やっぱゲームはHSP。 仕事用ならひまわりで良いかな
17 :
名無し~3.EXE :01/10/10 05:34
IEの右クリックいじるのに使う位なもんだなぁ。。。
うにゃ、実は Windows Scripting Host にこだわらずとも、 気軽に扱えるならひまわりでも HSP でもオッケ。 ひまわり、EXCEL との相性がいいし、 HSP だって小さな「お助けアプリ」組むにはいいよね。 (ゲームとか、それなりのソフト開発は別の話……HSP、向いてるけど) 例えば自分は、CD-ROM で AUTORUN.INF で起動するためには 実行ファイルじゃないとダメだから、HSP で「関連づけで実行」 だけの一行ソースのアプリ、作ったりもするよん。
PerlでもWSH使えるんだよね。 前に一つのファイルに、PerlとVBを混ぜてスクリプト組んでたんだけど、 デバッグが大変でした。 お互いの苦手な部分を補いつつ、プログラム組めると思ったが とことん甘かったと認識させられたよ。。
>>19 一つのファイルにってのが猛者。猛者過ぎたね(^^;
どっか、参考になるWebページとか書籍ないすかね・・・・ なかなか思い通りのこと出来ない
興味有るけど使いどころがわからん。
ん〜?
UNIXのシェルスクリプトみたいなもの?
>>22 に同じ
業務ならバッチ処理とか使い道ありそうだけど
ASPのでバックによく使用するぞ!! IISでデバックすると他のリクエストもとまるので 同僚に迷惑がかからないように、ローカルでやるぞ。 WSHマンセ−!
>>24 ASPのソースのデバックね。ASPが動くわけではない。
IIS関係では ADSI(LDAP)を使って、IISの設定を行うスクリプトも作ったぞ。 で、危ない設定は全て塞いだもんだよ。 でも、パッチはまた別問題だから、ワーム発生後はいろいろ大変だったよ。 あと、WMIを使えば、リモートサーバのシャットダウンや再起動もかけられるぞ。 これも、WSHでかけるよん。
27 :
名無し~3.EXE :01/10/10 06:38
28 :
名無し~3.EXE :01/10/10 06:42
Uwsc使ってる
どっちにしてもたいしたことじゃないがね
>>27 ごめん。ウザかった?
>>30 なるほど。ちょっと話の方向性がずれてたようだ。反省。
反省の意味もこめ、ちょっとした情報を。 もう既出かもしれないけど、Win98で c:\windows\SAMPLES\WSH ってフォルダーになぜかWSHのサンプル が入ってます。ためしてみてね。 じゃ。また。
>>24 まあまあ、話題にしてくれるだけでもスレの立てがいがあるです。
>>30 のページもいいですね。
自分も何か話題出さなきゃ……。
とりあえず、SendKeys でキーマクロっぽい処理をするのが好き
だったりします。素朴っしょ(^^; こんな感じ。
(ペイントソフト D-Pixed でアイコン作るとき用。
無題ファイルをアイコンサイズで開きます)
'D-Pixed でアイコン製作
Dim size
Const dpixed = "C:\SOFTWARE\dpixed\DPixed.exe" 'D-Pixed の場所
If MsgBox("32×32 で作る? 「いいえ」で 16×16 です。",4) = 6 then
size = "32"
Else
size = "16"
End if
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run dpixed
WScript.Sleep 2000 '起動にかかる時間(タイトルも含めて)
WshShell.AppActivate "D-Pixed" : WScript.Sleep 100
WshShell.SendKeys "^n" : WScript.Sleep 100
WshShell.SendKeys "%w"+size : WScript.Sleep 100
WshShell.SendKeys "%h"+size : WScript.Sleep 100
WshShell.SendKeys "~" : WScript.Sleep 100
プログラム板にあったWSHスレ消えちゃったのね。 ↓はディレクトリ一覧を表示するやつ var fso = new ActiveXObject("Scripting.FileSystemObject"); Dir("c:\\", ""); function Dir(strFolder, strIndent) { var folder = fso.GetFolder(strFolder); var fc = new Enumerator(folder.SubFolders); while(!fc.atEnd()) { WScript.StdOut.WriteLine(strIndent + fc.item()); f = fso.GetFolder(fc.item()); Dir(fc.item(), strIndent + "\t"); fc.moveNext(); } }
36 :
名無し~3.EXE :01/10/10 23:25
SendKeysは、PC98機ではあまり塩梅が良くないらしいね。 NUMLOCKが効かなくなるとか、なんとか。だよね? SendKeysはそれくらいだから良いとして、問題はAppActivateだよね。 たまにフォーカス取得に失敗するでしょ。どうにか回避できないものかな。
d
>>35 CScript.exe 用だし、言語も違うし、直前におれの書いたのと好対照で
イイですね。
>>36 PC98 の件は知りませんでした。
AppActivate、こっちの環境じゃあまりエラーはないけど、
エラーを知る手だてが欲しいですよね。
あと、title でしか捕捉できないのが、ちょっと不満。
39 :
名無し~3.EXE :01/10/11 01:32
>>38 AppActivateはPID(プロセスID)を指定することもできる。
WSHからPIDを取得する方法は、
1. WMIのWin32_Processクラスを使う
2. WSH5.6のWshExecオブジェクトのProcessIDプロパティを使う
さらに、AppActivateは、そのウィンドウをアクティブ化できたか
できなかったかのbool値を返す。
これを利用して、アクティブ化できるまでループをかけることにより、
目的のウィンドウをほぼ確実にアクティブ化することができる。
HSPってなんじゃ?
バイナリファイルを扱う方法ってある?
42 :
名無し~3.EXE :01/10/11 05:28
>>41 ヘルプには、まだないって書いてあったと思う。
>>39 うわ、かなり突っ込んだお答え、ありがとうございます。
WMI ですか……(汗)5.6 ですか……(汗)
うーん、どっちも触ってないです。
けど AppActivate が値を返すっていうのは凄く役立ちます!
ヘルプで AppActivate のところだけさっと読んでみて諦めちゃダメですね。
とりあえず、
>>34 のスクリプトの例で言うと
D-Pixed 起動後に Do....Loop Until WshShell.AppActivate ("D-Pixed")
するだけで、期待通りの動作になりました。
(Loop の中では Sleep 10 し続けて、ある回数以上でそれ以降の動作は中止……と)
やってみるもんですね。ありがとうございます。
45 :
名無し~3.EXE :01/10/11 13:08
みなさんどうやって勉強したの?市販本??
余計なサービスは普段は無効にしている。 IISを使いたい時、ワンクリックでサービス開始、管理ツールを開いたり。 ノートンのLiveUpdateもタスクスケジューラにまかせて 予定時刻の直前にオン、終わったらサービス切るようにしている。 あと無理矢理作られるレジストリを綺麗に、などなど。
48 :
名無し~3.EXE :01/10/14 07:57
>>44 WshExecを使うとこんな感じですね。
Const WshFailed = 2
Const WshFinished = 1
Const WshRunning = 0
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oWshExec = WshShell.Exec("C:\SOFTWARE\dpixed\DPixed.exe")
If oWshExec.Status = WshRunning Then
Do Until WshShell.AppActivate(oWshExec.ProcessID)
WScript.Sleep 100
Loop
WshShell.SendKeys ...
End If
ちなみに、WshExecを使うと、実行したプロセスの
標準出力・標準入力が自由自在に操れる
ようになります。これでSendKeysが使えなかった
コンソールアプリの制御も可能になったわけです。
(しかもSendKeysより精度が高い)
WSH5.6はIE6.0に付属してます。日本語版単体ダウンロードはまだ。
49 :
名無し~3.EXE :01/10/14 09:34
51 :
名無し~3.EXE :
01/10/14 18:17 >>41 ADO2.5があれば可能です。
以下はWindows板のロゴをダウンロードするスクリプトです。
ダウンロードにはMicrosoft.XMLHTTPを使っているので
IE5.0以上がインストールされているのが追加条件となります。
sSource = "
http://yasai.2ch.net/win/2ch_logo_rc2.jpg "
sDest = "test.jpg"
Set oHTTP = WScript.CreateObject("Microsoft.XMLHTTP")
oHTTP.open "GET", sSource, False
oHTTP.send
Set Stream = WScript.CreateObject("Adodb.Stream")
Const adTypeBinary = 1
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
Stream.Type = adTypeBinary
Stream.Open
Stream.Write oHTTP.responseBody
Stream.Savetofile sDest, adSaveCreateOverWrite
Set Stream = Nothing
Set oHTTP = Nothing
MsgBox "ダウンロード完了"
あと、BASP21などのコンポーネントを使うって手もありますね。