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


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

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



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 ]
がんばりまっちゅ






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

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

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