■ 2ちゃんねるは、ここのサーバを使ってるです。。。
 .jp ドメインお持ちのお客様大歓迎。maido3.jp
 .fm 取得代行します。(US) maido3.fm
 .ca 取得代行します。(US) maido3.ca
 .com .net .org 取得代行します。(US) maido3.com
 .cc .to .tv 取得代行はじめました。NEW
人気サイト
月々1,000円からの BinboServer.com 2ちゃんねるも使っている Big-Server.com
>> 2ちゃんねる、サーバ監視所

■掲示板に戻る■ ■過去ログ倉庫めにゅーに戻る■
Windows Scripting Host
1 名前: 名無し~3.EXE 投稿日: 01/10/10 04:11
やっぱ、便利っしょ。
JScript でも VBScript でも書けるし、
ショートカットも作れるし、ドラッグ&ドロップもサポートしてるし、
レジストリもいじれるし、EXCEL や IE も制御できるし……。
使い勝手がいいと思うんだよね。
てなわけで、WSH をマターリと語りましょうぜ。

とりあえず、「おれはこんなことしてる自慢」とかでもいいです。
プログラム板じゃないんだし、簡単なネタでいいですよん。


2 名前: sage 投稿日: 01/10/10 04:13
へー


3 名前: 名無し~3.EXE 投稿日: 01/10/10 04:14
自動化はほとんどひまわりでやってます。


4 名前: 名無し~3.EXE 投稿日: 01/10/10 04:14
ほー


5 名前: 名無し~3.EXE 投稿日: 01/10/10 04:21
はぁー


6 名前: 名無し~3.EXE 投稿日: 01/10/10 04:23
あはぁ うふん


7 名前: 名無し~3.EXE 投稿日: 01/10/10 04:24
うぃー


8 名前: 名無し~3.EXE 投稿日: 01/10/10 04:24
ほぇほぇ〜


9 名前: 名無し~3.EXE 投稿日: 01/10/10 04:25
ずっこんばっこん


10 名前:   投稿日: 01/10/10 04:25
Virus作ってます。

I Love Youはとても流行ったね。


11 名前: 名無し~3.EXE 投稿日: 01/10/10 04:37
ひまわり。やっぱ、便利っしょ。
日本語でしか書けないけど、
ショートカットも作れるし、ドラッグ&ドロップもサポートしてるし、
レジストリもいじれるし、EXCEL や IE もWordも他色々制御できるし……。
使い勝手がいいと思うんだよね。
てなわけで、ひまわり をマターリと語りましょうぜ。

とりあえず、「おれはこんなことしてる自慢」とかでもいいです。
プログラム板じゃないんだし、簡単なネタでいいですよん。


12 名前: 名無し~3.EXE 投稿日: 01/10/10 04:53
>日本語でしか書けないけど、

逆にしんどい
つーか覚えても・・(以下略)


13 名前: 名無し~3.EXE 投稿日: 01/10/10 04:56
>>12
逆にっていうか素でしんどいよ。


14 名前: 名無し~3.EXE 投稿日: 01/10/10 05:19
無意味にしんどい
ネタとしては桶


15 名前: 名無し~3.EXE 投稿日: 01/10/10 05:19
ひたすらしんどい


16 名前: 厨房 投稿日: 01/10/10 05:24
ひまわり重過ぎる。
やっぱゲームはHSP。
仕事用ならひまわりで良いかな


17 名前: 名無し~3.EXE 投稿日: 01/10/10 05:34
IEの右クリックいじるのに使う位なもんだなぁ。。。


18 名前: 1 投稿日: 01/10/10 05:37
うにゃ、実は Windows Scripting Host にこだわらずとも、
気軽に扱えるならひまわりでも HSP でもオッケ。
ひまわり、EXCEL との相性がいいし、
HSP だって小さな「お助けアプリ」組むにはいいよね。
(ゲームとか、それなりのソフト開発は別の話……HSP、向いてるけど)

例えば自分は、CD-ROM で AUTORUN.INF で起動するためには
実行ファイルじゃないとダメだから、HSP で「関連づけで実行」
だけの一行ソースのアプリ、作ったりもするよん。


19 名前: 名無し~3.EXE 投稿日: 01/10/10 05:45
PerlでもWSH使えるんだよね。
前に一つのファイルに、PerlとVBを混ぜてスクリプト組んでたんだけど、
デバッグが大変でした。

お互いの苦手な部分を補いつつ、プログラム組めると思ったが
とことん甘かったと認識させられたよ。。


20 名前: 1 投稿日: 01/10/10 05:47
>>19
一つのファイルにってのが猛者。猛者過ぎたね(^^;


21 名前: 名無し~3.EXE 投稿日: 01/10/10 06:03
どっか、参考になるWebページとか書籍ないすかね・・・・
なかなか思い通りのこと出来ない


22 名前:   投稿日: 01/10/10 06:12
興味有るけど使いどころがわからん。


23 名前: 名無し~3.EXE 投稿日: 01/10/10 06:18
ん〜?
UNIXのシェルスクリプトみたいなもの?

>>22に同じ
業務ならバッチ処理とか使い道ありそうだけど


24 名前: 名無し~3.EXE 投稿日: 01/10/10 06:22
ASPのでバックによく使用するぞ!!
IISでデバックすると他のリクエストもとまるので
同僚に迷惑がかからないように、ローカルでやるぞ。

WSHマンセ−!


25 名前: 24 投稿日: 01/10/10 06:24
>>24
ASPのソースのデバックね。ASPが動くわけではない。


26 名前: 24 投稿日: 01/10/10 06:34
IIS関係では
ADSI(LDAP)を使って、IISの設定を行うスクリプトも作ったぞ。
で、危ない設定は全て塞いだもんだよ。
でも、パッチはまた別問題だから、ワーム発生後はいろいろ大変だったよ。

あと、WMIを使えば、リモートサーバのシャットダウンや再起動もかけられるぞ。
これも、WSHでかけるよん。


27 名前: 名無し~3.EXE 投稿日: 01/10/10 06:38
>>24-26
もういっていいよ


28 名前: 名無し~3.EXE 投稿日: 01/10/10 06:42
>>27
? なんかあったの?


29 名前: 名無し~3.EXE 投稿日: 01/10/10 06:46
Uwsc使ってる


30 名前: 名無し~3.EXE 投稿日: 01/10/10 06:50
>>24-26
そういうことじゃなくて
↓こういうことで何かいいアイデアがあるかってことでは?
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/download.htm


31 名前: 名無し~3.EXE 投稿日: 01/10/10 06:51
どっちにしてもたいしたことじゃないがね


32 名前: 24 投稿日: 01/10/10 07:12
>>27
ごめん。ウザかった?

>>30
なるほど。ちょっと話の方向性がずれてたようだ。反省。


33 名前: 24 投稿日: 01/10/10 07:17
反省の意味もこめ、ちょっとした情報を。
もう既出かもしれないけど、Win98で
c:\windows\SAMPLES\WSH ってフォルダーになぜかWSHのサンプル
が入ってます。ためしてみてね。

じゃ。また。


34 名前: 1 投稿日: 01/10/10 22:39
>>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


35 名前: 名無し~3.EXE 投稿日: 01/10/10 22:58
プログラム板にあった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だよね。
たまにフォーカス取得に失敗するでしょ。どうにか回避できないものかな。


37 名前: 名無し~3.EXE 投稿日: 01/10/11 00:37
d


38 名前: 1 投稿日: 01/10/11 01:17
>>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値を返す。
これを利用して、アクティブ化できるまでループをかけることにより、
目的のウィンドウをほぼ確実にアクティブ化することができる。


40 名前: 名無し~3.EXE 投稿日: 01/10/11 01:37
HSPってなんじゃ?


41 名前: しっつも〜ん! 投稿日: 01/10/11 01:39
バイナリファイルを扱う方法ってある?


42 名前: 名無し~3.EXE 投稿日: 01/10/11 05:28
>>41
ヘルプには、まだないって書いてあったと思う。


43 名前: 名無し~3.EXE 投稿日: 01/10/11 05:34
>>41
peekを使ってがむばれ


44 名前: 1 投稿日: 01/10/11 12:57
>>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
みなさんどうやって勉強したの?市販本??


46 名前: 名無し~3.EXE 投稿日: 01/10/11 13:11
余計なサービスは普段は無効にしている。
IISを使いたい時、ワンクリックでサービス開始、管理ツールを開いたり。
ノートンのLiveUpdateもタスクスケジューラにまかせて
予定時刻の直前にオン、終わったらサービス切るようにしている。
あと無理矢理作られるレジストリを綺麗に、などなど。


47 名前: 名無し~3.EXE 投稿日: 01/10/11 17:18
>>45
見りゃわかる。
わからん奴は能無し。


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
>>47
オマエガナ


50 名前: 名無し~3.EXE 投稿日: 01/10/14 10:08
>>49
オマエ?


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などのコンポーネントを使うって手もありますね。



2ちゃんねるは、ここのサーバを使ってるです。。。