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
449 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 01:16:58 ] >>446 ・ドライブレターが存在するか ・フォルダパスとして成立するテキストが入っているか この2つは本来はこのサブルーチンに入る前にチェックするべきだあね。 >>447 then側はtrue、else側はfalseに統一しておくと、 可読性が高くなって個人的にはいいと思ってる。 "not 〜" とか "〜 = false" は後々で見直すときに、 ぱっと見てどっちかわかりにくいんだよね。
450 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 04:19:42 ] >>446 あーそうかそうか。 ドライブの直下にフォルダ作らせようとすると無限ループにはいるね。 今までそういう使い方してなかったから気づかなかった。 objFileSystem.DriveExistsでif文一個追加すればいいやって思ったけど このメソッド、"x:\"だと必ずFalseだね。"x:"ならTrueがかえってくるけど。
451 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 05:01:41 ] call objFileSystem.CreateFolder(strFolderPath)をする前に objFileSystem.FolderExists(strFolderPath)しないと ファイルが既に存在してるかどうか確認するのがめんどくさいからとりあえず実行しちゃえ ってなった時に既に存在してたらエラーになる
453 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 05:03:23 ] ファイルじゃなくてフォルダだった(´・ω・`)
454 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 08:36:27 ] つーかさ、初心者って「スマートに」とか「シンプルに」とか好きだよな そんで例外処理すら省いた短いだけの不適合コードに満足する 良いコードとは、短いコードではなく正しく動作するコードだってことを解ってない
455 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 13:14:52 ] 作ろうとするフォルダ名と同じファイルがあっても困るからそのときは中断処理しないといけないなぁ
456 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 13:58:50 ] >>454 所詮スクリプトなんだからあんまり例外処理を作り込む必要はないんちゃう?と最近は思う。 自分の環境で動けばそれでいいし、動かなければ適宜手直しするし・・・。
457 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 17:32:08 ] >>450 >このメソッド、"x:\"だと必ずFalseだね。 このメソッド、"c:\"だとFalseかね?
458 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 19:54:41 ] >>457 "c"とか"c:"ならTrueなのに、"c:\"はFalse。 で、ofs.GetParentFolderName("c:\hogehoge\")の戻り値は"c:\" 設計思想としてはわからんでもないけどなぁ。
459 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 20:40:06 ] >>447 バカっぽくは見えないけど、個人的にはあまり好きな書き方じゃないな。 ちなみに↓だと「「許容できない」が一番多いけど、「許容できる」もそれなりに多い。 空のIF文を書きますか? - Insider.NET ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47060&forum=7
460 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 20:42:28 ] "c:\"はTrueだけど?
461 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 21:43:55 ] >>454 そんな初心者見たことねぇ。
462 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 22:48:51 ] >>460 本当だ。どうも寝ぼけてなんか間違えたらしい。>>458 は忘れてくれ。 >>459 そこでも出てるけど、後々のメンテとか考えると統一したいんだよね。 if not 〜 thenで作ってて、後からTrueの場合の条件分岐追加したくなるときとか。 特に理由がない限りは愚直に馬鹿でも読めるように書けと教育されたので。
463 名前:462 mailto:sage [2008/11/18(火) 23:00:13 ] あ、でも確かにCode Completeでは「稚拙に見えるから止めろ」って書いてある。 だから本来はNot使うのがいいのかもね。
464 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 01:26:22 ] jsのif (!...) { ... }なら認識しやすいんだけど vbsのif not ... thenは色分けできるエディタ使ってても なんか視界のなかで他の単語にうもれてときたま見逃してしまうから >>449 みたいにif ... thenでやっちゃうことが多いな
465 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 10:30:27 ] >>248 をみてもしかしたらと思って.NETのクラスつかったらできたよ var asciienc = new ActiveXObject("System.Text.ASCIIEncoding"); var s1 = asciienc.GetString(Str); WScript.Echo(typeof(s1));
467 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 10:33:13 ] あとレジストリみたらSystem.Text.ASCIIEncodingのほかに System.Text.UnicodeEncoding System.Text.UTF7Encoding System.Text.UTF8Encoding があったからここらへんも使えると思う
468 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 11:45:55 ] constractor???
469 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 11:52:58 ] var Str = oAD.ReadText(1);
470 名前:465 mailto:sage [2008/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 mailto:sage [2008/11/19(水) 12:04:51 ] 誤:WScript.echo(s1.charCodeAt(),toString(16));//ASCIIだと3f、それ以外はfffdがずっと続く 正:WScript.echo(s1.charCodeAt().toString(16));//ASCIIだと3f、それ以外はfffdがずっと続く
472 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 12:08:52 ] なにがしたいんだか
473 名前:デフォルトの名無しさん [2008/11/19(水) 12:17:37 ] 自分のマシンのローカルエリア接続に設定されている デフォルトゲートウエイIPアドレスをWSHで取得する方法で頭打ってます。 どなたか知りませんか?
474 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 12:21:20 ] JScriptからバイナリの暗号化とか復号とかいろいろできたら便利だなぁ、とか思ってました
475 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 12:24:28 ] JScriptじゃ無理 VBScriptつかえよ
476 名前:デフォルトの名無しさん [2008/11/19(水) 12:34:53 ] VBSで取得する方法でもいいです。 Google先生でもなかなか見つからない紋で。
477 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 12:38:55 ] Str = oAD.Read(-1) For k=1 To LenB(Str) WScript.Echo AscB(MidB(Str,k,1)) Next
478 名前:デフォルトの名無しさん [2008/11/19(水) 12:44:52 ] 早速ありがとう! oADこのオブジェクトはどこから取得するのですか?
479 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 22:09:25 ] >>473 ちゃんとググッたのか? default gateway wsh でググッたら、"Need to get default gateway via VBScript" って 言うほぼどんぴしゃのページがヒットするんだが...。 www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_23706347.html
480 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 01:07:04 ] >>479 おれのプニル1.66が固まった(´;ω;`)ウッ…
481 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 14:14:40 ] >ttp://okwave.jp/qa4465143.html?ans_count_asc=20 >CScriptのコンソール画面のクリア方法 できないって? clsすりゃいいだけなのに
483 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 16:15:30 ] >>481 意味ないからやめろよ 必要なときだけやれ
484 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 16:16:36 ] 理由 テストできないだろ? テストできないコードを書くな
485 名前:デフォルトの名無しさん mailto:sage [2008/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 mailto:sage [2008/11/21(金) 00:45:17 ] >>483 , 485 アドバイスありがとうございます。 必要かどうか、状況を判断するのが難しいです。 修行がいるのだろうなぁ。 VBScriptって例外が発生して落ちたときに 終了コードをセットしないから外部からわからないんですよね。 今作ってるのは他のスクリプト内から実行される可能性があるので、 うっとうしいと思いながらも何が何でも例外は自分で拾って WScript.Quit(1)するという方針で書いてます。
487 名前:デフォルトの名無しさん [2008/11/21(金) 01:08:05 ] >479 ありがとうございます! 英語が読めないので日本語ページオンリーです。 恥ずかしっ!!
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 ] がんばりまっちゅ