1 名前:デフォルトの名無しさん [2008/04/23(水) 20:00:50 ] ( ´ゝ`) 誰か詳しい情報キボンヌ ●過去スレ WSH(・∀・)スレッド! pc11.2ch.net/test/read.cgi/tech/1055075469/ WSH(・∀・)スレッド! Part 2 pc11.2ch.net/test/read.cgi/tech/1176698934/ ●関連スレ お前ら、wsh使ってますか? Part7 pc11.2ch.net/test/read.cgi/win/1190548945/ HTAをもっと流行らせる計画 pc11.2ch.net/test/read.cgi/tech/1124559962/ ★WSHでCGI★JScriptVBScript pc11.2ch.net/test/read.cgi/php/1059745064/ ●公式サイト Windows Script www.microsoft.com/japan/msdn/scripting/ ●個人サイト Windows Scripting Host homepage3.nifty.com/aya_js/wsh/index.htm Windows Scripting Host Laboratory www.roy.hi-ho.ne.jp/mutaguchi/wsh/ Windows Script Wiki winscript.s41.xrea.com/wiki/index.php
488 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 11:45:34 ] >>481 その方針は間違い >VBScriptって例外が発生して落ちたときに >終了コードをセットしないから外部からわからないんですよね。 → QuitWithErrNumber.VBS >今作ってるのは他のスクリプト内から実行される可能性があるので、 >うっとうしいと思いながらも何が何でも例外は自分で拾って >WScript.Quit(1)するという方針で書いてます。 だけなら、 sub main() end sub on error ... call main if ... quit(1) するだけ
489 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 00:27:15 ] >>481 そのやり方だと、どうしても漏れるよ 漏れたときに困るよ 正常時だけQuit(1)にすれば確実だよ
490 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 14:06:49 ] .urlファイルを書き換えても、プロパティで見ると書き換わってない F5しても同じ どうすれば反映される?
491 名前:481 mailto:sage [2008/11/27(木) 00:12:55 ] レス遅くてすいません。 >>488 > → QuitWithErrNumber.VBS なるほど!スクリプト終了時のオブジェクトの解放時に 明示的にセットするという方法があるのですね。 自分では全く思いつきませんでした。ありがとうございます。 >>489 確かに仰る通りです。逆転の発想をするわけですね。 正常終了は%ERRORLEVEL%==0という固定観念がありました。 大変参考になりました。ありがとうございます。 結局、Main()全体にOn Error Resume Nextすることにしました。
492 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 22:12:29 ] >>491 > 結局、Main()全体にOn Error Resume Nextすることにしました。 なんでそんな結論に...
493 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 23:54:38 ] 坊やだからさ
494 名前:481 mailto:sage [2008/11/30(日) 01:33:16 ] >>492 >>493 もしかして一番ダメな方法なのかな… 忠告ありがとうございます。もうちょっと考えてみます。
495 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 14:13:54 ] ttp://oshiete.nikkeibp.co.jp/qa4474443.html ぷっ
496 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 10:53:01 ] /MIN
497 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 10:54:55 ] start /MIN hoge.bat
498 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 17:19:09 ] JS教えたりして意地悪じゃないの \\で嵌まるの目に見えてる
499 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 12:44:37 ]
500 名前:デフォルトの名無しさん [2009/01/03(土) 07:09:06 ] 500
501 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 06:09:19 ] wshから(出来ればVBSで)エクスプローラを再起動させたいんですが 起動はいいのですが、プログラムを終了させる事って出来ないんでしょうか?
502 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:46:54 ] >>501 WMIつかえば出来るよ 使い方はググればサンプル含めて転がってる 又はコマンドライン型のプロセス終了ツールを使う手もある
503 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 23:29:03 ] >>501 XP 以降なら taskkill ってコマンドがある プロセスIDや実行ファイル名でプロセスを殺せる ex) taskkill /IM notepad.exe
504 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 23:46:47 ] >>503 home editionにはない
505 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 23:54:44 ] 好きなの使えよ。 ttp://www.vector.co.jp/vpack/filearea/win/util/task/
506 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 00:07:11 ] PsKill - ローカルまたはリモートのプロセスを停止します。 technet.microsoft.com/ja-jp/sysinternals/bb896683 (en-us).aspx
507 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 00:46:38 ] taskkill、PsKillってのが>>502 の言ってるコマンドライン型のプロセス終了ツールでしょ。
508 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 04:04:31 ] tskillつかえよ
509 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 14:50:20 ]
510 名前:デフォルトの名無しさん [2009/01/12(月) 22:44:18 ] vbseditみたいに補完&デバッグできるフリーな奴無い?
511 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 07:17:05 ]
512 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 07:47:10 ]
513 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 23:37:18 ]
514 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 21:26:39 ] www.atmarkit.co.jp/fwin2k/tutor/cformwsh01/cformwsh01_03.html 上記のURLで紹介されている「SystemScripter」を使用されている方はいらっしゃいますか? 試しにインストールしてみたのですが、IMEで日本語を入力すると入力が重複してしまう のですが...回避方法はないでしょうか?
515 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 12:55:06 ] Vistaやっと買ったら、自作のスクリプトが落ちます・・・ ******************************* 'ファイル操作の宣言 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") 'ファイルのオープン Set objFile1 = objFSO.OpenTextFile(name1) ****************************** 上の命令付近で、どうしても落ちます。 Vistaに何か入れれば、動くとか情報有りますか?
516 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 19:10:29 ] 何が落ちるんだ?
517 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 19:15:02 ] > Vistaやっと買ったら、自作のスクリプトが落ちます・・・
518 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 19:27:40 ] 反ウイルスソフトじゃないの?
519 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 19:28:43 ] どこに落ちるんだ?
520 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 22:20:36 ] >515 Vistaは知らんが、CreateObject("Scripting.FileSystemObject") に "WScript"を付ける奴は初めて見た。 WinXP&WSH5.6ユーザーより
521 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 23:54:00 ] そうか? 視野が狭いだけだろ?
522 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 09:11:37 ] 付近とかまたアバウトな・・・
523 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 22:44:44 ] 大量の文書の置換をしたいのですが、どのような形で組めばいいのでしょうか? 置換対象文書はすべて一つのフォルダのサブフォルダに入っているのでサブフォルダ内から抽出するなり再帰的に実行するなりすればよいでしょうが… 置換自体のスクリプトは以下のITPROの記事を参考に作りました。 ttp://www.atmarkit.co.jp/fwin2k/win2ktips/308strrpl/strrpl.html 後はこのスクリプトを起動するスクリプトを作成するか、読み込むファイルを抽出する部分を工夫すればいいのですが、 何か手はないでしょうか?
525 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 22:48:01 ] >>524 for
526 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 23:23:05 ] >>526 遅くなりましたが、参考にさせていただきました。 ありがとうございました。
528 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 11:56:09 ] ho
529 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:15:34 ] レジストリキーが存在するかを確認したい ttp://www.atmarkit.co.jp/fwin2k/tutor/cformwsh13/cformwsh13_01.html のサンプルCheckReg.vbsを参考にした キーの既定に空白でもなんでも値が入っていれば正常に判断できるが、 既定が(値の設定なし)だとキーが存在していても無いと判断されてしまう。 ttp://okwave.jp/qa2469915.html で同様の状態についてやりとりがあり、解決済みだと言うサンプルが置いてある(IsNullを使ったもの) …けれど、やはり同様に(値の設定なし)だとキーが存在していても判断に失敗する 既定が値の設定なしで、他にエントリもないレジストリキーの存在を 確実に確認する手段はございませんでしょうか
530 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:49:44 ] >>529 このあたりはどう? www.microsoft.com/japan/technet/scriptcenter/resources/qanda/oct04/hey1029.mspx
531 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:00:13 ] スクリプト センター > スクリプト一覧 > オペレーティング システム レジストリ www.microsoft.com/japan/technet/scriptcenter/scripts/os/registry/default.mspx
532 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 02:21:17 ] >>530 そこのスクリプトでも結果が同じで エントリ名が入る変数strValueNameを空白にすると strKeyPathで設定した場所(キー)の既定エントリを覗くようですが 既定エントリの値を (値の設定なし)→空白にするとexistになります (値の設定なし)に戻すとやはりnot existになります >>531 学習します
533 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 03:43:06 ] >>533 これは(値の設定なし)でもキーの存在を的確に判断してくれます 大変有難いことです。感謝
535 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:50:11 ] WSHでOutlookの予定や仕事の本文のフォントを一括で変更できる方法ってありますか?
536 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 19:28:41 ] もしOutlookVBAでできるなら、WSHでもできるよ
537 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:50:15 ] WSH(使用言語はjscript)でWin32apiのLoadLibrary()ってどうやって使うんですか!?
538 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:55:37 ] 無理
539 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:03:58 ] そういうCOM使えばええがな
540 名前:デフォルトの名無しさん [2009/02/06(金) 23:01:41 ] 糞スレ晒し上げ
541 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 01:55:39 ] なるほど ありがとうございました
542 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 05:31:22 ] サービスのスタートアップの種類(自動・手動・無効など)を調べるスクリプトを書いており、 Vistaの自動と自動(遅延開始)を識別する方法を探しています。 WMIのWin32_ServiceクラスのStartModeプロパティには、両方ともAutoが設定されています。 MSDNでは他にそれらしいプロパティは見付かりませんでした。 レジストリ値を直接読んで識別するしかないのでしょうか?
543 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 05:42:58 ] ここはWSHスレです。 VB6でもRubyでもC#でもDelphiでもVBAでも使える 汎用コンポーネント(WMIなど)の話はお控え下さい。
544 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 05:55:18 ] あれま。そういう棲み分けでしたか。失礼しました。
545 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 07:05:52 ] 自動(遅延開始)は依存関係で他のサービスが立ち上がってから立ち上がるもの つまり依存するサービスを所有していればそれで判別可能
546 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 07:11:45 ] >>543 >>539 COMもVB6でもRubyでもC#でもDelphiでもVBAでも使えるから ここで話題振るのは禁止なんですよね
547 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 14:17:16 ] 複雑だと思うならつかわなきゃいいんじゃねーの? なんでアホはあるもの全部使わなきゃ気がすまねーの?
548 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:36:14 ] がんばれよ
549 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:22:53 ] がんばりまっちゅ
550 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:31:19 ] WSHもCOMだろ?
551 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:43:36 ] いいえ、WSHはCOMじゃありませんよ WMIはCOMですけど
552 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:54:14 ] >>545 どうしてそんなすぐ分かる嘘を付くのですか?
553 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:55:36 ] WSH.Echo TypeName(WSH)
554 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 20:07:58 ] >>553 いきなりどうしたの?
555 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:59:10 ] なるほどね
556 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:18:45 ] もしかしてObject=COMだと思ってるんじゃないの?
557 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:24:41 ] やめときゃいいのに
558 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:37:35 ] だよね あんなの書かなきゃ恥かかなかったのに
559 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:57:24 ] ぷっ
560 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:59:09 ] MsgBox "Object"="COM"
561 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:13:19 ] たしかにちがうな
562 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:14:34 ] MsgBox "WMI"="COM"
563 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 10:06:41 ] WSHとPowerShellはどういう関係なのでしょうか? PowerShellが使えたらWSHはもう要らないものでしょうか?
564 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:38:23 ] スルーしような
566 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:38:28 ] JRubyとかIronRubyとかIronPythonとかあって訳若芽です><
567 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:50:36 ] ここはWSHスレです。 IEでもHTAでもSCでも使える 汎用スクリプト言語(VBScript,JScriptなど)の話はお控え下さい。
568 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:03:29 ] あれま。そういう棲み分けでしたか。失礼しました。
569 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:10:00 ] WSH.Echoも、VB6でもRubyでもC#でもDelphiでもVBAでも使えるんですがどうしましょ?
570 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:10:59 ] COMは専用スレあるからスレ違いでいいけど アクティブスクリプトは専用スレあったっけ?
571 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:18:22 ] >>569 WSH.Echoも、IEでもHTAでもSCでも使えるけど、いいんじゃね
572 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:27:32 ] >>569 VBAかVB6でWSH.Echoを使うサンプルコード書いて あ、もちろんWrapper的なのを噛ますのは無しね dllやらwscやら噛ませるのは、そのホスト上でWSHオブジェクトが使えてるわけではなく そのやdllやらwsc上でWSHオブジェクトが使えてるだけだから
573 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:34:44 ] WSCでWSHオブジェクトが使えてるのか?
574 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:55:24 ] 。。。
575 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:18:48 ] ぷっ
576 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:19:24 ] ぽっ
577 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:21:25 ] WSHはCOMだからオブジェクト参照さえ渡せばWSCだろうとIEだろうと使えるよ
578 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:27:30 ] ぷっ
579 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:35:32 ] ActiveほにゃららってWindows版の各スクリプト言語処理系の頭に付くのは何故なんだろうって最初は不思議でした
580 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:02:07 ] >>572 >VBAかVB6で スレ違いだろ?
581 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:05:35 ] ぷっ
582 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:11:19 ] >>577 いいえ、WSHはCOMじゃありませんよ WMIはCOMですけど
583 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:30:05 ] 結局具体的には書けないんだね
584 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:15:05 ] 具体的に書いてやらないとわからないんだね
585 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:23:58 ] うん、わからないからちゃんと書いて
586 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:31:26 ] いやだよ
587 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:54:22 ] WSHは外部からCreateInstanceはできないだけで、COMじゃないわけはないだろ。
588 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 19:09:22 ] いいえ、WSHはCOMじゃありませんよ WSHはEXEですけど