[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 10/02 12:26 / Filesize : 234 KB / Number-of Response : 984
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

WSH(・∀・)スレッド! Part 2



1 名前:デフォルトの名無しさん [2007/04/16(月) 13:48:54 ]
( ´ゝ`) 誰か詳しい情報キボンヌ

●過去スレ
WSH(・∀・)スレッド!
pc11.2ch.net/test/read.cgi/tech/1055075469/

●関連スレ
お前ら、wsh使ってますか? part6
pc11.2ch.net/test/read.cgi/win/1155040873/
【イケメン】阿龍スレ避難所@自己紹介【彼女募集中!】
life8.2ch.net/test/read.cgi/intro/1171897814/

●個人サイト
Windows Scripting Host Laboratory
www.roy.hi-ho.ne.jp/mutaguchi/wsh/
Windows Script Wiki
winscript.s41.xrea.com/wiki/index.php
音楽
winscript.mine.nu/music/
キャラネタ板・なな板のための何か
charaneta.mine.nu/

369 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 22:15:10 ]
>>368
与えられた
オプションスイッチ スクリプトパス スクリプトへの引数
の順序が違ってても区別できますか?


370 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 23:27:36 ]
>>366
ProcessExplorerとか?

371 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 09:10:14 ]
>>369
区別できるよ
コマンドライン文字列 を丸々見ることは可能だし

372 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 21:59:30 ]
>>364
コンパイルすればライブラリいらなくなるの?マジかよ

373 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 22:10:24 ]
355も言ってるが、COMをライブラリとして使用する場合はスクリプトも実行ファイルも同じだよね
ソースに取り込めばライブラリファイル(dll=ダイナミックリンクライブラリ)は不要になるけど
それはCなどのまともな言語を使うかスクリプト言語を使うかって場合の話で
スクリプトそのものとスクリプトをコンパイルしたものの差にはならないよな

374 名前:デフォルトの名無しさん [2007/12/06(木) 00:02:22 ]
>>372
バカ。元発言嫁よ。
”そういうコンパイラはありませんか?”って質問だよ。

375 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 06:37:39 ]
そんなコンパイラがあれば
CreateObject("Excel.Application")とかやってるスクリプトも
ExcelをインストールしてないPCで利用可能に

やべーすげー俺にも教えて

376 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 19:44:45 ]
cmdからだとcscript.exe
explorerからだとwscript.exe
で起動されるようにはどうすればできますでしょうか?

377 名前:デフォルトの名無しさん [2007/12/11(火) 20:10:14 ]
ヌケ作マイクロソフトに無理言うなよ。



378 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 20:56:05 ]
>376
そんな事を考えるよりは素直にコマンドラインから cscript //nologo ***.vbs で
起動する習慣をつけておくほうが良いと思う。
またはvbsファイルをcscript.exeに関連付け、wscript.exeへのショートカットをSendToフォルダに入れておき、
エクスプローラでファイルを右クリック→送る→wscript.exeを起動させるとか。

あと、そこまで考えてるなら、ついでにvbsファイル内で以下のような条件文をつける手法も
覚えておくほうが良いかも。

If Right(UCase(WScript.Fullname),12) = "\CSCRIPT.EXE" Then
 WScript.Echo("このファイルはCSCRIPT.EXEから起動されました")
Else
 WScript.Echo("このファイルはWSCRIPT.EXEから起動されました")
End If

379 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 21:13:14 ]
>>376
コマンドプロンプトでファイル名叩くとエクスプローラーの関連付けで
起動するのは仕様で無理なんジャマイカ?

難しそうだから、ScriptingGuyに聞いてみたら?

>>378
彼が何を考えて、そうしたいのかわからないんだから、素直にやり方は
ないと答えるか、スルーするのが吉。

380 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 22:07:03 ]
Wrapper噛ませればいいじゃん

381 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 22:18:05 ]
>>380
kwsk

382 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 00:20:36 ]
cmd.exeから起動されたかどうかは区別できるので
同じコンソールにcscript.exeで起動し直すのが問題だな

383 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 00:28:43 ]
逆ならおk?

384 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:55:28 ]
>>382
>cmd.exeから起動されたかどうかは区別できるので

kwsk

385 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:58:59 ]
>>381
>>384
kwskはGoogleで

386 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 09:16:57 ]
KaWaSaKi

387 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:04:44 ]
>>385
Googleの検索キーワードをkwsk



388 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:54:28 ]
>>387
>>380>>382>>385は性格が悪いので教えてくれるわけがない。



389 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 21:46:40 ]
だったら性格のよい388が変わりに教えてやればいいのに・・・
それとも388も性格悪い仲間なの?

390 名前:384=388 mailto:sage [2007/12/12(水) 22:04:43 ]
>>389
性格はとてもいいんだけど、387と同じで検索キーすらわからないんだが。
わかれば、すぐ教えるが、残念ながらこれ以上調べてもわからなさそう。



391 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 22:49:07 ]
よくわからんけど
Win32_Process とかじゃねーの?

392 名前:390 mailto:sage [2007/12/12(水) 23:10:04 ]
WSHでは無理、という結論。

.NET系ならGetCurrentProcessを使って自分自身のプロセスを調べ、
さらに親プロセスがcmd.exeである事を判別する、って方法でいけそうだけど。

>>391
自分自身の実行パスをWMIで調べて、そこから親プロセスを割り出す、
って出来そうだけど、同じスクリプトが複数走ってるとアウトのような希ガス。

393 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:11:58 ]
scriptname = "foo.vbs"

set swl = wscript.createobject("wbemscripting.swbemlocator")
set s = swl.connectserver
set rs = s.execquery("select * from win32_process where caption='cscript.exe' or caption='wscript.exe'")
p = -1
for each r in rs
 if instr(1, r.commandline, scriptname) then
  wscript.echo r.caption
  p = r.parentprocessid
 end if
next

set rs = s.execquery("select * from win32_process where processid=" & p)
for each r in rs
 wscript.echo r.caption
next

'ttp://d.hatena.ne.jp/Ratso/20070313/p1


394 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:14:32 ]
>>393
同じスクリプトが複数走ってるとアウトのような希ガス

395 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:18:35 ]
ごめん
リンク貼り間違えてた
ttp://www.geocities.jp/maru3128/wmi.html


396 名前:392 mailto:sage [2007/12/12(水) 23:22:19 ]
>>393
貼り付け乙

穴があるのは承知で、同じような物を作ろうと思ってた。

397 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:26:24 ]
自分でうにーくなプロセス起こしてそこからたどればおk



398 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:29:20 ]
自分のプロセスidはどうやったらわかるの?

399 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:30:15 ]
MSは健忘症だから自分のことも平気で忘れる

400 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:32:17 ]
自分の子の親は普通、自分だけど、例外もあるかも

401 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:36:14 ]
子供のidは分かるけど自分のidは分からんらしい

402 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:39:07 ]
scripting.cocolog-nifty.com/blog/2007/01/id_548f.html

403 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:04:35 ]
自分探しって大変なんだな

404 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:04:48 ]
>>402
子プロセスを起動してその親プロセスIDを取るのか
スゲー力技

405 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:08:44 ]
>>400
'子の親(=自分)を調べる方法でgetpid()を作ってるサイトがあったので
'そちらを参考(丸写しともいう)にして >>302 を改良
'ttp://www.vector.co.jp/soft/winnt/util/se420729.html
'ttp://www.vector.co.jp/soft/winnt/util/se383755.html
set swl = wscript.createobject("wbemscripting.swbemlocator")
set s = swl.connectserver
set rs = s.execquery("select * from win32_process where processid=" & getpid())
for each r in rs
 wscript.echo r.caption
 p = r.parentprocessid
 set prs = s.execquery("select * from win32_process where processid=" & p)
 for each g in prs
  wscript.echo g.caption
 next
next
function getpid()
 set ws = createobject("wscript.shell")
 set e = ws.exec("mshta.exe -")
 p = e.processid
 set o = getobject("winmgmts:root\cimv2")
 set ps = o.execquery("select * from win32_process where processid=" & p)
 if ps.count <> 1 then
  e.terminate
  err.raise 9
 end if
 for each p in ps
  getpid=p.parentprocessid
 next
 e.terminate
end function

406 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:13:16 ]
なんでメインとサブでわざわざ違うやり方してんの?


407 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:13:35 ]
そこまでしてわかったところでどうする?
cscriptで起動しなおしたって別ウィンドウが開くだけだ



408 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:29:41 ]
もう充分だよ

409 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:31:33 ]
>>407=382だろ?
だから、まずできるところまでやってんだろ。

よくいるんだよな。自分では何もしないで人のしてる事にケチをつける奴。


410 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:33:07 ]
>>405
すげーな。そんな方法思いもよらなかった。


411 名前:デフォルトの名無しさん [2007/12/13(木) 01:46:48 ]
超手抜きだけど、環境変数で判別するって方法もあるよ。
Cドライブのカレントディレクトリが =C: という変数に入ってるなら cmd
無ければ explorer から起動したとみなす。
かなり乱暴なやりかただけど。Win XP 以外でうまくいくかどうかわワカラン。

Dim WshShell,Environment
Set WshShell = WScript.CreateObject("WScript.Shell")
Set Environment = WshShell.Environment("PROCESS")

If Environment("=C:") = "" Then
  MsgBox "エクスプローラから起動されました"
Else
  MsgBox "コマンドプロンプトから起動されました"
End if


412 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 06:07:15 ]
PROMPT=$P$G
も使えそうだね
消されてたらだめかな

413 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 06:09:08 ]
>>411
DドライブにOS入れててCドライブが無い変態さんもいるかも知れない

414 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:02:27 ]
If Environment("=" & left(wscript.fullname,2)) = "" Then

415 名前:デフォルトの名無しさん [2007/12/14(金) 06:45:12 ]
凄腕プログラマーな皆様!!!!!
おいらの悩みを聞いてください
replaceで " の入っている文章を置換したんですがどうすれば良いんでしょうか
具ぐってもサンプルコードばかりで解決策が見つかりません


416 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 07:01:34 ]
エスケープでググロ

417 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:43:49 ]
replace('"', 'hoge')



418 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:47:37 ]
〜.replace(/"/g, "&quot;");

419 名前:デフォルトの名無しさん [2007/12/14(金) 20:45:55 ]
vbs だと " の1個手前に " を置いてエスケープする。
"" の中に " を書きたいときは "" と書く。(C言語の \" のようなもの)
つまり、
s = "今日は""楽しい""遠足"
s = Replace(s, """", "うんこ")
となる。

420 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 23:00:32 ]
ソースキボンヌ

その仕様自体は知っているのだけれど、
スクリプトのヘルプには何故かその記述が見当たらなかったような……

421 名前:デフォルトの名無しさん [2007/12/15(土) 02:30:04 ]
SQL と似てるね。たとえば What's the vbScript という文字列をインサートするには、' を2回重ねて
INSERT INTO MYBOOKS SET ID=1, TITLE='What''s the vbScript';
としなきゃならない。


422 名前:デフォルトの名無しさん [2007/12/15(土) 10:28:15 ]
>>415
"""それは言えないな"""

"""こ、この不自然な二重引用符は何でもないんだからね"""

423 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 16:09:35 ]
>>420
なんでそんなもんがいるんだ?

424 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 18:46:31 ]
>>423
'に挟まれた'を挟み込む'ではなくて文字列の'にするため

425 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 22:02:40 ]
いや、>>423のいう「そんなもん」は「ソース」のことではないかと。

ついでに野暮なツッコミをしておくと、>>424の書き方だと
シングルクォーテーション("'")を単なる文字として読ませる工夫をしていないので

 「に挟まれた」を挟み込む「ではなくて文字列の」にするため

と読めてしまうな。

426 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 22:06:50 ]
ちなみに、ややこしいようなら
JavaScript では "\x22"、VBScript では Chr(34) と書く方法もある。
(ダブルクォーテーションの場合ね)

427 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 22:52:18 ]
JavaScriptだったら '"' とか "\"" とかの方が良くね?



428 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 13:48:01 ]
ダブルクォートを定数で作っておくのが親切ってもんです

429 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 13:54:46 ]
>>428
ヤメレ キショクワルイ

430 名前:デフォルトの名無しさん [2007/12/17(月) 06:03:14 ]
こんなおいらにいろいろ教えて頂いてありがとうございました。
''か""""かChr(34) でOKって事ですね
陳宮ベリーマッチでした

431 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 16:31:39 ]
Const vbQuote = """"

432 名前:デフォルトの名無しさん [2007/12/17(月) 19:32:56 ]
ふつうに書けば
a = "おまいは""アホ""か!"

でもこんな書き方する人もいるの?
Const vbQuote = """"
b = "おまいは" & vbQuote & "アホ" & vbQuote & "か!"

ダサ・・・

433 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 01:27:40 ]
ダサいのは可読性を考慮しないオナニー専門のお前

434 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 03:35:02 ]
CLSIDはあってもPROGIDがないものはどうやってCreateObjectする?

435 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 08:57:54 ]
アルファがベータをカッパらったらイプシロンした。なぜだろう?

436 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:23:23 ]
>>434
一覧で全部体当たりする

437 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:47:09 ]
wsf or wsc or htaで<object>使うしかないだろ
vbsやjsでは無理だろ



438 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 20:45:57 ]
無理と言うか、出来る方が問題やん

439 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 21:20:53 ]
ほなwsf wsc htaも問題やな

440 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 21:58:41 ]
>>438
問題のあることやっててゴメンナサイ

441 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:23:27 ]
そもそもそんな必要性がないだろ

442 名前:デフォルトの名無しさん [2007/12/20(木) 00:08:25 ]
>>433
可読性??wara
「"」の読み方も知らんの?ダサ〜〜w
おしえてあげよっか〜〜〜〜?

やだよ〜〜ん。おまいの熊度が気に入らないから教えてあげんよ〜〜だ。


443 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:10:50 ]
煽りの返しレスはすぐにつけないと、ただのキモい粘着野郎としか扱われませんよ

要約:KY

444 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:11:32 ]
さんご礁は黙ってろ

445 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:47:30 ]
>>434
自分専用スクリプトなら、適当にレジストリエディタでProgIDをでっち上げればいいw。

446 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 02:04:59 ]
getobject("new:{ clasid... }")

447 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 11:52:43 ]
new:なにこれ?



448 名前:デフォルトの名無しさん [2007/12/20(木) 19:35:47 ]
>>443
で。「"」 の読み方はわかんのかい?

449 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 19:51:05 ]
queue moniker
queue:/new:classid or progid

450 名前:デフォルトの名無しさん [2007/12/21(金) 18:49:10 ]
vbsかwsfでftpの処理をして処理内容をリダイレクトしようとしています。
ftpのコマンドを書いたファイルを読み込ませているのですが、うまく処理できません。

コメントを切り替えて下記10通りのパターンで試してみたのですが、
一つ目のRun以外動作していないようです。
ftpもできないしログも吐かないし、エラーも出ません。
その後のEchoは表示されます。
------------------
Dim objShl
Set objShl=Wscript.CreateObject("WScript.Shell")
objShl.Run "ftp -s:crp.ftp", 0, true

'objShl.Run "ftp -s:crp.ftp > ftp.log", 0, true '×
'objShl.Run "ftp -s:crp.ftp >> ftp.log", 0, true '×
'objShl.Run "ftp -s:crp.ftp > ftp.log", 1, true '×
'objShl.Run "ftp -s:crp.ftp > C:\db\wsh\ftp.log", 0, true '×
'objShl.Run "ftp -s:crp.ftp >> C:\db\wsh\ftp.log", 0, true '×
'objShl.Run "ftp -s:C:\db\wsh\crp.ftp >> C:\db\wsh\ftp.log", 0, true '×
'objShl.Run "ftp -s:C:\db\wsh\crp.ftp > C:\db\wsh\ftp.log", 0, true '×
'objShl.Run "ftp -s:/db/wsh/crp.ftp >> /db/wsh/ftp.log", 0, true '×
'objShl.Run "ftp -s:/db/wsh/crp.ftp > /db/wsh/ftp.log", 0, true '×
WScript.Echo "完了"
------------------
OSはWindows2003 Serverです。
上記をコマンドプロンプトで実行すると、ftpもログも正しく処理できています。

違っているところや、別の対処方法等教えてください。
よろしくおねがいします。

451 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 18:54:12 ]
cmd.exe /c ftp....

452 名前:450 mailto:sage [2007/12/21(金) 19:04:49 ]
>>451 ありがとーーーーー!!ヽ(・∀・ )ノ  できました!

453 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 23:29:39 ]
objShl.Exec

454 名前:デフォルトの名無しさん [2007/12/28(金) 13:37:03 ]
WSHでドライバインストールって出来ませんか?

著名確認画面で止まるのを自動で進みたいんですが。

455 名前:デフォルトの名無しさん [2007/12/28(金) 16:24:02 ]
>>454
マウスクリックするだけじゃん。
どんだけズボラなんだよ。
スクリプト書く方がはるかに手間がかかるよw



なんて冗談はさておき、たぶん、自分のPCなら自分で
マウスをクリックすればいいだけな話だが
キミやりたいのは、不特定多数の他人のPCにインストールしたい
ということなんだろ?

たぶん sendkeys って命令を使えばいいんだと思う。
(誰か詳しいひとがフォローしてくれるはず)

それはそれとして、いったい何のための署名なのか。よく考えて欲しい。
システムに深刻な障害を与える可能性のあるソフトを
何の確認もせずに自動インストールできてしまう機能がOSに
備わっていたら?それはセキュリティーホールだよね。
ウイルス作成ハッカーの格好の餌食じゃん。

456 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 18:41:26 ]
>>455
>それはそれとして、いったい何のための署名なのか。よく考えて欲しい。

親切で言ってるとは思うが、余計なお世話だろ。

>>454
出す情報少な杉。ダイアログを自動で操作したいだけなら455の言うとおり
ウインドウハンドルを取得してsendkeys使えばいい。


457 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 20:18:55 ]
>>455
SendKeysは知っていますが・・・

それから、著名確認を無効にする事がWindowsでは出来ますよ。
貴方の言うように著名確認が無いならそれはセキュリティホールだというなら、どうして
そのような機能がWindowsについているのでしょうか?

>>456
すみません。携帯電話からだったのでつい・・・・。
今度はPCから書いています。 確かにSendKeysを使えば良いのでしょうが、確認ダイアログ
が出るかどうかが分からないとか、 AutoHotKeyの IfWinExist みたいな 指定したタイトルの
ウィンドウが存在するかどうかチェックとか、そういった事はWSHでは出来ないのかなぁと。

要するに、SendKeysだとAppActivateと組み合わせても、タイミングによってはユーザの介入
によって上手くいかない可能性もあるので、そういった不安要素を取り除いて確実なスクリプト
にしたいなぁと思ったのですが、無理っぽいですねぇ・・・・
マニュアルを "存在するか" とか "ドライバ" とか 色々検索してみたのですが、どうも
なさそうでした・・・・。



458 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 20:36:01 ]
>>457
本筋とは関係ないが、「著名」じゃなくて「署名」だよ。

459 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 21:23:03 ]
「しょめい」じゃどう変換しても「著名」にはならんから
ずっと「ちょめい」と読んでいたんだろうね。

460 名前:456 mailto:sage [2007/12/28(金) 21:27:53 ]
>>457
突っ込みどころが多杉。

>>455がsendkeys出したのは、情報小出しのおまえが悪いんだろ。
それに対して礼も言わずにバカにしたようなレスはどーなのよ。

携帯電話なんてそっちの事情はしらねーんだよ。

>AutoHotKeyの IfWinExist みたいな 指定したタイトルの

できるが、「確認ダイアログが出るかどうかが分からない」って事じゃ
使いようがないだろ。

ある程度知ってる人ならスマートな解決方法がわからないまでも、この流れで
2種類の解決方法が思い浮かぶだろうな。

ブチむかついたので、以上。


461 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 21:27:59 ]
>>458
うっはw 指摘ありがとうございます。
超恥ずかしいOTL オレバカす・・・・・


それはそうと、スクリプトはどんなコンピュータで実行されるか分からないじゃないですか?
ハードウェアのインストールウィザードで一旦止まりますが、要はユーザがそれを見て
よく分からずに「インストール停止」を選べないように、出てきた瞬間にインストールを選択
させてインストールしたいのです。

最悪かなり重いマシンで実行する事を想定すると Wscript.Sleep 10000で10秒ぐらいは待って
それから objWshShell.SendKeys "{Left}" Wscript.Sleep 100 objWshShell.SendKeys "{Enter}"
ってやらないと、まだハードウェアのインストールウィザードが出てきてないのに
SendKeysしてしまうと失敗しますよね。
ではそのように作ったスクリプトを高速なマシンで実行した場合はどうなるか・・・
ハードウェアのインストールウィザードは出ているのにしばらく停止したまま。その間にユーザが
インストール停止を選択してしまうかもしれない。そうでなくても無駄に待ち時間が長いのは問題。
だから、出てきたらすぐインストールを選択させたいんです。無駄な待ち時間をなくしたい。
そうするにはどうすればいいのでしょうか?
AutoHotKeyだと IfWinExist タイトル で そのタイトルが存在するかどうかチェックとか
そういった事が出来たのですが、WSHではどうするのかなぁと。
存在しないタイトルを objWshShell.AppActivate タイトル ってやってアクティブにしようとして
存在しないのだから多分 Falseが帰ってくるから、それがTrueになるまで1秒ずつ実行するような
無限ループでも作ればいいのでしょうか?こんな感じ

Do While objWshShell.AppActivate("ハードウェアのインストール") <> True
Wscript.Sleep 1000
Loop

しかしこうするとなんらかの原因で永遠にAppActivateするプログラムが立ち上がってこなかったら
無限ループに陥ってしまうし・・・どうしたらいいんでしょう?

462 名前:461 mailto:sage [2007/12/28(金) 21:35:15 ]
>>460
すみませんでした。 ただ、署名を無効にするオプションが存在するのに署名無視でインストール
なんて出来るとセキュリティホールでしょ?って言っていたので、それはおかしいなと思って
レスしたまでです。で、携帯電話からってのは確かに、貴方には知る由もありません。申し訳ございませんでした。

>できるが、「確認ダイアログが出るかどうかが分からない」って事じゃ
方法をぜひご教示願えませんか?

>ある程度知ってる人ならスマートな解決方法がわからないまでも、この流れで
>2種類の解決方法が思い浮かぶだろうな。
向学のために2種類の解決方法とスマートな解決方法をご教示願えませんか?

>ブチむかついた
"ブチ"って、山口県辺りの人ですか?

463 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 22:14:01 ]
>>461
>無限ループに陥ってしまうし・・・どうしたらいいんでしょう?
有限ループにする

464 名前:461 mailto:sage [2007/12/28(金) 23:48:48 ]
>>463
なるほど・・・

i = 0
Do While objWshShell.AppActivate("ハードウェアのインストール") <> True
       WScript.Sleep 1000
       i = i + 1
       If i >= 10 Then
              WScript.Popup "エラー!ドライバのインストールに失敗しました", 5
              WScript.Quit
       End If
Loop
こんな感じですかね。。。

それともう1つ聞きたいのですが、指定した名前のドライバがきちんとインストールされているか
どうかIfで分岐する事はできませんか?

もう具体的に出した方が分かりやすいと思いますので言いますが UltraVNC のVNC Hook Driver
のインストールをしたいのです。 もしインストールされてなければインストールを実行(全自動)
インストールされていればインストールはせずにスクリプトを終了させる
といった分岐です。

465 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 11:38:43 ]
もう全部手作業でやった方がいいと思うよ。

466 名前:デフォルトの名無しさん [2007/12/29(土) 15:19:42 ]
>>462
「署名を無効にするオプションが存在する」 なら、無効にしとけばいいじゃん!頭悪っ

467 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 15:29:01 ]
あーあ、言っちゃったよ




468 名前:461 mailto:sage [2007/12/29(土) 18:09:53 ]
>>466
そういう設定に変えちゃらめぇ〜〜〜!

469 名前:デフォルトの名無しさん [2007/12/30(日) 01:12:43 ]
方法があるのに「らめぇ〜」ってどういう事だよ。もう付き合いきれん。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<234KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef