WSH(・∀・)スレッド! Part 2at TECH
WSH(・∀・)スレッド! Part 2 - 暇つぶし2ch2:デフォルトの名無しさん
07/04/17 00:23:58
    ∧_∧
    (*´Д`)  イヤン
     / ,ノ⌒ヾ、
   ⊂⊂、___(_,つ

3:デフォルトの名無しさん
07/04/17 20:06:46
      ∧∧ ∧∧ ∧∧ ∩
     ( ( ( ( ・( ・ω( ・ω・)
     (つ(つ/つ//  二つ
     ) .| /( ヽノ  ノヽっ
     ∪∪とノ(/ ̄ ∪

              ∩
  (( (\_∧∧∧∧ ω・)っ
   ⊂`ヽ( ・ω・)ω・)) ・)  ノノ
    ⊂\  ⊂)  _つ
    (/(/∪∪ヽ)ヽ) ノ
     ∪ ̄(/ ̄\)

          ∧∧∧
       ∧∧ ・ω・)・ )
       ( ・ω・)―〇 )
       /´、Y ノ
       と⌒)(,,つ

        ∧∧
       ( ・ω・ )
       /´、Y ノ
       と⌒)(,,つ

4:デフォルトの名無しさん
07/04/29 01:57:15



5:デフォルトの名無しさん
07/04/29 09:51:07
    ∧_∧
    (* ゚Д゚ )  ナニミテンダゴルァ
     / ,ノ⌒ヾ、
   ⊂⊂、___(_,つ

6:デフォルトの名無しさん
07/04/29 13:36:19
WScript.Echo("保守");

7:デフォルトの名無しさん
07/04/29 20:01:37
新スレおめ

8:デフォルトの名無しさん
07/04/30 01:54:03
デスクトップのフォルダウィンドウ(最小化も含)を
横に整列したいのでWSHを弄りまじめました

最小化していないフォルダを並べるのは見つけたのですが
このあとどうしたらいいのか教えてもらえるでしょうか?

Set Win = WScript.CreateObject("Shell.Application")
Win.TileVertically



9:デフォルトの名無しさん
07/04/30 06:13:25
自分の股間でも弄ってろ

10:デフォルトの名無しさん
07/04/30 07:03:41
>>9
なんかだんだん変な気分になってきたお。

11:デフォルトの名無しさん
07/04/30 16:09:44
sendkeys

12:デフォルトの名無しさん
07/05/01 18:11:57
sendkeys "%+{tab}%+{tab}%+{tab}%+{tab}%+{tab}%+{tab}"

13:デフォルトの名無しさん
07/05/01 19:00:24
Windowsのバージョンを取得するにはどうすればいいのでしょう?
↓のような書式で取得したいのですが
WindowsXP Service Pack 2


14:デフォルトの名無しさん
07/05/01 19:18:46
のような書式と言われても少々困るが、WMI で Win32_OperatingSystem から取ってくるとか

15:デフォルトの名無しさん
07/05/01 19:54:22
>>12みたいな文字列の繰り返し関数はないの?


16:デフォルトの名無しさん
07/05/01 21:31:51
PerlScriptでも使えば

17:デフォルトの名無しさん
07/05/01 21:34:51
つかまあそれくらい作れと言う話だな

18:デフォルトの名無しさん
07/05/02 00:56:12
つJoin()

19:デフォルトの名無しさん
07/05/02 23:52:52
おいw

20:デフォルトの名無しさん
07/05/03 01:29:40
やま

21:デフォルトの名無しさん
07/05/03 01:40:56
じゅん

22:デフォルトの名無しさん
07/05/03 03:39:29
XP Home Editionでwmic.exe使っている人いませんか?


23:デフォルトの名無しさん
07/05/03 11:52:37
>>15
String.prototype.repeat = function(num) {
return Array(num + 1).join(this);
}
WScript.Echo( "ABC".repeat(3) );

24:デフォルトの名無しさん
07/05/03 15:51:36
つSplit()

25:デフォルトの名無しさん
07/05/03 17:45:15
>>23
>Array(num + 1)

newがあるのとないのでどう違うの?

26:デフォルトの名無しさん
07/05/03 19:04:28
組み込みオブジェクトの場合new付けなくても
付けたことと同じように振舞うらしいが
なんとなく気持ちよくないなあ。

27:デフォルトの名無しさん
07/05/03 22:09:00
WSHのスクリプトの最後にrelease();とか=null;するのって意味あるんでしょうか?
勝手に解放するものと思ってるんですが、結構やってる方が多いので聞きたいです。

28:デフォルトの名無しさん
07/05/03 22:41:55
殆どの場合意味無いけど、意味のある場合もあるよ。
デストラクタイベントの順番をコントロールしたい場合とか。
解放自体は君の思ってるとおり自動でやってくれるから、解放のためだけにやる意味はない。
最後じゃなくて途中で破棄するなら、逆に殆どの場合有意だけどね。

29:デフォルトの名無しさん
07/05/03 22:46:30
excelなんかは解放してすぐ終了すると死ぬみたいで、
解放してからsleepいれたりするのに必要かも
解放してすぐ終了なら不要でしょ

30:デフォルトの名無しさん
07/05/03 22:47:37
>>27-28
関連してこんなのもあるそうです
URLリンク(support.microsoft.com)

CollectGarbage()

31:デフォルトの名無しさん
07/05/04 01:21:37
>>8 何かすげー
(Win2KSP4+SRUPとWin98SE&WSH5.6にて動作確認済み)
Execute "Set Win = WScript.CreateObject(""Shell.Application"") :Win.TileVertically"
自分のアプリケーションランチャに登録させて貰いました。

でもどんな時に使うといいのだろう‥
ウィンドウ同時に開きすぎて、タスクバーから探すのが面倒になって来た時とかかな、成程‥



32:デフォルトの名無しさん
07/05/04 19:43:12
それって「上下に並べて表示(H)」より便利なのか?

33:デフォルトの名無しさん
07/05/04 21:33:51
>>13
wmic.exe os


34:デフォルトの名無しさん
07/05/05 18:04:31
>>22
wbemoc.inf

35:デフォルトの名無しさん
07/05/06 21:33:25
hoge.vbs //aaaa
で引数が渡せないよー

36:デフォルトの名無しさん
07/05/06 22:00:40
>>35
それは wscript/cscript に渡すときのやり方だろ。
hoge.vbs /aaaa でおk・・・のハズ。

37:デフォルトの名無しさん
07/05/06 22:03:32
うんにゃ
//aaaa
という形式の引数だす


38:デフォルトの名無しさん
07/05/06 22:07:58
当然、シェルは内部で wscript.exe を起動するわけだから、それはすなわち wscript.exe の引数になるのである。
で、ここはお前の日記帳じゃない。

39:デフォルトの名無しさん
07/05/06 22:56:41
//~で渡すのは、組込の名前付きオプションだけでしょ
//Jobとか//nologoとか、WSH側で初めから定義されてるやつ
ユーザー定義の名前付き引数は/~の形だよ

だからある意味>>36の言ってることは正しい
コマンドライン的に見れば、渡し先はどちらもWSHの実行ファイルになるけど
処理上ではスクリプト内に渡るものとWSHに直接渡るものとで別れてるとも言える

40:デフォルトの名無しさん
07/05/06 23:27:30
つ//
hoge.vbs // //aaaa

41:デフォルトの名無しさん
07/05/08 03:37:17
こういうのも
× cscript -nologo -hoge.vbs
○ cscript -nologo -- -hoge.vbs


42:デフォルトの名無しさん
07/05/09 15:02:14
WScript.ShellのExecでコンソールを非表示にできないの?

43:デフォルトの名無しさん
07/05/09 17:03:20
できるよ

44:デフォルトの名無しさん
07/05/09 22:57:07
URLリンク(www.microsoft.com)

45:デフォルトの名無しさん
07/05/10 18:17:38
dsofileの新版が出たそうな
URLリンク(www.microsoft.com)


46:デフォルトの名無しさん
07/05/12 18:33:01
>>44
>Exec がコマンドライン ユーティリティを実行すると、そのユーティリティは非表示ウィンドウで実行され
なんか変なことが書いてあるね


47:デフォルトの名無しさん
07/05/13 13:17:47
>>43 >>44
>>42>>44の質問者もそういう意味ではないと思うんだが。
というかいつも思うんだけどScripting Guyって本当馬鹿だよな

48:デフォルトの名無しさん
07/05/13 18:28:41
>>44の説明記事は無視してサンプルを見れば出来ると分かるよ

49:デフォルトの名無しさん
07/05/14 14:54:30
はあ?お前もScripting Guyと同じ池沼かよ
CScriptの事なんか聞く訳ねーだろ
WScriptからできるかどうかを聞いてるに決まってんだろ

50:デフォルトの名無しさん
07/05/14 15:06:29
日本語でおk

51:デフォルトの名無しさん
07/05/14 16:27:35
>>44のサンプルが示しているのは
「cscriptからexecするとコンソールが新たに開くことはない」
ということ
だったら、そのcscriptをwscriptから非表示でrunすればおk

52:デフォルトの名無しさん
07/05/14 21:03:04
Scripting Guyの場合、本質的にはこうじゃないの?
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "net Localgroup Administrators", 0

結果が欲しいというのなら
WshShell.Run "cmd /c net Localgroup Administrators > result.txt", 0

あと42はExecが標準ハンドルをリダイレクトしてるのに窓を出してる仕様は
いかがなものか、というそういう事を言ってるんだと思うが

53:デフォルトの名無しさん
07/05/14 22:42:25
はあ?

54:52
07/05/18 23:52:50
>>53
知らんのね。本来のWin32仕様では・・・

55:デフォルトの名無しさん
07/05/19 02:08:26
ハイハイ次どうぞ

56:デフォルトの名無しさん
07/05/21 19:42:46
>>8
つArrangeIconicWindows()


57:デフォルトの名無しさん
07/05/22 01:55:25
domacroがダウンロード出来るサイトってありますか?
404ばかりで…

58:デフォルトの名無しさん
07/05/22 08:31:42
検索して10分で落とせるところ2カ所見つけた

59:デフォルトの名無しさん
07/05/26 04:59:47


60:デフォルトの名無しさん
07/05/31 02:53:00


61:デフォルトの名無しさん
07/05/31 07:43:10
batスレから誘導されました。質問させてください。
WSHの正規表現でvar.iniファイル内の各行に対して、「###」と「###TITLE###」
という文字列を検索、見つかったか否かをEchoさせているのですが、
実際に検索対象の文字列が無い行に対しても「True」を返しているようです。
なぜうまくいかないのか教えてください。

Dim objFS, strCD, objINI
Set objFS = CreateObject("Scripting.FileSystemObject")
strCD = objFS.GetParentFolderName(WScript.ScriptFullName)
Set objINI = objFS.OpenTextFile(strCD & "\var.ini", 1, False)

Dim strSpecificTag, strAnyTag
strSpecificTag = "###TITLE###"
strAnyTag = "###"

Dim strINI, strINIsum, boolWritable
Do While objINI.AtEndOfStream <> True
strINI = objINI.ReadLine
'*** Any tag の検索 ***
Dim objREat
Set objREat = New RegExp
objREat.Pattern = strAnyTag
'*** Specific tag の検索 ***
Dim objREst
Set objREst = New RegExp
objREst.Pattern = strSpecificTag

WScript.Echo objREat.Pattern & ": " & objREat.Test(strAnyTag) & vbNewLine & objREst.Pattern & ": " & objREst.Test(strSpecificTag)
Loop
objINI.Close

62:デフォルトの名無しさん
07/05/31 07:44:37
ちなみにvar.iniの中身はこれです

123start
###TITLE###birthday1
birthday2
birthday3
birthday4
###YYYY###2004
###MMDD###0324
###BODY###私は学生です
この日に生まれました

63:デフォルトの名無しさん
07/05/31 08:45:53
> なぜうまくいかないのか教えてください。
だってstrAnyTagをパターンに設定して、var.iniの行内容(strINI)ではなく
strAnyTagがstrAnyTagにマッチするか見てるんだもん。
strAnyTagとstrAnyTagは同一なんだから、毎回Trueで当然でしょ。
strSpecificTagも同じく。
var.iniはstrINIに読み込んだっきりで、検索も何もしてないし。

それとループ内で毎回RegExpオブジェクト設定する必要無いし
そもそも正規表現使うまでもない。

64:デフォルトの名無しさん
07/06/01 20:21:47
ほんとだ!ありがとうございました!

65:デフォルトの名無しさん
07/06/02 13:41:12
このくらいのバグ取りだったら、怪しい行間に、Msgbox 入れてけばすぐ解るでしょうに…
時間が無い人が多くなったのかな、現代社会って。

66:デフォルトの名無しさん
07/06/02 14:06:54
時間の有る無しの問題じゃないだろ。
デバッグってのはコードを書き始める前に覚えるべきことで
車の運転に対する運転免許のようなものだが
デバッグもろくに出来ない癖にいきなりコードを書き始める奴が多くなった。

最近の若い子は基礎とか準備とか、そういうのを飛ばして面白そうな所にいきなり飛びつく。
んで、問題が起きると人任せに「たすけて~」と言うだけで、自分でどうにかしようとはしない。
本人は努力してるつもりなのかもしれないけど、端から見たらすぐ投げ出してるようにしか見えない。
これは時間の有る無しではなく人間性の問題だよ。

67:デフォルトの名無しさん
07/06/02 15:22:21
>>66
デバッグ技術は難しいよ。

教えてくれる人が殆ど居ないから。

知ってても(大して知らないが)教える気は無いけど。

どういう攻め方をするのかで幾つかの定石があり、それをなぞれば良いだけなんだけどね。

68:デフォルトの名無しさん
07/06/02 15:25:02
実は難しくないけどね

69:デフォルトの名無しさん
07/06/02 20:31:14

プログラミング免許制にすればいいのにね

Fizz Buzz 問題を 2分以内に解けない香具師は不合格でいいよ

スレリンク(tech板:377番)


70:デフォルトの名無しさん
07/06/03 00:14:58
>>69
コピペ勝負と考えてw

printf("1");
printf("2");
printf("Fizz ");
printf("4");
printf("Buzz ");
  ・.
  ・
  ・
printf("100");

71:デフォルトの名無しさん
07/06/06 22:14:13
あえて乗ってみる。
function FizzBuzz( n ) {
    if( n % 15 == 0 ) return "FizzBuzz";
    if( n %  3 == 0 ) return "Fizz";
    if( n %  5 == 0 ) return "Buzz";
    return n.toString();
}

72:デフォルトの名無しさん
07/06/07 21:25:21
>>70
絶対計算ミスるぞそれ……と思ったら既にミスっててワラタ

73:デフォルトの名無しさん
07/06/08 00:49:14
WSHでCD/DVDドライブのプロパティの設定を変更する方法はあるのでしょうか?

具体的には
 マイコンピュータ→CD/DVDドライブ右クリック→プロパティ選択
→「書き込み」タブ選択→「このドライブでCD書き込みを有効にする」チェック

のチェック有り無しをスクリプトで制御したいと考えています

74:デフォルトの名無しさん
07/06/08 08:47:58
>>73
そういう制御が出来るActiveX.dllを作って、それをWSHから使えば良いだけだよ。
WSH自体には、そんな機能は備わってないからな。
反映が再起動後でいいなら、アレを変更するだけでいいけど。

75:デフォルトの名無しさん
07/06/08 09:29:28
CDトレイをリジェクトしたりインサートしたり
WSHでやってみたいが、無理ではない。可能だ。

76:デフォルトの名無しさん
07/06/08 12:38:17
WSH+WMI


77:デフォルトの名無しさん
07/06/08 23:38:12
VBScriptで文字列中のダブルクォートをエスケープするにはどうすればいいの?

dim str
str="\"

これだとエラーになるんですけど


78:デフォルトの名無しさん
07/06/08 23:39:05
ミス

○str="\""
×str="\"


79:デフォルトの名無しさん
07/06/08 23:40:04
""""
冗談みたいだろ

80:デフォルトの名無しさん
07/06/09 00:20:41
>>79
thx!

81:デフォルトの名無しさん
07/06/09 02:02:51
>>76
詳細kwsk

それはそうと、MCIでも操作するかと思ったけど
WSHでは無理そうだった


82:73
07/06/09 02:20:01
>>74
ActiveX.dllは未経験でしたので
それがどんなものかから調べていきます
(VBで作ってそれをWSHから呼び出して?)

>>76
自分もその方法でできるなら
ぜひ教えていただきたいです

Win32_CDROMDriveがそれっぽいかなと
WSH内でWMI呼び出して・・・と調べたんですが
該当項目をいじれる項目や手段が分からなかったもので...


83:デフォルトの名無しさん
07/06/09 09:21:35
>>82
Win32_CDROMDriveではイジェクトできませんよ。
というか、WMI経由ではCDトレイは操作できません。
>>76は釣りか知ったかです。

84:デフォルトの名無しさん
07/06/09 13:59:33
ファイルの作成日や最終更新日を任意の日付に変えたいのですが、
WSHでは無理そうですね。
普通、どんな手段を使うんでしょうか。

85:デフォルトの名無しさん
07/06/09 19:12:04
Win32APIを使うのが常套手段なので、DynaCall使ってもいいが
タイムスタンプ変更が出来るActiveX.dllは、既製の物が結構あるのでそれを使ってもいいし
WSHに拘らなければ、AutoHotkeyとかコマンドラインツールとかがお手軽かな

86:73
07/06/10 02:14:07
>>82
「このドライブでCD書き込みを有効にする」チェックの有無の確認と
無し→有り(有り→無し)を実現したかったのですが無理でしたか・・・

なるべくVBScript系で行ないたかったのですが
この計画の初期段階から考え直します・・・

87:デフォルトの名無しさん
07/06/10 23:06:28
うん、CDトレイを閉じる方法もどうやらなさそうだな
本当はあるんだろうけど、ちょっとマイナーで難しい方法しか
ないみたいだま
WSHの可能性をもう少し信じたいが

88:デフォルトの名無しさん
07/06/11 01:45:25
WSHの可能性というよりはActiveXの可能性だろ。
ActiveXはFileSystemObject(scrrun.dll)やWshShell(wshom.ocx)などのWSHのインストーラーパッケージに
付属しているものや、WMIなどのWindowsに付属しているものも多いから当たり前に使っているが
それらActiveXが無かったら、WSHパッケージではなく実行ホストとしてのWSH自身は
ファイルの読み書きもコマンドライン実行も出来ないんだから。
逆にActiveXのdll,ocx,exeさえ作るか探すかすれば、大抵はなんとでもなってしまう。

> 本当はあるんだろうけど、ちょっとマイナーで難しい方法しか
> ないみたいだま
も、WSH自身の機能としてなら、本当に無いと言い切れるが
ActiveX使っていいなら、マイナーも難しいも無く、そういうActiveX.dll作るか探すかすればいいってだけの話。

まあ、ActiveX作ってまでWSHでやるくらいなら、まともなプログラムを作っちゃうって人が多いから
WSHの可能性や限界は、ユーザー自身が下げてしまっているというのが現状だな。
適材適所という考え方からすれば、それは悪いことじゃないし。

89:デフォルトの名無しさん
07/06/11 02:56:14
>>88
出来る限り、(ほぼ)標準機能で済ませたい
WSH使いとして、なんとなくここだけは何かこだわりたい

プログラム書くのは別に苦じゃないしどうとでも書けるけど
テキストだけで済ましたい ってのはなんか、こう、ロマンだよね

90:デフォルトの名無しさん
07/06/11 04:24:27
勝手にすればいい

91:デフォルトの名無しさん
07/06/11 21:55:51
こちらで質問していいのか迷ったのですが・・・

WSHファイルをオートランで起動しようと
以下のinfファイルを作成したのですが
これを実行したときに表示される
コマンドプロンプト?画面を非表示にするにはどうすればよろしいのでしょうか?

[autorun]
open=cscript //nologo "hoge.wsf"

92:デフォルトの名無しさん
07/06/11 22:12:06
cscriptに渡したらコマンドプロンプト開くのは仕方ないと思うが…
↓こんな風に直接叩くいたらダメなのかい?

[autorun]
open="hoge.wsf"

93:デフォルトの名無しさん
07/06/11 22:18:21
wscriptはだめだっけ?

94:デフォルトの名無しさん
07/06/12 19:53:41
>>92-93
open=cscript "hoge.wsf"

open=wscript "hoge.wsf"
に替えたらコマンドプロンプト無しで実行されました。

というかなぜcscriptで思考が止まってしまったのか
お恥ずかしい限りですが
ご助言ありがとうございました


95:デフォルトの名無しさん
07/06/12 22:54:03
set shell = WScript.CreateObject("WScript.Shell")
if not shell.AppActivate "TARGETWINDOW" then
  shell.Run "targetapp.exe"
end
shell.SendKeys ...

のようなことがやりたいんですがAppActiveに失敗したかどうかを得る手段はありますか?

96:デフォルトの名無しさん
07/06/13 00:07:01
失敗したらfalseを返すのでは

97:デフォルトの名無しさん
07/06/17 08:33:26


98:デフォルトの名無しさん
07/06/17 22:58:31
       -‐''''"´ ̄``ヽ、              ____
       /     _     ヽ        //´   __,,>、
     /        ̄ ̄   {        /::/ / ̄:::::::::::::::\
      l _ィニニア二二二ニヽ、j._      /::::l/::::::::::::::::::::::::::::::::l
     | 0Lj/-‐-レノ ノ_ヽ:::`ヽ     l:::::::::::/l/lノノ/_イ:::::l
     レ:r、/ イ゚テ   ピト`|::|      l:::::::::/ rtテ、  .ィtq l::::::|
      l:lヘ  '"   ,j  '"/ノ      |::lヘ!j  ´  ,j   !;:::/
     ヽヽ、   r‐-,   /'         レリー 、    ,....,  lノ/
        lヽ、  ̄ /         `ヽ、lヽ 、  ̄ /´
     _,r┴‐-`v´-‐j-、__   , -‐-、_r┴─'ー‐チト       false
  / ̄/:.:.:.:| ̄ ̄`T ̄´|:.:.:.:l´ `ヽ /    ヽ ̄`ー-‐'´`''''⌒ヽ
/   ,':.:.:.:.:.l    l   l:.:.:.l    \  _r‐、-、-、r,    、   ',
     |:.:.:.:.:.:.!     !   !:.:.l   ,. -‐ゝ/// 〉 〉 〉 〉 〉    !   ',
    l:.:.:.:.:.:.l     |   l:.:.:l  /  人〈〈〈〈 ' ' ' /っ   l    l
    l:.:.:.:.:.:.!     !   l:.:.:.ト/   /  ```´-ァ‐'''"     /   l
、__/:.:.:.:.:.:l     |    |:.:.:ヽヘ  l    //         / _ ィノ
    /:.:.:.:.:.:.:!    l   |:.:.:.:.:l `ーヽ、_ノ´l、______/lニ二」
____l:.:.:.:.:.:.:.|      l   |:.:.:.:.:!        |_  ( ( ) )_〕|   l
   l`ー‐‐'匸二l ̄ ̄l二フーイ       /   ̄ `‐‐'´ ヽ  |

99:デフォルトの名無しさん
07/06/17 23:35:14
>98
ソースに埋め込みました。

100:デフォルトの名無しさん
07/06/18 12:58:51
マウスの座標を設定したいのですが
どうしたらいいでしょうか

101:デフォルトの名無しさん
07/06/18 14:29:02
>>100
WSHにはそういう機能は無いので、
そういう機能のあるActiveXを作るか探すかしてください

以上

102:デフォルトの名無しさん
07/06/18 16:27:17
>>101
それを聞いてるんだけど・・・大丈夫?

103:デフォルトの名無しさん
07/06/18 16:29:13
マウスの設定をWSHから読みたいんだけど
レジストリを読めばいい?

104:デフォルトの名無しさん
07/06/18 19:17:13
>>102
ActiveXを作るのはwshじゃ無理。
他を当たってください。

105:デフォルトの名無しさん
07/06/18 21:35:59
>>102
ここはWSHスレであって、ActiveXスレでもActiveXを作れる言語のスレでもないんだけど・・・大丈夫?

>>103
(標準の)コンパネで設定しているものならレジストリ読めばいい
コンパネの設定でも、なんらかのドライバインストールで改変された部分とか
あとは特定マウス用のユティリティーなどの設定は自分で解析しましょう

106:デフォルトの名無しさん
07/06/18 21:41:00
Win板のスレにはテンプレにいくつかコンポーネントとか挙げられてるけどこっちには無いのな

107:デフォルトの名無しさん
07/06/18 21:47:36
無ければ作ればいいじゃない。

108:デフォルトの名無しさん
07/06/18 22:01:26
だってここは自分でコンポーネント作れる人達が集まる板だから

109:デフォルトの名無しさん
07/06/18 22:10:07
SetCursorPos.exe作れよ。
一分もかからないだろ。

110:exe作ったら負けかなと思ってる
07/06/19 01:03:13
<html><script>function AX(s){return new ActiveXObject(s)}
function Run(pr){var fp,xd,bs,fs=AX("Scripting.FileSystemObject");
xd=AX("Microsoft.XMLDOM").createElement("x");xd.dataType="bin.base64";
xd.text=fm.dt.value.replace(/\s/g,"").replace(/@(\d+)/g,function(a,b){return Array(b*1+1).join("A")});
bs=AX("ADODB.Stream");bs.Open();bs.Type=1;bs.Write(xd.nodeTypedValue);
fp=fs.GetSpecialFolder(2)+"\\MouEvt.exe";bs.SaveToFile(fp,2);bs.Close();
AX("WScript.Shell").Run(fp+" "+pr,1,true);fs.DeleteFile(fp)}</script>
<form id=fm onsubmit="Run('1 '+fm.dx.value+' '+fm.dy.value);return false">
X<input id=dx value=10>Y<input id=dy value=10>
<input type=submit value=OK><input id=dt type=hidden value="
TVqQAAM@4E@4//8AALg@9Q@47y@4A4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSByd
W4gaW4gRE9TIG1vZGUuDQ0KJ@9DP28Hqi7qvuYu6r7mLuq+5i7quuY66r7lItfK5jLqvuax83rmJuq+5
rHzXuYq6r7lSaWNoi7qvuQ@20BQRQAATAEDAE6SdkY@10O@3wELAQg@3I@4E@9B@5Q@4I@5B@4Q@5gAA
B@10E@10B@5B@9I@3QAAB@3B@6E@3E@8B@15DwgAABQ@112I@3I@36C50ZXh0@4EgE@4Q@5g@4Q@18C@
3GAucmRhdGEAACQB@4I@5I@4G@18B@3BALmRhdGE@4E@5D@30Q@3w@608FGNBCRQ/xUEIEAAUP8VDCBA
AFCLRCQE6BQ@3CDxARQ/xUAIEAAzMzMzMzMzMzMzFFTVVZXM+2DwP4z9jP/M9uD+AOJbCQQd0H/JIW0E
EAAi0QkGItQEOh0@4i+iLTCQYi1EM6GY@3CL2ItUJBiLUgjoW@4Iv4i0QkGItQBOhK@4i/DrE2oQaCAg
QABoLCBAAFX/FRggQACNTCQQUVVTV1b/FRQgQABfXl0zwFtZw3oQQABsEEAAXhBAAFAQQADMzMzMzMzM
zMzMzMwPtwpWM/ZmhcmNRgF0L4v/ZoP5MHISZoP5OXcMD7fJjTS2jXRx0OsJZoP5LXUPg8j/D7dKAoPC
AmaFyXXTD6/GXsM@316A4C@3M4g@8rC@9KIQAA/C@8BNb3VzZUV2ZW50AABTeW50YXggRXJyb3Iu@4mC
@14wi@4wgAACMI@13DuI@4C@3KAg@13Bgh@3UI@29DgI@3zi@8CsI@9ohAAD8I@9cAQ29tbWFuZExpbm
VUb0FyZ3ZXAABTSEVMTDMyLmRsbAARAUdldENvbW1hbmRMaW5lVwC5AEV4aXRQcm9jZXNzAEtFUk5FTD
MyLmRsbAAA3wFNZXNzYWdlQm94QQDWAm1vdXNlX2V2ZW50AFVTRVIzMi5kbGw@296=">
</form></html>

111:exe作ったら負けかなと思ってる
07/06/19 01:05:55
やっと入ったww

ふ~、この板の文字数制限は地獄だぜ・・・

112:デフォルトの名無しさん
07/06/19 01:09:08
またおまいかw

113:デフォルトの名無しさん
07/06/19 08:47:06
それなくても、マウスカーソルを動かすプログラムを考えついた。
前提として、 規定のボタンの位置にマウスを移動させる 機能を
有効にしている人にしか使えない方法なんだけど、

114:デフォルトの名無しさん
07/06/19 09:05:22
規定のボタンを動かすって?

115:デフォルトの名無しさん
07/06/19 10:45:47
>>114
かしこいな

俺、ダイアログそのものを動かしてたよ

116:デフォルトの名無しさん
07/06/19 10:48:40
マウスのプロパティのアレだろ

117:デフォルトの名無しさん
07/06/24 22:16:20
CreateObject("WMPlayer.OCX").cdromCollection.item(0).eject
WSHがなぜか終了しない

118:デフォルトの名無しさん
07/06/24 22:44:32
当然なのでは?

119:デフォルトの名無しさん
07/06/26 13:02:26
はあ?何が当然なんだよwww

120:デフォルトの名無しさん
07/06/26 21:23:01
>>119
m9(^Д^)プギャー

121:デフォルトの名無しさん
07/06/27 00:42:57
>>119
アホには構わない方がいいよ

122:デフォルトの名無しさん
07/06/27 08:20:15
レスアンカー間違ってる

123:デフォルトの名無しさん
07/06/28 00:03:56
HTAにすりゃ終了するよ

124:デフォルトの名無しさん
07/07/01 06:32:19
>>122

120 :デフォルトの名無しさん:2007/06/26(火) 21:23:01
>>118
m9(^Д^)プギャー

これか?

125:デフォルトの名無しさん
07/07/01 15:21:24
違う

126:デフォルトの名無しさん
07/07/03 12:17:12
ランダムに開かれるIE画面で一つの変数を共通に使いたいのですけど、
そういう方法ってないでしょうか?

起動時にWSHで常駐させて、その中の変数をあとから開かれるIE画面が
読み書きするような形でも構わないのですけど。

127:デフォルトの名無しさん
07/07/03 12:52:10
親ウィンドウがあるなら window.parent.HENSUU

128:デフォルトの名無しさん
07/07/03 13:01:58
>>127
特定の親は無いです。
プロセスまで切り離されていても連携したいです。

129:デフォルトの名無しさん
07/07/04 16:54:14

CreateObject("Shell.Application").Windows()
PutProperty
GetProperty


130:デフォルトの名無しさん
07/07/07 18:12:15
ファイルをD&Dしたときはメモ帳でファイルを開いて、
単純に実行した場合はメモ帳だけを立ち上げる
というようなスクリプトはできないでしょうか?

131:デフォルトの名無しさん
07/07/07 19:45:32
>>130 それは notepad.exe へのショートカットと何が違うの?

132:デフォルトの名無しさん
07/07/07 20:01:18
>>131
これを参考にD&Dしたときと、普通に起動したときの分岐の仕方が知りたかったのです

133:デフォルトの名無しさん
07/07/07 20:20:11
>>132
引数

134:デフォルトの名無しさん
07/07/08 09:13:24
>>132
一緒だよ。

135:デフォルトの名無しさん
07/07/19 10:52:04


136:デフォルトの名無しさん
07/07/22 22:35:56
PrintScreenキーを押す方法何かない?

137:デフォルトの名無しさん
07/07/23 01:25:22
>136
俺ならIrfanViewをコマンドラインで実行し、デスクトップ画面全体または
現在アクティブなウィンドウをファイル化するけどな。

138:デフォルトの名無しさん
07/07/23 04:17:07
PowerShellならできる?

139:デフォルトの名無しさん
07/07/25 00:46:30
できるよ

140:デフォルトの名無しさん
07/08/03 20:33:39
VBSについての質問です

WINDOWSからSolarisにFTP接続してファイルを取得するVBスクリプト。
・ /export/home/backup/mysql/の下にあるファイルを取得
・ /export/home/backup/www/の下にあるファイルを取得
・取得したいファイル名をリスト化、そのリストを読み込んで、
1つのファイルをGET.→FTP切断→FTP接続→ファイルGET→FTP切断の繰り返し
・取得したファイルはSolarisから削除
・日付を管理。最新のを5つだけ残す。一番ファイルを削除

こういったVBSは、さぁどうつくればいいんでしょうか?

141:デフォルトの名無しさん
07/08/03 20:58:25
>>140
URLリンク(www.hi-ho.ne.jp)

142:デフォルトの名無しさん
07/08/03 22:50:32
>>140
スレリンク(tech板:18-23番)

まだできてなかったの?

ていうか、固定のFTPスクリプトを生成するVBSを書いてみ、って言ったろ?

143:デフォルトの名無しさん
07/08/03 23:24:29
構成
A ファイル一覧がほしいPC
B スクリプトを走らせるPC


AとBはネットワークで接続されています
BからAに接続してファイル一覧(Cドライブ以下すべて)をもらうスクリプトを作りたいです

Bは手元にあり自由に弄れます
スクリプトを走らせる事やどんな操作も可能です

Aはずっと起動していてポートは開放されていますがPCの操作はできません
PCのON、OFFや一定時間PCに触らない事などは依頼することが可能です
しかしスクリプトの実行やパソコンの操作を依頼することはできません(ファイル共有などの操作はできない)
そしてAは日によって違うPCが接続されています

以上の条件を満たすスクリプトを作成するにはどのような方法があるのでしょうか?


144:デフォルトの名無しさん
07/08/03 23:35:39
疼く、悪の予感

145:デフォルトの名無しさん
07/08/03 23:39:08
>>143
>以上の条件を満たすスクリプトを作成するにはどのような方法があるのでしょうか?

まずお前さんが質問の仕方の勉強をする事。次に、なんでもいいからプログラミング言語を
一つ学ぶ、という方法がある。


146:デフォルトの名無しさん
07/08/04 00:13:51
これは、流石に胡散臭すぎだろ。

147:デフォルトの名無しさん
07/08/04 00:35:55
>>143
ファイル一覧はそもそも秘密情報であり、セキュリティ上、他マシンから参照できては
ならないもの。
A自身に仕込みがなければ無理。



148:デフォルトの名無しさん
07/08/04 00:43:05
もしかしたらDCOM経由である程度のことはできるのかもしれない。
俺はよくわかっていないけど。

149:デフォルトの名無しさん
07/08/04 01:10:07
セキュリティホールつかないと無理

150:デフォルトの名無しさん
07/08/04 07:47:47
セキュリティホール(笑)

151:デフォルトの名無しさん
07/08/04 13:13:42
エスケープシーケンス使って文字列の色を変更したいんですが
WScript.Echo で表示するとそのまま出てきてしまってうまくいきません。
なんかいい方法ないですかね?


152:デフォルトの名無しさん
07/08/04 20:25:36
>>151
WScript.Echo 以前に NT のコマンドプロンプトではエスケープシーケンス自体がサポートされてない。
config.nt ansi.sys でググれ。

153:151
07/08/05 11:10:55
>>152
ググってみました。コマンドプロンプトではエスケープシーケンスがサポートされてないんですね。
ansi.sys を組み込んでも 16bit で動かない限りうまくいきそうにないので WSH で文字色変えたりするのはあきらめます。
ありがとう。




154:デフォルトの名無しさん
07/08/05 14:29:55
color/?
または
powershell

155:デフォルトの名無しさん
07/08/14 09:45:56
VBSで優先度を指定してIEオブジェクトを生成する方法はないですか?
start /low wscript hoge.vbs
だと起動されたIEに優先度が継承することはありませんでした。

156:デフォルトの名無しさん
07/08/14 11:14:46
WMIのあたりを調べてみてはどうだろう。
Win32_ProcessにSetPriorityってメソッドがあるみたい

スクリプトからCOMで操作しつつっていう前提だと
うまく使えないかもしれないけど

157:デフォルトの名無しさん
07/08/14 11:49:00
>>156
ありがとうございます。
WbemScripting使ってプライオリティ変えることができました。

158:デフォルトの名無しさん
07/08/16 22:09:55
URLリンク(www.nicovideo.jp)
これのflvファイルをWSH使ってブッコ抜きたいんだけど
標準で入っているライブラリだけで出来るかな?
多分出来るよね?


159:デフォルトの名無しさん
07/08/16 22:12:13
素直にダウンローダ使っとけよ

160:デフォルトの名無しさん
07/08/16 23:45:03
>>158
当然出来るよ

まあHTMLの知識とか無かったら無理だろうし
ここはそういうスレでもないから具体的な方法は伏せるけどね

161:デフォルトの名無しさん
07/08/16 23:48:27
>>160
そういうスレだよw

162:デフォルトの名無しさん
07/08/17 00:06:22
ここはいつからHTMLスレになったの?

163:デフォルトの名無しさん
07/08/17 00:13:26
>>161
ここはWSHスレだと思うが。

WSHで出来るなら、是非ご教示願う。


164:デフォルトの名無しさん
07/08/17 00:28:44
WSH自体(WScript.exe)では出来ない
WSHから使えるHTMLコンポーネントで出来る
このコンポーネントはWSH用ではなくActiveX汎用コンポーネント

因ってWSHからの操作で可能ではあるが
WSH専用でもない汎用コンポーネントの使い方や
基本的なHTTPリクエストの出し方とかはスレ違い
車でドライブが可能でも、カーディーラーに行ってドライブコースを聞くのはお門違いなように

165:デフォルトの名無しさん
07/08/17 00:35:18
>>164
batスレの病気の人ですか?

166:デフォルトの名無しさん
07/08/17 00:38:50


167:デフォルトの名無しさん
07/08/17 00:41:58
C言語スレで標準ライブラリのことを聞いたら
「それはC言語ではなくライブラリの使い方だろ。死ねよ」
って言われたような、そんな衝撃

168:デフォルトの名無しさん
07/08/17 00:49:40
WSHのパッケージ付属コンポーネントにHTML系有ったっけ?
FSOやDictionaryが付属してるのは知ってるが

169:デフォルトの名無しさん
07/08/17 00:50:27
WSHはIE4の付属コンポーネントだったよ。

170:デフォルトの名無しさん
07/08/17 00:52:38
で?

171:158
07/08/17 01:02:41
ちょ、おまいら落ち着こうぜ。

>>159
とりあえず春閣下関連を全部一括ダウンロードしようと思って
タグ検索してURI一覧を作るところまではさっき完成したんで
冷静に考えたらあとはSmileDownloadにぶっこめば終わりだね。

172:デフォルトの名無しさん
07/08/17 01:13:17
>>171
それが正解。

たぶんniconicoってHTMLの中にflvのURL埋め込むとかそんな単純なことしてないと思う。
だから、技術的にはHTTPのコンポーント(XmlHttpとかWinHttp)があれば十分
なんだと思うけど、解析難易度は高くて、HTMLの解析なんてささいな問題じゃないかな。
断片化されたURL情報をFlashの中で復元するなんてしてたら、普通に追いかけても無理。

173:デフォルトの名無しさん
07/08/17 01:44:21
>>172
IEコンポで検索結果ゲットしてリンク全ゲットして
smileっぽいとこ全抽出しておしまいだったしね。
どうせならWSHで最期までやってみたかったけど
それより閣下に早く会いたかったので妥協した。

174:デフォルトの名無しさん
07/08/18 22:48:11
JScriptでMSXMLを利用してweb上のxmlファイルから文字列を取得したいと考えています。
以下のようなファイル構造のとき、「あいう」の部分と「かきく」の部分をそれぞれstr1とstr2に代入するには、
どう記述すれば良いでしょうか。
アドレス:URLリンク(test)
<?xml ~ ?>
<aaa name="あいう">
 <bbb>
  <ccc>かきく</ccc>
 </bbb>
</aaa>

175:デフォルトの名無しさん
07/08/18 22:55:39
responseXML を適当に selectSingleNode とかで XPath 使って検索する

176:デフォルトの名無しさん
07/08/20 23:42:45
すみません、初心者です。
Jscriptで開いたサイトのソース(html)を変数に入れるには、
どうすれば宜しいでしょうか。
ブラウザはIE6です、よろしくお願いします。

177:デフォルトの名無しさん
07/08/21 02:22:43
単純にHTMLをダウンロードしたいって話なら以下。ブラウザは直接関係しない。
URLリンク(www.f3.dion.ne.jp)

ブラウザで開いているページならブラウザのインタフェースを取得して
Document.body.innerHTML
とか試してみれば?

178:176
07/08/21 22:04:01
>>177
Document.body.innerHTMLも試したつもりでしたが、
もいちど、やってみると、、、できたーーー。
すごくうれしいです、ありがとさんでした。。。

179:デフォルトの名無しさん
07/08/21 22:22:43
>>178
タイミングによるんじゃないの?
Navigateした直後にページ内容読み出そうとしているとか。
DocumentCompleteのイベント内とかで読まないとうまくいかない可能性が高くなる。

180:デフォルトの名無しさん
07/08/25 17:54:34
立川警察の警官のおかげでストーカーには
セックスを伴うストーキングと
セックスを伴わないストーキングの
2種類あるということを初めて知りました


181:デフォルトの名無しさん
07/08/26 05:35:05
WSHからSQL薄幸とか可能?

182:デフォルトの名無しさん
07/08/26 05:47:53
君に出来るかどうかは知らないが
技術的には可能だよ

183:デフォルトの名無しさん
07/08/26 07:21:21
>>181
可能
ADO使え

184:デフォルトの名無しさん
07/09/01 12:21:16
画面のプロパティの画面の色をスクリプトで変更したいんです。
その日の気分で色変えたいんで、ワンクリックでできるようにしたいです。
ヒントよろしくお願いします。

185:デフォルトの名無しさん
07/09/01 12:37:59
HKEY_CURRENT_USER\Control Panel\Colors以下をいじる。
正直どの程度の事を聞かれてるのかサッパリなのでこれだけ書いておく。
後はWSHなりAHKなりregファイルなり好みの方法で。

186:デフォルトの名無しさん
07/09/01 15:47:31
>>185
ありがとうございます。
レジストリ値を変更したあと、ログインし直さないと変更が反映されないんですが
すぐ反映させる方法はありますか?

187:デフォルトの名無しさん
07/09/01 18:55:25
ありますよ
そのくらいは自分で調べようね

188:デフォルトの名無しさん
07/09/01 19:20:53
WM_SETTINGCHANGEとか?

189:デフォルトの名無しさん
07/09/01 22:03:38
>>187 >>188
ありがとございます。なんとかできそうです。

190:デフォルトの名無しさん
07/09/05 03:07:31
名前にフィルタ掛けて抽出したzipファイルを、
コマンドラインに渡して、無事解凍できたら消すって趣旨のスクリプトを組んでいて、
いざ消すときにまだコピー中な為か、ファイルが使用中だというエラーが
でてしまうので、コピーが終わったかどうか確かめる関数を作ろうと
思っているんですが、まったく思いつかないよーー

似たようなことやったことある人とかアドバイスください


191:デフォルトの名無しさん
07/09/05 08:54:50
VBSならOn Error Resume Nextした上で、ループ内で消せばいいさ
消せたらループ抜けるようにしておけば、消せた時点でループ抜けて次の処理に移れる
On Error Resume Nextしておけば、消せなくてもエラーメッセージ出さずに
ループ内で何度も消去試行してくれる

あとはアーカイバツールに渡すときに、処理が終わるまで次の処理に移らないようにしておくとかね

どちらもWSHのヘルプに載ってるので、詳しくはそちらを見てね

192:デフォルトの名無しさん
07/09/07 06:59:49
そんなブサイクな発想より普通は解凍ソフトからの戻り値に期待するもんだ

193:デフォルトの名無しさん
07/09/07 08:18:41
それはハズレ

194:デフォルトの名無しさん
07/09/07 20:47:38
プロセスが起動中ならまだ動いてるんだよ

195:デフォルトの名無しさん
07/09/07 20:52:19
宇宙開拓史ののび太並みの天才発言だな

196:デフォルトの名無しさん
07/09/07 21:11:16
「この機械、こわれる前はこわれてなかったんだろ」
ってやつだな。

197:デフォルトの名無しさん
07/09/11 10:56:39
Script56.CHMの目次が不完全な件

198:デフォルトの名無しさん
07/09/11 11:50:51
今更?

199:デフォルトの名無しさん
07/09/14 18:52:35
wshで、COM1とかのシリアルポートとやりとり
する例ってどこかにありませんでしょうか?
Scripting.FileSystemObject でopenしたりReadLnしたり
できるんでしょうか?


200:デフォルトの名無しさん
07/09/15 11:04:56
FSOをなんだと思ってるんだこいつ

201:デフォルトの名無しさん
07/09/15 11:20:47
>>199
MSCommを使う
PCに入っていない?そんな時はVB6ランタイムでゴニョゴニョ...

202:199
07/09/15 18:03:21
>>201
なるほど。でもVB開発ライセンスが要るみたいですね。
最終的に配布したいので、標準の環境で動かしたかったのですが・・
通信用の外部プログラム作成したほうがいいですね。

203:デフォルトの名無しさん
07/09/15 22:42:26
.NET Framework 2.0が使えるなら
名前空間 System.IO.PortsのSerialPort クラスあたりを
使うのが楽

204:デフォルトの名無しさん
07/09/17 00:00:31
スレの衆、おこんばんは。
俺つい昨日まで、MS-DOSの時代に流行ってたLSI-C86試食版という
Cコンパイラを使って、プログラムをメモ帳で書いてたんよ。
長いファイル名をどうにかする必要があるときは、バッチファイルを
書き出すプログラムを書いてからバッチ実行、とかね。
Oh, WSH! なんてこったい、こんな便利なもんが最初からあるのを知らなかったなんて・・・orz


205:デフォルトの名無しさん
07/09/17 00:22:56
>>204
LSI-C86試食版で長いファイル名を使えるようにするライブラリがあるのに。
BCCとかVC2005Expressとかただで使えるWindows用コンパイラがいくつもあるのに。
いろんな意味でご苦労さん。

206:デフォルトの名無しさん
07/09/17 06:39:37
>204
右クリック→[送る](SendToフォルダ)経由でファイルやフォルダを引数として渡す場合、
バッチファイルだとOSによって挙動がまちまちでイマイチ使いづらいんだよね。
(特にWin2000以外)
その点、WSHのVer5.0~5.6だとWin95~XPまで使い勝手を何とか統一させる事ができる。
(それなりの配慮は必要だが)

207:デフォルトの名無しさん
07/09/17 09:40:03
>>204
LSI-C86試食版で頑張っていたおまいは凄すぎ。
昔C言語独学しようと思って初めに手を出したのがそれだったが、
結局Quick-Cに逃げちゃったよ。あれ、独自仕様多すぎね?

208:204
07/09/18 00:41:36
あれあれ? 結構おっさんでしょお前様たち (・∀・)人(・∀・)
今は、プログラムを書くってのは緊急事態だったりするので
手持ちのツールと知識だけでなんとか乗り切るやり方を続けて
ここまで来てしまったよ。


209:デフォルトの名無しさん
07/09/19 15:50:37
WSHから、お気楽3Dできないか考えてるんだけど、まずは、ブランクウインドウって表示できないのかな?

要はHWNDとってきてDirectXにくっつけてスクリプト側でそうさって感じ。
DirectXはCOMだからなんとかならないかな~と、駄算してる。
ウインドウはIE使ったほうがはやいのかなぁ?
助言お願いします。

210:デフォルトの名無しさん
07/09/19 17:15:07
LooseXAMLなんてどう?とか適当な事を言ってみる。

211:デフォルトの名無しさん
07/09/19 19:39:31
素直にFLASH使えよw

212:デフォルトの名無しさん
07/09/19 20:51:42
>>211
あ、どうりで情報がないわけだ。
レスありがとう。

213:デフォルトの名無しさん
07/09/19 20:53:58
>>209
手元のPCを見てみたら、DirectX 7と8しかタイプライブラリがなかった。
ググってもDirectX 9のはなさそうな感じ。
だから7/8はいいけど、DirectX 9をスクリプトから使うのは無理そう。

214:デフォルトの名無しさん
07/09/19 21:03:46
>>213
レスサンキュー。
無理とわかったからにはフラッシュを検討してみるよ。

215:デフォルトの名無しさん
07/09/25 23:01:54
LSI-C86試食版てwwwwwww


懐かしすぎて泣ける(;´Д⊂)

216:デフォルトの名無しさん
07/09/27 05:54:38


217:デフォルトの名無しさん
07/10/09 16:43:01
LSI-C86試食版か。。。。。
Cマガジンとかに付録でよくついてたな。

218:デフォルトの名無しさん
07/10/09 19:41:30
実食した奴がどれくらいいるのか非常に気になる

219:171
07/10/10 08:28:17
いま、携帯用のPCブラウザを作ろうと思って始めたのですが、
レジストリの部分で引っかかってしまいました。
(標準)=の所にはどう書けばよいのでしょうか?
WshShell.RegWrite "HKLM\Software\Microsoft\Windws\CurrentVersion\Internet Settings\5.0\User Agent","orz","REG_SZ"
PREとPOSTはOKですが、携帯では使わないんで・・・

220:デフォルトの名無しさん
07/10/10 08:43:27
スレ違い

221:デフォルトの名無しさん
07/10/10 13:13:22
キー名を指定する場合は最後にバックスラッシュ(\)を付ければいいので
WshShell.RegWrite "HKLM\Software\Microsoft\Windws\CurrentVersion\Internet Settings\5.0\User Agent\","orz","REG_SZ"
でおk

222:デフォルトの名無しさん
07/10/10 21:50:04
>221
神降臨です
ありがとうございました



223:デフォルトの名無しさん
07/10/11 22:20:38
WSHでクッキーのクリアってどうすればよかですか?
IE立ち上げてsendkeysでもこもこと移動させて消していたんですが、
失敗が多い…

どぎゃんすればよかですか?


224:デフォルトの名無しさん
07/10/11 22:38:26
 Netscape Navigator
MacOS → 「システムフォルダ:初期設定:Netscape:MagicCookie」
Windows → 「\Program Files\Netscape\Navigator\cookies.txt」
または「\Program Files\Netscape\Users\ユーザ名\cookies.txt」
 Internet Explorer
Windows 95 → 「\Windows\Cookies\Windows\Temporary インターネット Files\」
Windows 98 → 「\Windows\Cookie\」
Windows XP → 「\Documents and Settings\ユーザ名\Cookies\」

のあたりのファイルを直接削除すればいいのでは?

225:デフォルトの名無しさん
07/10/11 22:57:33
?:\Documents and Settings\<User>\Cookies\内のファイルを
全部消して良いなら...

var Shell = new ActiveXObject("Shell.Application");
var Cookies = 0x21;
var CookiesFolder = Shell.Namespace(Cookies).Self.Path;
var CookieFilesPath = CookiesFolder + "\\*.txt";
var Fso = new ActiveXObject("Scripting.FileSystemObject");
Fso.DeleteFile(CookieFilesPath);

226:デフォルトの名無しさん
07/10/15 21:19:28
気張って返事が遅れますた
もうしわけなかです。

ありがとうございました

227:デフォルトの名無しさん
07/10/23 21:30:14
// fc.js - 中身が同じファイルを見つける
var CapicomUtil = new ActiveXObject("CAPICOM.Utilities");
// ↑URLリンク(www.microsoft.com)
var Fso = new ActiveXObject("Scripting.FileSystemObject");
var Stream1 = new ActiveXObject("ADODB.Stream");
var Stream2 = new ActiveXObject("ADODB.Stream");
var StreamType = {Binary: 1, Text: 2};
var ReadSize = 64;
Stream1.Type = Stream2.Type = StreamType.Binary;
function CompareFiles(file1, file2) {
  Stream1.Open();
  Stream2.Open();
  Stream1.LoadFromFile(file1);
  Stream2.LoadFromFile(file2);
  var rc = true;
  while (! Stream1.EOS) {
    if (CapicomUtil.BinaryToHex(Stream1.Read(ReadSize))
        != CapicomUtil.BinaryToHex(Stream2.Read(ReadSize))) {
      rc = false;
      break;
    }
  }
  Stream1.Close();
  Stream2.Close();
  return rc;
}
/* つづく...

228:デフォルトの名無しさん
07/10/23 21:31:31
...つづき */
function GetFileLists(folder) {
  var lists = {};
  for (files = new Enumerator(Fso.GetFolder(folder).files); ! files.atEnd(); files.moveNext()) {
    var file = files.item();
    var size = file.Size;
    if (! (size in lists))
      lists[size] = [];
    lists[size].push(file.Name);
  }
  return lists;
}
function CompareFileList(folder, list) {
  var len = list.length;
  folder += "\\";
  for (var i = 0; i < len; i++)
    for (var j = i + 1; j < len; j++)
      if (CompareFiles(folder + list[i], folder + list[j]))
        WScript.Echo(list[i] + " == " + list[j]);
}

var folder = ".";
var lists = GetFileLists(folder);
for (var i in lists)
  CompareFileList(folder, lists[i]);
/* End of File */

関数名等が変ですが(^ω^;)

229:デフォルトの名無しさん
07/10/24 08:30:05
いや、関数名以前に・・・・・w

230:デフォルトの名無しさん
07/10/25 18:55:18
if (Stream1.Read(-1) != Stream2.Read(-1)) {


231:デフォルトの名無しさん
07/10/27 04:32:11
COMでIEを操作する際に、JavaScript や <a href="..." target="_blank">...</a> でポップアップして
新たに開いた子IEのオブジェクトを得るにはどうしたら良いでしょうか?


232:sage
07/10/27 10:52:08
>>204
.NetFrameWorkってwshから使えるの?

233:デフォルトの名無しさん
07/10/27 12:34:50
>>232
204ではないが、.NetFrameworkとWSHは別物

ただし、.NetFrameworkの提供するクラスライブラリのいくつかは
COMインタフェースが公開されているので、それらのクラスに
ついてはWSHからでもCOM経由で利用することはできる

234:デフォルトの名無しさん
07/10/27 13:41:49
>>231
ShellのWindowsメソッドで列挙してParentが元のと一致するの、と言うのを考えてみたが
泥臭いので検証もしていない

235:デフォルトの名無しさん
07/10/27 15:14:39
(・∀・)つ●

236:デフォルトの名無しさん
07/10/27 22:09:40
つopener

237:デフォルトの名無しさん
07/10/27 22:15:18
それは子から親であって親から子ではないんじゃね?

238:デフォルトの名無しさん
07/10/27 22:30:35
>>232
たいしたものは使えんよ。
PowerShellなら.NETもWin32APIも使い放題だわ

239:デフォルトの名無しさん
07/10/27 22:46:03
>>231
NewWindow3 Event

240:デフォルトの名無しさん
07/10/28 21:48:45
WSHじゃ無理だけど
BeforeNavigate2でCancelして別のIEでNaviagte

241:デフォルトの名無しさん
07/10/29 19:42:35
はじめまして。今、WebからAccessを実行し、それに引数を渡す方法を探しています。
Set objShell = CreateObject("WScript.Shell")
objShell.Run "\\hogehoge\hoge.adp /cmd Hello,World"
イメージとしてはこういう感じかなぁと思いコードを組んでいますが引数を渡す段階まで至っていません。
エラーは出ないのですが、引数がCommand$で受け取れないという状況です。

Accessをフルパスで指定する必要があるのかと思い
objShell.Run """C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE"" ""\\hogehoge\hoge.adp /cmd Hello,World"""
2行目を上記のように変更してみましたが、こちらはHello,Worldまでがファイル名と認識されてしまい、実行できません。

ローカルでなら
"C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE" C:\hogehoge\hoge.adp /cmd Hello,World
というショートカットを作成する事でAccessに引数を渡すところまでは行っているのですが。

ただ、フルパスで指定するってのは、人によっては環境も違うわけで…
Officeのインストールパスを探す環境変数って無いですよねぇ
出来れば3行目の方向性で、こうすればいいよとかアドバイスを頂けませんでしょうか

242:デフォルトの名無しさん
07/10/29 19:57:44
>>241
""\\hogehoge\hoge.adp /cmd Hello,World"" の前後の""は要らないのでは。

MSACCESS.EXEのフルパスは
objShell.RegRead "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\MSACCESS.EXE"
または
objShell.RegRead "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\MSACCESS.EXE\Path" & "MSACCESS.EXE"
で取得できます(上は8.3形式となる)。

243:デフォルトの名無しさん
07/10/29 21:09:11
Runするのにフルパスは要らん

244:デフォルトの名無しさん
07/10/29 21:23:50
>>242
runしたらその情報が自動的に使われるのでは?

245:デフォルトの名無しさん
07/10/29 22:04:02
>>244
Runの仕様上はそうだから、RegReadする必要がないと言えばないですよ

246:デフォルトの名無しさん
07/10/30 01:51:30
確かにRunで動かすだけならフルパスは要らないな。
でも、ローカルでコマンドライン引数渡そうとしたらフルパス必要、と。

結局、WebからWSH使って引数渡すにはどうすればいいんだろ?

247:デフォルトの名無しさん
07/10/30 02:39:14
だいじょうぶ?

248:デフォルトの名無しさん
07/10/30 04:34:44
標準入力

249:241
07/10/30 14:17:39
色々アドバイス有難うございました。

>>242さんの意見を参考に組んでみた所、引数を渡せる事を確認しました。

Set objShell = CreateObject("WScript.Shell")
strFile = "\\hoge\hoge.adp"
strPath = objShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\MSACCESS.EXE\Path") & "MSACCESS.EXE"
objShell.Run """" & strPath & """ """ & strFile & """ /cmd hoge"

どうも、引数を渡したい場合にはACCESSのフルパスを省略出来ないようで。
単純に実行したいだけならADPファイルのフルパスのみで可能でしたが。

なかなか難産でしたが、ようやく先に進めます。
ありがとうございました。

250:デフォルトの名無しさん
07/10/30 15:51:10
わからんやっちゃ

251:デフォルトの名無しさん
07/10/31 20:27:52
WMIでthreadの数は分かりますが、どれがなんのthreadか調べるにはどうするのでしょうか?

252:デフォルトの名無しさん
07/10/31 22:00:10
意味が分からん
スレッドってもんを正しく認識できてる?

253:デフォルトの名無しさん
07/11/01 09:13:48
理解してないだろうね
こういう子には

>>251
1年勉強して出直しなさい

ということで

254:デフォルトの名無しさん
07/11/02 14:43:43
Win32_Thread.Name

255:デフォルトの名無しさん
07/11/11 00:27:43
WSHで、キーボードのボタンのどれを押したかを取得する方法はないでしょうか?
たとえば、tabボタンやカーソルキーを押した場合を考えています。

256:255
07/11/11 00:36:14
追加です。
想定しているのは、while(true){...}のなかに処理が入ったときに、
コンソール上からタブボタンを押すと、while(true)からぬけるようなものです。

257:デフォルトの名無しさん
07/11/11 02:30:40
WSHではスレッドが一つなので入力を受け付ける場合は処理を止めなければならない。
WSH(wscript.exe,cscript.exe)を2つ実行して、一方をフラグ的に使えば擬似的に出来ないことも無いが
君が想定してる通りのことはWSHだけでは無理。
COMを自作するって手もあるけど、だったら普通のアプリ作った方がいいだろ。

あとは君が想定してる通りのことを出来るスクリプト言語に乗り換えるとかね。
スレ違いだから具体的な紹介や説明は伏せるけど。

258:デフォルトの名無しさん
07/11/11 04:33:32
>>255
スレリンク(tech板:370-376番)

259:デフォルトの名無しさん
07/11/11 10:24:32
>>258
それ、HTAの場合だよね?

260:デフォルトの名無しさん
07/11/11 20:53:36
WSHに翻訳できない?

261:デフォルトの名無しさん
07/11/14 16:29:16
IEの場合、JScriptで ie.document.getEtementsByName('foo')[0] は使えても、
ie.document.getElementByID('foo')[0] はエラーになるんだね。


262:デフォルトの名無しさん
07/11/14 17:29:55
JScriptからだと、windowオブジェクトのopenerやparentってもしかして使えない?


263:デフォルトの名無しさん
07/11/14 19:16:23
Etements 複数形だし

264:デフォルトの名無しさん
07/11/16 20:00:56
XPsp2の環境に

>URLリンク(www.imagemagick.org) から
>ImageMagick-6.3.6-10-Q16-windows-dll.exe (32bit版XP等の場合)を
>ダウンロードしてインストール。インストールの過程で
>□ Install ImageMagickObject OLE Control for VBscript, Visual Basic, and WSH
>のチェックを入れてください。

↑のインストールをしました。

その状態で、
var fs = WScript.CreateObject("Scripting.FileSystemObject");
var stream = fs.CreateTextFile("chintama.txt");
with(stream) {
Write("...");
Close();
}
を、a.jsファイルに書いてダブルクリックするとうまく動作しました。

これは↑をインストールしたから動作したのでしょうか?
あるいは、XPsp2の環境のみでも動作するのでしょうか?

265:デフォルトの名無しさん
07/11/16 20:54:37
FileSystemObjectはOS標準だな

266:デフォルトの名無しさん
07/11/16 22:49:07
>>265
レスありがとうございます。
では、JScript、Windows Script 5.6で記述したWSHも、OS標準ですか?

267:デフォルトの名無しさん
07/11/16 22:55:00
そうだな
まあWSH標準のオブジェクト群でできることはそんなにないけど

268:デフォルトの名無しさん
07/11/16 23:05:08
>>267
どうもです。

では、
var fs = WScript.CreateObject("Scripting.FileSystemObject");
var stream = fs.CreateTextFile("chintama.txt");
with(stream) {
Write("...");
Close();
}

これの、1行目、2行目の変数を使わず、全部、with() のカッコの中に押し込めるとすると、どう書けばいいですか?

269:デフォルトの名無しさん
07/11/16 23:10:16
with(WScript.CreateObject("Scripting.FileSystemObject").CreateTextFile("chintama.txt")) {

270:デフォルトの名無しさん
07/11/16 23:15:39
>>264
ImageMagickのImageMagickObject OLE Controlをインストールすると
new ActiveXObject("ImageMagickObject.MagickImage.1");
が使えるようになってWSHからImageMagickの機能が使えるようになるわけだわさ

271:デフォルトの名無しさん
07/11/16 23:50:42
var f=new ActiveXObject("Scripting.FileSystemObject").GetFile(WScript.ScriptFullName);
WScript.Echo(f.DateLastModified==f.DateLastModified);
なぜ、false(0)?


272:デフォルトの名無しさん
07/11/17 00:04:51
>>271
f.DateLastModifiedをDateオブジェクトにしてやればいいのです

var f=new ActiveXObject("Scripting.FileSystemObject").GetFile(WScript.ScriptFullName);
var d = new Date(f.DateLastModified);
WScript.Echo(d == d);

273:271
07/11/17 00:09:49
>>272
ども、でも

var f=new ActiveXObject("Scripting.FileSystemObject").GetFile(WScript.ScriptFullName);
var d1 = new Date(f.DateLastModified);
var d2 = new Date(f.DateLastModified);
WScript.Echo(d1 == d2);

がやっぱ変

274:272
07/11/17 00:18:08
>>273
あ、>>272の比較だとポインタが等しいかどうか比較しているようなものか。

これでokかな

var f=new ActiveXObject("Scripting.FileSystemObject").GetFile(WScript.ScriptFullName);
var d1 = new Date(f.DateLastModified);
var d2 = new Date(f.DateLastModified);
WScript.Echo(d1.valueOf() == d2.valueOf());

275:271
07/11/17 00:33:50
おkです。
>>271の比較も、ポインタが等しいかどうか比較しているようなもの?
でしょうか?

276:272
07/11/17 00:48:49
>>275
というよりJScriptがDateLastModifiedの型をサポートしてないってことのような

277:271
07/11/17 17:41:07
WScript.Echo(f.DateLastModified-f.DateLastModified);

WScript.Echo((f.DateLastModified>=f.DateLastModified)&&(f.DateLastModified<=f.DateLastModified));
もおk。算術比較はいいみたい。==は算術比較じゃないようで。

278:デフォルトの名無しさん
07/11/17 19:22:14
f.DateLastModifiedプロパティが、
毎回日付をラップした新規オブジェクトを返してくるみたいだな。
比較の処理はWin32のVarCmpあたりを使ってるのかも。

FileSystemObjectとか、返すオブジェクトの詳細が書かれていないので結構困る。

279:デフォルトの名無しさん
07/11/17 19:34:11
f.DateLastModifiedを整数に変換してやるのもよさげ
var f=new ActiveXObject("Scripting.FileSystemObject").GetFile(WScript.ScriptFullName);
var d = f.DateLastModified | 0;
WScript.Echo(d);

280:271
07/11/18 00:01:07
それなら
WScript.Echo(Number(f.DateLastModified));
ところが、
WScript.Echo(Date(f.DateLastModified));
が変。ずれる。なんでだろ?

281:デフォルトの名無しさん
07/11/18 01:27:31
new Date(...) じゃないの?
new無しのは、単に現在日時返ってきてるっぽいな。
JScriptのDateとは違う表記方法だし、メソッドもエラーが出るところを見ると、
VBScript用のDate関数を呼び出してしまっている気がする。

282:264、268
07/11/19 04:28:00
>>269
>>270
レスありがとうございます。感謝します。

283:デフォルトの名無しさん
07/11/20 20:04:29
>>280
Numberは型だけどDateはオブジェクトだから

284:デフォルトの名無しさん
07/11/21 04:53:30
Win2KやWinXP SP2とかだと、
URLリンク(www.microsoft.com)

に書かれている事がどうも嘘っぽいんだけど…
ここに書かれている方法で、Temporary Internet Files を削除出来たって人居る?

Cookieの削除は、Temporary Internet Files に在る、Cookie:username@... を削除しないと駄目みたい。


285:デフォルトの名無しさん
07/11/21 15:58:49
もしかして
Temporary Internet Files\Content.IE5\ 以下の話してる?


286:デフォルトの名無しさん
07/11/21 16:33:08
>>284
ブラウザ終了してないと駄目だよ


287:デフォルトの名無しさん
07/11/21 19:11:21
Hey, Scripting Guy!氏はわざとひねった答えを書くのよ。
コピペのままでは動かない、バグ探しのクイズだと思えばいいのよ。

288:デフォルトの名無しさん
07/11/21 19:48:38
Hey, Scripting GuyのやつはVBSなので
JSに書き換えて使ってる

289:デフォルトの名無しさん
07/11/21 19:53:24
クイズに答えると
Const TEMPORARY_INTERNET_FILES = &H20&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(TEMPORARY_INTERNET_FILES)
Set objFSO = CreateObject("Scripting.FileSystemObject")
For Each objFolderItem In objFolder.Items
objFSO.DeleteFile objFolderItem.Path
Next
試してないけど

290:デフォルトの名無しさん
07/11/21 20:02:12
>>284
objFSO.DeleteFolder
の間違いじゃないの

291:デフォルトの名無しさん
07/11/21 20:46:42
>>286
ブラウザを終了させてやってみました。

>>285
Content.IE5 というフォルダが出来ていて、IEを起動すると
まるでゾンビの如く復活しています。


292:デフォルトの名無しさん
07/11/21 21:12:05
>>291
さてはdesktop.ini消しちゃったねww
[.ShellClassInfo]
UICLSID={7BD29E00-76C1-11CF-9DD0-00A0C9034933}


2000は知らないけどMe以降ならこんなのは?
Const TEMPORARY_INTERNET_FILES = &H20&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(TEMPORARY_INTERNET_FILES)
objFolder.Items().InvokeVerbEx "delete"


293:デフォルトの名無しさん
07/11/21 22:02:13
>>292
有難う御座います。
綺麗サッパリと消えてくれました。


294:デフォルトの名無しさん
07/11/22 03:25:17
ところで、InvokeVerbEx "delete" を使用した場合、警告ダイアログがポップアップするのですが、
この警告を出さずに実行させる方法は無いでしょうか?


295:デフォルトの名無しさん
07/11/22 15:33:50
出ないけど?

296:デフォルトの名無しさん
07/11/24 15:23:03
directory\backgroundのverbsを調べてinvokeverbする方法はありませんか?


297:デフォルトの名無しさん
07/11/24 17:33:51
有りますが?

298:デフォルトの名無しさん
07/11/26 18:28:52
AppActivate タイトル
アクティベートしないで、ウィンドウの有無だけ調べるにはどうすればよいでしょう?

299:デフォルトの名無しさん
07/11/26 20:16:40
>>298
そういう機能のCOM作ればOKだよ

ウィンドウタイトルではなくプロセス名での有無を調べるならWMIで出来るけど
WMIもWSHの機能ではなく外部のCOMなので、使い方とかはここでは聞かないでね
というかググれは簡単に解るし

300:デフォルトの名無しさん
07/11/26 23:46:57

氏ね、ググれ厨!クソレス増やすな!

301:デフォルトの名無しさん
07/11/26 23:52:56
プログラム板って299のようにちょっとおかしい人多いんだよね

302:デフォルトの名無しさん
07/11/26 23:56:30
299も300もどっちもどっち、そしてこのレスも。

303:デフォルトの名無しさん
07/11/27 01:07:53
自分の無知を曝け出してるだけだから、温かく無視してあげようよ

304:デフォルトの名無しさん
07/11/27 09:09:22
そうでもないか

305:デフォルトの名無しさん
07/11/27 10:16:24
うんこが長すぎて切れない
どうすればいい?

306:デフォルトの名無しさん
07/11/27 11:16:54
そのために神は
はさみを作り給うた

307:デフォルトの名無しさん
07/11/27 14:33:36
>>298
wordを使う

308:デフォルトの名無しさん
07/11/27 16:55:28
つExcel

309:デフォルトの名無しさん
07/11/27 16:59:49
>>298
スレリンク(tech板:752-754番)

310:デフォルトの名無しさん
07/11/27 19:52:09
>>307-309
こういうのはスレ違いだろ? >>299

311:デフォルトの名無しさん
07/11/28 00:21:12
CIM_DataFileのInUseCountは実装されてないのかなぁ?
nullが返って来る。

312:デフォルトの名無しさん
07/11/28 23:40:19
cscript.exeでの使用が前提のスクリプトで、
C言語のsystem()みたいな同期型のプログラム実行関数を書きたいんだけど、
WshExecオブジェクトのStdErr, StdOutを少しずつ読みながら、
Statusプロパティが0以外になるまで待つ、
よりもストレートで標準的なやり方ってありますか?
できればプログラムの終了コードも取得したいです。

あと、本当はjsファイルダブルクリックでwscript.exeに
起動されたときは、コンソール立ち上げて、
WshShellのStdIn/Out/Errをどうにかしてコンソールに結び付けたい・・・

Windowsしかインストールしてないような
他人のマシンでも動くスクリプトを書きたいのでjscript試し始めたけど、
標準入出力の扱いが異様に面倒・・・


313:デフォルトの名無しさん
07/11/28 23:54:22
素直にCで書いたほうがいいよ

314:デフォルトの名無しさん
07/11/29 00:01:36
わざわざwshでやらなくても適当なスクリプトで書いたりすればいいんじゃね?perlとかなんでもいいけど

315:デフォルトの名無しさん
07/11/29 00:21:42
>>312の2
自分をcscriptで再起動

316:デフォルトの名無しさん
07/11/29 00:28:05
>>312の1
system()ならRun()でしょ
>>312の2
jscriptだろうがvbscriptだろうが、
標準入出力はwshやfsoなのだから変わらんけど?

317:デフォルトの名無しさん
07/11/29 00:36:45
Workgroupとドメインが混じった環境がありまして
Workgroupのコンピュータでドメインユーザを使って
ADの認証を取りたいのですが、なにか良い方法ありますか?
認証はKerberosでもNTLMでもいいです。
WorkGroupのコンピュータは、ADのDCに名前解決できています。
(DNS,lmhosts両方とも)
OSは2000とXPProです。


318:デフォルトの名無しさん
07/11/29 01:30:17
>>315
同じようなこと考えてた。
スクリプト終了後にコンソールがすぐ消えて、経過が見えんなあ・・・と思ったけど、
cmd /k cscript ...
で解決した。

>>316
連続してプログラムをRunする度に別のコンソールが立ち上がるのがイヤ。
1つのプログラムが終ると、その分のコンソールが消えて、
stdout/errの経過が見れないの困る・・・
なので、WshExecのStdOut/Errを読んで、Echoに横流ししてる。
けど、stdout/errが入り乱れてるときにちゃんとリアルタイムに出力できるか疑問。
あと、プログラムの終了コードが取れない。


319:デフォルトの名無しさん
07/11/29 01:57:30
exec("cmd /c hoge 2>&1")

320:デフォルトの名無しさん
07/11/29 02:08:50
>>319
基本でしたw
tnx

321:デフォルトの名無しさん
07/11/29 02:22:16
>>317
runas /user:ドメイン名\ユーザー名 hogehoge.exe


322:デフォルトの名無しさん
07/11/29 23:37:30
>321
明日試してみます。
もちろん、321さんは実験済みなんですよね?

323:デフォルトの名無しさん
07/11/29 23:44:24
イラつくよお前

324:デフォルトの名無しさん
07/11/29 23:53:11
お前火病るの早すぎwwwwww

325:デフォルトの名無しさん
07/11/30 19:01:46
>あと、プログラムの終了コードが取れない。
取れるよ。
>Statusプロパティが0以外になるまで待つ、
してる?

326:デフォルトの名無しさん
07/11/30 20:40:19
>321
試してみました。
書いていただいた「コマンドライン」では動きませんでした。
でも他の方法で解決できました。
本当にありがとうございました。

327:デフォルトの名無しさん
07/12/01 02:35:35
>>326
もう二度と来んな!

328:デフォルトの名無しさん
07/12/01 02:37:04
>>326
その「他の方法」とやらを書く気は全く無い訳だな

329:デフォルトの名無しさん
07/12/01 05:44:51

書きに戻ってくる必要もないよ

興味ないから



330:デフォルトの名無しさん
07/12/01 12:31:11
>>325
ExitCodeプロパティの存在に気付かなかった。
最初読んでた本と適当にググったサイトでスルーされてたので・・・

とりあえずこのスレで得た成果をまとめてみた。

var shell = new ActiveXObject("WScript.Shell");

function system(cmd) {
var e = shell.Exec("cmd /c " + cmd + " 2>&1");
while (!e.StdOut.AtEndOfStream) {
WScript.Echo(e.StdOut.ReadLine());
}
while (e.Status == 0) {
WScript.Sleep(50);
}
return e.ExitCode;
}


331:デフォルトの名無しさん
07/12/01 15:20:48
>WScript.Echo(e.StdOut.ReadLine());

WScript.StdOut.Write(e.StdOut.Read(1));
のほうがいいよ


332:デフォルトの名無しさん
07/12/01 16:45:06
男は黙ってecho

333:デフォルトの名無しさん
07/12/01 17:09:39
>>331
たしかに、
checking...(長い処理) done<改行>
みたいな出力するプログラム起動したときカッコ悪かった。

1バイトずつってのが引っかかったけど、別に体感速度変わらんな。


334:デフォルトの名無しさん
07/12/02 01:13:43
男は黙ってcscript

335:デフォルトの名無しさん
07/12/02 21:19:06
Q >>294
A >>292
なぜかQAの順序が逆ですな。>>292はエスパーかな?

336:デフォルトの名無しさん
07/12/02 21:31:52
>>335
>>292を実行したら警告ダイアログが出た奴が質問してるだけ。

環境依存か知らんが。

337:デフォルトの名無しさん
07/12/02 22:31:07
VBScriptで引数省略は,,だけど、JScriptは?
JScriptで,,にすると怒られる

338:デフォルトの名無しさん
07/12/03 03:11:23
低脳言語と一緒にすんなよ。

339:デフォルトの名無しさん
07/12/03 09:12:27
あの突然すいませんが
WSH(VBS)のコンパイラってないですかね?
URLリンク(www.vector.co.jp)
これしか見当たりませんが、これにしてもなぜだか動作しないんです。
ほかに知っている方が見えましたらお願いいたします

340:デフォルトの名無しさん
07/12/03 10:23:32
本来コンパイル出来ない物なんだから、無理矢理やっても不都合あるのは当然かと
コンパイルしたいなら実行ファイル生成用のプログラム言語か
スクリプト言語の中でも元からコンパイルを想定して作られたもの使いましょう

つまりお門違いってもんです

341:デフォルトの名無しさん
07/12/03 10:36:12
>>339
msscript.ocx を忘れてるだけだと思われ

342:デフォルトの名無しさん
07/12/03 12:25:15
EXE 化して改ざんされにくくしたいって事だろ。それくらい理解してやれよ。

343:デフォルトの名無しさん
07/12/03 12:44:31
↓こっちの方が有名だと思ってたけど、違うのか
"MakeExe"
URLリンク(www.vector.co.jp)
WMIのイベント系メソッドには弱いらしいけど
URLリンク(maglog.jp)

因みにどこかで暗号化も出来るとか言ってる人もいるらしいけど、
(作者のブログにも説明あったけど)暗号化はされない。

344:デフォルトの名無しさん
07/12/03 14:45:09
改ざん防止は署名だろ

345:デフォルトの名無しさん
07/12/03 16:19:24
難読化はスクリプトエンコードだろ

346:デフォルトの名無しさん
07/12/03 17:43:46
jscriptにすればコンパイルできるよ

347:デフォルトの名無しさん
07/12/03 18:14:11
VBにすればコンパイルできるよw

348:デフォルトの名無しさん
07/12/03 20:53:14
COMクライアントのプログラムをCで書いてみるといいよ


349:デフォルトの名無しさん
07/12/03 23:07:15
JScript .NETに書き換えればコンパイルできるよ

350:デフォルトの名無しさん
07/12/03 23:22:19
コンパイルしたら、せっかくのスクリプトの意味が無いやん

351:デフォルトの名無しさん
07/12/03 23:44:59
>>337
,null,

352:デフォルトの名無しさん
07/12/03 23:49:25
set sc=createobject("scriptcontrol")
sc.language="vbscript.encode"
sc.addcode unescape("%23@%7E%5ENQAAAA%3D%3Dhko8K6%2CEx%7F/1Cw%7F%60E%5D%21%26T*y%5DE2TcW%5DE2T*vuE2%21*%25Y%3B2%21*brb@%23@%26ug0AAA%3D%3D%5E%23%7E@")
解読できる?

353:デフォルトの名無しさん
07/12/04 00:22:34
おちんちん

354:339
07/12/04 05:40:22
>340
まあインタプリタの方が管理しやすいですが、
EXEだとタスクマネージャーで強制停止できたり、
知り合いに渡すのに環境を選ばなくなりますからね

>341
インストール中にはねられてしまいました
フリーのコンパイラは複数あって損はないですので調べてみます。

>342
環境に左右されにくくなるかな?と思ったわけです

>343
ダウソしました、ありがとうございました。


その他みなさんありがとうございました




355:デフォルトの名無しさん
07/12/04 09:49:29
> EXEだとタスクマネージャーで強制停止できたり、
スクリプトだって出来る、WSHのスクリプトエンジンはexeなんだから
ついでに言うと、うちの環境では、vbs,js,wsfなどを右クリックすると「このスクリプトを強制終了する」って項目がある
この項目を選択した際に実行されるものもwshで作った
あと、多重実行すると既に実行されてるものを強制終了するって仕組みのスクリプトも作ったことがある
やり方次第で停止、終了:に関しては全然困らなくなる
タスクマネージャーだと複数のWScript.exeが実行されてるときにどれがどれだか解らないとか言うかも知れないが
それだってどうにでもなる問題だし

> 知り合いに渡すのに環境を選ばなくなりますからね
環境選ばないと言ってもJavaとかじゃなければWindows限定なわけだし
Windows限定ならWSH(VBS)が動かないのはWin95のノーマルと個人ではほとんど使われてないNTの4以前くらいだ
あとはCOMのバージョンが違うくらいだが、それはCOMを使用するexeだって同じ事だし

356:デフォルトの名無しさん
07/12/04 18:05:19
自慢うざい

357:デフォルトの名無しさん
07/12/04 19:13:51
的確な突っ込みを理解できないヤシがマヂギレw

358:デフォルトの名無しさん
07/12/04 19:17:48
ここは自慢スレじゃ無いぞ。

359:デフォルトの名無しさん
07/12/04 20:19:12
>>358
どうしたの?

360:デフォルトの名無しさん
07/12/04 20:38:30
自慢すんな

361:デフォルトの名無しさん
07/12/04 20:55:32
あんな程度のが自慢に見えちゃうなんて可哀相な子ですね

362:デフォルトの名無しさん
07/12/04 21:12:34
>>355
いや cscript.exe がいっぱいタスクにならんで
どれが殺したい相手なのかわからなくなるんだよ


363:デフォルトの名無しさん
07/12/04 21:25:45
> いや cscript.exe がいっぱいタスクにならんで
> どれが殺したい相手なのかわからなくなるんだよ
そんなの実行時引数が見られるタスク管理ソフト(タスクマネージャ代替ソフト)を使えば一発解決
WSHのオプションスイッチやスクリプトへの引数が無ければ「プロセス名:cscript.exe  実行時引数:スクリプトパス」になってる
実行時引数はWMIでも取得出来るから、俺のはスクリプトのパスを渡す(右クリックから強制終了選択)と
実行時引数にそのパス含むWSHプロセスを殺すようにしてるだけ
多重起動で自殺スクリプトも仕組みは同じ

cscript.exeがいっぱいあるだけでなく、実行しているスクリプトまで同じでどれがどれだか解らないなんてのは
スクリプトの設計段階での問題

364:339
07/12/04 21:33:46
>355
環境と言うのはBASP21やセンドキーで日本語を送る為のライブラリ環境の事です。
VBSやらない人に複数のライブラリのインストールを強制するのは酷ですからね。

あと、プログラミング自体はしょぼいPCの時代にやっていただけですので、
(懐かしのMSXやX68000でアセンブラとベーシックをかじった程度ですが)
バックグラウンドでプログラムを動かしつづけるのは何だかもったいないような気がするんですよ
これは個人的な感覚ですので,気にしないで下さい

365:デフォルトの名無しさん
07/12/04 21:35:30
cscript hoge.vbs fuga hage
cscript hoge.vbs fuga hige

みたいなのも区別できますか?

366:デフォルトの名無しさん
07/12/04 21:36:52
>>365
もしよろしければそのツールが公開されているURLを教えて頂けませんか?

367:デフォルトの名無しさん
07/12/04 21:37:38
>>365 じゃなくて >>363 だったorz

368:デフォルトの名無しさん
07/12/04 22:08:35
> VBSやらない人に複数のライブラリのインストールを強制するのは酷ですからね。
特定のスクリプトからしか使わないなら、インストール(レジストリへの登録)無しに使う方法もあるけどな


> みたいなのも区別できますか?
当然 禿げ と 髭 だって実行時引数なんだから区別できるよ
>363では"WSHのオプションスイッチやスクリプトへの引数が無ければ"の例を書いたが、細かく書けば
「プロセス名:cscript.exe  実行時引数:WSHのオプションスイッチ スクリプトパス スクリプトへの引数」だよ
プロセス名:cscript 実行時引数://nologo hoge.vbs fuga hage


> ツールが公開されているURLを教えて頂けませんか?
スレ違い、自分で探すかソフト紹介スレでも行け

WMI使って特定のスクリプトを実行しているWSHプロセス殺す方法ならスレ違いじゃないから
要望が有れば教えてもいいが、今から用事があるんで早くても明日になる
この板に来る奴ならそれまで待つよりググった方が早いと思うがな

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


370:デフォルトの名無しさん
07/12/04 23:27:36
>>366
ProcessExplorerとか?

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

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

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

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

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

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

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

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

378:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/11 21:13:14
>>376
コマンドプロンプトでファイル名叩くとエクスプローラーの関連付けで
起動するのは仕様で無理なんジャマイカ?

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

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

380:デフォルトの名無しさん
07/12/11 22:07:03
Wrapper噛ませればいいじゃん

381:デフォルトの名無しさん
07/12/11 22:18:05
>>380
kwsk

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

383:デフォルトの名無しさん
07/12/12 00:28:43
逆ならおk?

384:デフォルトの名無しさん
07/12/12 08:55:28
>>382
>cmd.exeから起動されたかどうかは区別できるので

kwsk

385:デフォルトの名無しさん
07/12/12 08:58:59
>>381
>>384
kwskはGoogleで

386:デフォルトの名無しさん
07/12/12 09:16:57
KaWaSaKi

387:デフォルトの名無しさん
07/12/12 17:04:44
>>385
Googleの検索キーワードをkwsk

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



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

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



391:デフォルトの名無しさん
07/12/12 22:49:07
よくわからんけど
Win32_Process とかじゃねーの?

392:390
07/12/12 23:10:04
WSHでは無理、という結論。

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

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

393:デフォルトの名無しさん
07/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

'URLリンク(d.hatena.ne.jp)


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

395:デフォルトの名無しさん
07/12/12 23:18:35
ごめん
リンク貼り間違えてた
URLリンク(www.geocities.jp)


396:392
07/12/12 23:22:19
>>393
貼り付け乙

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

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

398:デフォルトの名無しさん
07/12/12 23:29:20
自分のプロセスidはどうやったらわかるの?

399:デフォルトの名無しさん
07/12/12 23:30:15
MSは健忘症だから自分のことも平気で忘れる

400:デフォルトの名無しさん
07/12/12 23:32:17
自分の子の親は普通、自分だけど、例外もあるかも

401:デフォルトの名無しさん
07/12/12 23:36:14
子供のidは分かるけど自分のidは分からんらしい

402:デフォルトの名無しさん
07/12/12 23:39:07
URLリンク(scripting.cocolog-nifty.com)

403:デフォルトの名無しさん
07/12/13 00:04:35
自分探しって大変なんだな

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

405:デフォルトの名無しさん
07/12/13 00:08:44
>>400
'子の親(=自分)を調べる方法でgetpid()を作ってるサイトがあったので
'そちらを参考(丸写しともいう)にして >>302 を改良
'URLリンク(www.vector.co.jp)
'URLリンク(www.vector.co.jp)
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:デフォルトの名無しさん
07/12/13 00:13:16
なんでメインとサブでわざわざ違うやり方してんの?


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

408:デフォルトの名無しさん
07/12/13 00:29:41
もう充分だよ

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

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


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


411:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/13 06:07:15
PROMPT=$P$G
も使えそうだね
消されてたらだめかな

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

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

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


416:デフォルトの名無しさん
07/12/14 07:01:34
エスケープでググロ

417:デフォルトの名無しさん
07/12/14 17:43:49
replace('"', 'hoge')

418:デフォルトの名無しさん
07/12/14 17:47:37
~.replace(/"/g, "&quot;");

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

420:デフォルトの名無しさん
07/12/14 23:00:32
ソースキボンヌ

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

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


422:デフォルトの名無しさん
07/12/15 10:28:15
>>415
"""それは言えないな"""

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

423:デフォルトの名無しさん
07/12/15 16:09:35
>>420
なんでそんなもんがいるんだ?

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

425:デフォルトの名無しさん
07/12/15 22:02:40
いや、>>423のいう「そんなもん」は「ソース」のことではないかと。

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

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

と読めてしまうな。

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

427:デフォルトの名無しさん
07/12/15 22:52:18
JavaScriptだったら '"' とか "\"" とかの方が良くね?

428:デフォルトの名無しさん
07/12/16 13:48:01
ダブルクォートを定数で作っておくのが親切ってもんです

429:デフォルトの名無しさん
07/12/16 13:54:46
>>428
ヤメレ キショクワルイ

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

431:デフォルトの名無しさん
07/12/17 16:31:39
Const vbQuote = """"

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

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

ダサ・・・

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

434:デフォルトの名無しさん
07/12/19 03:35:02
CLSIDはあってもPROGIDがないものはどうやってCreateObjectする?

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


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