WSH(・∀・)スレッド! Part 3at TECH
WSH(・∀・)スレッド! Part 3 - 暇つぶし2ch250:デフォルトの名無しさん
08/08/07 02:27:19
vbsで.NETFrameworkを利用できるらしいけど
使えるってこととArrayListの例がちょこっとあるだけで
リファレンス的なものがみつからないんだよなぁ

251:デフォルトの名無しさん
08/08/07 05:31:04
>>250
.NET Frameworkが使えるというよりも、特定の条件を満たしたCOMを
CreateObjectで使えるってだけだから、.NET Framework以外のCOMも
使える物があるし、.NET FrameworkでCOMがHKEY_CLASS_ROOTに
登録されていても使えない物もある。
WSHから扱えるクラスの網羅的な資料が提供されないままPowerShellが
出てきたってことは、MSとしてはPowerShellを使ってほしいんだろ。

252:デフォルトの名無しさん
08/08/07 10:03:48
便利そうなのをちょっと使えるってだけっぽいね。
中途半端な対応は混乱するだけなのに。。。

PowerShellって現在の環境に導入するには
別途インストールしなければならないから導入しづらいんだよな。

253:デフォルトの名無しさん
08/08/07 12:32:46
同じ高さにしてほしいな、WSHとPS

254:デフォルトの名無しさん
08/08/07 18:00:21
vbsでSystem.Collections.ArrayListを使えば自分でせこせこ自作ソートを記述しなくてもいいのか
自分でソート書くのが面倒でjsを使うようになったらjsのオブジェクトがいじりやすくて慣れちゃったよ

255:デフォルトの名無しさん
08/08/07 19:13:52
JScriptの配列は遅すぎて泣けるけどie8で速くなってる?

256:デフォルトの名無しさん
08/08/07 22:43:21
>>255
会社のマシンに IE8 を試しに入れてるんだが、
JScript のエンジンも更新されてるんだろうか?

257:デフォルトの名無しさん
08/08/08 02:39:33
そういう話は一応ある。
スレリンク(win板:206-210番)
URLリンク(www.google.com)スレリンク(win板:206-210番)
URLリンク(www.google.co.jp)

258:デフォルトの名無しさん
08/08/08 21:36:53
すんません、質問です。

スクロールキーがオンの場合、あるキーを入力するスクリプトを組みたいんですが、
オンかオフかWSH上で判断できますか?

259:デフォルトの名無しさん
08/08/08 22:15:33
WSH上で判断することは出来るけど
WSHで判断することは出来ない

つまりCOMを作るか探すかしろってことだ
まぁがんがれ

260:デフォルトの名無しさん
08/08/08 22:55:48
activex.dllはvb.net expressで作ればいいよ

261:258
08/08/08 23:56:28
>>256, 260
どうもありがと。がんばってみます。。。

262:デフォルトの名無しさん
08/08/09 01:03:17
がんばれ。google先生に聞けば1時間でできると思うぞ。

263:デフォルトの名無しさん
08/08/09 18:45:18
System.Collections.ArrayList
はJoinできない?
xJoin(ArrayList)
xArrayList.Join


264:デフォルトの名無しさん
08/08/09 19:24:01
.NET Framework使うならMSDNライブラリくらい参照しようよ。

265:デフォルトの名無しさん
08/08/09 22:48:07
※MSDNライビュラリは有償です

266:デフォルトの名無しさん
08/08/09 22:50:57
>>265
 |
 |
 |
 し


267:デフォルトの名無しさん
08/08/10 12:32:36
>>263
Join出来るよ

268:デフォルトの名無しさん
08/08/10 14:01:35
出来た!

269:デフォルトの名無しさん
08/08/10 21:34:48
System.Collections.ArrayList
のソートで比較関数をVBScriptで作れない?
ArrayList.Sort GetRef("compare")
はダメだった

270:デフォルトの名無しさん
08/08/11 05:34:14
vbsの変数名の最後につける型を指定するやつ(&H20&の末尾の&とか)の種類の一覧がどこにあるか知りませんか?
どういう単語で検索すればいいのか漠然としすぎて分かりません

あとこのURLの「[地域のプロパティ] の設定値」ってなんですか?
URLリンク(msdn.microsoft.com)


271:デフォルトの名無しさん
08/08/11 14:58:31
>vbsの変数名の最後につける型を指定するやつ
vbsにはない。すれっち

272:デフォルトの名無しさん
08/08/11 15:06:32
>型を指定するやつ
型を指定する文字

273:デフォルトの名無しさん
08/08/11 20:55:23
最後じゃなくって最初じゃないの?

274:デフォルトの名無しさん
08/08/11 21:25:08
>>270
前者は271も言ってる通りVBSには明示的な型というもの自体が存在しないが
VBやVBAに関してなら「型宣言文字」でググれ

後者は、例えば数値の表示形式で、3桁カンマ区切りをするか否かというオプションの場合
vbTrue→地域のプロパティの設定値に関係なく区切る(123,456,789.00)
vbFalse→地域のプロパティの設定値に関係なく区切らない(123456789.00)
vbUseDefault→地域のプロパティの設定値が「区切り有り」なら区切る、「区切り無し」なら区切らない

>>273
最初に付けるのは型を「指定」しているのではなく、型を「任意に明示」してるだけ
「指定」ではなく、しかも「任意」なので
Dim intHOGE As String
なんてことも出来る
これは「プレフィックス」で、上記intはハンガリアン記法での一般的なInteger型のプレフィックス
つまりInteger型のプレフィックスを付けておきながらString型を指定することが出来るわけだ

275:デフォルトの名無しさん
08/08/11 21:41:43
>>274
ごめ ちゃんと読んでなかったわ

276:デフォルトの名無しさん
08/08/13 18:29:26
CIM_DataFileクラスを用いて、ファイルの各種情報を取得したいのですが、
「説明」のプロパティを取得するときに指定するプロパティ名が分かりません。

具体的には、例えばソリティア(C:\WINDOWS\system32\sol.exe)を
右クリックして表示されるプロパティの「バージョン情報」タブの2行目に
「説明:Solitaire Game Applet」と表示されますが、この値を取得したいのです。

ファイルバージョンなどは、「Version」プロパティで取得できております。
ご存知の方、ご教示お願い致します。

277:デフォルトの名無しさん
08/08/14 02:40:13
プレフィクスだったらMSDNにのってるよ
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1041\vbcon98.chm::/Html/vbconconstantvariablenamingconventions.htm


278:デフォルトの名無しさん
08/08/14 04:43:23
>>277
そんな話は誰もしてないw

279:デフォルトの名無しさん
08/08/14 10:27:49
>>278
>>270
よく読め文盲

280:デフォルトの名無しさん
08/08/14 13:34:45
.NETのコンストラクタやスタティックメソッドは呼べないのか

281:デフォルトの名無しさん
08/08/14 13:57:47
ActiveXPosh使えばー?

282:デフォルトの名無しさん
08/08/15 19:25:16
>>276
確かにMSDNとかにはプロパティ名書いて無いね。
どうりでこのスレの住人でも即答できない訳だ。

283:デフォルトの名無しさん
08/08/15 22:01:03
ggle VersionInfo Description

284:デフォルトの名無しさん
08/08/15 22:03:50
つfilever.exe

285:デフォルトの名無しさん
08/08/15 22:09:36
shell.applicationのextendedpropertyで取れるお

286:デフォルトの名無しさん
08/08/25 19:37:01
割り算をして小数点が出てきたときに
繰り上げるにはどうしたらいいんでしょうか?
x = 100/3
だとxが33.33333となってなるところを
繰上げて34になるようにしたいのですが

287:デフォルトの名無しさん
08/08/25 20:50:45
>>286
xと、xを切り捨てた値を比較して、xが小さければ1を足す

288:デフォルトの名無しさん
08/08/25 21:06:25
JScript で言うと、xと xを繰り上げた値を比較して、xが小さければ繰り上げる。

289:デフォルトの名無しさん
08/08/25 21:34:16
-Int(-x)

290:デフォルトの名無しさん
08/08/25 23:05:35
Math.ceil

291:デフォルトの名無しさん
08/08/27 11:54:53
>>286
0.9を足して切り捨て。

292:デフォルトの名無しさん
08/08/27 11:55:54
ああ、四捨五入と違って33.01も切り上げするならダメか。

293:デフォルトの名無しさん
08/08/27 12:16:41
VBScriptでウェブページを取得したいのですが
mixiのような感じで、ユーザー名やパスワードが必要な場合はどうすればいいんでしょうか?
いろいろググってみたのですが、検索ワードが悪いの見つける事が出来ませんでした・・・

294:デフォルトの名無しさん
08/08/27 13:42:12
無理

295:デフォルトの名無しさん
08/08/27 18:06:49
もともと無理だったんですか・・・・
一番簡単なものだと何で出来ますか?jscriptでもやっぱり無理なんでしょうか?

296:デフォルトの名無しさん
08/08/27 18:53:35
Dim mixi, email, password
Dim ie, document, form

mixi = "URLリンク(mixi.jp)"
email = "null@po.com"
password = "nullpo"

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate(mixi)
Do While ie.Busy
    WScript.Sleep(1000)
Loop

Set document = ie.Document
Set form = document.forms("login_form")
If TypeName(form) = "Nothing" Then WScript.Quit()
form("email").value = email
form("password").value = password
form.submit()

297:デフォルトの名無しさん
08/08/27 19:16:58
---------------------------
Windows Script Host
---------------------------
スクリプト: C:\296.vbs
行: 15
文字: 1
エラー: エラーを特定できません
コード: 80004005
ソース: (null)

---------------------------
OK
---------------------------

さすがVistaだ。なんともないぜ!

298:デフォルトの名無しさん
08/08/27 19:43:47
Do While ie.Busy Or ie.ReadyState<>4

299:デフォルトの名無しさん
08/08/27 20:11:00
なんか忘れてた気がしたけどReadyStateか
あとNothingの扱いをちゃんと調べたことないしIsNothingとかないからNothingの判定がよくわからんかった
If form Is Nothing Then WScript.Quit()
でいいんだな

300:デフォルトの名無しさん
08/08/27 22:08:51
>Quit() とか
VBScriptなのに

301:293
08/08/28 10:44:50
レスありがとうございます

>>296
IEを使えば出来るんですね!
使わないではやっぱり無理なんでしょうか?


302:デフォルトの名無しさん
08/08/28 11:09:26
無理じゃないよ
スレ違い(WSHではなくActiveX汎用コンポーネントの話)になるので詳しくは伏せるけど

303:デフォルトの名無しさん
08/08/28 16:56:19
CreateObject使うのはスレ違いだって?

304:デフォルトの名無しさん
08/08/29 17:21:52
>>296はIEスレてなもんだな

305:デフォルトの名無しさん
08/08/31 18:04:45
unix系のシステムでもWSH使えたら良いのにネ。
bashよか使い勝手が良い。

306:デフォルトの名無しさん
08/08/31 18:20:08
UNIXならrubyあたりでいいじゃん。なんでそこでbashが出てくるの?
bashと比較するんならcmdとかPowerShellとかだろ。

307:デフォルトの名無しさん
08/08/31 18:35:38
わざわざインストールが必要な ruby なんか全然
お呼びでないので、巣から出て来るなよ。

308:デフォルトの名無しさん
08/08/31 19:41:27
>>305
なんでbashの替わりがWSHなの???意味が分からん

309:デフォルトの名無しさん
08/08/31 20:15:54
代わりにならないからぼやいてるんだろ。
意味わからんのならレスしなきゃいいのに。

310:デフォルトの名無しさん
08/08/31 20:28:22
bashは主にUNIX系OSで使われているシェルのひとつ。
WindowsではコマンドプロンプトやPowerShellに相当。

代わりになるわけがないのに、ぼやく意味がわからん

311:デフォルトの名無しさん
08/08/31 20:37:31
とりあえず>>305がunix系システムをろくに使いこなせていないことは解った。


312:デフォルトの名無しさん
08/08/31 21:29:37
>>310
> 意味わからんのならレスしなきゃいいのに。

# cmd.exe と bash を比較してる時点でアホ丸出しだし。

313:デフォルトの名無しさん
08/09/02 10:37:33
よくわからんけど、>>305はシェルスクリプトって言いたかったのかも

314:デフォルトの名無しさん
08/09/03 12:14:55
Sendkeysを並べてWindows Vistaを自動的に操作するスクリプトを書いてるんですが、
UACのダイアログが出るとそこで終わっちゃうんです。
「実行するにはあなたの許可が必要です」ってダイアログに対して {LEFT}{ENTER} とか %c って書いても
ボタンを押してくれません。
どうすればいいのか、だれか教えてください。

315:デフォルトの名無しさん
08/09/03 12:59:22
>>314
UACを無効にしておく

316:デフォルトの名無しさん
08/09/03 13:18:31
>>315
UACを切らずに済む方法はないでしょうか?

317:デフォルトの名無しさん
08/09/03 13:36:29
スクリプトを動かし始める前に昇格しておく。

318:デフォルトの名無しさん
08/09/03 20:00:51
>>314 .sendkeys "{space}"

319:デフォルトの名無しさん
08/09/03 22:21:54
>>317-318
ありがとうございます。明日、出社したら調べてみます。


320:デフォルトの名無しさん
08/09/05 16:27:42
やってみましたが {SPACE} はエラーになりました。そういうキーワードはなさそうです。
昇格は勉強中です。難しいです。

321:デフォルトの名無しさん
08/09/05 17:26:59
>>320
これが参考になると思う。
URLリンク(technet.microsoft.com)
URLリンク(face-products.com)

322:デフォルトの名無しさん
08/09/05 18:15:21
.sendkeys " "

323:デフォルトの名無しさん
08/09/07 19:26:28
スクリプトってこれ最悪だな。
使ってないけどたぶん.NETも同じなんだろうな

324:デフォルトの名無しさん
08/09/07 19:34:41
発端はJavascriptなんだからしょうがない。

325:デフォルトの名無しさん
08/09/07 20:57:03
>>323
いやいや.NETを一緒にするな。
あれのダメさはまた別物。

326:デフォルトの名無しさん
08/09/17 10:08:29
WSH使いの視点で見るとIronPythonとかIronRubyってどうなん?

327:デフォルトの名無しさん
08/09/17 10:47:28
ActivePythonではなくIronPythonならWSHとは全く関係ないものなので
「WSH使い」の視点からは視野外だ

もちろん「WSH使い」でもWSH以外を使う人はいっぱい居るから
個々の視点ではいろんな意見があるだろうが、それは「WSH使い」の視点ではないからな

328:デフォルトの名無しさん
08/09/28 02:16:01
すいませんWSHの質問です。
IEのテキストボックスに値を入力したいんですが、
そのテキストボックスはたくさんあってtbox[0].priceからtbox[100].priceまであるんです。
IE.Document.form.tbox[0].price.value = "100"とやると、オブジェクトがありませんという実行時エラーになってしまいます。
普通のテキストボックス名(tbox1)とかなら大丈夫でした。
テキストボックス名がピリオドで区切られているのですが、そういう場合なにか工夫がいるのでしょうか?
こういう場合どうすればできるでしょうか?
よろしくお願いします。

329:デフォルトの名無しさん
08/09/28 14:00:19
言ってることがいまいちピンとこない。
エラーになる最小のソースを晒せ。

330:328
08/09/28 17:19:12
>>329
すいません。お願いします。
HTML
<html>
<body>
<input name="tbox[0].price" type="text" value=""/>
<input name="tbox[1].price" type="text" value=""/>
<input name="aaa" type="text" value=""/>
</body>
</html>

WSH
IE.document.form.tbox[1].price.value = "100"
とやると実行時エラーで "1"というオブジェクトがありませんというようなエラーが出ました。
IE.document.form.aaa.value = "100"
とやるとaaaのテキストボックスに正しく100が入力されます。

最終的にやりたいのはテキストボックスがいっぱいあるのでFOR文でまわして全部に入力したいです。
ちょっと今ソースがみれないのでわかりづらいかも知れないですが、よろしくお願いします。

331:デフォルトの名無しさん
08/09/28 18:15:25
今朝のことです。

ブラウザを操作するスクリプトが暴走して、
IEとWScript.exeが無限起動してたwwww
ブラクラwwwwwwww

332:デフォルトの名無しさん
08/09/28 19:31:24
>>329
<input name="tbox[0].price" type="text" value=""/>
<input name="tbox[1].price" type="text" value=""/>
↑のname要素の書き方の場合、"tbox[0].price"という名前の要素を定義していることになる。
"tbox[0].price"というname要素と"tbox[1].price"というname要素の間にはまったく関連性はない。
そもそも"tbox[0].price"という書き方をしたところで勝手に配列オブジェクトになりはしない。

× IE.document.form.tbox[1].price.value = "100"
○ IE.document.form.["tbox[1].price"].value = "100" ←つまりこういうアクセスの仕方をしなければならない。

いまのままで何とかループをまわしたいなら、↓みたいなやり方になる。
for ( var i = 0; i < 100; i++ ) {
IE.document.form.["tbox[" + i + "].price"].value = "100";
}

333:デフォルトの名無しさん
08/09/28 19:43:02
この糞スレがはじめて世の中の役に立った瞬間に立ち会えたww

334:デフォルトの名無しさん
08/09/29 02:29:31
全部同じnameをふってgetElementsByNameで配列を得てから回すんだ!

335:デフォルトの名無しさん
08/09/29 02:32:11
>>333
このスレがグルジアでの米ロ軍事衝突を食い止めてたの知らないなんて
どんだけにわかなんだよ

336:デフォルトの名無しさん
08/09/29 20:22:48
>>335
米ロが衝突とかどうでもイイからさ、
インストール済のWindowsコンポーネントの一覧をテキストファイルに落とす方法を教えてくれよ。

いや教えてください。お願いします。この通りです。

337:デフォルトの名無しさん
08/09/29 21:54:22
Windowsコンポーネント?
その中でWSHから使えるのなんて極一部(ActiveXコンポ)だぞ

ActiveXコンポのみなら、各種オブジェクトブラウザで一覧出来るので
リスト取得ツールでも使ってテキストに落とせば良い
WSHから使えないものも含めて、Windowsコンポ全てを網羅したいならスレ違い

スクリプトで取得したいなら、レジストリを嫁
レジストリの内容取得は、WshShell使う方法はWSHヘルプに載ってるし
WMI使う方法なら、そこら辺にサンプルがごろごろ転がってる
レジストリの内容解釈に付いてはスレ違いなので伏せる

338:デフォルトの名無しさん
08/09/29 22:06:02
ちっがああああぅw

コンパネの[プログラムの追加と削除]から[Windowsコンポーネントの追加と削除]って
選べるでしょ。あれの一覧。IISとかインストールするのに使うでしょ。

あの中から、どんなコンポーネントが選べるのか、
実際にインストールされているのはどれなのか?を
テキストファイルに吐き出したい。それだけ。

米ロが衝突する前に教えてほしい。君の1レスが世界を救うんだ、頼む!

339:デフォルトの名無しさん
08/09/30 00:01:49
質問とは関係ないけどVistaだとこんなのもできた。

Set sh = WScript.CreateObject("Shell.Application")
Set cpl = sh.NameSpace(3)
For Each i in cpl.Items
If i.Name = "プログラムと機能" Then
For Each j in i.GetFolder.Items
s = s & j.Name & vbNewLine
Next
End If
Next
MsgBox s


340:デフォルトの名無しさん
08/09/30 17:49:44
If i.Name = "プログラムと機能" Then msgbox i.path
してみて、次からsh.NameSpace()に指定すればいいんじゃない?

341:デフォルトの名無しさん
08/09/30 21:05:19
Wscript.CreateObject("WindowsInstaller.Installer")


342:デフォルトの名無しさん
08/09/30 21:15:48
おい、おまえらXPでも動くようなのを書けよ
小出しにするなまとめろ

343:デフォルトの名無しさん
08/09/30 22:19:33
ていうかコンパネの一覧表か
要らんわ

344:デフォルトの名無しさん
08/09/30 23:29:48
ほう助33世

345:デフォルトの名無しさん
08/09/30 23:49:30
>>340
なるほろ!Pathか。
ParseName("プログラムと機能") しても引っ掛からなかったんで廻してしまったよ。

Set cpl = WScript.CreateObject("Shell.Application").NameSpace("::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{7B81BE6A-CE2B-4676-A29E-EB907A5126C5}")
For Each i in cpl.Items
s = s & i.Name & vbNewLine
Next
MsgBox s

346:デフォルトの名無しさん
08/09/30 23:59:55
うしろだけでもよいかも
"::{7B81BE6A-CE2B-4676-A29E-EB907A5126C5}"

347:デフォルトの名無しさん
08/10/01 00:11:47
>>346
うん、それはダメだった。理屈は良く分からんが。

348:デフォルトの名無しさん
08/10/01 01:58:58
数字はないか?一覧してみ
On Error Resume Next
Set Shell=CreateObject("Shell.Application")
For k=0 To 100
Set Folder=Shell.NameSpace(k)
WScript.StdOut.WriteLine Join(Array(k,Folder.Self.Name,Folder.Self.Path),vbTab)
Next


349:デフォルトの名無しさん
08/10/06 21:22:19
゚         (_ヽ      +
 ' *  /⌒ヽ.| |  +
   . ( ^ω^ / /       。
  +  y'_    イ    *
   〈_,)l   | *      。
ガタン lll./ /l | lll    +
VBScriptで、こんな感じでドライブの取り出しはOKですが、逆の「閉じる」は出来ませんか?
2chに集う墓でも無理?
Set objShell = CreateObject("Shell.Application")
set objDrive = objShell.NameSpace("D:\")
Set objItem = objDrive.Items.Item
objItem.InvokeVerb "取り出し(&J)"

350:デフォルトの名無しさん
08/10/06 21:32:14
hard to close

351:349
08/10/07 03:20:31
自己解決しました。
検索したら、そういう動作をするサンプルプログラムがありました。
でもハード側もそれに対応してないと動かない、ということでした。

結論は:開く「閉じる」をするVBscriptのプログラムはあるが、すべてのハードでは出来ない

゚         (_ヽ      +
 ' *  /⌒ヽ.| |  +     対応してないハードでそれを使っても
   . ( ^ω^ / /       。 ←ガタン!と出たままになると
  +  y'_    イ    *
   〈_,)l   | *      。
ガタン lll./ /l | lll 

352:デフォルトの名無しさん
08/10/07 08:57:42
原理的にはコードを逆に書けば逆の動作をするはず。

)"noitacilppA.llehS"(tcejbOetaerC = llehSjbo teS
)"\:D"(ecapSemaN.llehSjbo = evirDjbo tes
metI.smetI.evirDjbo = metIjbo teS
")J&(し出り取" breVekovnI.metIjbo

353:デフォルトの名無しさん
08/10/07 09:17:44
objShell.Run """C:\\ProgramData\\Microsoft\\Windows\Start Menu\\Programs\\Fantasy Earth Zero\\Fantasy Earth Zero.lnk""",1,1
Do
Set ProcessSet = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_Process where Name='FEzero_Client.exe')
WScript.Sleep 1000 '1秒間待機
Loop While ProcessSet.Count > 0
’処理

FEzero_Client.exeが終了したら、適当なプログラムを実行させたいのだが、FEzero_Client.exeがnprotectによって隠蔽されているせいでうまくいかない。
そこでウィンドウが存在するかどうかを判定することによってFEzero_Client.exeが起動しているかどうかを調べる方法をとりたい。
でも、いくら探しても、見つからない。
ウィンドウ名が存在しているかどうかを調べる方法があったら教えてほしい。

354:デフォルトの名無しさん
08/10/07 18:46:10
>>353
AppActivate

355:デフォルトの名無しさん
08/10/07 21:14:56
>>354
それだと、まずいんだ・・・
FEZero_Client.exeを起動している間にも、ブラウザーで作業したりするから。


356:デフォルトの名無しさん
08/10/07 22:25:24
>>338
亀&自己レスだが、「Windowsコンポーネントの一覧&インストール状態」の取得デキタ。
レスはあまり参考にならなかった(すまん!)が、一応此処で聞いたって事でフィードバックしておく。
ちなみにXPSP2な。2003でもいけると思う。

・コンパネから起動する「Windowsコンポーネントの追加と削除」は以下のコマンドで起動されてる。
「c:\windows\system32\sysocmgr.exe /y /i:c:\windows\inf\sysoc.inf」

・上のコマンドの引数の「sysoc.inf」ファイルの「Components」セクションで他の*.infファイルへの参照が列挙されてる。
*.infファイルが明記してなかったり「hide」に設定されてる行は無視される。

・具体的なコンポーネントの名称、説明、「Windowsコンポーネントの追加と削除」画面での階層構造とかは
個々の*.infファイルの方を見る。

・Windowsコンポーネントのインストール状態については以下のレジストリに格納されてる。
「HEKY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OC Manager\Subcomponents」

・個々の*.infファイルの「Optional Components」に列挙されているコンポーネント名が、
上のレジストリキー配下のプロパティに対応してる。

以上。プログラムはinfファイルやレジストリを読むだけのダルいものなのであえて載せないw
え?WSH関係ない?そうだよちきしょう。

357:デフォルトの名無しさん
08/10/07 22:40:11
>>339以降は関係ない話だから役に立つはずがない。

358:デフォルトの名無しさん
08/10/10 01:16:11
>>353 tasklist.exe

359:デフォルトの名無しさん
08/10/10 07:57:28
>>358
nprotectによってFEZero_clinet.exeがごっそり消えてる。
タスクマネージャーを使っても、WMIをつかっても、Tasklistをつかっても、結果は同じだった。

360:デフォルトの名無しさん
08/10/11 03:01:54
Windows 2000 SP4、IE6.0 SP1、WindowsUpdateは一通り入れた状態でcscript
> C:\Documents and Settings\Administrator>cscript
> Microsoft (R) Windows Script Host Version 5.6
> Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

WSH5.6を入れた記憶は無いんだけど
SP4は5.6がデフォ?それともIE6.0 SP1入れたから?うーん。

URLリンク(www1.u-netsurf.ne.jp)
> Windows98 SecondEdition は 5.1
> Windows 2000 SP3 は 5.1
> WindowsXP は 5.6

361:デフォルトの名無しさん
08/10/11 11:53:54
> それともIE6.0 SP1入れたから?

多分それだと思う。

URLリンク(www.microsoft.com)

+よく寄せられる質問

使用中の VBScript のバージョンはどのように分かるのですか?

VBScript.dll ファイルは 2 つのソフトウェア製品 (Internet Explorer および
Microsoft Windows Script) に同梱されています。

・Internet Explorer 6.0 : Internet Explorer 6.0 を実行しているお客様については、
 使用しているプラットフォームに関係なく、Windows Script 5.6 が既定でインストー
 ルされています。Windows Script 5.6は Internet Explorer 6.0 に同梱されています。

・Internet Explorer 5.5 : Internet Explorer 5.5 を実行しているお客様については、
 使用しているプラットフォームに関係なく、Windows Script 5.5 が既定でインストー
 ルされています。Windows Script 5.5 は Internet Explorer 5.5 に同梱されています。

・Internet Explorer 5.01 : Internet Explorer 5.01 を実行しているお客様については、
 使用しているプラットフォームに関係なく、Windows Script 5.1 が既定でインストール
 されています。

Internet Explorer のバージョンを 6.0 または 5.5 にアップグレードしていないお客様は、
次のバージョンの Windows Script を実行している高い可能性があります。

・Windows 2000 : Windows Script 5.1
・Win ME : Windows Script 5.5

# ちなみに、Windows Script 5.1 は、元々 Windows Script 2.0 と呼ばれていた。

362:デフォルトの名無しさん
08/10/11 14:46:39
Version 5.6 だった
で、それがなんなの
「うーん」なんて書くほどのことかよアホ

363:デフォルトの名無しさん
08/10/11 14:55:49
わざわざ3行もレスするような事かよアホ

364:デフォルトの名無しさん
08/10/11 15:20:47
>>362
違いがわからない奴が無理してレスする必要は無い

365:デフォルトの名無しさん
08/10/11 17:49:09
ダバダ~

366:デフォルトの名無しさん
08/10/11 18:34:16
         ___
        /       ヽ    「うーん」
    , -‐ (_).⌒ l ̄| ⌒ |     __o
     l_j_j_j と) ノ─|  ノ        | 二|二''  _
    /   /       ヽ       ノ   |  ヤ   ッ
    〈  ノ         |

367:デフォルトの名無しさん
08/10/11 19:02:31
マンダム

368:デフォルトの名無しさん
08/10/11 19:08:46
この3人は40代(以上)の中年プログラマー
  ↓↓↓
>>364>>365>>367

369:デフォルトの名無しさん
08/10/11 19:44:07
ネタ元の分かるお前もなw

370:デフォルトの名無しさん
08/10/11 20:59:36
この3人はN88BASICで育った世代
  ↓↓↓
>>364>>365>>367

371:デフォルトの名無しさん
08/10/11 21:41:26
初体験はTK-80だったわ(ポッ

372:デフォルトの名無しさん
08/10/11 23:06:40
>>361
丁寧にコピペまでサンクスです
お陰でWSHのバージョンに関係しそうな要素が掴めました
こんなところかな。ちゃんと管理していこうと思ってます。それでは失礼
・導入OS
・IEバージョンうp
・WSHバージョンうp

373:デフォルトの名無しさん
08/10/11 23:16:01
TKとはトレーニングキットの意味じゃなく小室哲哉のことね。これ常識中の常識。

374:デフォルトの名無しさん
08/10/16 14:48:58
ドラッグアンドドロップした画像をペイントで開くにはどうすればいいですか?

375:デフォルトの名無しさん
08/10/16 15:34:24
WScript.Shellでmspaint.exeをRun

376:デフォルトの名無しさん
08/10/23 22:33:22
Windows Script Host の実行の失敗しました。(この操作を完了するのに十分な記憶域がありません。)
ってエラーが出るのですがなんでしょうか?ある程度調べてみたのですが改善されませんでした。
どなたかご教授お願いします。

377:デフォルトの名無しさん
08/10/24 14:18:54
>>376
ファイル名を変えろ or フルパスで指定しろ

378:デフォルトの名無しさん
08/10/24 14:27:59
>フルパスで指定しろ
だめ

379:デフォルトの名無しさん
08/10/24 20:05:31
>>377,378
ありがとうございました


380:デフォルトの名無しさん
08/10/30 18:40:50
すみません。
プログラムの追加と削除やスタートメニューを見てインスコされているアプリの一覧を作りたいです。
教えて下さい。

381:デフォルトの名無しさん
08/10/30 19:54:34
URLリンク(www.microsoft.com)

382:デフォルトの名無しさん
08/10/30 19:57:47
dir /s /b c:\*.exe

383:デフォルトの名無しさん
08/10/30 20:51:11
format c:

384:380
08/10/30 22:30:06
すみません。真面目に訊いてるんですけど。。。
アプリの件は皆さんがふざけている間にPCViewっていうフリーソフトで事故怪傑しました。
その他にインスコされてるフォント名の一覧が欲しいです。
これが最後☆チャンスです。皆さんの役に立つとこ見せて下さい。

385:デフォルトの名無しさん
08/10/30 22:36:55
>>384
おれは真面目に>>381って返したつもりなんだけどな。無視ですかそうですか。ちょっと泣けちゃう。フォント名の一覧?知るかばーか。

386:デフォルトの名無しさん
08/10/31 12:00:21
>>382 >>383 すれ違い
>>384 フリーソフトさがせ

387:デフォルトの名無しさん
08/10/31 12:40:02
appwiz.cpl中のhtaで使ってるobjectは利用できないのかね?

388:380
08/10/31 13:12:23
>>385
こっちは教えてくれって頭下げてんですよ。>>381の一覧見てどうしろってんですか。
もったい付けてないでちゃちゃっとスプリクト教えてくれさえすれば良いだけなのに、
どうしてプログラムの人ってまともにコミュニケーション取れないのばかりなんだろう。

389:デフォルトの名無しさん
08/10/31 13:17:54
>>387
cplってhtaなん?

390:デフォルトの名無しさん
08/10/31 13:55:55
>>388
お前馬鹿?
ソース書いてあるじゃん。

> >>381の一覧

一覧って書いてるところからして、もしかして手打ちでURL入れて最後の#以降を入れなかった
せいでページの目次部分を見てるとか?
もしそうなら超バカかつ超失礼な奴だな。381にちゃんと謝っとけ!

391:380
08/10/31 14:42:27
はいはいw結局こんな簡単なスプリクトも組めないんですねお前らw言い訳乙

392:デフォルトの名無しさん
08/10/31 16:25:16
>>391
>>381の意味するところが分からないようなら自力では無理。
素直にコンパネ開いて手作業で写しなさい。あんたの場合それが一番早いやり方。

393:380
08/10/31 17:32:26
もしも~し?
自力で何とかなるなら最初からこんなキモスレで質問なんかしませんよ~
日本語通じてますかぁ~
私は、どうせ暇なあんた達にたまには人の役に立てるチャンスを与えてやっただけ

394:デフォルトの名無しさん
08/10/31 18:24:46
悪いが人間の定義から手取り足取り教えてやるほど親切じゃないw

395:デフォルトの名無しさん
08/10/31 18:28:56
"ヒント貰っても"自力で出来ないならってことなんだが
日本語通じてないのはどっちかな( ̄ー ̄)ニヤリ

それにオマエは与える側ではなく物乞う側だ
答えそのものを与えるも、ヒントだけ与えるも、こちらの自由
俺等の掌の上で哀れに乞い踊り、弄られ怒り狂う様を
ニヤニヤ眺められるだけのピエロでしかない

もちろんこれを否定するのは勝手だが
オマエは目的のことを教えて貰えず困っており
こちらはなんら困ってないという事実が全てを物語ってしまっている

396:デフォルトの名無しさん
08/10/31 18:39:18
res://appwiz.cpl/default.hta

397:デフォルトの名無しさん
08/10/31 18:53:55
>>384
dir c:\windows\fonts

398:デフォルトの名無しさん
08/10/31 19:01:11
ヒント
createobject("shell.application").namespace("shell:fonts")


399:デフォルトの名無しさん
08/10/31 20:03:18
スプリクト(笑)

400:デフォルトの名無しさん
08/10/31 20:09:53
まぁ正直わからんでもないな
聞いてる方の態度もアレだがそれを抜きにしても
ちょっとなんだかなぁってのが多いのはなんなんだろうな

401:デフォルトの名無しさん
08/10/31 20:14:06
即答されてるんだから、後はどうでもいいだろ。

402:デフォルトの名無しさん
08/10/31 21:44:38
新しいスプリ ク ト言語が開発された噂のスレはこちらですか?

403:380
08/10/31 22:07:04
なに必死になっちゃってんの?顔真っ赤ですよぅwキモオタどもダサ過ぎw
あ~はいはい困ってまちゅよぅ大変だぁこれで満足ですかwww


404:デフォルトの名無しさん
08/10/31 22:23:14
満足だから、もうどっかに逝け。

405:デフォルトの名無しさん
08/10/31 22:23:59
スクリプトだろw
大人なら、もうちょっとストリクトに書けよな
と思ったら、なんだ幼児でちたか

406:デフォルトの名無しさん
08/10/31 22:30:24
>>380
>なに必死になっちゃってんの?顔真っ赤ですよぅw

光沢モニタってのはなかなか便利なものだな。

407:デフォルトの名無しさん
08/10/31 22:47:42
はいはいでもして事故怪傑してくださいな

408:デフォルトの名無しさん
08/11/01 00:08:19
はいはいスプリクトスプリクト

409:デフォルトの名無しさん
08/11/01 10:23:04
>>406
だな

光沢液晶眺めながらヒゲ剃りも出来そうだ

410:デフォルトの名無しさん
08/11/14 23:21:13
予告 GetAsyncKeyState

411:デフォルトの名無しさん
08/11/15 07:43:01
OS:Win XP Pro SP3
WSH:v5.7

var s1 = "C:\\bin";
var s2 = "C:\\bin\\hoge";
if (s2.search(new RegExp(s1)) != -1)
WScript.echo("一致");
else
WScript.echo("不一致");

s1 = s1.replace("\\","");s2 = s2.replace("\\","")にしてやれば一致するのですが
上記のコードはなぜ不一致になるのでしょうか?
またvar s1 = "C:\\\\bin";var s2 = "C:\\\\bin\\\\hoge";にもしてみましたが結果は不一致のまま変わりませんでした


412:デフォルトの名無しさん
08/11/15 12:47:59
>>411
var s1 = "C:\\\\bin"; 
var s2 = "C:\\bin\\hoge"; 

s1に正規表現のためのエスケープが必要。

413:デフォルトの名無しさん
08/11/15 14:38:09
えんえんとえんをつづけるのかw

414:デフォルトの名無しさん
08/11/15 17:59:30
各国の通貨暴落なのに円だけが上がってるからな

415:デフォルトの名無しさん
08/11/15 21:10:43
>>412
なるほど検索文字列だけエスケープしなきゃならなかったんですね
やったと思ったらs2も\を足してから一致しなかったんですね
ありがとうございました

416:デフォルトの名無しさん
08/11/16 03:12:34
各Windowsコンポーネントのインストール状態の一覧を取得する方法ってありますか?

417:デフォルトの名無しさん
08/11/16 04:09:12
はい、ありますよ

418:デフォルトの名無しさん
08/11/16 10:22:21
>>416
俺が前したのと同じ質問かい!…ログ見てください、おながいします。

419:デフォルトの名無しさん
08/11/16 20:18:07
類似品でこんなやつならマイクロソフトのサイトにあった
そのものズバリも探せばあると思うよ
これ以上は興味ないから知らん(キッパリ)

strHost = "."
Const HKLM = &H80000002
Set objReg = GetObject("winmgmts://" & strHost & _
"/root/default:StdRegProv")
Const strBaseKey = _
"Software\Microsoft\Windows\CurrentVersion\"
objReg.EnumKey HKLM, strBaseKey, arrSubKeys
strLine=Array()
For Each strSubKey In arrSubKeys
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"DisplayName", strValue)
If intRet <> 0 Then
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"QuietDisplayName", strValue)
End If
If (strValue <> "") and (intRet = 0) Then
Push strLine,strValue
End If
Next
Wscript.Echo Join(strLine,vbLf)
'URLリンク(scripting.cocolog-nifty.com)
Sub Push(Items,Item)
ReDim Preserve Items(UBound(Items)+1)
Items(UBound(Items))=Item
End Sub

420:デフォルトの名無しさん
08/11/16 20:23:37
コピペ間違ったw正しいのはこれ
上のは動かないよ
'URLリンク(www.microsoft.com)
strHost = "."
Const HKLM = &H80000002
Set objReg = GetObject("winmgmts://" & strHost & _
"/root/default:StdRegProv")
Const strBaseKey = _
"Software\Microsoft\Windows\CurrentVersion\Uninstall\"
objReg.EnumKey HKLM, strBaseKey, arrSubKeys
strLine=Array()
For Each strSubKey In arrSubKeys
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"DisplayName", strValue)
If intRet <> 0 Then
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"QuietDisplayName", strValue)
End If
If (strValue <> "") and (intRet = 0) Then
Push strLine,strValue
End If
Next
Wscript.Echo Join(strLine,vbLf)
Sub Push(Items,Item)
ReDim Preserve Items(UBound(Items)+1)
Items(UBound(Items))=Item
End Sub

421:デフォルトの名無しさん
08/11/16 21:14:46
それは「アプリケーションの一覧」でしょうが。
>>380-381のと同じじゃない?つうか私が貼った奴だけど。

「Windowsコンポーネントの一覧」はこっち>>356な。つうか私が貼った奴だけど。
インストール状態だけ知りたいなら↓

>・Windowsコンポーネントのインストール状態については以下のレジストリに格納されてる。
>「HEKY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OC Manager\Subcomponents」

「アプリケーション」と「Windowsコンポーネント」ってそんなに間違いやすい?
まあ>>416からして間違えてる可能性もあるけどさ。

422:デフォルトの名無しさん
08/11/16 21:38:36
>>421
おいおい日本語読めねえのはお前の方じゃないのか
これはそのものじゃない類似品にしか過ぎない
そのものは自分で探してくれと明確に断わってるぞ

家庭で嫌なことがあったら2chで赤の他人に突っかかるのは悪い習慣だ

423:デフォルトの名無しさん
08/11/16 21:48:37
>>420を類似品というのは酷すぎるだろ常考…あえて言うならミスディレクション。

424:デフォルトの名無しさん
08/11/16 21:57:33
いやいやお前がよく読まずに突っかかってきたのは事実だ
まずそれを謝罪しろアホ

これだけ明確に書いてるのに
これが質問のものを貼ったと誤解したのは地球上でアホ=>>421=>>423ひとり
「類似品でこんなやつならマイクロソフトのサイトにあった
そのものズバリも探せばあると思うよ
これ以上は興味ないから知らん(キッパリ)」

425:デフォルトの名無しさん
08/11/16 22:21:31
そもそも大して役にたたない類似品貼ったぐらいでガタガタ騒ぐなよ。
バカじゃねーのか?

426:デフォルトの名無しさん
08/11/16 22:29:56
こいつは>>421=>>423
以前に登場したとき>>338>>356からキモイやつだったんだな
文章のキモさから警戒されて前も誰もレスつけなかったww

427:デフォルトの名無しさん
08/11/16 22:32:56
>>425
スレ検索したらどないでっかあんさん
そのものずばりを貼った人は過去に1人もいませんよ

バカじゃねーのか?

428:デフォルトの名無しさん
08/11/16 22:34:01
>>421はこのスレにミスディレクションということで

429:デフォルトの名無しさん
08/11/16 22:37:59
>>425
たいそうに演説するんだったらお前が貼れww

430:デフォルトの名無しさん
08/11/16 22:40:13
ミスディレクションwwwwwwwwwアホです

431:デフォルトの名無しさん
08/11/16 22:42:56

       ☆ チン       マチクタビレタ~
                     マチクタビレタ~
 ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ヽ ___\(\・∀・)< ミスディレクションさんの反撃まだ?
      \_/⊂ ⊂_)_ \____________
    / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
   |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:|  |
   |Winコンポーネント .|/
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

432:デフォルトの名無しさん
08/11/16 22:47:46
なんすかこの流れw

433:デフォルトの名無しさん
08/11/16 23:12:26
俺が見ても>>419-420が役立たずのアホ

434:デフォルトの名無しさん
08/11/17 00:32:24
慈円

435:デフォルトの名無しさん
08/11/17 00:43:23
       ☆ チン       マチクタビレタ~
                     マチクタビレタ~
 ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ヽ ___\(\・∀・)< ミスディレクションさんの登場まだ?
      \_/⊂ ⊂_)_ \____________
    / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
   |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:|  |
   |Winコンポーネント .|/
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

436:デフォルトの名無しさん
08/11/17 00:45:28
>>427
 大 し て 役 に た た な い 類似品
 ~~~~~~~~~~~~~~~~~

理解できたか?

437:デフォルトの名無しさん
08/11/17 00:45:44
珍しく伸びてると思ったら・・・

438:デフォルトの名無しさん
08/11/17 05:44:19
フルパスからフォルダ作成(存在しない親フォルダも作成)をできるだけにスマートにvbsで書くとどうなりますか?

439:デフォルトの名無しさん
08/11/17 07:01:33
こいつはスレ出入り禁止
>>421=>>423=>>338=>356

こいつの文章は特徴があるからすぐわかる

440:デフォルトの名無しさん
08/11/17 07:09:42
>>438
フォルダが作成される。

441:デフォルトの名無しさん
08/11/17 09:00:37
書くだけじゃ作成されねーし


パス区切り文字でsplitして親から順に存在チェック
有ったら次へ、無かったら作る

442:デフォルトの名無しさん
08/11/17 12:04:13
CreateObject("WScript.Shell").Run "CMD /CMKDIR \a\b\c\d"

443:デフォルトの名無しさん
08/11/17 18:59:29
やっぱ再帰だろ

444:デフォルトの名無しさん
08/11/17 20:33:00
sub sub_CreateFolder(strFolderPath) 'フォルダの作成
 strParentFolderPath = objFileSystem.GetParentFolderName(strFolderPath)
 if objFileSystem.FolderExists(strParentFolderPath) then
 else
  call sub_CreateFolder(strParentFolderPath) '親フォルダが無ければ再帰的に呼び出し
 end if
 call objFileSystem.CreateFolder(strFolderPath)
end sub

445:デフォルトの名無しさん
08/11/17 20:50:02
>>442
cmd使っちゃう方法もありますねw

>>444
なるほど。シンプルですね。
大変参考になりました。
みなさんありがとうございます。


446:デフォルトの名無しさん
08/11/18 00:13:43
call sub_CreateFolder("x:\folder")
無限ループ

447:デフォルトの名無しさん
08/11/18 00:51:22
>>444
then 側の実行文が空のコードってすごくバカっぽく見えるのは俺だけか?

448:デフォルトの名無しさん
08/11/18 00:59:16
どっちでもいいじゃん
いちいちめんどくせぇな

449:デフォルトの名無しさん
08/11/18 01:16:58
>>446
・ドライブレターが存在するか
・フォルダパスとして成立するテキストが入っているか
この2つは本来はこのサブルーチンに入る前にチェックするべきだあね。

>>447
then側はtrue、else側はfalseに統一しておくと、
可読性が高くなって個人的にはいいと思ってる。
"not ~" とか "~ = false" は後々で見直すときに、
ぱっと見てどっちかわかりにくいんだよね。

450:デフォルトの名無しさん
08/11/18 04:19:42
>>446
あーそうかそうか。
ドライブの直下にフォルダ作らせようとすると無限ループにはいるね。
今までそういう使い方してなかったから気づかなかった。
objFileSystem.DriveExistsでif文一個追加すればいいやって思ったけど
このメソッド、"x:\"だと必ずFalseだね。"x:"ならTrueがかえってくるけど。 

451:デフォルトの名無しさん
08/11/18 04:31:03
ちゃんと作るとこうかな?

Set objFileSystem = CreateObject("Scripting.FileSystemObject")
strBuf = inputbox(" ")
if objFileSystem.DriveExists(objFileSystem.GetDriveName(strBuf)) then
 call sub_CreateFolder(strBuf, objFileSystem.GetDriveName(strBuf) & "\")
else
 WScript.Quit
end if

sub sub_CreateFolder(strFolderPath, strDrivePath) 'フォルダの作成
 strParentFolderPath = objFileSystem.GetParentFolderName(strFolderPath)
 if objFileSystem.FolderExists(strParentFolderPath) then
 elseif strParentFolderPath = strDrivePath then
 else
  call sub_CreateFolder(strParentFolderPath, strDrivePath)
 end if
 call objFileSystem.CreateFolder(strFolderPath)
end sub

452:デフォルトの名無しさん
08/11/18 05:01:41
call objFileSystem.CreateFolder(strFolderPath)をする前に
objFileSystem.FolderExists(strFolderPath)しないと
ファイルが既に存在してるかどうか確認するのがめんどくさいからとりあえず実行しちゃえ
ってなった時に既に存在してたらエラーになる


453:デフォルトの名無しさん
08/11/18 05:03:23
ファイルじゃなくてフォルダだった(´・ω・`)

454:デフォルトの名無しさん
08/11/18 08:36:27
つーかさ、初心者って「スマートに」とか「シンプルに」とか好きだよな
そんで例外処理すら省いた短いだけの不適合コードに満足する
良いコードとは、短いコードではなく正しく動作するコードだってことを解ってない

455:デフォルトの名無しさん
08/11/18 13:14:52
作ろうとするフォルダ名と同じファイルがあっても困るからそのときは中断処理しないといけないなぁ

456:デフォルトの名無しさん
08/11/18 13:58:50
>>454
所詮スクリプトなんだからあんまり例外処理を作り込む必要はないんちゃう?と最近は思う。
自分の環境で動けばそれでいいし、動かなければ適宜手直しするし・・・。

457:デフォルトの名無しさん
08/11/18 17:32:08
>>450
>このメソッド、"x:\"だと必ずFalseだね。
このメソッド、"c:\"だとFalseかね?

458:デフォルトの名無しさん
08/11/18 19:54:41
>>457
"c"とか"c:"ならTrueなのに、"c:\"はFalse。
で、ofs.GetParentFolderName("c:\hogehoge\")の戻り値は"c:\"
設計思想としてはわからんでもないけどなぁ。

459:デフォルトの名無しさん
08/11/18 20:40:06
>>447
バカっぽくは見えないけど、個人的にはあまり好きな書き方じゃないな。
ちなみに↓だと「「許容できない」が一番多いけど、「許容できる」もそれなりに多い。

空のIF文を書きますか? - Insider.NET
URLリンク(www.atmarkit.co.jp)

460:デフォルトの名無しさん
08/11/18 20:42:28
"c:\"はTrueだけど?


461:デフォルトの名無しさん
08/11/18 21:43:55
>>454
そんな初心者見たことねぇ。

462:デフォルトの名無しさん
08/11/18 22:48:51
>>460
本当だ。どうも寝ぼけてなんか間違えたらしい。>>458は忘れてくれ。

>>459
そこでも出てるけど、後々のメンテとか考えると統一したいんだよね。
if not ~ thenで作ってて、後からTrueの場合の条件分岐追加したくなるときとか。
特に理由がない限りは愚直に馬鹿でも読めるように書けと教育されたので。

463:462
08/11/18 23:00:13
あ、でも確かにCode Completeでは「稚拙に見えるから止めろ」って書いてある。
だから本来はNot使うのがいいのかもね。

464:デフォルトの名無しさん
08/11/19 01:26:22
jsのif (!...) { ... }なら認識しやすいんだけど
vbsのif not ... thenは色分けできるエディタ使ってても
なんか視界のなかで他の単語にうもれてときたま見逃してしまうから
>>449みたいにif ... thenでやっちゃうことが多いな


465:デフォルトの名無しさん
08/11/19 06:34:51
JScriptでADODB.Streamを使用してみてるんですが
Readで読んだバイナリ値をStringオブジェクトに格納できないでしょうか?

var oAD = new ActiveXObject("ADODB.Stream");
oAD.Type = 1;
oAD.Open();
oAD.LoadFromFile("C:\\hoge.bin");
var Str = oAD.Read(1);

WScript.echo(Str);//エラーは出ないが文字列に変換されて出力される
s1 = String(Str);//文字列ではありません
WScript.echo(Str.constractor);//null、またはオブジェクトではありません

466:デフォルトの名無しさん
08/11/19 10:30:27
>>248をみてもしかしたらと思って.NETのクラスつかったらできたよ
var asciienc = new ActiveXObject("System.Text.ASCIIEncoding");
var s1 = asciienc.GetString(Str);
WScript.Echo(typeof(s1));

467:デフォルトの名無しさん
08/11/19 10:33:13
あとレジストリみたらSystem.Text.ASCIIEncodingのほかに
System.Text.UnicodeEncoding
System.Text.UTF7Encoding
System.Text.UTF8Encoding
があったからここらへんも使えると思う

468:デフォルトの名無しさん
08/11/19 11:45:55
constractor???


469:デフォルトの名無しさん
08/11/19 11:52:58
var Str = oAD.ReadText(1);

470:465
08/11/19 12:03:56
constructorですね。間違えました

>>466-467
出来ました!ありがとうございます

が、0x80以降を格納すると変なことになりますね…

WScript.echo(s1.charCodeAt(),toString(16));//ASCIIだと3f、それ以外はfffdがずっと続く

>>469
テキストモードで開くのなら、iso-8859-1で開いて0x80~0x9fは置換するって方法があるみたいですね


とりあえず置換する方向で行きたいと思います。ありがとうございました



471:465
08/11/19 12:04:51
誤:WScript.echo(s1.charCodeAt(),toString(16));//ASCIIだと3f、それ以外はfffdがずっと続く
正:WScript.echo(s1.charCodeAt().toString(16));//ASCIIだと3f、それ以外はfffdがずっと続く

472:デフォルトの名無しさん
08/11/19 12:08:52
なにがしたいんだか

473:デフォルトの名無しさん
08/11/19 12:17:37
自分のマシンのローカルエリア接続に設定されている
デフォルトゲートウエイIPアドレスをWSHで取得する方法で頭打ってます。
どなたか知りませんか?

474:デフォルトの名無しさん
08/11/19 12:21:20
JScriptからバイナリの暗号化とか復号とかいろいろできたら便利だなぁ、とか思ってました

475:デフォルトの名無しさん
08/11/19 12:24:28
JScriptじゃ無理
VBScriptつかえよ

476:デフォルトの名無しさん
08/11/19 12:34:53
VBSで取得する方法でもいいです。
Google先生でもなかなか見つからない紋で。

477:デフォルトの名無しさん
08/11/19 12:38:55
Str = oAD.Read(-1)
For k=1 To LenB(Str)
WScript.Echo AscB(MidB(Str,k,1))
Next



478:デフォルトの名無しさん
08/11/19 12:44:52
早速ありがとう!
oADこのオブジェクトはどこから取得するのですか?

479:デフォルトの名無しさん
08/11/19 22:09:25
>>473
ちゃんとググッたのか?

default gateway wsh でググッたら、"Need to get default gateway via VBScript" って
言うほぼどんぴしゃのページがヒットするんだが...。

URLリンク(www.experts-exchange.com)

480:デフォルトの名無しさん
08/11/20 01:07:04
>>479
おれのプニル1.66が固まった(´;ω;`)ウッ…

481:デフォルトの名無しさん
08/11/20 02:34:44
>>454
> そんで例外処理すら省いた短いだけの不適合コードに満足する
僕は初心者ですが、どれぐらいがちがちに例外処理すべきなのかよくわからないんです。
普通は成功しそうな処理でもいちいちチェック、例えばこんな感じで↓
Set obj = Nothing
On Error Resume Next
Set obj = GetObject("winmgmts:\\.\root\cimv2")
'他にはSet obj = CreateObject("WScript.Shell")とか…
On Error Goto 0
If Not obj Is Nothing Then
'続き!
Else
WScript.Quit(1)
End If
してたらしてたらうっとうしいんじゃないかとか思ったり。

482:デフォルトの名無しさん
08/11/20 14:14:40
URLリンク(okwave.jp)
>CScriptのコンソール画面のクリア方法
できないって?
clsすりゃいいだけなのに

483:デフォルトの名無しさん
08/11/20 16:15:30
>>481
意味ないからやめろよ
必要なときだけやれ

484:デフォルトの名無しさん
08/11/20 16:16:36
理由
テストできないだろ?
テストできないコードを書くな

485:デフォルトの名無しさん
08/11/20 22:27:17
意味があるかどうかは状況次第。
>>481 の例だと、俺もわざわざエラーチェックはしないけど、ファイルを
開いたりする時はエラーチェックする。

テストしたいなら GetObject(), CreateObject() の文字列変えてテスト
するとかすればいいだけのこと。

あと、どうせエラーチェックするなら...

If obj Is Nothing Then
 WScript.Echo("GetObject(""winmgmts:\\.\root\cimv2"") Failed")
 WScript.Quit(1)
End If
'続き!

のようにした方がインデントも深くならないし、いきなり WScript.Quit()
されてもわけわからんので、なんかメッセージを出した方がいいと思う。

486:481
08/11/21 00:45:17
>>483, 485
アドバイスありがとうございます。

必要かどうか、状況を判断するのが難しいです。
修行がいるのだろうなぁ。

VBScriptって例外が発生して落ちたときに
終了コードをセットしないから外部からわからないんですよね。
今作ってるのは他のスクリプト内から実行される可能性があるので、
うっとうしいと思いながらも何が何でも例外は自分で拾って
WScript.Quit(1)するという方針で書いてます。

487:デフォルトの名無しさん
08/11/21 01:08:05
>479
ありがとうございます!

英語が読めないので日本語ページオンリーです。
恥ずかしっ!!


488:デフォルトの名無しさん
08/11/21 11:45:34
>>481
その方針は間違い

>VBScriptって例外が発生して落ちたときに
>終了コードをセットしないから外部からわからないんですよね。
→ QuitWithErrNumber.VBS

>今作ってるのは他のスクリプト内から実行される可能性があるので、
>うっとうしいと思いながらも何が何でも例外は自分で拾って
>WScript.Quit(1)するという方針で書いてます。
だけなら、
sub main()
end sub
on error ...
call main
if ... quit(1)
するだけ


489:デフォルトの名無しさん
08/11/23 00:27:15
>>481
そのやり方だと、どうしても漏れるよ
漏れたときに困るよ
正常時だけQuit(1)にすれば確実だよ

490:デフォルトの名無しさん
08/11/25 14:06:49
.urlファイルを書き換えても、プロパティで見ると書き換わってない
F5しても同じ
どうすれば反映される?

491:481
08/11/27 00:12:55
レス遅くてすいません。

>>488
> → QuitWithErrNumber.VBS
なるほど!スクリプト終了時のオブジェクトの解放時に
明示的にセットするという方法があるのですね。
自分では全く思いつきませんでした。ありがとうございます。

>>489
確かに仰る通りです。逆転の発想をするわけですね。
正常終了は%ERRORLEVEL%==0という固定観念がありました。
大変参考になりました。ありがとうございます。

結局、Main()全体にOn Error Resume Nextすることにしました。



492:デフォルトの名無しさん
08/11/27 22:12:29
>>491
> 結局、Main()全体にOn Error Resume Nextすることにしました。

なんでそんな結論に...

493:デフォルトの名無しさん
08/11/28 23:54:38
坊やだからさ

494:481
08/11/30 01:33:16
>>492
>>493
もしかして一番ダメな方法なのかな…
忠告ありがとうございます。もうちょっと考えてみます。

495:デフォルトの名無しさん
08/12/03 14:13:54
URLリンク(oshiete.nikkeibp.co.jp)
ぷっ

496:デフォルトの名無しさん
08/12/04 10:53:01
/MIN

497:デフォルトの名無しさん
08/12/04 10:54:55
start /MIN hoge.bat

498:デフォルトの名無しさん
08/12/04 17:19:09
JS教えたりして意地悪じゃないの
\\で嵌まるの目に見えてる

499:デフォルトの名無しさん
08/12/31 12:44:37


500:デフォルトの名無しさん
09/01/03 07:09:06
500

501:デフォルトの名無しさん
09/01/05 06:09:19
wshから(出来ればVBSで)エクスプローラを再起動させたいんですが
起動はいいのですが、プログラムを終了させる事って出来ないんでしょうか?

502:デフォルトの名無しさん
09/01/05 13:46:54
>>501
WMIつかえば出来るよ
使い方はググればサンプル含めて転がってる
又はコマンドライン型のプロセス終了ツールを使う手もある

503:デフォルトの名無しさん
09/01/06 23:29:03
>>501
XP 以降なら taskkill ってコマンドがある
プロセスIDや実行ファイル名でプロセスを殺せる

ex) taskkill /IM notepad.exe


504:デフォルトの名無しさん
09/01/06 23:46:47
>>503
home editionにはない

505:デフォルトの名無しさん
09/01/06 23:54:44
好きなの使えよ。
URLリンク(www.vector.co.jp)


506:デフォルトの名無しさん
09/01/07 00:07:11
PsKill - ローカルまたはリモートのプロセスを停止します。
URLリンク(technet.microsoft.com)(en-us).aspx

507:デフォルトの名無しさん
09/01/07 00:46:38
taskkill、PsKillってのが>>502の言ってるコマンドライン型のプロセス終了ツールでしょ。

508:デフォルトの名無しさん
09/01/07 04:04:31
tskillつかえよ

509:デフォルトの名無しさん
09/01/11 14:50:20


510:デフォルトの名無しさん
09/01/12 22:44:18
vbseditみたいに補完&デバッグできるフリーな奴無い?

511:デフォルトの名無しさん
09/01/15 07:17:05


512:デフォルトの名無しさん
09/01/16 07:47:10


513:デフォルトの名無しさん
09/01/17 23:37:18


514:デフォルトの名無しさん
09/01/20 21:26:39
URLリンク(www.atmarkit.co.jp)
上記のURLで紹介されている「SystemScripter」を使用されている方はいらっしゃいますか?

試しにインストールしてみたのですが、IMEで日本語を入力すると入力が重複してしまう
のですが...回避方法はないでしょうか?

515:デフォルトの名無しさん
09/01/21 12:55:06
Vistaやっと買ったら、自作のスクリプトが落ちます・・・

*******************************
'ファイル操作の宣言
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

'ファイルのオープン
Set objFile1 = objFSO.OpenTextFile(name1)

******************************
上の命令付近で、どうしても落ちます。
Vistaに何か入れれば、動くとか情報有りますか?



516:デフォルトの名無しさん
09/01/21 19:10:29
何が落ちるんだ?

517:デフォルトの名無しさん
09/01/21 19:15:02
> Vistaやっと買ったら、自作のスクリプトが落ちます・・・


518:デフォルトの名無しさん
09/01/21 19:27:40
反ウイルスソフトじゃないの?

519:デフォルトの名無しさん
09/01/21 19:28:43
どこに落ちるんだ?

520:デフォルトの名無しさん
09/01/21 22:20:36
>515
Vistaは知らんが、CreateObject("Scripting.FileSystemObject") に
"WScript"を付ける奴は初めて見た。   WinXP&WSH5.6ユーザーより

521:デフォルトの名無しさん
09/01/21 23:54:00
そうか?
視野が狭いだけだろ?

522:デフォルトの名無しさん
09/01/22 09:11:37
付近とかまたアバウトな・・・

523:デフォルトの名無しさん
09/01/22 10:10:43
>>520
WSHのWScript.CreateObject
> object.CreateObject(strProgID[,strPrefix])
と、VBSのCreateObject
> CreateObject(servername.typename [, location])
は一応別物だよ

つまり>>515は「CreateObjectにWScriptを付けている」のではなく
「VBSではなくWSHのCreateObjectを使っている」という表現が正しい

まあ基本的には同じ様なものなので、必要性を感じなければ使い分けなくても良いだろう
必要性を感じたら、自分で細かい仕様を調べて使い分ければ良い

524:デフォルトの名無しさん
09/01/22 22:44:44
大量の文書の置換をしたいのですが、どのような形で組めばいいのでしょうか?
置換対象文書はすべて一つのフォルダのサブフォルダに入っているのでサブフォルダ内から抽出するなり再帰的に実行するなりすればよいでしょうが…

置換自体のスクリプトは以下のITPROの記事を参考に作りました。
URLリンク(www.atmarkit.co.jp)

後はこのスクリプトを起動するスクリプトを作成するか、読み込むファイルを抽出する部分を工夫すればいいのですが、
何か手はないでしょうか?

525:デフォルトの名無しさん
09/01/22 22:48:01
>>524
for

526:デフォルトの名無しさん
09/01/22 23:04:00
>>524
自分がフォルダ階層を辿るときはディレクトリの再帰処理を書くのが
面倒なんでこんな感じのをよく使う
以下の foo() でファイル毎の処理を書く
実際には dir の '*' はコマンドラインからパラメタで与えたりもう少しは
工夫するけど

var objShell = WScript.CreateObject ("WScript.Shell");
var objFS = WScript.CreateObject ("Scripting.FileSystemObject");
function foo(filename)
{
 WScript.Echo(filename);
}
var execDir = objShell.Exec("cmd /c dir /b /s /a-d *");
while (! execDir.StdOut.AtEndOfStream) {
 var file = execDir.StdOut.ReadLine();
 if (! objFS.FileExists(file)) {
  continue;
  }
  foo(file.replace(objShell.CurrentDirectory, "").replace(/^\\/, ""));
}


527:デフォルトの名無しさん
09/01/23 23:23:05
>>526
遅くなりましたが、参考にさせていただきました。
ありがとうございました。

528:デフォルトの名無しさん
09/02/02 11:56:09
ho

529:デフォルトの名無しさん
09/02/05 00:15:34
レジストリキーが存在するかを確認したい

URLリンク(www.atmarkit.co.jp)
のサンプルCheckReg.vbsを参考にした
キーの既定に空白でもなんでも値が入っていれば正常に判断できるが、
既定が(値の設定なし)だとキーが存在していても無いと判断されてしまう。

URLリンク(okwave.jp)
で同様の状態についてやりとりがあり、解決済みだと言うサンプルが置いてある(IsNullを使ったもの)
…けれど、やはり同様に(値の設定なし)だとキーが存在していても判断に失敗する

既定が値の設定なしで、他にエントリもないレジストリキーの存在を
確実に確認する手段はございませんでしょうか

530:デフォルトの名無しさん
09/02/05 00:49:44
>>529
このあたりはどう?
URLリンク(www.microsoft.com)


531:デフォルトの名無しさん
09/02/05 01:00:13
スクリプト センター > スクリプト一覧 > オペレーティング システム
レジストリ
URLリンク(www.microsoft.com)

532:デフォルトの名無しさん
09/02/05 02:21:17
>>530
そこのスクリプトでも結果が同じで
  エントリ名が入る変数strValueNameを空白にすると
 strKeyPathで設定した場所(キー)の既定エントリを覗くようですが
既定エントリの値を (値の設定なし)→空白にするとexistになります
(値の設定なし)に戻すとやはりnot existになります

>>531
学習します

533:デフォルトの名無しさん
09/02/05 03:15:30
もっと他のやり方がありそうなんだけど一応

const KEY_QUERY_VALUE = &H0001
const HKEY_CURRENT_USER = &H80000001
const HKEY_LOCAL_MACHINE = &H80000002
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
strKeyPath = "SOFTWARE\developer\app\key"
Result = objReg.CheckAccess(HKEY_CURRENT_USER, strKeyPath, KEY_QUERY_VALUE, bHasAccessRight)
If Result = 0 Then
Wscript.Echo "key found."
ElseIf Result = 2 Then ' WBEM_E_NOT_FOUND
Wscript.Echo "key not found."
Else
Wscript.Echo "other error."
End If


534:デフォルトの名無しさん
09/02/05 03:43:06
>>533
これは(値の設定なし)でもキーの存在を的確に判断してくれます
大変有難いことです。感謝

535:デフォルトの名無しさん
09/02/06 16:50:11
WSHでOutlookの予定や仕事の本文のフォントを一括で変更できる方法ってありますか?

536:デフォルトの名無しさん
09/02/06 19:28:41
もしOutlookVBAでできるなら、WSHでもできるよ

537:デフォルトの名無しさん
09/02/06 21:50:15
WSH(使用言語はjscript)でWin32apiのLoadLibrary()ってどうやって使うんですか!?


538:デフォルトの名無しさん
09/02/06 21:55:37
無理

539:デフォルトの名無しさん
09/02/06 22:03:58
そういうCOM使えばええがな

540:デフォルトの名無しさん
09/02/06 23:01:41
糞スレ晒し上げ

541:デフォルトの名無しさん
09/02/07 01:55:39
なるほど
ありがとうございました

542:デフォルトの名無しさん
09/02/07 05:31:22
サービスのスタートアップの種類(自動・手動・無効など)を調べるスクリプトを書いており、
Vistaの自動と自動(遅延開始)を識別する方法を探しています。
WMIのWin32_ServiceクラスのStartModeプロパティには、両方ともAutoが設定されています。
MSDNでは他にそれらしいプロパティは見付かりませんでした。
レジストリ値を直接読んで識別するしかないのでしょうか?

543:デフォルトの名無しさん
09/02/07 05:42:58
ここはWSHスレです。

VB6でもRubyでもC#でもDelphiでもVBAでも使える
汎用コンポーネント(WMIなど)の話はお控え下さい。

544:デフォルトの名無しさん
09/02/07 05:55:18
あれま。そういう棲み分けでしたか。失礼しました。

545:デフォルトの名無しさん
09/02/07 07:05:52
自動(遅延開始)は依存関係で他のサービスが立ち上がってから立ち上がるもの
つまり依存するサービスを所有していればそれで判別可能

546:デフォルトの名無しさん
09/02/07 07:11:45
>>543 >>539
COMもVB6でもRubyでもC#でもDelphiでもVBAでも使えるから
ここで話題振るのは禁止なんですよね

547:デフォルトの名無しさん
09/02/07 14:17:16
複雑だと思うならつかわなきゃいいんじゃねーの?
なんでアホはあるもの全部使わなきゃ気がすまねーの?

548:デフォルトの名無しさん
09/02/07 15:36:14
がんばれよ

549:デフォルトの名無しさん
09/02/07 19:22:53
がんばりまっちゅ

550:デフォルトの名無しさん
09/02/07 19:31:19
WSHもCOMだろ?

551:デフォルトの名無しさん
09/02/07 19:43:36
いいえ、WSHはCOMじゃありませんよ
WMIはCOMですけど

552:デフォルトの名無しさん
09/02/07 19:54:14
>>545
どうしてそんなすぐ分かる嘘を付くのですか?

553:デフォルトの名無しさん
09/02/07 19:55:36
WSH.Echo TypeName(WSH)

554:デフォルトの名無しさん
09/02/07 20:07:58
>>553
いきなりどうしたの?

555:デフォルトの名無しさん
09/02/07 23:59:10
なるほどね

556:デフォルトの名無しさん
09/02/08 00:18:45
もしかしてObject=COMだと思ってるんじゃないの?

557:デフォルトの名無しさん
09/02/08 00:24:41
やめときゃいいのに

558:デフォルトの名無しさん
09/02/08 00:37:35
だよね
あんなの書かなきゃ恥かかなかったのに

559:デフォルトの名無しさん
09/02/08 00:57:24
ぷっ

560:デフォルトの名無しさん
09/02/08 02:59:09
MsgBox "Object"="COM"

561:デフォルトの名無しさん
09/02/08 03:13:19
たしかにちがうな

562:デフォルトの名無しさん
09/02/08 03:14:34
MsgBox "WMI"="COM"

563:デフォルトの名無しさん
09/02/08 10:06:41
WSHとPowerShellはどういう関係なのでしょうか?
PowerShellが使えたらWSHはもう要らないものでしょうか?

564:デフォルトの名無しさん
09/02/08 14:19:11
>>563
大雑把に言うと、WSHはいわゆる「スクリプト言語」からオートメーションコンポーネントをいじるためのホスト環境で
VBScript, JScript, PerlScriptなど各種インタープリタが存在する。
PowerShellはPowerShellスクリプトで.NETコンポーネントをいじるためのインタープリタそのもので、オートメーションコンポーネントをいじるための機能も備えている。

WSHとPowerShelllは主な使用用途が似ているから比較されるだけで、直接な関係はない。
WSHで使えるスクリプト言語になるためにはActiveScriptというルールにのっとったインタープリタを作らなきゃダメで、
PowerShellインタープリタがもしもActiveScriptとしても実装されたら、WSHでPowerShellが使えたりもするようになるし、
逆に.NETでActiveScript相当のルールができてVBScriptやJScriptのインタープリタができたら、.NET用のWSHみたいな物ができるかもしれない。

WSHの使用用途については、PowerShellが大部分を食っていくと思われ。
しかしPowerShellはWindows XP以降でしか使えないが、WSHは9x系でも使える。
VBScriptなどPowerShell以外のスクリプト言語が使いたい場合まだWSHでないと無理。
そのあたりWSHの用途をカバーするものが別途出てきたらいらなくなると思う。

565:デフォルトの名無しさん
09/02/08 14:38:23
スルーしような

566:デフォルトの名無しさん
09/02/08 14:38:28
JRubyとかIronRubyとかIronPythonとかあって訳若芽です><

567:デフォルトの名無しさん
09/02/08 14:50:36
ここはWSHスレです。

IEでもHTAでもSCでも使える
汎用スクリプト言語(VBScript,JScriptなど)の話はお控え下さい。


568:デフォルトの名無しさん
09/02/08 15:03:29
あれま。そういう棲み分けでしたか。失礼しました。

569:デフォルトの名無しさん
09/02/08 15:10:00
WSH.Echoも、VB6でもRubyでもC#でもDelphiでもVBAでも使えるんですがどうしましょ?

570:デフォルトの名無しさん
09/02/08 15:10:59
COMは専用スレあるからスレ違いでいいけど
アクティブスクリプトは専用スレあったっけ?

571:デフォルトの名無しさん
09/02/08 15:18:22
>>569
WSH.Echoも、IEでもHTAでもSCでも使えるけど、いいんじゃね

572:デフォルトの名無しさん
09/02/08 15:27:32
>>569
VBAかVB6でWSH.Echoを使うサンプルコード書いて

あ、もちろんWrapper的なのを噛ますのは無しね
dllやらwscやら噛ませるのは、そのホスト上でWSHオブジェクトが使えてるわけではなく
そのやdllやらwsc上でWSHオブジェクトが使えてるだけだから

573:デフォルトの名無しさん
09/02/08 15:34:44
WSCでWSHオブジェクトが使えてるのか?

574:デフォルトの名無しさん
09/02/08 15:55:24
。。。

575:デフォルトの名無しさん
09/02/08 16:18:48
ぷっ

576:デフォルトの名無しさん
09/02/08 16:19:24
ぽっ

577:デフォルトの名無しさん
09/02/08 16:21:25
WSHはCOMだからオブジェクト参照さえ渡せばWSCだろうとIEだろうと使えるよ

578:デフォルトの名無しさん
09/02/08 16:27:30
ぷっ

579:デフォルトの名無しさん
09/02/08 16:35:32
ActiveほにゃららってWindows版の各スクリプト言語処理系の頭に付くのは何故なんだろうって最初は不思議でした

580:デフォルトの名無しさん
09/02/08 17:02:07
>>572
>VBAかVB6で
スレ違いだろ?

581:デフォルトの名無しさん
09/02/08 17:05:35
ぷっ

582:デフォルトの名無しさん
09/02/08 17:11:19
>>577
いいえ、WSHはCOMじゃありませんよ
WMIはCOMですけど

583:デフォルトの名無しさん
09/02/08 17:30:05
結局具体的には書けないんだね

584:デフォルトの名無しさん
09/02/08 18:15:05
具体的に書いてやらないとわからないんだね

585:デフォルトの名無しさん
09/02/08 18:23:58
うん、わからないからちゃんと書いて

586:デフォルトの名無しさん
09/02/08 18:31:26
いやだよ

587:デフォルトの名無しさん
09/02/08 18:54:22
WSHは外部からCreateInstanceはできないだけで、COMじゃないわけはないだろ。

588:デフォルトの名無しさん
09/02/08 19:09:22
いいえ、WSHはCOMじゃありませんよ
WSHはEXEですけど


589:デフォルトの名無しさん
09/02/08 19:12:17
ヒントだよ
Set hoge=WSH
hoge.Echo TypeName(hoge)
これでわからないならあきらめるんだな

590:デフォルトの名無しさん
09/02/08 21:22:29
実はヒントにもなってない件と
実は本人も解ってない件w

591:デフォルトの名無しさん
09/02/08 21:28:49
htaでWScript.Sleep使いたいんだが・・・ いや、まじで。

592:デフォルトの名無しさん
09/02/08 21:53:34
つかってるけど?

593:デフォルトの名無しさん
09/02/08 22:04:56
>>590
もそっとCOMを勉強したほうがよくないか?

594:デフォルトの名無しさん
09/02/08 22:05:48
fso = win32com.client.Dispatch('Scripting.FileSystemObject')
folder = fso.GetFolder('C:\\')
for file in folder.Files:
print file.Name


595:デフォルトの名無しさん
09/02/08 22:12:18
>>592
どうやるの? さっさと吐け!

596:デフォルトの名無しさん
09/02/08 22:18:49
Set w = WScript.CreateObject("WScript.Shell")
w.Popup "Ready",3,"1,2,3"
w.LogEvent 1, "DaahhhHHH!"

597:デフォルトの名無しさん
09/02/08 22:21:13
>>596
それWScript.Sleep 3のつもり?
WScript.CreateObjectでエラーになるけど?

598:デフォルトの名無しさん
09/02/08 22:24:13
それに
WScript.ShellのPopupはGUIアプリで使うと待ちが解けないみたいよ?

599:デフォルトの名無しさん
09/02/08 22:32:57
>>591
>htaでWScript.Sleep使いたいんだが・・・ いや、まじで。
つかえるけど、画面が凍るのでやめとけ・・・ いや、まじで。

600:デフォルトの名無しさん
09/02/08 22:54:02
VBとかC#から
WScriptのインスタンスを生成するにはどうすればよいですか?


601:デフォルトの名無しさん
09/02/09 00:13:39
outprocessserverの場合と似たようなことをやればよい
ShellやProcess.Startで起こして、
そのスクリプトからWScriptオブジェクトを外部から見えるところに設定

602:デフォルトの名無しさん
09/02/09 01:40:52
Windows Script Host(WSH)の機能全体の話とWScriptオブジェクトと
Windows Script Host Object Modelの各オブジェクトと、
WScript/CScriptコマンドが錯綜してる気がする

まず、Windows Script Host Object Modelで説明されるオブジェクトは
あくまで WSHの構成要素であって、WSHそのものではない。

なので、外部からWSHの構成要素の一部のオブジェクトをインスタンス化
できる、という説明は正しいが、
WSH自体を操作できる、という説明は正しくない

次に、COMをIUnknown、IDispatchのインタフェースを持ち、GUIDで
識別されるもと定義するなら、Windows Script Host Object Model
に含まれるオブジェクトはすべてCOMであり、これにはWScriptも含まれる。

ただし、WScriptを除く各オブジェクトは単体で外部からインスタンス化
できるのに対して、WScriptオブジェクトは外部からインスタンス化することは
できないという違いがある。

で、結局WScriptオブジェクトはWSHの環境内でのみ使用できるオブジェクトなので、
外部からは使えません。

>>601は具体的なコードを示してほしい

603:デフォルトの名無しさん
09/02/09 02:27:18
.NET についてもひとことおねがいします

604:デフォルトの名無しさん
09/02/09 03:02:48
コード? 技術者だったらヒントから考えろ
WSHからVBAの関数を呼べるだろ?
VBAでsub hoge(wsh)作ってWSHから呼べ
そしたらVBAからWSH使い放題
IEも同じ 関数作って呼ぶか、プロパティにセットするか
HTAはWSHから呼べないから、間にIEをはさむなりしろ

605:デフォルトの名無しさん
09/02/09 03:59:15
姫様ズーム・イン

606:デフォルトの名無しさん
09/02/09 04:01:26
ヒントだと思い込んで出してる情報が実は間違いでしたとさ

607:デフォルトの名無しさん
09/02/09 04:55:18
おやすみ

608:デフォルトの名無しさん
09/02/09 07:53:52
あるあるw

609:デフォルトの名無しさん
09/02/09 08:34:58
ごめん、自分には素のWindows環境で
WSHからVBAを呼ぶという時点でかなりの難易度
IEからHTAを呼び出すのもできません
ぜひ、具体例をお願いします

610:デフォルトの名無しさん
09/02/09 08:58:20
やり方を知らない人に聞いても無駄です。
無意味なヒント出されたり、自分で調べろとか
言われたりして誤魔化されるだけです。

611:デフォルトの名無しさん
09/02/09 18:20:04
あれでわからないならあきらめろってw無理すんなw

612:デフォルトの名無しさん
09/02/09 18:55:43
予想通りの反応w

613:デフォルトの名無しさん
09/02/09 19:28:27
度し難いなぁ
って意味わかるかなぁ

614:デフォルトの名無しさん
09/02/09 19:46:05
解るよ
どういう雰囲気を作りたがってるかは

上から目線で、呆れてる様を表現し
やり方を知らないから具体的な情報を出せないのではなく
もう何も言う気になれないのだよという雰囲気を作りたいのですね

でも、実際に知らないのはもうバレバレで
今更雰囲気作りに拘っても無意味っす

615:デフォルトの名無しさん
09/02/09 19:52:31
ごめんね
WSHはCOMじゃないよ
これでいい?

616:デフォルトの名無しさん
09/02/09 20:01:09
今度は「仕方ないから大人な俺が折れてあげるよ」という雰囲気作りですか
しかも論点間違ってるし

折れなくていいからさ、件の具体例出して俺等を打ちのめしてよ
打ちのめす実力が本当に有るのなら

617:デフォルトの名無しさん
09/02/09 20:18:16
ないよ
これでいい?

618:デフォルトの名無しさん
09/02/09 20:23:24
まぁ「これでいい?」を付け加えることで
本当はあるけど無いことにしておくって雰囲気を作りたいんだろうけど
それが負け惜しみなのは誰の目から見ても明らかだし
負け惜しみを吐くくらいのことは許してあげますかな

ただ、これ以上負け惜しみ吐いて醜態は晒さないようにね

619:デフォルトの名無しさん
09/02/09 20:41:25
結局出来ないのかorz
wktkして待ってたのに。

620:デフォルトの名無しさん
09/02/09 21:08:53
なんでここIDないの

621:デフォルトの名無しさん
09/02/09 21:16:42
そういう設定の板だから。

運営に申請することで変更は可能なので
変更を希望するならまず自治スレで議論し可決を取ること。
スレリンク(tech板)
運営では可決された経緯まで吟味した上で変更が検討されるから
勝手に申請だけしてもダメ。

以後、IDに関する質問や議論は自治スレで。

622:デフォルトの名無しさん
09/02/09 23:33:58
>>619
スレリンク(tech板:619番)

623:デフォルトの名無しさん
09/02/09 23:46:52
どうしたの?

624:デフォルトの名無しさん
09/02/10 02:13:22
結局向こうでも出来なかったみたいだね。

625:デフォルトの名無しさん
09/02/10 03:01:25
失敬なやつだな

626:デフォルトの名無しさん
09/02/10 03:17:54
>>591
URLリンク(pc11.2ch.net)
教えてやろうと思ったがやめた

627:デフォルトの名無しさん
09/02/10 08:08:59
無理すんな

628:デフォルトの名無しさん
09/02/10 12:41:12
教えてくれたら神だ仏だと崇め奉った上に、とっておきのエロ画像をプレゼントしようと思っていたのになあ・・・・

629:デフォルトの名無しさん
09/02/10 16:04:32
ふーん、そういうことがうれしいひとがいるんだ

630:デフォルトの名無しさん
09/02/10 16:11:56
弄られてるだけって事に気付けないのか?

631:デフォルトの名無しさん
09/02/10 17:46:36
>>591
ほれ
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(detail.chiebukuro.yahoo.co.jp)
URLリンク(oshiete1.goo.ne.jp)


632:デフォルトの名無しさん
09/02/10 18:06:22
>>631
期待せずに一応見てみたが、予想通り的外れのことしか書いてなかった。
そんなんではzipはやれんぞ。

出来ない人は黙っててくれないかなぁ~

633:デフォルトの名無しさん
09/02/10 19:23:03
処理を一時的に止めたいという実用上の話ではなく
WScriptオブジェクトをインスタンス化出来るかという
技術上の話だってことも理解できないのか?

634:デフォルトの名無しさん
09/02/10 20:03:34
いいえ、WSHはCOMじゃありませんよ

635:デフォルトの名無しさん
09/02/10 21:03:07
どうしたの?

636:デフォルトの名無しさん
09/02/10 23:01:50
Set hoge=WSH
hoge.Echo TypeName(hoge)
インスタンス化できてるだろ

637:デフォルトの名無しさん
09/02/11 01:12:11
マジレスしとくとそれは元々あるインスタンスを別名で参照してるだけ

638:デフォルトの名無しさん
09/02/11 17:23:37
マジっすか?
インスタンすか?

JScriptのArrayオブジェクトはCOMっすか?
JScriptのArrayオブジェクトは外部からインスタンス化できっすか?
JScriptのArrayオブジェクトはJScript内でのみ使用できるオブジェクトなので、
VBScriptからは使えませんすか?

639:デフォルトの名無しさん
09/02/11 17:32:30
"WScript" の代わりに "WSH" が使えるなんて初めて知ったよw

640:デフォルトの名無しさん
09/02/11 18:23:35
ちょっと他のスレッドで発見したのですが
     ↓
ラーメンタイマーでも作ってみれ。
カップヌードル用(3分)とどんべい用(5分)に分ける。
できればタスクバーに駐在する奴。

こういうのってサクっと作れますか?

641:デフォルトの名無しさん
09/02/11 19:07:33
タスクトレイ常駐以外は、HTAにすればサックリできる気が。

642:デフォルトの名無しさん
09/02/11 19:14:16
タスクバーのツールバーにいれるとか

643:デフォルトの名無しさん
09/02/11 20:06:20
作ってみた。

<html><head>
<title>らーめんたいまー</title>
<HTA:Application ApplicationName="らーめんたいまー"
SingleInstance="yes" WindowState="Normal" ShowInTaskbar="no"
MaximizeButton="no" MinimizeButton="no" Border="thin" Scroll="no">
<script>
function timeup(name)
{
alert( name + "できたよー");
}
function setup(obj,t)
{
setTimeout("timeup('"+obj.value+"')",t*60*1000);
}
window.onload = function()
{
window.resizeTo(190,80);
document.f.t3.onclick=function(){setup(this,3);};
document.f.t5.onclick=function(){setup(this,5);};
}
</script>
</head><body><form name="f">
<input type="button" value ="カップヌー㌦" name="t3"/>
<input type="button" value ="どんべい" name="t5"/>
</form></body></html>

644:デフォルトの名無しさん
09/02/11 21:29:07
IEの操作をWSHで自動化しようとしたのですが、iframeの中の要素がどう頑張っても触れません。
なんかXSS対策でそういう仕様みたいですが、なんとか回避方法は無いのでしょうか?
あるアプライアンスのGUI操作を自動化したいんです。

645:644
09/02/11 22:22:38
とりあえずnetshのportproxyを使ってlocalhost宛のアクセスで操作できるようにして誤魔化せました。
もしもっとスマートな方法が有れば御教授をお願い致します。

646:デフォルトの名無しさん
09/02/12 01:35:46
iframeの中の要素も触れたと思う

647:デフォルトの名無しさん
09/02/12 18:27:32
>>644
mshta.exeで開けばよい

648:デフォルトの名無しさん
09/02/13 04:00:13
>>639
ほんまや。どこに書いてあるんだこれ

649:デフォルトの名無しさん
09/02/13 15:43:46
for(var p in this) WScript.Echo(p);

650:デフォルトの名無しさん
09/02/13 17:49:12
いきなりどうしたの?

651:デフォルトの名無しさん
09/02/13 17:50:35
すみません。
jscriptでwshを学ぶ本ってないですか?

652:デフォルトの名無しさん
09/02/13 17:55:27
ぐぐれば?

653:デフォルトの名無しさん
09/02/13 18:08:17
なるほど
ありがとうございました

654:デフォルトの名無しさん
09/02/13 21:02:00
あるシミュレーションソフトの稼働率を出すことを考えています。
稼動していると判定したい条件は下記のOR判定としたいです。
(1)コンピュータを操作中(アイドル状態でない)
(2)当該ソフトが起動していて、かつCPU使用率が一定値以上(無人で計算実行中)
上記の時間をカウントするWSHを作れないか考えていますが、
WSHで実現可能ですか?
とくに(1)を拾える関数etcはあるのでしょうか?

655:デフォルトの名無しさん
09/02/13 21:41:06
これとか?
URLリンク(ja.wikipedia.org)

656:デフォルトの名無しさん
09/02/14 00:08:46
WMIはCOMですけど

657:デフォルトの名無しさん
09/02/14 01:03:53
COMだからWSHで使えるでしょ。

658:デフォルトの名無しさん
09/02/14 02:15:52
COMだからWSH以外でも使える

659:648
09/02/14 03:49:44
>>649
ウホッthx

660:デフォルトの名無しさん
09/02/15 01:37:00
画面をキャプチャしてjpg保存したいのですが、良い方法は無いでしょうか。
imagemagickを使えば可能だと思いますが、できるだけ汎用的に使える方法でやりたいです。
wia.scriptを使えばなんとかならないだろうかと思いつつ、よく分からず悩んでいます。

661:デフォルトの名無しさん
09/02/15 02:12:28
>660
URLリンク(www.vector.co.jp) がコメント・評価欄ともども
参考になる気が・・・と思ったが、"imagemagick"のようにバッチファイルで使えるツールで
いいのなら"IrfanView"をオススメ。画像表示だけのツールじゃないからね。

662:デフォルトの名無しさん
09/02/15 03:05:54
URLリンク(www.vector.co.jp)

663:デフォルトの名無しさん
09/02/15 06:08:23
doodleとか以前はテンプレに入ってたと思うんだけどな

664:デフォルトの名無しさん
09/02/15 06:53:05
それはWindows板のスレだ

665:デフォルトの名無しさん
09/02/15 07:28:45
ああそうか、勘違いしたスマヌ

666:デフォルトの名無しさん
09/02/15 18:00:24
666

667:デフォルトの名無しさん
09/02/16 16:56:49
VBSをはじめて使うのですが
RunメソッドやExecメソッドで起動したソフトをSendKeysではない方法で
制御(入力フォーラムに書き込んだり)することは可能でしょうか?

668:デフォルトの名無しさん
09/02/16 17:01:38
可能

669:667
09/02/16 17:21:54
>>668
早速の回答どうもです。
ググッたりして探してみます

670:デフォルトの名無しさん
09/02/19 02:21:16
ほんまかいな

671:デフォルトの名無しさん
09/02/19 15:16:14
不可能?

672:デフォルトの名無しさん
09/02/19 15:52:25
そんなこと無いけど

673:デフォルトの名無しさん
09/02/19 16:16:38
可能?

674:デフォルトの名無しさん
09/02/19 22:10:50
どっち?

675:デフォルトの名無しさん
09/02/19 23:48:06
可能

676:デフォルトの名無しさん
09/02/20 00:14:10
なるほど
ありがとうございました

677:デフォルトの名無しさん
09/02/20 05:44:37
そんな事できるならSendKeysいらなくね?

678:デフォルトの名無しさん
09/02/20 07:05:54
そんなことない

679:デフォルトの名無しさん
09/02/20 13:10:10
なるほど
ありがとうございました

680:デフォルトの名無しさん
09/02/20 13:42:14
SendKeysできるならそんな事いらなくね?


681:デフォルトの名無しさん
09/02/20 18:58:24
そんなことない

682:デフォルトの名無しさん
09/02/20 19:26:17
なるほど
ありがとうございました

683:デフォルトの名無しさん
09/02/21 17:10:57
SendKeys "日本語だめだし"

684:デフォルトの名無しさん
09/02/22 18:58:29
ABC.vbs(←自作)の二重起動を防止したいのですが、
後から起動したVBSを無効にする(起動してもすぐに終了させる)方法は見つけたのですが、
二重起動した場合、初めに起動しているvbsを強制終了させて、後から起動したvbsを有効にする方法はありませんか?


もう一つ。

vbsを実行して、vbsが待機中であれ、何かの処理中であれ、
実行して(約)10秒後に、強制終了する方法ってありますか?

685:デフォルトの名無しさん
09/02/22 20:40:39
> vbsを実行して、vbsが待機中であれ、何かの処理中であれ、
> 実行して(約)10秒後に、強制終了する方法ってありますか?

使ったことないけど、cscript //T: オプションではだめか?

686:デフォルトの名無しさん
09/02/22 21:17:17
WScript.Timeout

687:デフォルトの名無しさん
09/02/22 23:00:11
>>684
前者はWMI使って、Win32_ProcessのName='Wscript.exe'の中で
CommandLineにWScript.ScriptFullNameを含む物が2つ有ったら
CreationDateが古い(小さい)方をTerminateすれば良い

688:デフォルトの名無しさん
09/02/23 03:48:29
外からWScript.QuitやWScript.Timeoutできればいいのに

689:デフォルトの名無しさん
09/02/23 06:43:11
WSHがCOM(ActiveX.exe)だったら、それも出来たんだろうけどな

690:デフォルトの名無しさん
09/02/23 15:50:48
WSHはCOMだから出来るよ

691:デフォルトの名無しさん
09/02/23 17:02:52
知らないものは存在しない

692:デフォルトの名無しさん
09/02/23 22:13:47
出来ないことでも、出来ると言い張ってゴネるだけなら簡単

693:デフォルトの名無しさん
09/02/23 22:21:22
ぐぐれば?

694:デフォルトの名無しさん
09/02/23 23:55:19
ぐぐればわかることでも、出来ないと言い張ってゴネるだけなら簡単


695:デフォルトの名無しさん
09/02/24 01:11:36
ググってみたら解った
やはり出来ないようだ

696:デフォルトの名無しさん
09/02/24 01:17:03
>>695には無理だってw

697:デフォルトの名無しさん
09/02/24 02:19:01
不毛だ

698:デフォルトの名無しさん
09/02/24 02:26:15
出来ると言ってる奴は、出来るという証拠を出すだけで
簡単にで出来ないと言ってる奴を有無を言わさず論破出来るのに
そんな簡単なことすらしないということは・・・・・( ̄ー ̄)ニヤリッ

699:デフォルトの名無しさん
09/02/24 03:28:49
できないと思っているなら放置すればよいのにw

700:デフォルトの名無しさん
09/02/24 03:35:57
負け惜しみ?

701:デフォルトの名無しさん
09/02/24 04:37:10
一度出来ると言ってしまった手前、引っ込みが付かなくなってしまったんですね。わかります。


702:デフォルトの名無しさん
09/02/24 15:10:44
一度出来ないと言ってしまった手前、引っ込みが付かなくなってしまったんですね。わかります。


703:デフォルトの名無しさん
09/02/24 15:11:30
勝ち惜しみ?

704:デフォルトの名無しさん
09/02/24 16:46:17
で、どっち?

705:デフォルトの名無しさん
09/02/24 18:46:34
不可能?

706:デフォルトの名無しさん
09/02/24 18:54:22
そんなこと無いけど

707:デフォルトの名無しさん
09/02/24 19:13:57
ハッカー師兄の人たち教えてください。
あるサイトに動画ファイルを置いて、自分のブログからリンクした時に
動画が開かずに、ファイルに直接リンクするなと警告ページが表示されます。
ブラウザ(IE6)のRefererがリンク先ではなく私のブログサイトになって
いるのが原因ですが、リンク開く前にプログラムからRefererを変更することは
できないでしょうか?

1.今までの調べでは単純にJavaScriptで
  document.referer="URLリンク(www.aaa.com)";
と書き換えるのは無理でした。(document.refererは参照のみ可)

2.createobjectからxml2requestのoleを使ってrefererを書き換えて
バイナリデータを取得できましたが、この方法だと取得したバイナリを
どのようにwindow.documentオブジェクトで表示させれば良いかが
分かりません。

もう少しで出来そうな気がするのですがググっても解決方法が
見つかりません。アドバイスをお願いします。


708:デフォルトの名無しさん
09/02/24 19:22:41
>>706
さんくす
ではやふって探してみます
ぐぐっても見つからないようなので

709:デフォルトの名無しさん
09/02/24 19:28:14
>>687
やったことないし思いつきですが非同期でプロセス起動する方法を
調べたら良いのでは?子プロセス起動10秒後に親が子を消すように
すればできる気がします。


710:デフォルトの名無しさん
09/02/24 21:55:13
強制終了はよくないって聞くけど本当なの?

711:デフォルトの名無しさん
09/02/24 22:41:07
強制終了が何故良くないのか解ってない人にとっては良くないね。
解ってればある程度の事前対処も出来るのだが。

まぁWSHに限らずの話でスレ違いになるから詳細は伏せる。

712:デフォルトの名無しさん
09/02/24 22:48:50
>>707
Document.Refererはドキュメント取得時のRefererが記録された、言わばログなので書き換えても無意味。
書き換えるならHttpRequestHeaderの送信情報を書き換えないといけない。
HttpRequestHeaderを指定できるJavascriptライブラリなど探せば幾らでもあるだろ。
例えばこれとかな↓

URLリンク(www.s2factory.co.jp)



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch