TClock Script Help

TClock2ch付属サイト…

全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50  

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

1 名前:デフォルトの名無しさん:2008/04/23(水) 20:00:50
( ´ゝ`) 誰か詳しい情報キボンヌ

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

●関連スレ
お前ら、wsh使ってますか? Part7
http://pc11.2ch.net/test/read.cgi/win/1190548945/
HTAをもっと流行らせる計画
http://pc11.2ch.net/test/read.cgi/tech/1124559962/
★WSHでCGI★JScriptVBScript
http://pc11.2ch.net/test/read.cgi/php/1059745064/

●公式サイト
Windows Script
http://www.microsoft.com/japan/msdn/scripting/

●個人サイト
Windows Scripting Host
http://homepage3.nifty.com/aya_js/wsh/index.htm
Windows Scripting Host Laboratory
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/
Windows Script Wiki
http://winscript.s41.xrea.com/wiki/index.php

2 名前:デフォルトの名無しさん:2008/04/23(水) 20:22:22


3 名前:デフォルトの名無しさん:2008/04/24(木) 00:59:30
    ∧_∧
    (*´Д`)  イヤン
     / ,ノ⌒ヾ、
   ⊂⊂、___(_,つ

4 名前:デフォルトの名無しさん:2008/04/24(木) 01:02:51
1乙

5 名前:デフォルトの名無しさん:2008/04/25(金) 00:42:57
>>1

まさか3までくるとはage

6 名前:デフォルトの名無しさん:2008/04/25(金) 02:03:49
    ∧_∧
    (* ゚Д゚ )  ナニミテンダゴルァ
     / ,ノ⌒ヾ、
   ⊂⊂、___(_,つ

7 名前:デフォルトの名無しさん:2008/04/25(金) 20:52:12
前スレ830からWSH 5.7

上から2000, XP, 2003英語版
http://www.microsoft.com/downloads/details.aspx?FamilyID=c03d3e49-b40e-4ca1-a0c7-cc135ec4d2be&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=47809025-d896-482e-a0d6-524e7e844d81&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=f00cb8c0-32e9-411d-a896-f2cd5ef21eb4&DisplayLang=en


8 名前:デフォルトの名無しさん:2008/05/02(金) 07:24:54
システム日付の変更方法教えれ

9 名前:デフォルトの名無しさん:2008/05/02(金) 19:21:15
WScript.Echo " 誰かシステム日付を変更しといてね。 はぁと "

10 名前:デフォルトの名無しさん:2008/05/03(土) 08:47:24
初めまして、マリコといいます。
wshからシステム日付の変更する方法を教えてください。

11 名前:デフォルトの名無しさん:2008/05/03(土) 09:43:26
ちゃんと金払ってソフト買えよ

12 名前:デフォルトの名無しさん:2008/05/03(土) 10:39:00
>>8
>>10

教えて厨乙

13 名前:デフォルトの名無しさん:2008/05/03(土) 11:34:00
だめだとわかってるんだけどね
体のつながりが欲しいの

コトバだけぢゃなりない

メールだけぢゃ不安なの

奥様からみたらイヤな女だね

誘惑したわけぢゃないよ

不満のはけ口でもいいから

私を求めて


14 名前:デフォルトの名無しさん:2008/05/04(日) 18:34:47
英語版5.7入れると改善点以外はどうなるの?
エラーメッセージが英語になったりするの?

15 名前:デフォルトの名無しさん:2008/05/04(日) 19:53:04
>>14
エラーメッセージは日本語のまま。
しかし、vbsファイル等を右クリックしたときのメニューが一部英語になる。

Open
Edit
Open with Command Prompt

など。
他の違いは知らん。

16 名前:デフォルトの名無しさん:2008/05/08(木) 02:22:19
.jsソースの文字コードをUTF-8で保存して実行するとソースの中の日本語のところで
エラー 終了していない文字列型の定数です。
とエラーが出るが、ソースをUTF-8のまま実行できないの?

17 名前:デフォルトの名無しさん:2008/05/08(木) 19:51:27
>>15
ありがとう
SP3統合ディスクつくってOSクリンインスコするまえに試してみるよ!

18 名前:デフォルトの名無しさん:2008/05/09(金) 07:06:23
wsh 5.6 ってどのバージョンのwindowsに標準インストールされてますか?


19 名前:デフォルトの名無しさん:2008/05/09(金) 11:12:06
>18
XP

20 名前:デフォルトの名無しさん:2008/05/12(月) 18:18:06
WSHをメモ帳あたりに記述して .vbs の拡張子で保存して実行すると構文ミスをしてれば
エラーが表示されるじゃないですか?そのエラー内容に「コンパイル失敗」と言う文字列も見れます。
一般的なC言語やJavaみたいな、コンパイルだけして実行をしない と言う事は出来ないのでしょうか?
コンパイルが通るかどうかだけ試したいのですが、もし仮に通ったら実行してしまうのがちょっと・・・。
構文ミスをしてないかどうかだけ調べたいです。ご教示よろしくお願いします。

21 名前:デフォルトの名無しさん:2008/05/12(月) 18:51:09
初っ端でWScript.Exit

22 名前:デフォルトの名無しさん:2008/05/12(月) 19:23:52
Option Explicit
WScript.Quit(Exitでしたっけ?Quitだったような)
Dim i, j
objWsh = WScript.CreateOb・・・
'以下処理コード

みたいな感じに100行ほど書いたとして、その場合最後の行まで構文チェックしてくれるのでしょうか?
だとしたらそれで私がやりたいことが実現できます。

23 名前:デフォルトの名無しさん:2008/05/12(月) 19:31:55
Set wshObj = WScript.CreateObject("WScript.Shell")
wshObj.regWrite "

の、RegWriteメソッドについて質問があります。
と言うか、RegRead, RegDeleteにも、さらにはreg.exeにも関係する事かもしれません。
レジストリエディタを開いて左側のフォルダのアイコンのキー名、っていうんですかね・・
例えば
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
で、あり得ない事ではありますが、 CurrentVersionと言うキーの名前を ;CurrentVersion と
変更してキーを削除せずにセミコロンで無効化(削除したのと同じ挙動になるけど、データ自体は
レジストリに残してある感じ)したいとして、レジストリエディタなら簡単に名前の変更で出来ますが
WSHからはどのように記述すれば良いのでしょうか?
更新になるので、RegWriteメソッドを使うと思うのですが、どう書いたらいいのか分かりません。
RegWrite "キー名", 更新後の値, ["REG_DWORD"等のデータタイプ(種類)]
と言う外部仕様は分かるのですが、
この仕様だとキー名の変更は出来ませんよねぇ?あくまでもRegWriteは値を更新するのであって
値を格納しているキー名は無理ですかね?何か良い手はありませんか?

24 名前:デフォルトの名無しさん:2008/05/12(月) 21:57:08
WMI使えば?

25 名前:デフォルトの名無しさん:2008/05/15(木) 19:04:32
>>16
UTF-16ならおk

wsfならUTF-8でもおk

26 名前:デフォルトの名無しさん:2008/05/15(木) 19:30:10
>>25
サンクス!

27 名前:デフォルトの名無しさん:2008/05/17(土) 10:31:59
あるファイルAの一部を書き換えるには
テンポラリのファイル作らないと駄目ですかね?
FSOにseekみたいな命令無いですよね。


28 名前:デフォルトの名無しさん:2008/05/17(土) 12:40:55
cscript で hoge.js 実行するとすぐ閉じてしまって、
デバッグのための表示を出していても見えなくて
困るんですが、スクリプトの終了時に(cscript.exe を
終了する前に)なんかフックをかましてとめることってできませんか?

cmd /k から実行すればいいのかもしれませんが、
できればスクリプトの中から制御できればいいのですが。

29 名前:デフォルトの名無しさん:2008/05/17(土) 13:52:47
>>27
fso.open(,forwriting).write replace(fso.open(,forreading).readall(),"aaa","bbb")

>>28
new ActiveXObject("scripting.filesystemobject").GetStandardStream(0).ReadLine();

30 名前:デフォルトの名無しさん:2008/05/17(土) 14:24:12
openなんてメソッド無いだろ

31 名前:デフォルトの名無しさん:2008/05/17(土) 14:35:36
なんかあるだろ

32 名前:デフォルトの名無しさん:2008/05/17(土) 15:46:57
http://msdn.microsoft.com/ja-jp/library/cc392522.aspx
ここに書かれているオブジェクト (WScript とか)は
WSH が標準で最初から提供しているんだよね?
Scripting.FileSystemObject のようなものの
Scripting っていうオブジェクト(クラス名?)は
誰が供給しているの?

33 名前:デフォルトの名無しさん:2008/05/17(土) 15:50:41
WScript.CreateObject に与える引数って,
COM コンポーネントの名前を指しているんですよね?
CLSID とかで指定することもできるのでしょうか?

34 名前:デフォルトの名無しさん:2008/05/17(土) 15:54:43
The CreateObject method returns a pointer
to the object's IDispatch interface.

なんだ,COM コンポーネントの ProgID 与えたら
インターフェイスへのポインタが返ってくるだけなのか.
すっきりした.

35 名前:デフォルトの名無しさん:2008/05/17(土) 15:59:38
>>8
createobject("shell.application").settime

36 名前:デフォルトの名無しさん:2008/05/17(土) 16:01:18
>>33
getobject("new:{CLSID}")

37 名前:デフォルトの名無しさん:2008/05/17(土) 16:20:10
Javascript には「コレクション」というデータ型は
無いようなんだけど,これは JScript 独自の考え方?

配列やコレクションを「IEnumerable インターフェイスを
実装するオブジェクト」と定義しているのも JScript 独自の考え方?

38 名前:デフォルトの名無しさん:2008/05/17(土) 16:21:52
はぁ?

39 名前:デフォルトの名無しさん:2008/05/18(日) 01:46:05
>>28
new ActiveXObject('wscript.shell').PopUp('pause');

40 名前:28:2008/05/18(日) 06:45:44
>>29 >>39
ありがとう。結局今のところ cscript //D を使うバッチ
ファイル経由で起動してます。教えていただいた方法も
後々試してみたいと思います。

んが、今気づいたんですが、結局デバッグできればいいので
wsf ファイルにして <?job debug="true"?> を使うというのも
いいかなと思っています。

ところでせっかく wsf ファイルで書くジョブのコメントなどを
設定したとしても、特に活用法ほうってないですよねぇ。
wsf ファイルを右クリックしたらジョブ一覧がコンテキストメニューに
かっこよく出てきたり・・・・しないよなぁ。

ところで wsh から ADODB の RecordSet を使ってかなりのデータ
処理ができる気がしてきました。しかし ADODB の中でいろいろと
定義されている定数群を識別子じゃなくてじかに書かなきゃならん
のが面倒っぽい。これも wsf の reference タグで解決?

41 名前:デフォルトの名無しさん:2008/05/19(月) 22:39:55
正規表現を使った置換で

hogera=12345
purururu=00000
ranran=99999

これを

hogera=11111
purururu=11111
ranran=11111

こうしたい。
=の左側は英文字。右側は5桁の数字。
どうやったらいいですか?
JScriptです。

42 名前:デフォルトの名無しさん:2008/05/19(月) 23:48:44
単に、5桁の数字を "11111" の置換するだけなら、

"hogera=12345".replace(/(\d{5})/, "11111")

でいい。でも、12345=12345 が 11111=12345 になるのが嫌なら

"purururu=00000".replace(/^([A-Za-z]+)=(\d{5})$/, "$1=11111")

とかにすればいい。

43 名前:デフォルトの名無しさん:2008/05/19(月) 23:56:09
var s1 = "hogera=12345\npurururu=00000\nranran=99999\n";
WScript.Echo(s1);

var s2 = s1.replace(/^([A-Za-z]+)=(\d{5})$/, "$1=11111");
WScript.Echo(s2);

変わらない。何で?

44 名前:デフォルトの名無しさん:2008/05/20(火) 01:28:42
mオプションつけれ

45 名前:デフォルトの名無しさん:2008/05/20(火) 05:40:41
var s1 = "hogera=12345\npurururu=00000\nranran=99999\n";
WScript.Echo(s1);

var s2 = s1.replace(/^([A-Za-z]+)=(\d{5})$/gm, "$1=11111");
WScript.Echo(s2);

出来たぁ!ありがと!

46 名前:デフォルトの名無しさん:2008/05/23(金) 10:16:36
JScript の中から、今の環境でどんなオブジェクトが使えるかを
知る方法はありますか?たとえば o がオブジェクトだとすると、
for (i in o) print (i); でそのオブジェクトのプロパティ一覧が
得られますが、そもそもどんなオブジェクトがあるのかなと。

WScript オブジェクトとかその環境独自のオブジェクトが
最初から用意されていると思うのですが、それをスクリプト内から
知る方法はあるのでしょうか?

47 名前:46:2008/05/23(金) 10:21:56
列挙できると書きましたが、もちろん DontEnum 属性が
設定されていたらだめですね。無視して列挙させるという
ようなメタレベルでの操作もできないようですし。

48 名前:デフォルトの名無しさん:2008/05/23(金) 12:47:52
jscriptには定数はないのでしょうか?
Microsoftのページには定数は const みたいに書いてあるのですが、
構文エラーと言われます。

49 名前:デフォルトの名無しさん:2008/05/23(金) 18:59:09
123
'abc'

50 名前:デフォルトの名無しさん:2008/05/24(土) 07:09:08
>>49
すみません、定数の定義の話です。
つか var つけないと定数になるのかと思ったら、WSH?(Windows Script)のvarはもともといらないのね。
constもつかえないっぽい

51 名前:デフォルトの名無しさん:2008/05/24(土) 12:30:20
昔ながらの全部大文字とか勝手にして「これは定数。」って脳内補完しとけばよし。

52 名前:デフォルトの名無しさん:2008/05/24(土) 13:04:39
>>48
> Microsoftのページには定数は const みたいに書いてあるのですが、
> 構文エラーと言われます。

それJScript.NETの説明。

>>50
> WSH?(Windows Script)のvarはもともといらないのね。

varなしで変数を宣言すると、グローバル変数になっちゃうぞ。

53 名前:デフォルトの名無しさん:2008/05/24(土) 18:26:40
>>52
うへー、ぜんぜん違うのね。
ありがとう。

この辺のことはどこに書いてあるんだろう

54 名前:デフォルトの名無しさん:2008/05/24(土) 21:24:09
>>1 の公式

55 名前:名無しさん@Linuxザウルス:2008/05/26(月) 13:31:35
makewin.exeでexe化しておいたvbsが
savceの5/26定義パターンから木馬として片端から検疫されてた..

なんでmakewin&exe化したのが木馬扱いされてんねん
あああダメージでかいわ..orz

56 名前:デフォルトの名無しさん:2008/05/26(月) 22:22:49
CreateObject("WScript.Shell").SendKeys "moji"

mojiと書きたいのですが。
その前にIMEを切りたいのですが、できますか?

57 名前:デフォルトの名無しさん:2008/05/27(火) 01:50:36
はい

58 名前:デフォルトの名無しさん:2008/05/27(火) 01:59:53
{kanji}

59 名前:デフォルトの名無しさん:2008/05/27(火) 23:50:09
VBScriptの記述で質問です、引数(フォルダのドラッグを想定)で与えられたフォルダの中身を、
コマンドラインで順に処理したいのですが(実行処理を確認したいため)直ぐにターミナルが閉じてしまいます。
今回初めて、VBScriptを作成したのですが、どこがおかしいのか分からない状況です。
おかしい点を教えていただけないでしょうか。

#実行処理が確認できるのであれば、コマンドラインで処理する必要はないのですが、どの様な
#方法があるのか調べることができませんでした。もし他によい方法があれば教えてください。

Set fso = CreateObject("Scripting.FileSystemObject")
Set args = WScript.Arguments
Set WSHShell=Wscript.CreateObject("Wscript.Shell")

'引数チェック
if args.Count <> 1 Then
WScript.Echo "Usage: test.vbs (target folder path)"
WScript.Quit()
End If


'コマンドラインで実行
If LCase(fso.GetFileName(WScript.FullName)) = "wscript.exe" Then
WshShell.Run "cscript """ & WScript.ScriptFullName & """" & args(0) & """",1,False
WScript.Quit
End If

Set folder = fso.GetFolder(args(0))

'フォルダを内のファイル一覧を取得
For Each file In folder.Files
WScript.Echo file.Name
Next


60 名前:59:2008/05/27(火) 23:59:39
最終的な目標ですが、フォルダ内にあるファイル全てを順に、あるアプリケーションに
引数として渡して処理を自動化したいと考えてます。よろしくお願いします。

61 名前:デフォルトの名無しさん:2008/05/28(水) 00:08:17
WshShell.Run "cmd /k cscript """ & WScript.ScriptFullName & """ " & args(0) & """",1,False

62 名前:60:2008/05/28(水) 00:17:04
>61
レスありがとうございます。上手く動作することができました。
本当に助かりました!

63 名前:デフォルトの名無しさん:2008/06/01(日) 15:29:48
>>48
typelibrary作って<reference>で参照すれば?

64 名前:デフォルトの名無しさん:2008/06/01(日) 20:28:57
WSHを使って、タスクトレイで動いてるアプリとメッセージのやり取りってできますか?

65 名前:デフォルトの名無しさん:2008/06/01(日) 20:37:43
出来ますよ
そういうCOMを探すか作るかすれば

66 名前:デフォルトの名無しさん:2008/06/02(月) 13:24:17
WSHってメッセージキュー扱えないのか

67 名前:デフォルトの名無しさん:2008/06/02(月) 14:13:29
MSMQ使えるだろ

68 名前:デフォルトの名無しさん:2008/06/02(月) 22:15:19
NGワード
そういうCOM

69 名前:デフォルトの名無しさん:2008/06/02(月) 22:31:06
UWSC使えば?

70 名前:デフォルトの名無しさん:2008/06/03(火) 08:35:11
Office2007+Vistaなんですが、MSEもしくは、それ相当のものってないんですか?見あたりません

71 名前:デフォルトの名無しさん:2008/06/03(火) 09:06:44
>>68
WSHはいわばCOMを使う土台なわけで
COMを使うことを否定したら何にも出来ないぞ

COMを使うこと自体は否定しないが、COMのDL先書いて
そのCOMを使ったコードまで書いてくれなきゃヤダってなら
自分でブログラムを書く人が集まる場であるこの板に来るのが間違い

72 名前:デフォルトの名無しさん:2008/06/03(火) 12:55:18
>>71がこの板に来るのが間違い


73 名前:デフォルトの名無しさん:2008/06/03(火) 19:07:02
>>71
中身がないレスは読む価値もないってだけの話

74 名前:デフォルトの名無しさん:2008/06/03(火) 21:12:29
悔しかったの?

75 名前:デフォルトの名無しさん:2008/06/03(火) 22:58:18
>>71は例の基地外なのか

76 名前:デフォルトの名無しさん:2008/06/04(水) 01:16:04
>>71
中身がないレスしかできないってだけの話


77 名前:デフォルトの名無しさん:2008/06/04(水) 03:22:31
COMでWordファイルに書き出したりするプログラム書いてみたのですが
ログインユーザがAdministrator権限あるときはちゃんと動くのですが
ないときは例外が出るみたいです
Administrator権限がないとCOMでOfficeの*.Applicationにはアクセス出来ないのでしょうか?


78 名前:デフォルトの名無しさん:2008/06/04(水) 07:58:27
>>77
セキュリティオプションの「Visual Basic プロジェクトへのアクセスを信頼する」あたりをチェックすればいけるんじゃないの?
確認してないけど

79 名前:デフォルトの名無しさん:2008/06/05(木) 02:12:27
やってみます
ありがとうございました


80 名前:デフォルトの名無しさん:2008/06/05(木) 03:21:41
>>77
ttp://support.microsoft.com/default.aspx?scid=kb;ja;257757


81 名前:デフォルトの名無しさん:2008/06/05(木) 06:28:49
>>80
>>77 じゃないけど自分も同じような現象で過去あきらめた.
で,リンク先読んでみたいんだけど,いまいちわからなかた.

リンク先で言及されているのは,サーバ内でWordのファイルを
自動生成するというような話だよね.>>77 は普通の
クライアント環境で対話的に使っているのだと思うんだけど.

82 名前:デフォルトの名無しさん:2008/06/05(木) 06:56:29
>>80
何度読んでも眠たくなる文章だ


83 名前:デフォルトの名無しさん:2008/06/11(水) 06:53:26
wshでSQLServer2000と2005のテーブルの内容を取得するのはどうやるんですか?
なるべく高速な方法が良いです。
更新はしないのでSELECTが出来ればいいです。

84 名前:デフォルトの名無しさん:2008/06/11(水) 08:19:08
>>83
ADOを使う
ADODB.Connection とかのキーワードでぐぐってみれ

85 名前:デフォルトの名無しさん:2008/06/11(水) 23:10:26
vbsで、
TEST_PATHに"C:\TEST\*.txt"を入れて以下のように
動かしたら"C:\TEST\*.txtt"ファイルのようなものまで
消えてしまいました。
ワイルドカードを使用して、拡張子txtのみを削除する
方法は無いのでしょうか?

objFSO.DeleteFile TEST_PATH

86 名前:デフォルトの名無しさん:2008/06/11(水) 23:29:46
>>84
Thanks!

87 名前:デフォルトの名無しさん:2008/06/12(木) 00:27:05
>>85
たぶんないと思う。

自分でファイルのリストを取得してから通常の文字列マッチング
で絞り込むくらいしか思い浮かばない。


88 名前:デフォルトの名無しさん:2008/06/12(木) 01:00:09
>>85
ひどい仕様だな

89 名前:デフォルトの名無しさん:2008/06/12(木) 03:25:01
NTFSならレジストリで8.3ファイル名の記録をオフにすれば
そういう挙動が起きなくなるとどこかで見た気がする。

90 名前:デフォルトの名無しさん:2008/06/12(木) 05:03:36
Dim arr()
msgbox Ubound(arr) 'error
ReDim arr(9)

Redimをする前に、arrに値が入っているか
どうかを調べる方法はないでしょうか?

Redimをする前に、Ubound()で調べようとすると
エラー「インデックスが有効範囲にありません」
となります。


91 名前:デフォルトの名無しさん:2008/06/12(木) 13:39:45
if err.description="インデックスが有効範囲にありません" then

92 名前:90:2008/06/12(木) 18:41:03
>>91を参考にして下記でできました。ありがとうございます。

on error Resume Next
WScript.Arguments.Item(0)
if Err.Number <> 0 then msgbox "引数無し"
Err.clear
on error goto 0

93 名前:デフォルトの名無しさん:2008/06/12(木) 22:36:39
if WScript.Arguments.Count = 0 then msgbox "引数無し"

94 名前:90:2008/06/13(金) 01:51:11
>>93 私なりにやったのですが、そのようなコードを書けなかった
です。ありがとうございます。

95 名前:デフォルトの名無しさん:2008/06/17(火) 22:24:32
VBScriptを使って、HTTPステータスコードを取得する方法を探しています。
ある任意のWeb画面に対してスクリプトでリクエストを行い、HTTPステータスコード(200 ok 等)を
取得する方法はありますでしょうか。
どなたかご存知の方がいらっしゃいましたら、ご教授下さい。

96 名前:デフォルトの名無しさん:2008/06/17(火) 22:46:00
>>95
まかせろ!
検索してやった!

ttp://oshiete1.watch.impress.co.jp/qa4108450.html

97 名前:>>95:2008/06/17(火) 22:52:20
>>96
検索ありがとうございます。

確認してみたんですが、この先に紹介してあるサイトはVB?でしょうか。
どうもVBScriptに応用する方法が分かりません。



98 名前:デフォルトの名無しさん:2008/06/17(火) 23:09:41
>>97
・・・まーいーや。

Microsoft.XMLHTTP とかの status プロパティ使えばできるでしょ。

99 名前:>>95:2008/06/18(水) 06:54:28
>>98
有難う御座いました。
勉強不足の為、すぐに理解できませんでしたが
きちんと出来ました。
助かりました。m(_ _)m

100 名前:デフォルトの名無しさん:2008/06/26(木) 18:15:00
処理1
msgbox "AAAA"
処理2


上記を実行し、ウィンドウンがでてきて、
OKボタンを押すと、処理2に移ります。

 OKボタンを押さずとも、処理2に移る方法が
ありませんか? Wait:=Falseみたいな事できま
せんか?

101 名前:デフォルトの名無しさん:2008/06/26(木) 18:45:56
.run "msgbox.vbs"

102 名前:デフォルトの名無しさん:2008/06/26(木) 22:03:00
WSHはマルチスレッドじゃないからね
1プロセス1スレッドで、書かれたことを"順次"実行していくだけで
Megboxを出した状態で他の処理もするなどの"同時"実行は出来ない
やりたければ>>101も書いてるように別プロセスに非同期でMegboxを出させるしか無い

103 名前:100:2008/06/27(金) 12:25:19
>>101 それにします。ありがとうございます。
>>102 マルチスレッドの事はわかりませんが、
「同時にできない」という事だけは覚えておきます。

104 名前:デフォルトの名無しさん:2008/06/27(金) 12:37:02
WSH5.8からは出来るようになるかも

105 名前:デフォルトの名無しさん:2008/06/28(土) 15:11:17
WSHってまだバージョンアップするの?

106 名前:デフォルトの名無しさん:2008/06/28(土) 17:13:30
WSHは滅びんよ、何度でも甦るさ

107 名前:デフォルトの名無しさん:2008/06/28(土) 21:01:14
PowerShell

108 名前:デフォルトの名無しさん:2008/06/29(日) 02:10:47
PSH

109 名前:デフォルトの名無しさん:2008/07/07(月) 23:08:32
VBSで質問です。

hoge.txtが以下の形式であります。

--- hoge.txt --------

foo 001
bar 001

(文字列、ブランク、3桁の数字、改行)
みたいな感じ。

このテキストに記載された文字列と一致する文字列が引数だったら、
同じ文字列の行の数字を+1させたいんです。
たとえば、引数が「foo」だった場合、「foo 002」みたいにしたいんです。

こんな感じの特定行を抜き出してのファイルに記載された文字列の置き換えって出来るんでしょうか?

というか、どんな風に組めばいいか教えてください(泣)


110 名前:デフォルトの名無しさん:2008/07/08(火) 00:55:20

>>109
やりたいのって、マッチした文字列をカウントするようなこと?

ファイルの入出力がOKなら、
一行読んでは、Splitして、文字列と整数の構造体に
放り込む、を繰り返して一度全部構造体に入れる。
CLng CIntでもつかって後ろの要素は整数型変換すりゃいい。
使う構造体はハッシュ(Dictionary)でいいんじゃないかな。
マッチしたら、要素をインクリメント処理するを繰り返し、
終わったらJoinでもつかってファイルに書き出せば?

111 名前:デフォルトの名無しさん:2008/07/08(火) 03:38:20
毎回ファイル全体書き換えていいなら>>110

必要な場所だけ書き換えたいなら
最大999までっていう制限で良い場合は
R/Wでオープンしてseekして書き換え

必要な場所だけ書き換える方針で
最大いくつになるか分からない場合は
999超えたときに末尾に追加行を作って
999-追加なしなら999
999-000なら1000
999-001なら1001
という処理を入れれば良い


112 名前:デフォルトの名無しさん:2008/07/08(火) 13:05:43
COBOLer ですね わかります

113 名前:デフォルトの名無しさん:2008/07/08(火) 17:00:48
吉岡照雄って人のOnErrorResumeNext.VBSの解説テキスト読んでるんだけど(2)の後半がよくわからない
On Error GoTo 0で復帰しちゃったら何事もなく処理が再開されちゃうから
ンなもん実装すんなよ!、おまいらも使うなよ!
って言ってるのかしら

114 名前:デフォルトの名無しさん:2008/07/08(火) 20:40:17
>>92-93

115 名前:デフォルトの名無しさん:2008/07/09(水) 05:33:05
exceptionが無かった頃はそうするしかなかった
いまならtry-catchで済む話

116 名前:デフォルトの名無しさん:2008/07/09(水) 13:04:13
いまでもtry-catchつかえないよ

117 名前:デフォルトの名無しさん:2008/07/09(水) 15:50:29
.NETなら使える

118 名前:デフォルトの名無しさん:2008/07/09(水) 17:37:06
>>117
で?ややこしくならないようにまとめてくれ。

119 名前:デフォルトの名無しさん:2008/07/09(水) 21:20:46
まとめるとJScriptを使えばよい

120 名前:デフォルトの名無しさん:2008/07/09(水) 21:27:22
超シンプルなデータベースを作りたいと思っています
フォルダ内に100のテキストがあったとして その中に a="赤" とか
a="白"と書いてあり それを読み取り 最終的に割合を出すようにしたいのですが
いいサンプルなどないでしょうか?


121 名前:デフォルトの名無しさん:2008/07/09(水) 22:05:46
var fso = new ActiveXObject("Scripting.FileSystemObject");
var Shukei = {};
var Sum = 0;
// カレントフォルダの全ての *.txt ファイルの1行目を読み,Shukeiに集計する
var f = fso.GetFolder(".");
for (var fc = new Enumerator(f.Files); !fc.atEnd(); fc.moveNext()) {
    var file = fc.item();
    if (/\.txt$/.test(file.Name)) {
        var stream = file.OpenAsTextStream();
        var s = stream.ReadLine();
        stream.Close();
        eval(s);
        if (a in Shukei)
            Shukei[a]++;
        else
            Shukei[a] = 1;
        Sum++;
    }
}
// 結果表示
for (var i in Shukei)
    WScript.Echo(i + ": " + (100 * Shukei[i] / Sum) + "%");

122 名前:デフォルトの名無しさん:2008/07/09(水) 22:16:21
サンプルまで作ってもらってありがとうございます
行:1、文字:28、コード:800A0401、ソース:Micosoft VBScriptコンパイルエラー
これがでて試せないんですが何が問題なんでしょうか?

123 名前:デフォルトの名無しさん:2008/07/09(水) 22:25:59
>>122
拡張子は .js です

124 名前:デフォルトの名無しさん:2008/07/09(水) 22:30:24
ありがとうございます vbsだけじゃなくて jsもつかえるんですね


125 名前:デフォルトの名無しさん:2008/07/09(水) 22:32:25
JScriptだから

126 名前:デフォルトの名無しさん:2008/07/09(水) 23:56:31
>>113
On Error Goto ErrLabel
エラー
ErrLabel:
msgbox "キャッチ"

これをやってみたけど、ダメだった。VBAならできた。

127 名前:デフォルトの名無しさん:2008/07/10(木) 15:32:51
helpよめ

128 名前:デフォルトの名無しさん:2008/07/13(日) 13:00:54
パスワード入力の時どうしてる?

129 名前:デフォルトの名無しさん:2008/07/13(日) 17:15:30
バッチとか、シェルとかPHPしか経験無いんですが、
Wshってマスターするのに、どのくらいの時間が掛かりますか?

130 名前:デフォルトの名無しさん:2008/07/13(日) 17:29:40
マスターってなんだよ
と、突っ込まざるを得ない

131 名前:デフォルトの名無しさん:2008/07/13(日) 17:43:18
プログラミング言語をマスターしようといっている時点で終わってる。

132 名前:デフォルトの名無しさん:2008/07/13(日) 17:47:23
ライブラリの仕様とか、用意されてるものとか、その開発環境で実現できることが
さっと頭に浮かぶほうが、「マスターした」に近いよね。

133 名前:デフォルトの名無しさん:2008/07/13(日) 17:49:39
しかも聞いてるのが時間って・・・

134 名前:129:2008/07/13(日) 19:33:27
>>132
そういうことですね。
ある程度バッチで出来ちゃうから
なかなかwshやろうと思わないんだよね

135 名前:デフォルトの名無しさん:2008/07/13(日) 19:59:02
まぁ、WSHはCOM使うのが得意で、VBかJSで書きますってだけで、
そのCOMと同じ機能を持ったCLIプログラムが最初から用意されて、
それに精通しているなら、それらを組み合わせてバッチでやろうと思うよね。

でもWSHのほうが、多少細かいハンドルできるから、覚えたいという気持ちはわかる。
ちょっとしたファイルの入出力とか、シェル周り、FileSystemObject周りは便利。

136 名前:デフォルトの名無しさん:2008/07/13(日) 20:36:51
シェル周り便利なの?

137 名前:デフォルトの名無しさん:2008/07/13(日) 20:48:06
>>136
FSOで一通りのファイル操作はできるし、それ以外はShell.Runとかでいいからという発想での話。

138 名前:デフォルトの名無しさん:2008/07/13(日) 20:51:41
コマンドプロンプトが一瞬表示されてしまうと嫌がられる

139 名前:デフォルトの名無しさん:2008/07/13(日) 20:57:08
>>138
runの第二引数に0じゃだめだっけ?

140 名前:デフォルトの名無しさん:2008/07/14(月) 09:18:44
>>135
VB≠VBS

141 名前:デフォルトの名無しさん:2008/07/14(月) 09:33:15
>>140
どゆこと?

142 名前:デフォルトの名無しさん:2008/07/14(月) 21:05:26
>>141
VBSはVBライクで、VBとは違うって言いたいだけなのかな?

143 名前:デフォルトの名無しさん:2008/07/14(月) 22:35:20
WSH スレに VB はいらんでしょ

ってことじゃないかな。

まあ、>>135 の勘違いか typo なんだろうけど、ちいせい奴としか思えない >>140

144 名前:デフォルトの名無しさん:2008/07/14(月) 22:54:40
>>128
htmlでフォームを作って、パスワード入力欄に入力してもらう。
Enterを押したら、submitボタンが反応して、ページを読み込もうとするから、それを検出して・・・

って、もっといい方法があると思う

>>138
表示されないようにコマンドから返ってくる文字列を取得する
妙に複雑なコードを見たことがあるな

145 名前:デフォルトの名無しさん:2008/07/14(月) 23:24:12
>>138
タスク
WScript.exe //E:JScript hoge.CMD

hoge.CMD
@if(0==0)WScript.Quit(new ActiveXObject('WScript.Shell').Run('"'+WScript.ScriptFullName+'"',0,true));@else
REM バッチファイルだよーん
:@end


146 名前:デフォルトの名無しさん:2008/07/14(月) 23:31:47
>>128
Hey, Scripting Guy!
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/feb05/hey0204.mspx


147 名前:デフォルトの名無しさん:2008/07/17(木) 17:30:06
VBScriptを書く時、みなさんは、どんなエディターを
使っていますか?

148 名前:デフォルトの名無しさん:2008/07/17(木) 21:20:28
Excel

149 名前:デフォルトの名無しさん:2008/07/17(木) 21:45:51
男は黙ってメモ帳。

150 名前:デフォルトの名無しさん:2008/07/17(木) 21:53:42
男じゃない場合↓

151 名前:デフォルトの名無しさん:2008/07/17(木) 22:04:04
Microsoft Visual Web Developer 2008 Express Edition

152 名前:デフォルトの名無しさん:2008/07/17(木) 22:11:39
サクラ

153 名前:デフォルトの名無しさん:2008/07/18(金) 01:35:27
コントロールパネルの「コンポーネントの追加と削除」一覧と
インストールの状態の有無を出力したいと考えているのですが
WSHやWMIで可能でしょうか?

154 名前:デフォルトの名無しさん:2008/07/18(金) 13:07:01
まぁ、レジストリ管理されてるものっぽいし、
レジストリ操作か、WMIでかのうじゃないの?

155 名前:デフォルトの名無しさん:2008/07/18(金) 17:06:08
でもまあ、具体的なやり方は自分で調べろってことで

156 名前:デフォルトの名無しさん:2008/07/18(金) 17:57:35
http://www.microsoft.com/japan/technet/scriptcenter/scripts/apps/user/usapvb07.mspx

157 名前:マイク ◆yrBrqfF1Ew :2008/07/19(土) 07:10:06
>>147
ずっとterapadを使ってる。
テキストファイルはほとんどterapadとxyzzyとnotepadで開いてる。

158 名前:デフォルトの名無しさん:2008/07/22(火) 01:06:42
フォーカスされたチェックボックスをオンに
する方法がありますか? お願いします。

obj.SendKeys " "
上記でスペースを押せば、オンオフが切り替わります。
しかし、切り替えたいのでなくて、オンにしたいのです。

159 名前:デフォルトの名無しさん:2008/07/22(火) 02:57:56
どんな状況で、何をやっているのか想像つかね。

160 名前:デフォルトの名無しさん:2008/07/22(火) 14:27:59
obj.SendKeys "On"


161 名前:デフォルトの名無しさん:2008/07/22(火) 17:58:33
>>160
つまらん。

162 名前:デフォルトの名無しさん:2008/07/23(水) 01:56:06
シリアルポートに文字出力して、その応答を受け取るにはどうすれば
出力だけならCreateTextFile → WriteLineでできたっぽいですが、ReadLineすると怒られます

163 名前:デフォルトの名無しさん:2008/07/23(水) 23:30:55
>>162
できたって、え?

164 名前:デフォルトの名無しさん:2008/07/24(木) 05:08:00
指定位置、指定サイズ、指定表示状態(アイコン、詳細表示など)でフォルダウィンドウ(エクスプローラー)を起動できちゃったりしますか?


165 名前:デフォルトの名無しさん:2008/07/24(木) 08:44:21
出来ちゃいますよ
アレ使えば

166 名前:デフォルトの名無しさん:2008/07/24(木) 15:17:40
Shell.Explorer
System.Object
など、使い道が無さそうなProgIDがレジストリにいっぱいあるのはなぜ?


167 名前:デフォルトの名無しさん:2008/07/24(木) 18:35:25 ?2BP(802)
>>165
ヤダァ♪
もう、えっちぃ♥

168 名前:デフォルトの名無しさん:2008/07/24(木) 23:48:00
COmってリファレンスないもの、多いよな

169 名前:デフォルトの名無しさん:2008/07/25(金) 00:08:03
アレってなあに?

170 名前:デフォルトの名無しさん:2008/07/25(金) 00:12:34
>>166
System.Objectは.NET Frameworkのもの。
確かにWSH (COM)ではこれだけあっても役立つとは思えないけど。

171 名前:デフォルトの名無しさん:2008/07/26(土) 16:23:19
set x=createobject("explorer.application")
x.top=100
x.left=100
x.visible=true
だろ

172 名前:デフォルトの名無しさん:2008/07/26(土) 22:07:11
実行したら

ActiveXコンポーネントはオブジェクトを作成できません:'explorer.application'

って出た

173 名前:デフォルトの名無しさん:2008/07/27(日) 00:24:26
C08AFD90-F2A1-11D1-8455-00A0C91F3880
にprogidを登録しろ


174 名前:デフォルトの名無しさん:2008/07/27(日) 00:27:13
internetをつけてみろ

175 名前:デフォルトの名無しさん:2008/07/27(日) 00:32:51
それだとIEになるぞなもし

176 名前:デフォルトの名無しさん:2008/07/27(日) 15:29:30
レジストリに
C08AFD90-F2A1-11D1-8455-00A0C91F3880
がないのに、使えるのはなぜ?

177 名前:デフォルトの名無しさん:2008/07/28(月) 17:16:08
なぜWSHでwindowsを終了させられないのですか?

178 名前:デフォルトの名無しさん:2008/07/28(月) 21:00:13
WSHスクリプトを起動するより、電源ボタンを押すほうが簡単だからかも?

179 名前:デフォルトの名無しさん:2008/07/28(月) 21:05:03
>>177
出来るけど、なにか?

180 名前:デフォルトの名無しさん:2008/07/28(月) 23:21:04
WMI使ってできるよねぇ。

181 名前:デフォルトの名無しさん:2008/07/28(月) 23:50:19
WScript.Echo("電源ボタンを押してください");

182 名前:デフォルトの名無しさん:2008/07/29(火) 19:35:52
createobject("shell.application").shutdown

183 名前:デフォルトの名無しさん:2008/08/01(金) 10:37:00
フォームの自動入力させているんだけど、
IEじゃなくて、IEコンポーネントつかったブラウザとかソフトに入力する方法って無いですかね。


184 名前:デフォルトの名無しさん:2008/08/01(金) 11:17:45
ありますよ。

因みに「どうやるの?」とか「具体的なやり方は?」とか、ネチっこく聞いてこないでで。
ただでさえ暑いんだから。


185 名前:デフォルトの名無しさん:2008/08/01(金) 11:24:00
ヒントだけでも教えてもらえないでしょうか?

186 名前:デフォルトの名無しさん:2008/08/01(金) 20:42:35 ?2BP(802)
>>184
キサマは湘南海岸でプログラミングしてるのかと、小1時間…

187 名前:デフォルトの名無しさん:2008/08/01(金) 21:28:43
set o2 = createobject("vb2ch.clsThread")
o2.sage

188 名前:デフォルトの名無しさん:2008/08/01(金) 22:03:23
if nothing is nothing then msgbox (nothing is nothing)

189 名前:デフォルトの名無しさん:2008/08/01(金) 23:03:27
>>183
EnumWindowsしてWindowの中にInternet_Explorer_Serverクラスがあるか探せばいいと思う

190 名前:デフォルトの名無しさん:2008/08/03(日) 03:14:00



191 名前:デフォルトの名無しさん:2008/08/03(日) 03:39:35
For Each ObjFile in CreateObject("Scripting.FileSystemObject").getFolder(CreateObject("Wscript.Shell").CurrentDirectory).Files
  ObjFile.name = "new" & ObjFile.name
  msgbox ObjFile.name
Next

フォルダに2つのファイルがあり、上記を実行します。
Forで2ループしてほしいのですが、4ループします。
なぜですか?

192 名前:デフォルトの名無しさん:2008/08/03(日) 03:55:42
ループの中でリネームするから

193 名前:デフォルトの名無しさん:2008/08/03(日) 08:07:09
>>191
普通に2回しか回らないぞ (@Windows2000SP4)

194 名前:デフォルトの名無しさん:2008/08/03(日) 14:43:26
a ->newa
b ->newb
newa -> newnewa
newb -> newnewb


195 名前:デフォルトの名無しさん:2008/08/03(日) 16:47:09
それが起るなら、無限ループになりそうなもんだが。

196 名前:デフォルトの名無しさん:2008/08/03(日) 22:38:20
隠しファイルが2つあるとか

197 名前:デフォルトの名無しさん:2008/08/03(日) 23:19:39
ファイル名によるんじゃないの?
ファイルのコレクションを得る時内部でどういったソートしてんのか知らんけど。
リネーム後のファイルが、処理済ファイルと未処理ファイルのどちらに振り分けられるかの違い。

経験則でいうと、ファイルコレクションに対してリネーム処理をするといったような場合は
一旦全ファイル名の配列を得るとかして、
その配列に対して、即ち明示的にファイル名を指定してループ処理しなければおかしくなる。

for ... in でコレクションからひとつひとつファイルを取り出しつつリネームしていく、
といったオンザフライな処理では恐らく望んだ結果は得られない。
リネームすることで大元のコレクションの内容がリアルタイムで変わっちゃう感じ。

泥臭いけど俺はいつもこうしてる。

var f1 = objFSO.GetFolder(folderspec);
var f2 = new Enumerator(f1.Files);
var arr = new Array();
for (; !f2.atEnd(); f2.moveNext()) arr.push(f2.item().Name);
var f, i;
for (i = 0; i < arr.length; i++) {
    f = objFSO.GetFile(objFSO.BuildPath(folderspec, arr[i]));
    f.Name = "new" + f.Name;
}

198 名前:デフォルトの名無しさん:2008/08/04(月) 05:15:53
自分もそこでよく悩んだな
ループ中でリネームするとリネーム後のファイルがFilesコレクションに追加されてそのファイルも処理対象になっちゃうんだよな
そして延々と"new"が付加されていく

それ理解するのに時間かかった

199 名前:191:2008/08/04(月) 05:24:31
>>192 たしかにリネームしなければ正常です。
>>193-195 回る数は2,3,4と不定ですが、無限はないです。
>>196 隠しファイルはないです。

>>197 
>コレクションの内容がリアルタイムで変わっちゃう感じ

特にこの一言でイメージできて分った気がします。
なので頑張ったのですが、どうしてもコードが読めません。
>>197をVBScriptにしてくれないでしょうか?

200 名前:デフォルトの名無しさん:2008/08/04(月) 05:47:12
ええええ!?

201 名前:デフォルトの名無しさん:2008/08/04(月) 07:07:03
うちも普通に2回しか回らないよ、XP SP3

202 名前:デフォルトの名無しさん:2008/08/04(月) 08:10:08
>>199
コード読めなくても、その上で文章説明してるんだから
その通りにVBSで書けば良いだけだろ

ここはPC初心者板ではなくプログラム技術板なので
ここに来る以上、そのくらいは自分でやれなくちゃね

203 名前:デフォルトの名無しさん:2008/08/04(月) 11:03:45
「PC初心者板」という言葉を持ち出してくる奴は
この板で有名な基地外の特徴なので
構わなくていいですよ。

204 名前:デフォルトの名無しさん:2008/08/04(月) 11:04:03
普通に2回しか回らないね。(XP SP3)

2回以上回ってる人はどんな環境でやってるの?

205 名前:デフォルトの名無しさん:2008/08/04(月) 11:11:10
プログラミングに関しては全く初心者なんで、変なこと言ってるかも知れないけど
For Each ObjFile in CreateObject("Scripting.FileSystemObject").getFolder(CreateObject("Wscript.Shell").CurrentDirectory).Files
これって毎回オブジェクト作ってるわけじゃなくて、最初の1回作ったときに
コレクションは出揃ってメモリに書き込まれるというわけじゃないの?

2回以上回る時は内容にアクセスするたびにオブジェクトを作り直してるわけ?

206 名前:デフォルトの名無しさん:2008/08/04(月) 15:00:36
For Each ObjFile in CreateObject("Scripting.FileSystemObject").getFolder(CreateObject("Wscript.Shell").CurrentDirectory).Files
If Left(ObjFile.name,3)<>"new" Then ObjFile.name = "new" & ObjFile.name
  msgbox ObjFile.name
Next
で、どう?

207 名前:デフォルトの名無しさん:2008/08/04(月) 15:03:32
For Each ObjFile in CreateObject("Scripting.FileSystemObject").getFolder(".").Files


208 名前:デフォルトの名無しさん:2008/08/04(月) 15:12:10
>2回以上回る時は内容にアクセスするたびにオブジェクトを作り直してるわけ?
作り「直して」るわけ、ではなかろう

209 名前:199:2008/08/04(月) 16:48:49
>>202の言う通りですね。
>>199レスでのコード依頼は、躊躇しながらも書いてしまったのですが、
やはり場違いなので取り消します。

さまざまなレスありがとうございます。

210 名前:デフォルトの名無しさん:2008/08/04(月) 18:34:22
環境書いておくれよ

211 名前:デフォルトの名無しさん:2008/08/04(月) 21:27:00
XPSP2/WSH5.7

上の簡単なリネームで試してみたら2回だったけど
ちょっと前に書いた自分のごちゃごちゃしたリネームのスクリプトだと
なんかリネームしたのが追加された覚えがあるな…
特定のメソッドを使ったりとかでコレクションへの追加が発動するんかな
そのスクリプトもどこかいったから確かめようがないな、ごめんよ

212 名前:デフォルトの名無しさん:2008/08/04(月) 22:21:43
For Each ObjFile in Folder.Files
  ObjFile.name = "new" & ObjFile.name
  msgbox Folder.Files.Count
Next
してみ

213 名前:デフォルトの名無しさん:2008/08/04(月) 22:42:35
VBscriptでApplication型のオブジェクトの宣言ってもしかして出来ない?

214 名前:デフォルトの名無しさん:2008/08/04(月) 23:01:07
>>212
普通に2が2回表示されたよ
XP SP3

215 名前:デフォルトの名無しさん:2008/08/04(月) 23:10:30
>>191
Set Files = CreateObject("Scripting.FileSystemObject").getFolder(CreateObject("Wscript.Shell").CurrentDirectory).Files
For Each File In Files
 File.Name = "new" & File.Name
For Each File1 In Files
  WScript.Echo File1.Name
 Next
Next

ってやると、Files の内容はリアルタイムに変わってる。
でも、外側のループは正常に2回しか回らない。

ファイルをコピーするようにすると、Files はちゃんと増えるけど、
それでも外側のループは最初にあったファイルしか対象にしない。

なので、For Each の In に続く部分は一回しか評価してないみたい。

じゃあと言うことで、ループ中にファイルを削除すると今度は削除
した奴はそ知らぬ顔でスキップする。

う〜む、どうやっても >>191 の4ループは再現しない。

とりあえず、環境と再現した時のファイル名を書いてくれないか。

>>213
VBScript ではそもそも型付の宣言なんかできません。

216 名前:デフォルトの名無しさん:2008/08/04(月) 23:14:33
>>213
createobject("Excel.Application")
createobject("Word.Application")
createobject("Autocad.Application")


217 名前:197:2008/08/04(月) 23:20:45
>>212
リネームすることでコレクション内のポインタ(moveNext() で動くやつ)の位置に
(恐らく)不整合が出るだけであって、ファイル数自体が増えるわけではないよ。

「(元のファイル名) -> (リネーム後のファイル名) (コレクションの要素数)」という
フォーマットで結果を吐き出すスクリプト。(当方環境:Me/WSH5.6)

var targetDir = "C:\\TEST"; // '1.TXT'、'2.TXT' の2枚のファイルが入っている。
var objFSO = WScript.CreateObject("Scripting.FileSystemObject");
var fo = objFSO.GetFolder(targetDir);
var fc = fo.Files;
var fe = new Enumerator(fc);
var filename = "";
var arr = new Array();
for (; !fe.atEnd(); fe.moveNext()) {
    filename = fe.item().Name;
    fe.item().Name = "_" + fe.item().Name; ... (a)
    //fe.item().Name = "~" + fe.item().Name; ... (b)
    arr.push(filename + " -> " + fe.item().Name + " (" + fc.Count + ")");
}
WScript.Echo(arr.join("\n"));

(「改行が多い」と怒られたので結果は次)

218 名前:197:2008/08/04(月) 23:21:34
結果:
(a)
1.TXT -> _1.TXT (2)
2.TXT -> _2.TXT (2)
_1.TXT -> __1.TXT (2)

(b)
1.TXT -> ~1.TXT (2)
2.TXT -> ~2.TXT (2)
~1.TXT -> ~~1.TXT (2)
~2.TXT -> ~~2.TXT (2)
~~2.TXT -> ~~~2.TXT (2)

219 名前:デフォルトの名無しさん:2008/08/04(月) 23:26:39
varってみるとVARIANT思い出すよ・・・orz

220 名前:197:2008/08/04(月) 23:27:50
×fe.item().Name = "_" + fe.item().Name; ... (a)
×//fe.item().Name = "~" + fe.item().Name; ... (b)

○fe.item().Name = "_" + fe.item().Name; // ... (a)
○//fe.item().Name = "~" + fe.item().Name; // ... (b)

行末、コメントアウトするの忘れました。

221 名前:197:2008/08/04(月) 23:42:35
他にもいろいろとファイル名とプレフィックスを変えて試してみたけど、
はっきり言って予測不能な振る舞いをします。

今のところ、初期条件(ファイル名とプレフィックス)が同じであれば
何度試行しても結果が再現されている感じです。

222 名前:197:2008/08/05(火) 00:23:27
今回はリネーム作業でしたが、例えば Attributes プロパティを変更する処理では
このような問題は発生しませんでした。

223 名前:デフォルトの名無しさん:2008/08/05(火) 00:31:31
それって、予測不能って言わないよな

224 名前:デフォルトの名無しさん:2008/08/05(火) 00:38:51
そもそも、JScript と vbs じゃ処理が違って当たり前だと思うが。

225 名前:デフォルトの名無しさん:2008/08/05(火) 00:52:18
JScriptとVBScriptの処理の違いなんて今誰も問題にしていないが

226 名前:デフォルトの名無しさん:2008/08/05(火) 01:05:26
jsとvbsでは結果が違うぞっつー話じゃなくて
jsにしろvbsにしろコレクションのリネーム処理で
おかしなことが起こるぞっつー話だ罠

227 名前:デフォルトの名無しさん:2008/08/05(火) 06:52:54
>>217-218
XPじゃ再現しないなー

(a)
1.TXT -> _1.TXT (2)
2.TXT -> _2.TXT (2)

(b)
1.TXT -> ~1.TXT (2)
2.TXT -> ~2.TXT (2)

9xかFATに原因があるって事なのかな

228 名前:デフォルトの名無しさん:2008/08/05(火) 08:32:51
理屈が分からんと気味悪いね。
これって有名な不具合なんだろうか。
NT系だと絶対に大丈夫なのかな?

229 名前:デフォルトの名無しさん:2008/08/05(火) 20:21:32
WSHとは関係ないけど、Win32APIのFindFirstFileでも同様なことが起こったことがある。
そのときも環境によっておこったりおこらなかったりしたんだが、
同じWin2000でFAT32のドライブとNTFSでFAT32の方だけリネームされた物も引っかかった。
USBメモリ(FAT)でもおこったので、フォーマットの仕様かファイルシステムの問題なのかは
分からないが、とりあえず重複することを前提にしてからそのときは対策した。

230 名前:デフォルトの名無しさん:2008/08/05(火) 21:43:30
FATかと思ってフロッピー(USB接続)にファイル置いて>>217を何回かやってみたら
FAT→VFATになるタイミングで発生した!XP SP3

11111111.TXT -> _11111111.TXT (2)
22222222.TXT -> _22222222.TXT (2)
_11111111.TXT -> __11111111.TXT (2)
_22222222.TXT -> __22222222.TXT (2)
__11111111.TXT -> ___11111111.TXT (2)
__22222222.TXT -> ___22222222.TXT (2)

FAT→FATやVFAT→VFATだと発生しなかった。
でも他の環境では再現しないとか普通にありそうだな・・・。

231 名前:デフォルトの名無しさん:2008/08/06(水) 00:16:15
>>229
FindNextFile の説明にこんな記述がある。

The order in which this function returns the file names is dependent
on the file system type.
With the NTFS file system and CDFS file systems, the names are usually
returned in alphabetical order.
With FAT file systems, the names are usually returned in the order
the files were written to the disk, which may or may not be in alphabetical order.
However, as stated previously, these behaviors are not guaranteed.

簡単に言うと、

NTFS や CDFS だと大抵アルファベット順になるけど、FAT は書いた順になるよ。
でも、保証なんてしないからね。

と言うことなので、ここら辺の動作がファイルシステムで違うのは仕様と言うことらしい。

232 名前:デフォルトの名無しさん:2008/08/06(水) 00:56:08
順番が違うだけなら仕様の一言で納得するけど、
例のリネームし過ぎ現象は仕様としては到底受け容れ難いな。
もはや不具合だ。

そもそもリネームでタイムスタンプは更新されないけどな。
ディレクトリエントリは書き換えるだろうけど。

233 名前:デフォルトの名無しさん:2008/08/06(水) 01:14:44
やっぱり一旦配列に書き出すなりした方が無難ってことすかね
めんどいなぁ

234 名前:デフォルトの名無しさん:2008/08/06(水) 01:24:00
>>206にしとけ

235 名前:デフォルトの名無しさん:2008/08/06(水) 01:24:54
>>232-233
フォルダの内容を取得中にフォルダの中身変えたら取得内容を
保証できないのはある程度理解できる。

システム側で保持しておくと言う方法もあるけど、スゲーたく
さんファイルがあるフォルダの最初の数個を取得したい時に
全部のファイル名を取得されるまで Folder.Files が返ってこ
ないと言うのもちょっと困ったもんだと思う。

236 名前:デフォルトの名無しさん:2008/08/06(水) 01:27:53
全然一般性ないじゃん。

第一オリジナルファイル名が「new」で始まらない保証がない。

237 名前:236:2008/08/06(水) 01:28:46
>>234宛て、な。

238 名前:デフォルトの名無しさん:2008/08/06(水) 01:30:46
>>206=>>234 ダメグラマの典型だろ。

239 名前:デフォルトの名無しさん:2008/08/06(水) 01:38:51
一般性が必要か?

240 名前:デフォルトの名無しさん:2008/08/06(水) 01:41:58
一般性のある回避策(配列に書き出す)が提示されているのに
「運がよければ通用するかもしれない>>206の方法」に拘泥する理由は?

241 名前:デフォルトの名無しさん:2008/08/06(水) 01:49:05
質問者の技術力

242 名前:デフォルトの名無しさん:2008/08/06(水) 01:50:57
一般性の有る方法をコーディングするのに
多大なコストがかかるというのなら
とりあえず今だけ通用すればいいという
一般性の無いその場凌ぎな方法を採るのも
場合によっちゃアリだが
今の場合大してコストもかからないからな

243 名前:デフォルトの名無しさん:2008/08/06(水) 01:52:27
>>199

244 名前:デフォルトの名無しさん:2008/08/06(水) 02:37:31
普通はクラスライブラリからごりごり作っていくもんなの?
俺はコスト度外視日曜な人だから作ってる過程でライブラリが出来ていくって感じなんだけど。
日曜な人だからライセンス度外視で使えるライブラリは使うし。

245 名前:デフォルトの名無しさん:2008/08/06(水) 21:31:01
趣味なら何でもアリ、好きなようにやればよろし。

仕事なら、職場やプロジェクトの方針に従えばよろし。

246 名前:デフォルトの名無しさん:2008/08/06(水) 22:12:15
WSHのプロジェクトw

247 名前:デフォルトの名無しさん:2008/08/06(水) 22:46:37
プロジェクトの成果物が WSH オンリーと言うのは見たことないけど、
一部の成果物が WSH と言うのなら見たことあるぞ。

248 名前:デフォルトの名無しさん:2008/08/06(水) 23:37:46
Set ArrayList=CreateObject("System.Collections.ArrayList")
For Each ObjFile in CreateObject("Scripting.FileSystemObject").getFolder(".").Files
ArrayList.Add ObjFile
Next
For Each ObjFile in ArrayList
ObjFile.name = "new" & ObjFile.name
Next


249 名前:デフォルトの名無しさん:2008/08/07(木) 02:00:25
System.Collections.ArrayListってなんぞな?
どとねととか言うヤツ?
検索したら一部をvbsでも利用できるのがあるのかぁ


250 名前:デフォルトの名無しさん:2008/08/07(木) 02:27:19
vbsで.NETFrameworkを利用できるらしいけど
使えるってこととArrayListの例がちょこっとあるだけで
リファレンス的なものがみつからないんだよなぁ

251 名前:デフォルトの名無しさん:2008/08/07(木) 05:31:04
>>250
.NET Frameworkが使えるというよりも、特定の条件を満たしたCOMを
CreateObjectで使えるってだけだから、.NET Framework以外のCOMも
使える物があるし、.NET FrameworkでCOMがHKEY_CLASS_ROOTに
登録されていても使えない物もある。
WSHから扱えるクラスの網羅的な資料が提供されないままPowerShellが
出てきたってことは、MSとしてはPowerShellを使ってほしいんだろ。

252 名前:デフォルトの名無しさん:2008/08/07(木) 10:03:48
便利そうなのをちょっと使えるってだけっぽいね。
中途半端な対応は混乱するだけなのに。。。

PowerShellって現在の環境に導入するには
別途インストールしなければならないから導入しづらいんだよな。

253 名前:デフォルトの名無しさん:2008/08/07(木) 12:32:46
同じ高さにしてほしいな、WSHとPS

254 名前:デフォルトの名無しさん:2008/08/07(木) 18:00:21
vbsでSystem.Collections.ArrayListを使えば自分でせこせこ自作ソートを記述しなくてもいいのか
自分でソート書くのが面倒でjsを使うようになったらjsのオブジェクトがいじりやすくて慣れちゃったよ

255 名前:デフォルトの名無しさん:2008/08/07(木) 19:13:52
JScriptの配列は遅すぎて泣けるけどie8で速くなってる?

256 名前:デフォルトの名無しさん:2008/08/07(木) 22:43:21
>>255
会社のマシンに IE8 を試しに入れてるんだが、
JScript のエンジンも更新されてるんだろうか?

257 名前:デフォルトの名無しさん:2008/08/08(金) 02:39:33
そういう話は一応ある。
http://pc11.2ch.net/test/read.cgi/win/1211336412/206-210
http://www.google.com/search?q=cache:http://pc11.2ch.net/test/read.cgi/win/1211336412/206-210
http://www.google.co.jp/search?hl=ja&q=ie8+jscript.dll

258 名前:デフォルトの名無しさん:2008/08/08(金) 21:36:53
すんません、質問です。

スクロールキーがオンの場合、あるキーを入力するスクリプトを組みたいんですが、
オンかオフかWSH上で判断できますか?

259 名前:デフォルトの名無しさん:2008/08/08(金) 22:15:33
WSH上で判断することは出来るけど
WSHで判断することは出来ない

つまりCOMを作るか探すかしろってことだ
まぁがんがれ

260 名前:デフォルトの名無しさん:2008/08/08(金) 22:55:48
activex.dllはvb.net expressで作ればいいよ

261 名前:258:2008/08/08(金) 23:56:28
>>256, 260
どうもありがと。がんばってみます。。。

262 名前:デフォルトの名無しさん:2008/08/09(土) 01:03:17
がんばれ。google先生に聞けば1時間でできると思うぞ。

263 名前:デフォルトの名無しさん:2008/08/09(土) 18:45:18
System.Collections.ArrayList
はJoinできない?
xJoin(ArrayList)
xArrayList.Join


264 名前:デフォルトの名無しさん:2008/08/09(土) 19:24:01
.NET Framework使うならMSDNライブラリくらい参照しようよ。

265 名前:デフォルトの名無しさん:2008/08/09(土) 22:48:07
※MSDNライビュラリは有償です

266 名前:デフォルトの名無しさん:2008/08/09(土) 22:50:57
>>265
 |
 |
 |
 し


267 名前:デフォルトの名無しさん:2008/08/10(日) 12:32:36
>>263
Join出来るよ

268 名前:デフォルトの名無しさん:2008/08/10(日) 14:01:35
出来た!

269 名前:デフォルトの名無しさん:2008/08/10(日) 21:34:48
System.Collections.ArrayList
のソートで比較関数をVBScriptで作れない?
ArrayList.Sort GetRef("compare")
はダメだった

270 名前:デフォルトの名無しさん:2008/08/11(月) 05:34:14
vbsの変数名の最後につける型を指定するやつ(&H20&の末尾の&とか)の種類の一覧がどこにあるか知りませんか?
どういう単語で検索すればいいのか漠然としすぎて分かりません

あとこのURLの「[地域のプロパティ] の設定値」ってなんですか?
http://msdn.microsoft.com/ja-jp/library/cc392243.aspx


271 名前:デフォルトの名無しさん:2008/08/11(月) 14:58:31
>vbsの変数名の最後につける型を指定するやつ
vbsにはない。すれっち

272 名前:デフォルトの名無しさん:2008/08/11(月) 15:06:32
>型を指定するやつ
型を指定する文字

273 名前:デフォルトの名無しさん:2008/08/11(月) 20:55:23
最後じゃなくって最初じゃないの?

274 名前:デフォルトの名無しさん:2008/08/11(月) 21:25:08
>>270
前者は271も言ってる通りVBSには明示的な型というもの自体が存在しないが
VBやVBAに関してなら「型宣言文字」でググれ

後者は、例えば数値の表示形式で、3桁カンマ区切りをするか否かというオプションの場合
vbTrue→地域のプロパティの設定値に関係なく区切る(123,456,789.00)
vbFalse→地域のプロパティの設定値に関係なく区切らない(123456789.00)
vbUseDefault→地域のプロパティの設定値が「区切り有り」なら区切る、「区切り無し」なら区切らない

>>273
最初に付けるのは型を「指定」しているのではなく、型を「任意に明示」してるだけ
「指定」ではなく、しかも「任意」なので
Dim intHOGE As String
なんてことも出来る
これは「プレフィックス」で、上記intはハンガリアン記法での一般的なInteger型のプレフィックス
つまりInteger型のプレフィックスを付けておきながらString型を指定することが出来るわけだ

275 名前:デフォルトの名無しさん:2008/08/11(月) 21:41:43
>>274
ごめ ちゃんと読んでなかったわ

276 名前:デフォルトの名無しさん:2008/08/13(水) 18:29:26
CIM_DataFileクラスを用いて、ファイルの各種情報を取得したいのですが、
「説明」のプロパティを取得するときに指定するプロパティ名が分かりません。

具体的には、例えばソリティア(C:\WINDOWS\system32\sol.exe)を
右クリックして表示されるプロパティの「バージョン情報」タブの2行目に
「説明:Solitaire Game Applet」と表示されますが、この値を取得したいのです。

ファイルバージョンなどは、「Version」プロパティで取得できております。
ご存知の方、ご教示お願い致します。

277 名前:デフォルトの名無しさん:2008/08/14(木) 02:40:13
プレフィクスだったらMSDNにのってるよ
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1041\vbcon98.chm::/Html/vbconconstantvariablenamingconventions.htm


278 名前:デフォルトの名無しさん:2008/08/14(木) 04:43:23
>>277
そんな話は誰もしてないw

279 名前:デフォルトの名無しさん:2008/08/14(木) 10:27:49
>>278
>>270
よく読め文盲

280 名前:デフォルトの名無しさん:2008/08/14(木) 13:34:45
.NETのコンストラクタやスタティックメソッドは呼べないのか

281 名前:デフォルトの名無しさん:2008/08/14(木) 13:57:47
ActiveXPosh使えばー?

282 名前:デフォルトの名無しさん:2008/08/15(金) 19:25:16
>>276
確かにMSDNとかにはプロパティ名書いて無いね。
どうりでこのスレの住人でも即答できない訳だ。

283 名前:デフォルトの名無しさん:2008/08/15(金) 22:01:03
ggle VersionInfo Description

284 名前:デフォルトの名無しさん:2008/08/15(金) 22:03:50
つfilever.exe

285 名前:デフォルトの名無しさん:2008/08/15(金) 22:09:36
shell.applicationのextendedpropertyで取れるお

286 名前:デフォルトの名無しさん:2008/08/25(月) 19:37:01
割り算をして小数点が出てきたときに
繰り上げるにはどうしたらいいんでしょうか?
x = 100/3
だとxが33.33333となってなるところを
繰上げて34になるようにしたいのですが

287 名前:デフォルトの名無しさん:2008/08/25(月) 20:50:45
>>286
xと、xを切り捨てた値を比較して、xが小さければ1を足す

288 名前:デフォルトの名無しさん:2008/08/25(月) 21:06:25
JScript で言うと、xと xを繰り上げた値を比較して、xが小さければ繰り上げる。

289 名前:デフォルトの名無しさん:2008/08/25(月) 21:34:16
-Int(-x)

290 名前:デフォルトの名無しさん:2008/08/25(月) 23:05:35
Math.ceil

291 名前:デフォルトの名無しさん:2008/08/27(水) 11:54:53
>>286
0.9を足して切り捨て。

292 名前:デフォルトの名無しさん:2008/08/27(水) 11:55:54
ああ、四捨五入と違って33.01も切り上げするならダメか。

293 名前:デフォルトの名無しさん:2008/08/27(水) 12:16:41
VBScriptでウェブページを取得したいのですが
mixiのような感じで、ユーザー名やパスワードが必要な場合はどうすればいいんでしょうか?
いろいろググってみたのですが、検索ワードが悪いの見つける事が出来ませんでした・・・

294 名前:デフォルトの名無しさん:2008/08/27(水) 13:42:12
無理

295 名前:デフォルトの名無しさん:2008/08/27(水) 18:06:49
もともと無理だったんですか・・・・
一番簡単なものだと何で出来ますか?jscriptでもやっぱり無理なんでしょうか?

296 名前:デフォルトの名無しさん:2008/08/27(水) 18:53:35
Dim mixi, email, password
Dim ie, document, form

mixi = "http://mixi.jp/"
email = "null@po.com"
password = "nullpo"

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate(mixi)
Do While ie.Busy
    WScript.Sleep(1000)
Loop

Set document = ie.Document
Set form = document.forms("login_form")
If TypeName(form) = "Nothing" Then WScript.Quit()
form("email").value = email
form("password").value = password
form.submit()

297 名前:デフォルトの名無しさん:2008/08/27(水) 19:16:58
---------------------------
Windows Script Host
---------------------------
スクリプト: C:\296.vbs
行: 15
文字: 1
エラー: エラーを特定できません
コード: 80004005
ソース: (null)

---------------------------
OK
---------------------------

さすがVistaだ。なんともないぜ!

298 名前:デフォルトの名無しさん:2008/08/27(水) 19:43:47
Do While ie.Busy Or ie.ReadyState<>4

299 名前:デフォルトの名無しさん:2008/08/27(水) 20:11:00
なんか忘れてた気がしたけどReadyStateか
あとNothingの扱いをちゃんと調べたことないしIsNothingとかないからNothingの判定がよくわからんかった
If form Is Nothing Then WScript.Quit()
でいいんだな

300 名前:デフォルトの名無しさん:2008/08/27(水) 22:08:51
>Quit() とか
VBScriptなのに

301 名前:293:2008/08/28(木) 10:44:50
レスありがとうございます

>>296
IEを使えば出来るんですね!
使わないではやっぱり無理なんでしょうか?


302 名前:デフォルトの名無しさん:2008/08/28(木) 11:09:26
無理じゃないよ
スレ違い(WSHではなくActiveX汎用コンポーネントの話)になるので詳しくは伏せるけど

303 名前:デフォルトの名無しさん:2008/08/28(木) 16:56:19
CreateObject使うのはスレ違いだって?

304 名前:デフォルトの名無しさん:2008/08/29(金) 17:21:52
>>296はIEスレてなもんだな

305 名前:デフォルトの名無しさん:2008/08/31(日) 18:04:45
unix系のシステムでもWSH使えたら良いのにネ。
bashよか使い勝手が良い。

306 名前:デフォルトの名無しさん:2008/08/31(日) 18:20:08
UNIXならrubyあたりでいいじゃん。なんでそこでbashが出てくるの?
bashと比較するんならcmdとかPowerShellとかだろ。

307 名前:デフォルトの名無しさん:2008/08/31(日) 18:35:38
わざわざインストールが必要な ruby なんか全然
お呼びでないので、巣から出て来るなよ。

308 名前:デフォルトの名無しさん:2008/08/31(日) 19:41:27
>>305
なんでbashの替わりがWSHなの???意味が分からん

309 名前:デフォルトの名無しさん:2008/08/31(日) 20:15:54
代わりにならないからぼやいてるんだろ。
意味わからんのならレスしなきゃいいのに。

310 名前:デフォルトの名無しさん:2008/08/31(日) 20:28:22
bashは主にUNIX系OSで使われているシェルのひとつ。
WindowsではコマンドプロンプトやPowerShellに相当。

代わりになるわけがないのに、ぼやく意味がわからん

311 名前:デフォルトの名無しさん:2008/08/31(日) 20:37:31
とりあえず>>305がunix系システムをろくに使いこなせていないことは解った。


312 名前:デフォルトの名無しさん:2008/08/31(日) 21:29:37
>>310
> 意味わからんのならレスしなきゃいいのに。

# cmd.exe と bash を比較してる時点でアホ丸出しだし。

313 名前:デフォルトの名無しさん:2008/09/02(火) 10:37:33
よくわからんけど、>>305はシェルスクリプトって言いたかったのかも

314 名前:デフォルトの名無しさん:2008/09/03(水) 12:14:55
Sendkeysを並べてWindows Vistaを自動的に操作するスクリプトを書いてるんですが、
UACのダイアログが出るとそこで終わっちゃうんです。
「実行するにはあなたの許可が必要です」ってダイアログに対して {LEFT}{ENTER} とか %c って書いても
ボタンを押してくれません。
どうすればいいのか、だれか教えてください。

315 名前:デフォルトの名無しさん:2008/09/03(水) 12:59:22
>>314
UACを無効にしておく

316 名前:デフォルトの名無しさん:2008/09/03(水) 13:18:31
>>315
UACを切らずに済む方法はないでしょうか?

317 名前:デフォルトの名無しさん:2008/09/03(水) 13:36:29
スクリプトを動かし始める前に昇格しておく。

318 名前:デフォルトの名無しさん:2008/09/03(水) 20:00:51
>>314 .sendkeys "{space}"

319 名前:デフォルトの名無しさん:2008/09/03(水) 22:21:54
>>317-318
ありがとうございます。明日、出社したら調べてみます。


320 名前:デフォルトの名無しさん:2008/09/05(金) 16:27:42
やってみましたが {SPACE} はエラーになりました。そういうキーワードはなさそうです。
昇格は勉強中です。難しいです。

321 名前:デフォルトの名無しさん:2008/09/05(金) 17:26:59
>>320
これが参考になると思う。
http://technet.microsoft.com/ja-jp/magazine/cc510320.aspx
ttp://face-products.com/modules/wordpress/index.php?p=163

322 名前:デフォルトの名無しさん:2008/09/05(金) 18:15:21
.sendkeys " "

323 名前:デフォルトの名無しさん:2008/09/07(日) 19:26:28
スクリプトってこれ最悪だな。
使ってないけどたぶん.NETも同じなんだろうな

324 名前:デフォルトの名無しさん:2008/09/07(日) 19:34:41
発端はJavascriptなんだからしょうがない。

325 名前:デフォルトの名無しさん:2008/09/07(日) 20:57:03
>>323
いやいや.NETを一緒にするな。
あれのダメさはまた別物。

326 名前:デフォルトの名無しさん:2008/09/17(水) 10:08:29
WSH使いの視点で見るとIronPythonとかIronRubyってどうなん?

327 名前:デフォルトの名無しさん:2008/09/17(水) 10:47:28
ActivePythonではなくIronPythonならWSHとは全く関係ないものなので
「WSH使い」の視点からは視野外だ

もちろん「WSH使い」でもWSH以外を使う人はいっぱい居るから
個々の視点ではいろんな意見があるだろうが、それは「WSH使い」の視点ではないからな

328 名前:デフォルトの名無しさん:2008/09/28(日) 02:16:01
すいませんWSHの質問です。
IEのテキストボックスに値を入力したいんですが、
そのテキストボックスはたくさんあってtbox[0].priceからtbox[100].priceまであるんです。
IE.Document.form.tbox[0].price.value = "100"とやると、オブジェクトがありませんという実行時エラーになってしまいます。
普通のテキストボックス名(tbox1)とかなら大丈夫でした。
テキストボックス名がピリオドで区切られているのですが、そういう場合なにか工夫がいるのでしょうか?
こういう場合どうすればできるでしょうか?
よろしくお願いします。

329 名前:デフォルトの名無しさん:2008/09/28(日) 14:00:19
言ってることがいまいちピンとこない。
エラーになる最小のソースを晒せ。

330 名前:328:2008/09/28(日) 17:19:12
>>329
すいません。お願いします。
HTML
<html>
<body>
<input name="tbox[0].price" type="text" value=""/>
<input name="tbox[1].price" type="text" value=""/>
<input name="aaa" type="text" value=""/>
</body>
</html>

WSH
IE.document.form.tbox[1].price.value = "100"
とやると実行時エラーで "1"というオブジェクトがありませんというようなエラーが出ました。
IE.document.form.aaa.value = "100"
とやるとaaaのテキストボックスに正しく100が入力されます。

最終的にやりたいのはテキストボックスがいっぱいあるのでFOR文でまわして全部に入力したいです。
ちょっと今ソースがみれないのでわかりづらいかも知れないですが、よろしくお願いします。

331 名前:デフォルトの名無しさん:2008/09/28(日) 18:15:25
今朝のことです。

ブラウザを操作するスクリプトが暴走して、
IEとWScript.exeが無限起動してたwwww
ブラクラwwwwwwww

332 名前:デフォルトの名無しさん:2008/09/28(日) 19:31:24
>>329
<input name="tbox[0].price" type="text" value=""/>
<input name="tbox[1].price" type="text" value=""/>
↑のname要素の書き方の場合、"tbox[0].price"という名前の要素を定義していることになる。
"tbox[0].price"というname要素と"tbox[1].price"というname要素の間にはまったく関連性はない。
そもそも"tbox[0].price"という書き方をしたところで勝手に配列オブジェクトになりはしない。

× IE.document.form.tbox[1].price.value = "100"
○ IE.document.form.["tbox[1].price"].value = "100" ←つまりこういうアクセスの仕方をしなければならない。

いまのままで何とかループをまわしたいなら、↓みたいなやり方になる。
for ( var i = 0; i < 100; i++ ) {
IE.document.form.["tbox[" + i + "].price"].value = "100";
}

333 名前:デフォルトの名無しさん:2008/09/28(日) 19:43:02
この糞スレがはじめて世の中の役に立った瞬間に立ち会えたww

334 名前:デフォルトの名無しさん:2008/09/29(月) 02:29:31
全部同じnameをふってgetElementsByNameで配列を得てから回すんだ!

335 名前:デフォルトの名無しさん:2008/09/29(月) 02:32:11
>>333
このスレがグルジアでの米ロ軍事衝突を食い止めてたの知らないなんて
どんだけにわかなんだよ

336 名前:デフォルトの名無しさん:2008/09/29(月) 20:22:48
>>335
米ロが衝突とかどうでもイイからさ、
インストール済のWindowsコンポーネントの一覧をテキストファイルに落とす方法を教えてくれよ。

いや教えてください。お願いします。この通りです。

337 名前:デフォルトの名無しさん:2008/09/29(月) 21:54:22
Windowsコンポーネント?
その中でWSHから使えるのなんて極一部(ActiveXコンポ)だぞ

ActiveXコンポのみなら、各種オブジェクトブラウザで一覧出来るので
リスト取得ツールでも使ってテキストに落とせば良い
WSHから使えないものも含めて、Windowsコンポ全てを網羅したいならスレ違い

スクリプトで取得したいなら、レジストリを嫁
レジストリの内容取得は、WshShell使う方法はWSHヘルプに載ってるし
WMI使う方法なら、そこら辺にサンプルがごろごろ転がってる
レジストリの内容解釈に付いてはスレ違いなので伏せる

338 名前:デフォルトの名無しさん:2008/09/29(月) 22:06:02
ちっがああああぅw

コンパネの[プログラムの追加と削除]から[Windowsコンポーネントの追加と削除]って
選べるでしょ。あれの一覧。IISとかインストールするのに使うでしょ。

あの中から、どんなコンポーネントが選べるのか、
実際にインストールされているのはどれなのか?を
テキストファイルに吐き出したい。それだけ。

米ロが衝突する前に教えてほしい。君の1レスが世界を救うんだ、頼む!

339 名前:デフォルトの名無しさん:2008/09/30(火) 00:01:49
質問とは関係ないけどVistaだとこんなのもできた。

Set sh = WScript.CreateObject("Shell.Application")
Set cpl = sh.NameSpace(3)
For Each i in cpl.Items
If i.Name = "プログラムと機能" Then
For Each j in i.GetFolder.Items
s = s & j.Name & vbNewLine
Next
End If
Next
MsgBox s


340 名前:デフォルトの名無しさん:2008/09/30(火) 17:49:44
If i.Name = "プログラムと機能" Then msgbox i.path
してみて、次からsh.NameSpace()に指定すればいいんじゃない?

341 名前:デフォルトの名無しさん:2008/09/30(火) 21:05:19
Wscript.CreateObject("WindowsInstaller.Installer")


342 名前:デフォルトの名無しさん:2008/09/30(火) 21:15:48
おい、おまえらXPでも動くようなのを書けよ
小出しにするなまとめろ

343 名前:デフォルトの名無しさん:2008/09/30(火) 22:19:33
ていうかコンパネの一覧表か
要らんわ

344 名前:デフォルトの名無しさん:2008/09/30(火) 23:29:48
ほう助33世

345 名前:デフォルトの名無しさん:2008/09/30(火) 23:49:30
>>340
なるほろ!Pathか。
ParseName("プログラムと機能") しても引っ掛からなかったんで廻してしまったよ。

Set cpl = WScript.CreateObject("Shell.Application").NameSpace("::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{7B81BE6A-CE2B-4676-A29E-EB907A5126C5}")
For Each i in cpl.Items
s = s & i.Name & vbNewLine
Next
MsgBox s

346 名前:デフォルトの名無しさん:2008/09/30(火) 23:59:55
うしろだけでもよいかも
"::{7B81BE6A-CE2B-4676-A29E-EB907A5126C5}"

347 名前:デフォルトの名無しさん:2008/10/01(水) 00:11:47
>>346
うん、それはダメだった。理屈は良く分からんが。

348 名前:デフォルトの名無しさん:2008/10/01(水) 01:58:58
数字はないか?一覧してみ
On Error Resume Next
Set Shell=CreateObject("Shell.Application")
For k=0 To 100
Set Folder=Shell.NameSpace(k)
WScript.StdOut.WriteLine Join(Array(k,Folder.Self.Name,Folder.Self.Path),vbTab)
Next


349 名前:デフォルトの名無しさん:2008/10/06(月) 21:22:19
゚         (_ヽ      +
 ' *  /⌒ヽ.| |  +
   . ( ^ω^ / /       。
  +  y'_    イ    *
   〈_,)l   | *      。
ガタン lll./ /l | lll    +
VBScriptで、こんな感じでドライブの取り出しはOKですが、逆の「閉じる」は出来ませんか?
2chに集う墓でも無理?
Set objShell = CreateObject("Shell.Application")
set objDrive = objShell.NameSpace("D:\")
Set objItem = objDrive.Items.Item
objItem.InvokeVerb "取り出し(&J)"

350 名前:デフォルトの名無しさん:2008/10/06(月) 21:32:14
hard to close

351 名前:349:2008/10/07(火) 03:20:31
自己解決しました。
検索したら、そういう動作をするサンプルプログラムがありました。
でもハード側もそれに対応してないと動かない、ということでした。

結論は:開く「閉じる」をするVBscriptのプログラムはあるが、すべてのハードでは出来ない

゚         (_ヽ      +
 ' *  /⌒ヽ.| |  +     対応してないハードでそれを使っても
   . ( ^ω^ / /       。 ←ガタン!と出たままになると
  +  y'_    イ    *
   〈_,)l   | *      。
ガタン lll./ /l | lll 

352 名前:デフォルトの名無しさん:2008/10/07(火) 08:57:42
原理的にはコードを逆に書けば逆の動作をするはず。

)"noitacilppA.llehS"(tcejbOetaerC = llehSjbo teS
)"\:D"(ecapSemaN.llehSjbo = evirDjbo tes
metI.smetI.evirDjbo = metIjbo teS
")J&(し出り取" breVekovnI.metIjbo

353 名前:デフォルトの名無しさん:2008/10/07(火) 09:17:44
objShell.Run """C:\\ProgramData\\Microsoft\\Windows\Start Menu\\Programs\\Fantasy Earth Zero\\Fantasy Earth Zero.lnk""",1,1
Do
Set ProcessSet = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_Process where Name='FEzero_Client.exe')
WScript.Sleep 1000 '1秒間待機
Loop While ProcessSet.Count > 0
’処理

FEzero_Client.exeが終了したら、適当なプログラムを実行させたいのだが、FEzero_Client.exeがnprotectによって隠蔽されているせいでうまくいかない。
そこでウィンドウが存在するかどうかを判定することによってFEzero_Client.exeが起動しているかどうかを調べる方法をとりたい。
でも、いくら探しても、見つからない。
ウィンドウ名が存在しているかどうかを調べる方法があったら教えてほしい。

354 名前:デフォルトの名無しさん:2008/10/07(火) 18:46:10
>>353
AppActivate

355 名前:デフォルトの名無しさん:2008/10/07(火) 21:14:56
>>354
それだと、まずいんだ・・・
FEZero_Client.exeを起動している間にも、ブラウザーで作業したりするから。


356 名前:デフォルトの名無しさん:2008/10/07(火) 22:25:24
>>338
亀&自己レスだが、「Windowsコンポーネントの一覧&インストール状態」の取得デキタ。
レスはあまり参考にならなかった(すまん!)が、一応此処で聞いたって事でフィードバックしておく。
ちなみにXPSP2な。2003でもいけると思う。

・コンパネから起動する「Windowsコンポーネントの追加と削除」は以下のコマンドで起動されてる。
「c:\windows\system32\sysocmgr.exe /y /i:c:\windows\inf\sysoc.inf」

・上のコマンドの引数の「sysoc.inf」ファイルの「Components」セクションで他の*.infファイルへの参照が列挙されてる。
*.infファイルが明記してなかったり「hide」に設定されてる行は無視される。

・具体的なコンポーネントの名称、説明、「Windowsコンポーネントの追加と削除」画面での階層構造とかは
個々の*.infファイルの方を見る。

・Windowsコンポーネントのインストール状態については以下のレジストリに格納されてる。
「HEKY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OC Manager\Subcomponents」

・個々の*.infファイルの「Optional Components」に列挙されているコンポーネント名が、
上のレジストリキー配下のプロパティに対応してる。

以上。プログラムはinfファイルやレジストリを読むだけのダルいものなのであえて載せないw
え?WSH関係ない?そうだよちきしょう。

357 名前:デフォルトの名無しさん:2008/10/07(火) 22:40:11
>>339以降は関係ない話だから役に立つはずがない。

358 名前:デフォルトの名無しさん:2008/10/10(金) 01:16:11
>>353 tasklist.exe

359 名前:デフォルトの名無しさん:2008/10/10(金) 07:57:28
>>358
nprotectによってFEZero_clinet.exeがごっそり消えてる。
タスクマネージャーを使っても、WMIをつかっても、Tasklistをつかっても、結果は同じだった。

360 名前:デフォルトの名無しさん:2008/10/11(土) 03:01:54
Windows 2000 SP4、IE6.0 SP1、WindowsUpdateは一通り入れた状態でcscript
> C:\Documents and Settings\Administrator>cscript
> Microsoft (R) Windows Script Host Version 5.6
> Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

WSH5.6を入れた記憶は無いんだけど
SP4は5.6がデフォ?それともIE6.0 SP1入れたから?うーん。

http://www1.u-netsurf.ne.jp/~tomo_c/tips/R23_002.html
> Windows98 SecondEdition は 5.1
> Windows 2000 SP3 は 5.1
> WindowsXP は 5.6

361 名前:デフォルトの名無しさん:2008/10/11(土) 11:53:54
> それともIE6.0 SP1入れたから?

多分それだと思う。

http://www.microsoft.com/japan/technet/security/bulletin/MS02-009.mspx

+よく寄せられる質問

使用中の VBScript のバージョンはどのように分かるのですか?

VBScript.dll ファイルは 2 つのソフトウェア製品 (Internet Explorer および
Microsoft Windows Script) に同梱されています。

・Internet Explorer 6.0 : Internet Explorer 6.0 を実行しているお客様については、
 使用しているプラットフォームに関係なく、Windows Script 5.6 が既定でインストー
 ルされています。Windows Script 5.6は Internet Explorer 6.0 に同梱されています。

・Internet Explorer 5.5 : Internet Explorer 5.5 を実行しているお客様については、
 使用しているプラットフォームに関係なく、Windows Script 5.5 が既定でインストー
 ルされています。Windows Script 5.5 は Internet Explorer 5.5 に同梱されています。

・Internet Explorer 5.01 : Internet Explorer 5.01 を実行しているお客様については、
 使用しているプラットフォームに関係なく、Windows Script 5.1 が既定でインストール
 されています。

Internet Explorer のバージョンを 6.0 または 5.5 にアップグレードしていないお客様は、
次のバージョンの Windows Script を実行している高い可能性があります。

・Windows 2000 : Windows Script 5.1
・Win ME : Windows Script 5.5

# ちなみに、Windows Script 5.1 は、元々 Windows Script 2.0 と呼ばれていた。

362 名前:デフォルトの名無しさん:2008/10/11(土) 14:46:39
Version 5.6 だった
で、それがなんなの
「うーん」なんて書くほどのことかよアホ

363 名前:デフォルトの名無しさん:2008/10/11(土) 14:55:49
わざわざ3行もレスするような事かよアホ

364 名前:デフォルトの名無しさん:2008/10/11(土) 15:20:47
>>362
違いがわからない奴が無理してレスする必要は無い

365 名前:デフォルトの名無しさん:2008/10/11(土) 17:49:09
ダバダ〜

366 名前:デフォルトの名無しさん:2008/10/11(土) 18:34:16
         ___
        /       ヽ    「うーん」
    , -‐ (_).⌒ l ̄| ⌒ |     __o
     l_j_j_j と) ノ─|  ノ        | 二|二''  _
    /   /       ヽ       ノ   |  ヤ   ッ
    〈  ノ         |

367 名前:デフォルトの名無しさん:2008/10/11(土) 19:02:31
マンダム

368 名前:デフォルトの名無しさん:2008/10/11(土) 19:08:46
この3人は40代(以上)の中年プログラマー
  ↓↓↓
>>364>>365>>367

369 名前:デフォルトの名無しさん:2008/10/11(土) 19:44:07
ネタ元の分かるお前もなw

370 名前:デフォルトの名無しさん:2008/10/11(土) 20:59:36
この3人はN88BASICで育った世代
  ↓↓↓
>>364>>365>>367

371 名前:デフォルトの名無しさん:2008/10/11(土) 21:41:26
初体験はTK-80だったわ(ポッ

372 名前:デフォルトの名無しさん:2008/10/11(土) 23:06:40
>>361
丁寧にコピペまでサンクスです
お陰でWSHのバージョンに関係しそうな要素が掴めました
こんなところかな。ちゃんと管理していこうと思ってます。それでは失礼
・導入OS
・IEバージョンうp
・WSHバージョンうp

373 名前:デフォルトの名無しさん:2008/10/11(土) 23:16:01
TKとはトレーニングキットの意味じゃなく小室哲哉のことね。これ常識中の常識。

374 名前:デフォルトの名無しさん:2008/10/16(木) 14:48:58
ドラッグアンドドロップした画像をペイントで開くにはどうすればいいですか?

375 名前:デフォルトの名無しさん:2008/10/16(木) 15:34:24
WScript.Shellでmspaint.exeをRun

376 名前:デフォルトの名無しさん:2008/10/23(木) 22:33:22
Windows Script Host の実行の失敗しました。(この操作を完了するのに十分な記憶域がありません。)
ってエラーが出るのですがなんでしょうか?ある程度調べてみたのですが改善されませんでした。
どなたかご教授お願いします。

377 名前:デフォルトの名無しさん:2008/10/24(金) 14:18:54
>>376
ファイル名を変えろ or フルパスで指定しろ

378 名前:デフォルトの名無しさん:2008/10/24(金) 14:27:59
>フルパスで指定しろ
だめ

379 名前:デフォルトの名無しさん:2008/10/24(金) 20:05:31
>>377,378
ありがとうございました


380 名前:デフォルトの名無しさん:2008/10/30(木) 18:40:50
すみません。
プログラムの追加と削除やスタートメニューを見てインスコされているアプリの一覧を作りたいです。
教えて下さい。

381 名前:デフォルトの名無しさん:2008/10/30(木) 19:54:34
ttp://www.microsoft.com/japan/technet/scriptcenter/resources/wmifaq.mspx#EABAE

382 名前:デフォルトの名無しさん:2008/10/30(木) 19:57:47
dir /s /b c:\*.exe

383 名前:デフォルトの名無しさん:2008/10/30(木) 20:51:11
format c:

384 名前:380:2008/10/30(木) 22:30:06
すみません。真面目に訊いてるんですけど。。。
アプリの件は皆さんがふざけている間にPCViewっていうフリーソフトで事故怪傑しました。
その他にインスコされてるフォント名の一覧が欲しいです。
これが最後☆チャンスです。皆さんの役に立つとこ見せて下さい。

385 名前:デフォルトの名無しさん:2008/10/30(木) 22:36:55
>>384
おれは真面目に>>381って返したつもりなんだけどな。無視ですかそうですか。ちょっと泣けちゃう。フォント名の一覧?知るかばーか。

386 名前:デフォルトの名無しさん:2008/10/31(金) 12:00:21
>>382 >>383 すれ違い
>>384 フリーソフトさがせ

387 名前:デフォルトの名無しさん:2008/10/31(金) 12:40:02
appwiz.cpl中のhtaで使ってるobjectは利用できないのかね?

388 名前:380:2008/10/31(金) 13:12:23
>>385
こっちは教えてくれって頭下げてんですよ。>>381の一覧見てどうしろってんですか。
もったい付けてないでちゃちゃっとスプリクト教えてくれさえすれば良いだけなのに、
どうしてプログラムの人ってまともにコミュニケーション取れないのばかりなんだろう。

389 名前:デフォルトの名無しさん:2008/10/31(金) 13:17:54
>>387
cplってhtaなん?

390 名前:デフォルトの名無しさん:2008/10/31(金) 13:55:55
>>388
お前馬鹿?
ソース書いてあるじゃん。

> >>381の一覧

一覧って書いてるところからして、もしかして手打ちでURL入れて最後の#以降を入れなかった
せいでページの目次部分を見てるとか?
もしそうなら超バカかつ超失礼な奴だな。381にちゃんと謝っとけ!

391 名前:380:2008/10/31(金) 14:42:27
はいはいw結局こんな簡単なスプリクトも組めないんですねお前らw言い訳乙

392 名前:デフォルトの名無しさん:2008/10/31(金) 16:25:16
>>391
>>381の意味するところが分からないようなら自力では無理。
素直にコンパネ開いて手作業で写しなさい。あんたの場合それが一番早いやり方。

393 名前:380:2008/10/31(金) 17:32:26
もしも〜し?
自力で何とかなるなら最初からこんなキモスレで質問なんかしませんよ〜
日本語通じてますかぁ〜
私は、どうせ暇なあんた達にたまには人の役に立てるチャンスを与えてやっただけ

394 名前:デフォルトの名無しさん:2008/10/31(金) 18:24:46
悪いが人間の定義から手取り足取り教えてやるほど親切じゃないw

395 名前:デフォルトの名無しさん:2008/10/31(金) 18:28:56
"ヒント貰っても"自力で出来ないならってことなんだが
日本語通じてないのはどっちかな( ̄ー ̄)ニヤリ

それにオマエは与える側ではなく物乞う側だ
答えそのものを与えるも、ヒントだけ与えるも、こちらの自由
俺等の掌の上で哀れに乞い踊り、弄られ怒り狂う様を
ニヤニヤ眺められるだけのピエロでしかない

もちろんこれを否定するのは勝手だが
オマエは目的のことを教えて貰えず困っており
こちらはなんら困ってないという事実が全てを物語ってしまっている

396 名前:デフォルトの名無しさん:2008/10/31(金) 18:39:18
res://appwiz.cpl/default.hta

397 名前:デフォルトの名無しさん:2008/10/31(金) 18:53:55
>>384
dir c:\windows\fonts

398 名前:デフォルトの名無しさん:2008/10/31(金) 19:01:11
ヒント
createobject("shell.application").namespace("shell:fonts")


399 名前:デフォルトの名無しさん:2008/10/31(金) 20:03:18
スプリクト(笑)

400 名前:デフォルトの名無しさん:2008/10/31(金) 20:09:53
まぁ正直わからんでもないな
聞いてる方の態度もアレだがそれを抜きにしても
ちょっとなんだかなぁってのが多いのはなんなんだろうな

401 名前:デフォルトの名無しさん:2008/10/31(金) 20:14:06
即答されてるんだから、後はどうでもいいだろ。

402 名前:デフォルトの名無しさん:2008/10/31(金) 21:44:38
新しいスプリ ク ト言語が開発された噂のスレはこちらですか?

403 名前:380:2008/10/31(金) 22:07:04
なに必死になっちゃってんの?顔真っ赤ですよぅwキモオタどもダサ過ぎw
あ〜はいはい困ってまちゅよぅ大変だぁこれで満足ですかwww


404 名前:デフォルトの名無しさん:2008/10/31(金) 22:23:14
満足だから、もうどっかに逝け。

405 名前:デフォルトの名無しさん:2008/10/31(金) 22:23:59
スクリプトだろw
大人なら、もうちょっとストリクトに書けよな
と思ったら、なんだ幼児でちたか

406 名前:デフォルトの名無しさん:2008/10/31(金) 22:30:24
>>380
>なに必死になっちゃってんの?顔真っ赤ですよぅw

光沢モニタってのはなかなか便利なものだな。

407 名前:デフォルトの名無しさん:2008/10/31(金) 22:47:42
はいはいでもして事故怪傑してくださいな

408 名前:デフォルトの名無しさん:2008/11/01(土) 00:08:19
はいはいスプリクトスプリクト

409 名前:デフォルトの名無しさん:2008/11/01(土) 10:23:04
>>406
だな

光沢液晶眺めながらヒゲ剃りも出来そうだ

410 名前:デフォルトの名無しさん:2008/11/14(金) 23:21:13
予告 GetAsyncKeyState

411 名前:デフォルトの名無しさん:2008/11/15(土) 07:43:01
OS:Win XP Pro SP3
WSH:v5.7

var s1 = "C:\\bin";
var s2 = "C:\\bin\\hoge";
if (s2.search(new RegExp(s1)) != -1)
WScript.echo("一致");
else
WScript.echo("不一致");

s1 = s1.replace("\\","");s2 = s2.replace("\\","")にしてやれば一致するのですが
上記のコードはなぜ不一致になるのでしょうか?
またvar s1 = "C:\\\\bin";var s2 = "C:\\\\bin\\\\hoge";にもしてみましたが結果は不一致のまま変わりませんでした


412 名前:デフォルトの名無しさん:2008/11/15(土) 12:47:59
>>411
var s1 = "C:\\\\bin"; 
var s2 = "C:\\bin\\hoge"; 

s1に正規表現のためのエスケープが必要。

413 名前:デフォルトの名無しさん:2008/11/15(土) 14:38:09
えんえんとえんをつづけるのかw

414 名前:デフォルトの名無しさん:2008/11/15(土) 17:59:30
各国の通貨暴落なのに円だけが上がってるからな

415 名前:デフォルトの名無しさん:2008/11/15(土) 21:10:43
>>412
なるほど検索文字列だけエスケープしなきゃならなかったんですね
やったと思ったらs2も\を足してから一致しなかったんですね
ありがとうございました

416 名前:デフォルトの名無しさん:2008/11/16(日) 03:12:34
各Windowsコンポーネントのインストール状態の一覧を取得する方法ってありますか?

417 名前:デフォルトの名無しさん:2008/11/16(日) 04:09:12
はい、ありますよ

418 名前:デフォルトの名無しさん:2008/11/16(日) 10:22:21
>>416
俺が前したのと同じ質問かい!…ログ見てください、おながいします。

419 名前:デフォルトの名無しさん:2008/11/16(日) 20:18:07
類似品でこんなやつならマイクロソフトのサイトにあった
そのものズバリも探せばあると思うよ
これ以上は興味ないから知らん(キッパリ)

strHost = "."
Const HKLM = &H80000002
Set objReg = GetObject("winmgmts://" & strHost & _
"/root/default:StdRegProv")
Const strBaseKey = _
"Software\Microsoft\Windows\CurrentVersion\"
objReg.EnumKey HKLM, strBaseKey, arrSubKeys
strLine=Array()
For Each strSubKey In arrSubKeys
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"DisplayName", strValue)
If intRet <> 0 Then
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"QuietDisplayName", strValue)
End If
If (strValue <> "") and (intRet = 0) Then
Push strLine,strValue
End If
Next
Wscript.Echo Join(strLine,vbLf)
'http://scripting.cocolog-nifty.com/blog/2006/09/vbscriptarraypu_e6e8.html
Sub Push(Items,Item)
ReDim Preserve Items(UBound(Items)+1)
Items(UBound(Items))=Item
End Sub

420 名前:デフォルトの名無しさん:2008/11/16(日) 20:23:37
コピペ間違ったw正しいのはこれ
上のは動かないよ
'http://www.microsoft.com/japan/technet/scriptcenter/resources/wmifaq.mspx
strHost = "."
Const HKLM = &H80000002
Set objReg = GetObject("winmgmts://" & strHost & _
"/root/default:StdRegProv")
Const strBaseKey = _
"Software\Microsoft\Windows\CurrentVersion\Uninstall\"
objReg.EnumKey HKLM, strBaseKey, arrSubKeys
strLine=Array()
For Each strSubKey In arrSubKeys
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"DisplayName", strValue)
If intRet <> 0 Then
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"QuietDisplayName", strValue)
End If
If (strValue <> "") and (intRet = 0) Then
Push strLine,strValue
End If
Next
Wscript.Echo Join(strLine,vbLf)
Sub Push(Items,Item)
ReDim Preserve Items(UBound(Items)+1)
Items(UBound(Items))=Item
End Sub

421 名前:デフォルトの名無しさん:2008/11/16(日) 21:14:46
それは「アプリケーションの一覧」でしょうが。
>>380-381のと同じじゃない?つうか私が貼った奴だけど。

「Windowsコンポーネントの一覧」はこっち>>356な。つうか私が貼った奴だけど。
インストール状態だけ知りたいなら↓

>・Windowsコンポーネントのインストール状態については以下のレジストリに格納されてる。
>「HEKY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OC Manager\Subcomponents」

「アプリケーション」と「Windowsコンポーネント」ってそんなに間違いやすい?
まあ>>416からして間違えてる可能性もあるけどさ。

422 名前:デフォルトの名無しさん:2008/11/16(日) 21:38:36
>>421
おいおい日本語読めねえのはお前の方じゃないのか
これはそのものじゃない類似品にしか過ぎない
そのものは自分で探してくれと明確に断わってるぞ

家庭で嫌なことがあったら2chで赤の他人に突っかかるのは悪い習慣だ

423 名前:デフォルトの名無しさん:2008/11/16(日) 21:48:37
>>420を類似品というのは酷すぎるだろ常考…あえて言うならミスディレクション。

424 名前:デフォルトの名無しさん:2008/11/16(日) 21:57:33
いやいやお前がよく読まずに突っかかってきたのは事実だ
まずそれを謝罪しろアホ

これだけ明確に書いてるのに
これが質問のものを貼ったと誤解したのは地球上でアホ=>>421=>>423ひとり
「類似品でこんなやつならマイクロソフトのサイトにあった
そのものズバリも探せばあると思うよ
これ以上は興味ないから知らん(キッパリ)」

425 名前:デフォルトの名無しさん:2008/11/16(日) 22:21:31
そもそも大して役にたたない類似品貼ったぐらいでガタガタ騒ぐなよ。
バカじゃねーのか?

426 名前:デフォルトの名無しさん:2008/11/16(日) 22:29:56
こいつは>>421=>>423
以前に登場したとき>>338>>356からキモイやつだったんだな
文章のキモさから警戒されて前も誰もレスつけなかったww

427 名前:デフォルトの名無しさん:2008/11/16(日) 22:32:56
>>425
スレ検索したらどないでっかあんさん
そのものずばりを貼った人は過去に1人もいませんよ

バカじゃねーのか?

428 名前:デフォルトの名無しさん:2008/11/16(日) 22:34:01
>>421はこのスレにミスディレクションということで

429 名前:デフォルトの名無しさん:2008/11/16(日) 22:37:59
>>425
たいそうに演説するんだったらお前が貼れww

430 名前:デフォルトの名無しさん:2008/11/16(日) 22:40:13
ミスディレクションwwwwwwwwwアホです

431 名前:デフォルトの名無しさん:2008/11/16(日) 22:42:56

       ☆ チン       マチクタビレタ〜
                     マチクタビレタ〜
 ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ヽ ___\(\・∀・)< ミスディレクションさんの反撃まだ?
      \_/⊂ ⊂_)_ \____________
    / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
   |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:|  |
   |Winコンポーネント .|/
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

432 名前:デフォルトの名無しさん:2008/11/16(日) 22:47:46
なんすかこの流れw

433 名前:デフォルトの名無しさん:2008/11/16(日) 23:12:26
俺が見ても>>419-420が役立たずのアホ

434 名前:デフォルトの名無しさん:2008/11/17(月) 00:32:24
慈円

435 名前:デフォルトの名無しさん:2008/11/17(月) 00:43:23
       ☆ チン       マチクタビレタ〜
                     マチクタビレタ〜
 ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ヽ ___\(\・∀・)< ミスディレクションさんの登場まだ?
      \_/⊂ ⊂_)_ \____________
    / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
   |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:|  |
   |Winコンポーネント .|/
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

436 名前:デフォルトの名無しさん:2008/11/17(月) 00:45:28
>>427
 大 し て 役 に た た な い 類似品
 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

理解できたか?

437 名前:デフォルトの名無しさん:2008/11/17(月) 00:45:44
珍しく伸びてると思ったら・・・

438 名前:デフォルトの名無しさん:2008/11/17(月) 05:44:19
フルパスからフォルダ作成(存在しない親フォルダも作成)をできるだけにスマートにvbsで書くとどうなりますか?

439 名前:デフォルトの名無しさん:2008/11/17(月) 07:01:33
こいつはスレ出入り禁止
>>421=>>423=>>338=>356

こいつの文章は特徴があるからすぐわかる

440 名前:デフォルトの名無しさん:2008/11/17(月) 07:09:42
>>438
フォルダが作成される。

441 名前:デフォルトの名無しさん:2008/11/17(月) 09:00:37
書くだけじゃ作成されねーし


パス区切り文字でsplitして親から順に存在チェック
有ったら次へ、無かったら作る

442 名前:デフォルトの名無しさん:2008/11/17(月) 12:04:13
CreateObject("WScript.Shell").Run "CMD /CMKDIR \a\b\c\d"

443 名前:デフォルトの名無しさん:2008/11/17(月) 18:59:29
やっぱ再帰だろ

444 名前:デフォルトの名無しさん:2008/11/17(月) 20:33:00
sub sub_CreateFolder(strFolderPath) 'フォルダの作成
 strParentFolderPath = objFileSystem.GetParentFolderName(strFolderPath)
 if objFileSystem.FolderExists(strParentFolderPath) then
 else
  call sub_CreateFolder(strParentFolderPath) '親フォルダが無ければ再帰的に呼び出し
 end if
 call objFileSystem.CreateFolder(strFolderPath)
end sub

445 名前:デフォルトの名無しさん:2008/11/17(月) 20:50:02
>>442
cmd使っちゃう方法もありますねw

>>444
なるほど。シンプルですね。
大変参考になりました。
みなさんありがとうございます。


446 名前:デフォルトの名無しさん:2008/11/18(火) 00:13:43
call sub_CreateFolder("x:\folder")
無限ループ

447 名前:デフォルトの名無しさん:2008/11/18(火) 00:51:22
>>444
then 側の実行文が空のコードってすごくバカっぽく見えるのは俺だけか?

448 名前:デフォルトの名無しさん:2008/11/18(火) 00:59:16
どっちでもいいじゃん
いちいちめんどくせぇな

449 名前:デフォルトの名無しさん:2008/11/18(火) 01:16:58
>>446
・ドライブレターが存在するか
・フォルダパスとして成立するテキストが入っているか
この2つは本来はこのサブルーチンに入る前にチェックするべきだあね。

>>447
then側はtrue、else側はfalseに統一しておくと、
可読性が高くなって個人的にはいいと思ってる。
"not 〜" とか "〜 = false" は後々で見直すときに、
ぱっと見てどっちかわかりにくいんだよね。

450 名前:デフォルトの名無しさん:2008/11/18(火) 04:19:42
>>446
あーそうかそうか。
ドライブの直下にフォルダ作らせようとすると無限ループにはいるね。
今までそういう使い方してなかったから気づかなかった。
objFileSystem.DriveExistsでif文一個追加すればいいやって思ったけど
このメソッド、"x:\"だと必ずFalseだね。"x:"ならTrueがかえってくるけど。 

451 名前:デフォルトの名無しさん: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 名前:デフォルトの名無しさん:2008/11/18(火) 05:01:41
call objFileSystem.CreateFolder(strFolderPath)をする前に
objFileSystem.FolderExists(strFolderPath)しないと
ファイルが既に存在してるかどうか確認するのがめんどくさいからとりあえず実行しちゃえ
ってなった時に既に存在してたらエラーになる


453 名前:デフォルトの名無しさん:2008/11/18(火) 05:03:23
ファイルじゃなくてフォルダだった(´・ω・`)

454 名前:デフォルトの名無しさん:2008/11/18(火) 08:36:27
つーかさ、初心者って「スマートに」とか「シンプルに」とか好きだよな
そんで例外処理すら省いた短いだけの不適合コードに満足する
良いコードとは、短いコードではなく正しく動作するコードだってことを解ってない

455 名前:デフォルトの名無しさん:2008/11/18(火) 13:14:52
作ろうとするフォルダ名と同じファイルがあっても困るからそのときは中断処理しないといけないなぁ

456 名前:デフォルトの名無しさん:2008/11/18(火) 13:58:50
>>454
所詮スクリプトなんだからあんまり例外処理を作り込む必要はないんちゃう?と最近は思う。
自分の環境で動けばそれでいいし、動かなければ適宜手直しするし・・・。

457 名前:デフォルトの名無しさん:2008/11/18(火) 17:32:08
>>450
>このメソッド、"x:\"だと必ずFalseだね。
このメソッド、"c:\"だとFalseかね?

458 名前:デフォルトの名無しさん:2008/11/18(火) 19:54:41
>>457
"c"とか"c:"ならTrueなのに、"c:\"はFalse。
で、ofs.GetParentFolderName("c:\hogehoge\")の戻り値は"c:\"
設計思想としてはわからんでもないけどなぁ。

459 名前:デフォルトの名無しさん:2008/11/18(火) 20:40:06
>>447
バカっぽくは見えないけど、個人的にはあまり好きな書き方じゃないな。
ちなみに↓だと「「許容できない」が一番多いけど、「許容できる」もそれなりに多い。

空のIF文を書きますか? - Insider.NET
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47060&forum=7

460 名前:デフォルトの名無しさん:2008/11/18(火) 20:42:28
"c:\"はTrueだけど?


461 名前:デフォルトの名無しさん:2008/11/18(火) 21:43:55
>>454
そんな初心者見たことねぇ。

462 名前:デフォルトの名無しさん:2008/11/18(火) 22:48:51
>>460
本当だ。どうも寝ぼけてなんか間違えたらしい。>>458は忘れてくれ。

>>459
そこでも出てるけど、後々のメンテとか考えると統一したいんだよね。
if not 〜 thenで作ってて、後からTrueの場合の条件分岐追加したくなるときとか。
特に理由がない限りは愚直に馬鹿でも読めるように書けと教育されたので。

463 名前:462:2008/11/18(火) 23:00:13
あ、でも確かにCode Completeでは「稚拙に見えるから止めろ」って書いてある。
だから本来はNot使うのがいいのかもね。

464 名前:デフォルトの名無しさん:2008/11/19(水) 01:26:22
jsのif (!...) { ... }なら認識しやすいんだけど
vbsのif not ... thenは色分けできるエディタ使ってても
なんか視界のなかで他の単語にうもれてときたま見逃してしまうから
>>449みたいにif ... thenでやっちゃうことが多いな


465 名前:デフォルトの名無しさん: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 名前:デフォルトの名無しさん: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 名前:デフォルトの名無しさん:2008/11/19(水) 10:33:13
あとレジストリみたらSystem.Text.ASCIIEncodingのほかに
System.Text.UnicodeEncoding
System.Text.UTF7Encoding
System.Text.UTF8Encoding
があったからここらへんも使えると思う

468 名前:デフォルトの名無しさん:2008/11/19(水) 11:45:55
constractor???


469 名前:デフォルトの名無しさん:2008/11/19(水) 11:52:58
var Str = oAD.ReadText(1);

470 名前:465: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: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 名前:デフォルトの名無しさん:2008/11/19(水) 12:08:52
なにがしたいんだか

473 名前:デフォルトの名無しさん:2008/11/19(水) 12:17:37
自分のマシンのローカルエリア接続に設定されている
デフォルトゲートウエイIPアドレスをWSHで取得する方法で頭打ってます。
どなたか知りませんか?

474 名前:デフォルトの名無しさん:2008/11/19(水) 12:21:20
JScriptからバイナリの暗号化とか復号とかいろいろできたら便利だなぁ、とか思ってました

475 名前:デフォルトの名無しさん:2008/11/19(水) 12:24:28
JScriptじゃ無理
VBScriptつかえよ

476 名前:デフォルトの名無しさん:2008/11/19(水) 12:34:53
VBSで取得する方法でもいいです。
Google先生でもなかなか見つからない紋で。

477 名前:デフォルトの名無しさん: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 名前:デフォルトの名無しさん:2008/11/19(水) 22:09:25
>>473
ちゃんとググッたのか?

default gateway wsh でググッたら、"Need to get default gateway via VBScript" って
言うほぼどんぴしゃのページがヒットするんだが...。

http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_23706347.html

480 名前:デフォルトの名無しさん: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 名前:デフォルトの名無しさん:2008/11/20(木) 14:14:40
ttp://okwave.jp/qa4465143.html?ans_count_asc=20
>CScriptのコンソール画面のクリア方法
できないって?
clsすりゃいいだけなのに

483 名前:デフォルトの名無しさん:2008/11/20(木) 16:15:30
>>481
意味ないからやめろよ
必要なときだけやれ

484 名前:デフォルトの名無しさん:2008/11/20(木) 16:16:36
理由
テストできないだろ?
テストできないコードを書くな

485 名前:デフォルトの名無しさん: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:2008/11/21(金) 00:45:17
>>483, 485
アドバイスありがとうございます。

必要かどうか、状況を判断するのが難しいです。
修行がいるのだろうなぁ。

VBScriptって例外が発生して落ちたときに
終了コードをセットしないから外部からわからないんですよね。
今作ってるのは他のスクリプト内から実行される可能性があるので、
うっとうしいと思いながらも何が何でも例外は自分で拾って
WScript.Quit(1)するという方針で書いてます。

487 名前:デフォルトの名無しさん:2008/11/21(金) 01:08:05
>479
ありがとうございます!

英語が読めないので日本語ページオンリーです。
恥ずかしっ!!


488 名前:デフォルトの名無しさん: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 名前:デフォルトの名無しさん:2008/11/23(日) 00:27:15
>>481
そのやり方だと、どうしても漏れるよ
漏れたときに困るよ
正常時だけQuit(1)にすれば確実だよ

490 名前:デフォルトの名無しさん:2008/11/25(火) 14:06:49
.urlファイルを書き換えても、プロパティで見ると書き換わってない
F5しても同じ
どうすれば反映される?

491 名前:481:2008/11/27(木) 00:12:55
レス遅くてすいません。

>>488
> → QuitWithErrNumber.VBS
なるほど!スクリプト終了時のオブジェクトの解放時に
明示的にセットするという方法があるのですね。
自分では全く思いつきませんでした。ありがとうございます。

>>489
確かに仰る通りです。逆転の発想をするわけですね。
正常終了は%ERRORLEVEL%==0という固定観念がありました。
大変参考になりました。ありがとうございます。

結局、Main()全体にOn Error Resume Nextすることにしました。



492 名前:デフォルトの名無しさん:2008/11/27(木) 22:12:29
>>491
> 結局、Main()全体にOn Error Resume Nextすることにしました。

なんでそんな結論に...

493 名前:デフォルトの名無しさん:2008/11/28(金) 23:54:38
坊やだからさ

494 名前:481:2008/11/30(日) 01:33:16
>>492
>>493
もしかして一番ダメな方法なのかな…
忠告ありがとうございます。もうちょっと考えてみます。

495 名前:デフォルトの名無しさん:2008/12/03(水) 14:13:54
ttp://oshiete.nikkeibp.co.jp/qa4474443.html
ぷっ

496 名前:デフォルトの名無しさん:2008/12/04(木) 10:53:01
/MIN

497 名前:デフォルトの名無しさん:2008/12/04(木) 10:54:55
start /MIN hoge.bat

498 名前:デフォルトの名無しさん:2008/12/04(木) 17:19:09
JS教えたりして意地悪じゃないの
\\で嵌まるの目に見えてる

499 名前:デフォルトの名無しさん:2008/12/31(水) 12:44:37


500 名前:デフォルトの名無しさん:2009/01/03(土) 07:09:06
500

501 名前:デフォルトの名無しさん:2009/01/05(月) 06:09:19
wshから(出来ればVBSで)エクスプローラを再起動させたいんですが
起動はいいのですが、プログラムを終了させる事って出来ないんでしょうか?

502 名前:デフォルトの名無しさん:2009/01/05(月) 13:46:54
>>501
WMIつかえば出来るよ
使い方はググればサンプル含めて転がってる
又はコマンドライン型のプロセス終了ツールを使う手もある

503 名前:デフォルトの名無しさん:2009/01/06(火) 23:29:03
>>501
XP 以降なら taskkill ってコマンドがある
プロセスIDや実行ファイル名でプロセスを殺せる

ex) taskkill /IM notepad.exe


504 名前:デフォルトの名無しさん:2009/01/06(火) 23:46:47
>>503
home editionにはない

505 名前:デフォルトの名無しさん:2009/01/06(火) 23:54:44
好きなの使えよ。
ttp://www.vector.co.jp/vpack/filearea/win/util/task/


506 名前:デフォルトの名無しさん:2009/01/07(水) 00:07:11
PsKill - ローカルまたはリモートのプロセスを停止します。
http://technet.microsoft.com/ja-jp/sysinternals/bb896683(en-us).aspx

507 名前:デフォルトの名無しさん:2009/01/07(水) 00:46:38
taskkill、PsKillってのが>>502の言ってるコマンドライン型のプロセス終了ツールでしょ。

508 名前:デフォルトの名無しさん:2009/01/07(水) 04:04:31
tskillつかえよ

509 名前:デフォルトの名無しさん:2009/01/11(日) 14:50:20


510 名前:デフォルトの名無しさん:2009/01/12(月) 22:44:18
vbseditみたいに補完&デバッグできるフリーな奴無い?

511 名前:デフォルトの名無しさん:2009/01/15(木) 07:17:05


512 名前:デフォルトの名無しさん:2009/01/16(金) 07:47:10


513 名前:デフォルトの名無しさん:2009/01/17(土) 23:37:18


514 名前:デフォルトの名無しさん:2009/01/20(火) 21:26:39
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh01/cformwsh01_03.html
上記のURLで紹介されている「SystemScripter」を使用されている方はいらっしゃいますか?

試しにインストールしてみたのですが、IMEで日本語を入力すると入力が重複してしまう
のですが...回避方法はないでしょうか?

515 名前:デフォルトの名無しさん:2009/01/21(水) 12:55:06
Vistaやっと買ったら、自作のスクリプトが落ちます・・・

*******************************
'ファイル操作の宣言
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

'ファイルのオープン
Set objFile1 = objFSO.OpenTextFile(name1)

******************************
上の命令付近で、どうしても落ちます。
Vistaに何か入れれば、動くとか情報有りますか?



516 名前:デフォルトの名無しさん:2009/01/21(水) 19:10:29
何が落ちるんだ?

517 名前:デフォルトの名無しさん:2009/01/21(水) 19:15:02
> Vistaやっと買ったら、自作のスクリプトが落ちます・・・


518 名前:デフォルトの名無しさん:2009/01/21(水) 19:27:40
反ウイルスソフトじゃないの?

519 名前:デフォルトの名無しさん:2009/01/21(水) 19:28:43
どこに落ちるんだ?

520 名前:デフォルトの名無しさん:2009/01/21(水) 22:20:36
>515
Vistaは知らんが、CreateObject("Scripting.FileSystemObject") に
"WScript"を付ける奴は初めて見た。   WinXP&WSH5.6ユーザーより

521 名前:デフォルトの名無しさん:2009/01/21(水) 23:54:00
そうか?
視野が狭いだけだろ?

522 名前:デフォルトの名無しさん:2009/01/22(木) 09:11:37
付近とかまたアバウトな・・・

523 名前:デフォルトの名無しさん: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 名前:デフォルトの名無しさん:2009/01/22(木) 22:44:44
大量の文書の置換をしたいのですが、どのような形で組めばいいのでしょうか?
置換対象文書はすべて一つのフォルダのサブフォルダに入っているのでサブフォルダ内から抽出するなり再帰的に実行するなりすればよいでしょうが…

置換自体のスクリプトは以下のITPROの記事を参考に作りました。
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/308strrpl/strrpl.html

後はこのスクリプトを起動するスクリプトを作成するか、読み込むファイルを抽出する部分を工夫すればいいのですが、
何か手はないでしょうか?

525 名前:デフォルトの名無しさん:2009/01/22(木) 22:48:01
>>524
for

526 名前:デフォルトの名無しさん: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 名前:デフォルトの名無しさん:2009/01/23(金) 23:23:05
>>526
遅くなりましたが、参考にさせていただきました。
ありがとうございました。

528 名前:デフォルトの名無しさん:2009/02/02(月) 11:56:09
ho

529 名前:デフォルトの名無しさん: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 名前:デフォルトの名無しさん:2009/02/05(木) 00:49:44
>>529
このあたりはどう?
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/oct04/hey1029.mspx


531 名前:デフォルトの名無しさん:2009/02/05(木) 01:00:13
スクリプト センター > スクリプト一覧 > オペレーティング システム
レジストリ
http://www.microsoft.com/japan/technet/scriptcenter/scripts/os/registry/default.mspx

532 名前:デフォルトの名無しさん:2009/02/05(木) 02:21:17
>>530
そこのスクリプトでも結果が同じで
  エントリ名が入る変数strValueNameを空白にすると
 strKeyPathで設定した場所(キー)の既定エントリを覗くようですが
既定エントリの値を (値の設定なし)→空白にするとexistになります
(値の設定なし)に戻すとやはりnot existになります

>>531
学習します

533 名前:デフォルトの名無しさん: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 名前:デフォルトの名無しさん:2009/02/05(木) 03:43:06
>>533
これは(値の設定なし)でもキーの存在を的確に判断してくれます
大変有難いことです。感謝

535 名前:デフォルトの名無しさん:2009/02/06(金) 16:50:11
WSHでOutlookの予定や仕事の本文のフォントを一括で変更できる方法ってありますか?

536 名前:デフォルトの名無しさん:2009/02/06(金) 19:28:41
もしOutlookVBAでできるなら、WSHでもできるよ

537 名前:デフォルトの名無しさん:2009/02/06(金) 21:50:15
WSH(使用言語はjscript)でWin32apiのLoadLibrary()ってどうやって使うんですか!?


538 名前:デフォルトの名無しさん:2009/02/06(金) 21:55:37
無理

539 名前:デフォルトの名無しさん:2009/02/06(金) 22:03:58
そういうCOM使えばええがな

540 名前:デフォルトの名無しさん:2009/02/06(金) 23:01:41
糞スレ晒し上げ

541 名前:デフォルトの名無しさん:2009/02/07(土) 01:55:39
なるほど
ありがとうございました

542 名前:デフォルトの名無しさん:2009/02/07(土) 05:31:22
サービスのスタートアップの種類(自動・手動・無効など)を調べるスクリプトを書いており、
Vistaの自動と自動(遅延開始)を識別する方法を探しています。
WMIのWin32_ServiceクラスのStartModeプロパティには、両方ともAutoが設定されています。
MSDNでは他にそれらしいプロパティは見付かりませんでした。
レジストリ値を直接読んで識別するしかないのでしょうか?

543 名前:デフォルトの名無しさん:2009/02/07(土) 05:42:58
ここはWSHスレです。

VB6でもRubyでもC#でもDelphiでもVBAでも使える
汎用コンポーネント(WMIなど)の話はお控え下さい。

544 名前:デフォルトの名無しさん:2009/02/07(土) 05:55:18
あれま。そういう棲み分けでしたか。失礼しました。

545 名前:デフォルトの名無しさん:2009/02/07(土) 07:05:52
自動(遅延開始)は依存関係で他のサービスが立ち上がってから立ち上がるもの
つまり依存するサービスを所有していればそれで判別可能

546 名前:デフォルトの名無しさん:2009/02/07(土) 07:11:45
>>543 >>539
COMもVB6でもRubyでもC#でもDelphiでもVBAでも使えるから
ここで話題振るのは禁止なんですよね

547 名前:デフォルトの名無しさん:2009/02/07(土) 14:17:16
複雑だと思うならつかわなきゃいいんじゃねーの?
なんでアホはあるもの全部使わなきゃ気がすまねーの?

548 名前:デフォルトの名無しさん:2009/02/07(土) 15:36:14
がんばれよ

549 名前:デフォルトの名無しさん:2009/02/07(土) 19:22:53
がんばりまっちゅ

550 名前:デフォルトの名無しさん:2009/02/07(土) 19:31:19
WSHもCOMだろ?

551 名前:デフォルトの名無しさん:2009/02/07(土) 19:43:36
いいえ、WSHはCOMじゃありませんよ
WMIはCOMですけど

552 名前:デフォルトの名無しさん:2009/02/07(土) 19:54:14
>>545
どうしてそんなすぐ分かる嘘を付くのですか?

553 名前:デフォルトの名無しさん:2009/02/07(土) 19:55:36
WSH.Echo TypeName(WSH)

554 名前:デフォルトの名無しさん:2009/02/07(土) 20:07:58
>>553
いきなりどうしたの?

555 名前:デフォルトの名無しさん:2009/02/07(土) 23:59:10
なるほどね

556 名前:デフォルトの名無しさん:2009/02/08(日) 00:18:45
もしかしてObject=COMだと思ってるんじゃないの?

557 名前:デフォルトの名無しさん:2009/02/08(日) 00:24:41
やめときゃいいのに

558 名前:デフォルトの名無しさん:2009/02/08(日) 00:37:35
だよね
あんなの書かなきゃ恥かかなかったのに

559 名前:デフォルトの名無しさん:2009/02/08(日) 00:57:24
ぷっ

560 名前:デフォルトの名無しさん:2009/02/08(日) 02:59:09
MsgBox "Object"="COM"

561 名前:デフォルトの名無しさん:2009/02/08(日) 03:13:19
たしかにちがうな

562 名前:デフォルトの名無しさん:2009/02/08(日) 03:14:34
MsgBox "WMI"="COM"

563 名前:デフォルトの名無しさん:2009/02/08(日) 10:06:41
WSHとPowerShellはどういう関係なのでしょうか?
PowerShellが使えたらWSHはもう要らないものでしょうか?

564 名前:デフォルトの名無しさん: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 名前:デフォルトの名無しさん:2009/02/08(日) 14:38:23
スルーしような

566 名前:デフォルトの名無しさん:2009/02/08(日) 14:38:28
JRubyとかIronRubyとかIronPythonとかあって訳若芽です><

567 名前:デフォルトの名無しさん:2009/02/08(日) 14:50:36
ここはWSHスレです。

IEでもHTAでもSCでも使える
汎用スクリプト言語(VBScript,JScriptなど)の話はお控え下さい。


568 名前:デフォルトの名無しさん:2009/02/08(日) 15:03:29
あれま。そういう棲み分けでしたか。失礼しました。

569 名前:デフォルトの名無しさん:2009/02/08(日) 15:10:00
WSH.Echoも、VB6でもRubyでもC#でもDelphiでもVBAでも使えるんですがどうしましょ?

570 名前:デフォルトの名無しさん:2009/02/08(日) 15:10:59
COMは専用スレあるからスレ違いでいいけど
アクティブスクリプトは専用スレあったっけ?

571 名前:デフォルトの名無しさん:2009/02/08(日) 15:18:22
>>569
WSH.Echoも、IEでもHTAでもSCでも使えるけど、いいんじゃね

572 名前:デフォルトの名無しさん:2009/02/08(日) 15:27:32
>>569
VBAかVB6でWSH.Echoを使うサンプルコード書いて

あ、もちろんWrapper的なのを噛ますのは無しね
dllやらwscやら噛ませるのは、そのホスト上でWSHオブジェクトが使えてるわけではなく
そのやdllやらwsc上でWSHオブジェクトが使えてるだけだから

573 名前:デフォルトの名無しさん:2009/02/08(日) 15:34:44
WSCでWSHオブジェクトが使えてるのか?

574 名前:デフォルトの名無しさん:2009/02/08(日) 15:55:24
。。。

575 名前:デフォルトの名無しさん:2009/02/08(日) 16:18:48
ぷっ

576 名前:デフォルトの名無しさん:2009/02/08(日) 16:19:24
ぽっ

577 名前:デフォルトの名無しさん:2009/02/08(日) 16:21:25
WSHはCOMだからオブジェクト参照さえ渡せばWSCだろうとIEだろうと使えるよ

578 名前:デフォルトの名無しさん:2009/02/08(日) 16:27:30
ぷっ

579 名前:デフォルトの名無しさん:2009/02/08(日) 16:35:32
ActiveほにゃららってWindows版の各スクリプト言語処理系の頭に付くのは何故なんだろうって最初は不思議でした

580 名前:デフォルトの名無しさん:2009/02/08(日) 17:02:07
>>572
>VBAかVB6で
スレ違いだろ?

581 名前:デフォルトの名無しさん:2009/02/08(日) 17:05:35
ぷっ

582 名前:デフォルトの名無しさん:2009/02/08(日) 17:11:19
>>577
いいえ、WSHはCOMじゃありませんよ
WMIはCOMですけど

583 名前:デフォルトの名無しさん:2009/02/08(日) 17:30:05
結局具体的には書けないんだね

584 名前:デフォルトの名無しさん:2009/02/08(日) 18:15:05
具体的に書いてやらないとわからないんだね

585 名前:デフォルトの名無しさん:2009/02/08(日) 18:23:58
うん、わからないからちゃんと書いて

586 名前:デフォルトの名無しさん:2009/02/08(日) 18:31:26
いやだよ

587 名前:デフォルトの名無しさん:2009/02/08(日) 18:54:22
WSHは外部からCreateInstanceはできないだけで、COMじゃないわけはないだろ。

588 名前:デフォルトの名無しさん:2009/02/08(日) 19:09:22
いいえ、WSHはCOMじゃありませんよ
WSHはEXEですけど


589 名前:デフォルトの名無しさん:2009/02/08(日) 19:12:17
ヒントだよ
Set hoge=WSH
hoge.Echo TypeName(hoge)
これでわからないならあきらめるんだな

590 名前:デフォルトの名無しさん:2009/02/08(日) 21:22:29
実はヒントにもなってない件と
実は本人も解ってない件w

591 名前:デフォルトの名無しさん:2009/02/08(日) 21:28:49
htaでWScript.Sleep使いたいんだが・・・ いや、まじで。

592 名前:デフォルトの名無しさん:2009/02/08(日) 21:53:34
つかってるけど?

593 名前:デフォルトの名無しさん:2009/02/08(日) 22:04:56
>>590
もそっとCOMを勉強したほうがよくないか?

594 名前:デフォルトの名無しさん:2009/02/08(日) 22:05:48
fso = win32com.client.Dispatch('Scripting.FileSystemObject')
folder = fso.GetFolder('C:\\')
for file in folder.Files:
print file.Name


595 名前:デフォルトの名無しさん:2009/02/08(日) 22:12:18
>>592
どうやるの? さっさと吐け!

596 名前:デフォルトの名無しさん:2009/02/08(日) 22:18:49
Set w = WScript.CreateObject("WScript.Shell")
w.Popup "Ready",3,"1,2,3"
w.LogEvent 1, "DaahhhHHH!"

597 名前:デフォルトの名無しさん:2009/02/08(日) 22:21:13
>>596
それWScript.Sleep 3のつもり?
WScript.CreateObjectでエラーになるけど?

598 名前:デフォルトの名無しさん:2009/02/08(日) 22:24:13
それに
WScript.ShellのPopupはGUIアプリで使うと待ちが解けないみたいよ?

599 名前:デフォルトの名無しさん:2009/02/08(日) 22:32:57
>>591
>htaでWScript.Sleep使いたいんだが・・・ いや、まじで。
つかえるけど、画面が凍るのでやめとけ・・・ いや、まじで。

600 名前:デフォルトの名無しさん:2009/02/08(日) 22:54:02
VBとかC#から
WScriptのインスタンスを生成するにはどうすればよいですか?


601 名前:デフォルトの名無しさん:2009/02/09(月) 00:13:39
outprocessserverの場合と似たようなことをやればよい
ShellやProcess.Startで起こして、
そのスクリプトからWScriptオブジェクトを外部から見えるところに設定

602 名前:デフォルトの名無しさん:2009/02/09(月) 01:40:52
Windows Script Host(WSH)の機能全体の話とWScriptオブジェクトと
Windows Script Host Object Modelの各オブジェクトと、
WScript/CScriptコマンドが錯綜してる気がする

まず、Windows Script Host Object Modelで説明されるオブジェクトは
あくまで WSHの構成要素であって、WSHそのものではない。

なので、外部からWSHの構成要素の一部のオブジェクトをインスタンス化
できる、という説明は正しいが、
WSH自体を操作できる、という説明は正しくない

次に、COMをIUnknown、IDispatchのインタフェースを持ち、GUIDで
識別されるもと定義するなら、Windows Script Host Object Model
に含まれるオブジェクトはすべてCOMであり、これにはWScriptも含まれる。

ただし、WScriptを除く各オブジェクトは単体で外部からインスタンス化
できるのに対して、WScriptオブジェクトは外部からインスタンス化することは
できないという違いがある。

で、結局WScriptオブジェクトはWSHの環境内でのみ使用できるオブジェクトなので、
外部からは使えません。

>>601は具体的なコードを示してほしい

603 名前:デフォルトの名無しさん:2009/02/09(月) 02:27:18
.NET についてもひとことおねがいします

604 名前:デフォルトの名無しさん:2009/02/09(月) 03:02:48
コード? 技術者だったらヒントから考えろ
WSHからVBAの関数を呼べるだろ?
VBAでsub hoge(wsh)作ってWSHから呼べ
そしたらVBAからWSH使い放題
IEも同じ 関数作って呼ぶか、プロパティにセットするか
HTAはWSHから呼べないから、間にIEをはさむなりしろ

605 名前:デフォルトの名無しさん:2009/02/09(月) 03:59:15
姫様ズーム・イン

606 名前:デフォルトの名無しさん:2009/02/09(月) 04:01:26
ヒントだと思い込んで出してる情報が実は間違いでしたとさ

607 名前:デフォルトの名無しさん:2009/02/09(月) 04:55:18
おやすみ

608 名前:デフォルトの名無しさん:2009/02/09(月) 07:53:52
あるあるw

609 名前:デフォルトの名無しさん:2009/02/09(月) 08:34:58
ごめん、自分には素のWindows環境で
WSHからVBAを呼ぶという時点でかなりの難易度
IEからHTAを呼び出すのもできません
ぜひ、具体例をお願いします

610 名前:デフォルトの名無しさん:2009/02/09(月) 08:58:20
やり方を知らない人に聞いても無駄です。
無意味なヒント出されたり、自分で調べろとか
言われたりして誤魔化されるだけです。

611 名前:デフォルトの名無しさん:2009/02/09(月) 18:20:04
あれでわからないならあきらめろってw無理すんなw

612 名前:デフォルトの名無しさん:2009/02/09(月) 18:55:43
予想通りの反応w

613 名前:デフォルトの名無しさん:2009/02/09(月) 19:28:27
度し難いなぁ
って意味わかるかなぁ

614 名前:デフォルトの名無しさん:2009/02/09(月) 19:46:05
解るよ
どういう雰囲気を作りたがってるかは

上から目線で、呆れてる様を表現し
やり方を知らないから具体的な情報を出せないのではなく
もう何も言う気になれないのだよという雰囲気を作りたいのですね

でも、実際に知らないのはもうバレバレで
今更雰囲気作りに拘っても無意味っす

615 名前:デフォルトの名無しさん:2009/02/09(月) 19:52:31
ごめんね
WSHはCOMじゃないよ
これでいい?

616 名前:デフォルトの名無しさん:2009/02/09(月) 20:01:09
今度は「仕方ないから大人な俺が折れてあげるよ」という雰囲気作りですか
しかも論点間違ってるし

折れなくていいからさ、件の具体例出して俺等を打ちのめしてよ
打ちのめす実力が本当に有るのなら

617 名前:デフォルトの名無しさん:2009/02/09(月) 20:18:16
ないよ
これでいい?

618 名前:デフォルトの名無しさん:2009/02/09(月) 20:23:24
まぁ「これでいい?」を付け加えることで
本当はあるけど無いことにしておくって雰囲気を作りたいんだろうけど
それが負け惜しみなのは誰の目から見ても明らかだし
負け惜しみを吐くくらいのことは許してあげますかな

ただ、これ以上負け惜しみ吐いて醜態は晒さないようにね

619 名前:デフォルトの名無しさん:2009/02/09(月) 20:41:25
結局出来ないのかorz
wktkして待ってたのに。

620 名前:デフォルトの名無しさん:2009/02/09(月) 21:08:53
なんでここIDないの

621 名前:デフォルトの名無しさん:2009/02/09(月) 21:16:42
そういう設定の板だから。

運営に申請することで変更は可能なので
変更を希望するならまず自治スレで議論し可決を取ること。
http://pc11.2ch.net/test/read.cgi/tech/1051039126/
運営では可決された経緯まで吟味した上で変更が検討されるから
勝手に申請だけしてもダメ。

以後、IDに関する質問や議論は自治スレで。

622 名前:デフォルトの名無しさん:2009/02/09(月) 23:33:58
>>619
ttp://pc11.2ch.net/test/read.cgi/tech/1206835319/619

623 名前:デフォルトの名無しさん:2009/02/09(月) 23:46:52
どうしたの?

624 名前:デフォルトの名無しさん:2009/02/10(火) 02:13:22
結局向こうでも出来なかったみたいだね。

625 名前:デフォルトの名無しさん:2009/02/10(火) 03:01:25
失敬なやつだな

626 名前:デフォルトの名無しさん:2009/02/10(火) 03:17:54
>>591
ttp://pc11.2ch.net/test/read.cgi/*/*/*
教えてやろうと思ったがやめた

627 名前:デフォルトの名無しさん:2009/02/10(火) 08:08:59
無理すんな

628 名前:デフォルトの名無しさん:2009/02/10(火) 12:41:12
教えてくれたら神だ仏だと崇め奉った上に、とっておきのエロ画像をプレゼントしようと思っていたのになあ・・・・

629 名前:デフォルトの名無しさん:2009/02/10(火) 16:04:32
ふーん、そういうことがうれしいひとがいるんだ

630 名前:デフォルトの名無しさん:2009/02/10(火) 16:11:56
弄られてるだけって事に気付けないのか?

631 名前:デフォルトの名無しさん:2009/02/10(火) 17:46:36
>>591
ほれ
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/mar06/hey0330.mspx
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/oct05/hey1031.mspx
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1120220141
http://oshiete1.goo.ne.jp/qa2010297.html


632 名前:デフォルトの名無しさん:2009/02/10(火) 18:06:22
>>631
期待せずに一応見てみたが、予想通り的外れのことしか書いてなかった。
そんなんではzipはやれんぞ。

出来ない人は黙っててくれないかなぁ〜

633 名前:デフォルトの名無しさん:2009/02/10(火) 19:23:03
処理を一時的に止めたいという実用上の話ではなく
WScriptオブジェクトをインスタンス化出来るかという
技術上の話だってことも理解できないのか?

634 名前:デフォルトの名無しさん:2009/02/10(火) 20:03:34
いいえ、WSHはCOMじゃありませんよ

635 名前:デフォルトの名無しさん:2009/02/10(火) 21:03:07
どうしたの?

636 名前:デフォルトの名無しさん:2009/02/10(火) 23:01:50
Set hoge=WSH
hoge.Echo TypeName(hoge)
インスタンス化できてるだろ

637 名前:デフォルトの名無しさん:2009/02/11(水) 01:12:11
マジレスしとくとそれは元々あるインスタンスを別名で参照してるだけ

638 名前:デフォルトの名無しさん:2009/02/11(水) 17:23:37
マジっすか?
インスタンすか?

JScriptのArrayオブジェクトはCOMっすか?
JScriptのArrayオブジェクトは外部からインスタンス化できっすか?
JScriptのArrayオブジェクトはJScript内でのみ使用できるオブジェクトなので、
VBScriptからは使えませんすか?

639 名前:デフォルトの名無しさん:2009/02/11(水) 17:32:30
"WScript" の代わりに "WSH" が使えるなんて初めて知ったよw

640 名前:デフォルトの名無しさん:2009/02/11(水) 18:23:35
ちょっと他のスレッドで発見したのですが
     ↓
ラーメンタイマーでも作ってみれ。
カップヌードル用(3分)とどんべい用(5分)に分ける。
できればタスクバーに駐在する奴。

こういうのってサクっと作れますか?

641 名前:デフォルトの名無しさん:2009/02/11(水) 19:07:33
タスクトレイ常駐以外は、HTAにすればサックリできる気が。

642 名前:デフォルトの名無しさん:2009/02/11(水) 19:14:16
タスクバーのツールバーにいれるとか

643 名前:デフォルトの名無しさん:2009/02/11(水) 20:06:20
作ってみた。

<html><head>
<title>らーめんたいまー</title>
<HTA:Application ApplicationName="らーめんたいまー"
SingleInstance="yes" WindowState="Normal" ShowInTaskbar="no"
MaximizeButton="no" MinimizeButton="no" Border="thin" Scroll="no">
<script>
function timeup(name)
{
alert( name + "できたよー");
}
function setup(obj,t)
{
setTimeout("timeup('"+obj.value+"')",t*60*1000);
}
window.onload = function()
{
window.resizeTo(190,80);
document.f.t3.onclick=function(){setup(this,3);};
document.f.t5.onclick=function(){setup(this,5);};
}
</script>
</head><body><form name="f">
<input type="button" value ="カップヌーj" name="t3"/>
<input type="button" value ="どんべい" name="t5"/>
</form></body></html>

644 名前:デフォルトの名無しさん:2009/02/11(水) 21:29:07
IEの操作をWSHで自動化しようとしたのですが、iframeの中の要素がどう頑張っても触れません。
なんかXSS対策でそういう仕様みたいですが、なんとか回避方法は無いのでしょうか?
あるアプライアンスのGUI操作を自動化したいんです。

645 名前:644:2009/02/11(水) 22:22:38
とりあえずnetshのportproxyを使ってlocalhost宛のアクセスで操作できるようにして誤魔化せました。
もしもっとスマートな方法が有れば御教授をお願い致します。

646 名前:デフォルトの名無しさん:2009/02/12(木) 01:35:46
iframeの中の要素も触れたと思う

647 名前:デフォルトの名無しさん:2009/02/12(木) 18:27:32
>>644
mshta.exeで開けばよい

648 名前:デフォルトの名無しさん:2009/02/13(金) 04:00:13
>>639
ほんまや。どこに書いてあるんだこれ

649 名前:デフォルトの名無しさん:2009/02/13(金) 15:43:46
for(var p in this) WScript.Echo(p);

650 名前:デフォルトの名無しさん:2009/02/13(金) 17:49:12
いきなりどうしたの?

651 名前:デフォルトの名無しさん:2009/02/13(金) 17:50:35
すみません。
jscriptでwshを学ぶ本ってないですか?

652 名前:デフォルトの名無しさん:2009/02/13(金) 17:55:27
ぐぐれば?

653 名前:デフォルトの名無しさん:2009/02/13(金) 18:08:17
なるほど
ありがとうございました

654 名前:デフォルトの名無しさん:2009/02/13(金) 21:02:00
あるシミュレーションソフトの稼働率を出すことを考えています。
稼動していると判定したい条件は下記のOR判定としたいです。
(1)コンピュータを操作中(アイドル状態でない)
(2)当該ソフトが起動していて、かつCPU使用率が一定値以上(無人で計算実行中)
上記の時間をカウントするWSHを作れないか考えていますが、
WSHで実現可能ですか?
とくに(1)を拾える関数etcはあるのでしょうか?

655 名前:デフォルトの名無しさん:2009/02/13(金) 21:41:06
これとか?
ttp://ja.wikipedia.org/wiki/Windows_Management_Instrumentation

656 名前:デフォルトの名無しさん:2009/02/14(土) 00:08:46
WMIはCOMですけど

657 名前:デフォルトの名無しさん:2009/02/14(土) 01:03:53
COMだからWSHで使えるでしょ。

658 名前:デフォルトの名無しさん:2009/02/14(土) 02:15:52
COMだからWSH以外でも使える

659 名前:648:2009/02/14(土) 03:49:44
>>649
ウホッthx

660 名前:デフォルトの名無しさん:2009/02/15(日) 01:37:00
画面をキャプチャしてjpg保存したいのですが、良い方法は無いでしょうか。
imagemagickを使えば可能だと思いますが、できるだけ汎用的に使える方法でやりたいです。
wia.scriptを使えばなんとかならないだろうかと思いつつ、よく分からず悩んでいます。

661 名前:デフォルトの名無しさん:2009/02/15(日) 02:12:28
>660
ttp://www.vector.co.jp/soft/winnt/art/se434911.html がコメント・評価欄ともども
参考になる気が・・・と思ったが、"imagemagick"のようにバッチファイルで使えるツールで
いいのなら"IrfanView"をオススメ。画像表示だけのツールじゃないからね。

662 名前:デフォルトの名無しさん:2009/02/15(日) 03:05:54
ttp://www.vector.co.jp/soft/winnt/prog/se219120.html

663 名前:デフォルトの名無しさん:2009/02/15(日) 06:08:23
doodleとか以前はテンプレに入ってたと思うんだけどな

664 名前:デフォルトの名無しさん:2009/02/15(日) 06:53:05
それはWindows板のスレだ

665 名前:デフォルトの名無しさん:2009/02/15(日) 07:28:45
ああそうか、勘違いしたスマヌ

666 名前:デフォルトの名無しさん:2009/02/15(日) 18:00:24
666

667 名前:デフォルトの名無しさん:2009/02/16(月) 16:56:49
VBSをはじめて使うのですが
RunメソッドやExecメソッドで起動したソフトをSendKeysではない方法で
制御(入力フォーラムに書き込んだり)することは可能でしょうか?

668 名前:デフォルトの名無しさん:2009/02/16(月) 17:01:38
可能

669 名前:667:2009/02/16(月) 17:21:54
>>668
早速の回答どうもです。
ググッたりして探してみます

670 名前:デフォルトの名無しさん:2009/02/19(木) 02:21:16
ほんまかいな

671 名前:デフォルトの名無しさん:2009/02/19(木) 15:16:14
不可能?

672 名前:デフォルトの名無しさん:2009/02/19(木) 15:52:25
そんなこと無いけど

673 名前:デフォルトの名無しさん:2009/02/19(木) 16:16:38
可能?

674 名前:デフォルトの名無しさん:2009/02/19(木) 22:10:50
どっち?

675 名前:デフォルトの名無しさん:2009/02/19(木) 23:48:06
可能

676 名前:デフォルトの名無しさん:2009/02/20(金) 00:14:10
なるほど
ありがとうございました

677 名前:デフォルトの名無しさん:2009/02/20(金) 05:44:37
そんな事できるならSendKeysいらなくね?

678 名前:デフォルトの名無しさん:2009/02/20(金) 07:05:54
そんなことない

679 名前:デフォルトの名無しさん:2009/02/20(金) 13:10:10
なるほど
ありがとうございました

680 名前:デフォルトの名無しさん:2009/02/20(金) 13:42:14
SendKeysできるならそんな事いらなくね?


681 名前:デフォルトの名無しさん:2009/02/20(金) 18:58:24
そんなことない

682 名前:デフォルトの名無しさん:2009/02/20(金) 19:26:17
なるほど
ありがとうございました

683 名前:デフォルトの名無しさん:2009/02/21(土) 17:10:57
SendKeys "日本語だめだし"

684 名前:デフォルトの名無しさん:2009/02/22(日) 18:58:29
ABC.vbs(←自作)の二重起動を防止したいのですが、
後から起動したVBSを無効にする(起動してもすぐに終了させる)方法は見つけたのですが、
二重起動した場合、初めに起動しているvbsを強制終了させて、後から起動したvbsを有効にする方法はありませんか?


もう一つ。

vbsを実行して、vbsが待機中であれ、何かの処理中であれ、
実行して(約)10秒後に、強制終了する方法ってありますか?

685 名前:デフォルトの名無しさん:2009/02/22(日) 20:40:39
> vbsを実行して、vbsが待機中であれ、何かの処理中であれ、
> 実行して(約)10秒後に、強制終了する方法ってありますか?

使ったことないけど、cscript //T: オプションではだめか?

686 名前:デフォルトの名無しさん:2009/02/22(日) 21:17:17
WScript.Timeout

687 名前:デフォルトの名無しさん:2009/02/22(日) 23:00:11
>>684
前者はWMI使って、Win32_ProcessのName='Wscript.exe'の中で
CommandLineにWScript.ScriptFullNameを含む物が2つ有ったら
CreationDateが古い(小さい)方をTerminateすれば良い

688 名前:デフォルトの名無しさん:2009/02/23(月) 03:48:29
外からWScript.QuitやWScript.Timeoutできればいいのに

689 名前:デフォルトの名無しさん:2009/02/23(月) 06:43:11
WSHがCOM(ActiveX.exe)だったら、それも出来たんだろうけどな

690 名前:デフォルトの名無しさん:2009/02/23(月) 15:50:48
WSHはCOMだから出来るよ

691 名前:デフォルトの名無しさん:2009/02/23(月) 17:02:52
知らないものは存在しない

692 名前:デフォルトの名無しさん:2009/02/23(月) 22:13:47
出来ないことでも、出来ると言い張ってゴネるだけなら簡単

693 名前:デフォルトの名無しさん:2009/02/23(月) 22:21:22
ぐぐれば?

694 名前:デフォルトの名無しさん:2009/02/23(月) 23:55:19
ぐぐればわかることでも、出来ないと言い張ってゴネるだけなら簡単


695 名前:デフォルトの名無しさん:2009/02/24(火) 01:11:36
ググってみたら解った
やはり出来ないようだ

696 名前:デフォルトの名無しさん:2009/02/24(火) 01:17:03
>>695には無理だってw

697 名前:デフォルトの名無しさん:2009/02/24(火) 02:19:01
不毛だ

698 名前:デフォルトの名無しさん:2009/02/24(火) 02:26:15
出来ると言ってる奴は、出来るという証拠を出すだけで
簡単にで出来ないと言ってる奴を有無を言わさず論破出来るのに
そんな簡単なことすらしないということは・・・・・( ̄ー ̄)ニヤリッ

699 名前:デフォルトの名無しさん:2009/02/24(火) 03:28:49
できないと思っているなら放置すればよいのにw

700 名前:デフォルトの名無しさん:2009/02/24(火) 03:35:57
負け惜しみ?

701 名前:デフォルトの名無しさん:2009/02/24(火) 04:37:10
一度出来ると言ってしまった手前、引っ込みが付かなくなってしまったんですね。わかります。


702 名前:デフォルトの名無しさん:2009/02/24(火) 15:10:44
一度出来ないと言ってしまった手前、引っ込みが付かなくなってしまったんですね。わかります。


703 名前:デフォルトの名無しさん:2009/02/24(火) 15:11:30
勝ち惜しみ?

704 名前:デフォルトの名無しさん:2009/02/24(火) 16:46:17
で、どっち?

705 名前:デフォルトの名無しさん:2009/02/24(火) 18:46:34
不可能?

706 名前:デフォルトの名無しさん:2009/02/24(火) 18:54:22
そんなこと無いけど

707 名前:デフォルトの名無しさん:2009/02/24(火) 19:13:57
ハッカー師兄の人たち教えてください。
あるサイトに動画ファイルを置いて、自分のブログからリンクした時に
動画が開かずに、ファイルに直接リンクするなと警告ページが表示されます。
ブラウザ(IE6)のRefererがリンク先ではなく私のブログサイトになって
いるのが原因ですが、リンク開く前にプログラムからRefererを変更することは
できないでしょうか?

1.今までの調べでは単純にJavaScriptで
  document.referer="http://www.aaa.com/";
と書き換えるのは無理でした。(document.refererは参照のみ可)

2.createobjectからxml2requestのoleを使ってrefererを書き換えて
バイナリデータを取得できましたが、この方法だと取得したバイナリを
どのようにwindow.documentオブジェクトで表示させれば良いかが
分かりません。

もう少しで出来そうな気がするのですがググっても解決方法が
見つかりません。アドバイスをお願いします。


708 名前:デフォルトの名無しさん:2009/02/24(火) 19:22:41
>>706
さんくす
ではやふって探してみます
ぐぐっても見つからないようなので

709 名前:デフォルトの名無しさん:2009/02/24(火) 19:28:14
>>687
やったことないし思いつきですが非同期でプロセス起動する方法を
調べたら良いのでは?子プロセス起動10秒後に親が子を消すように
すればできる気がします。


710 名前:デフォルトの名無しさん:2009/02/24(火) 21:55:13
強制終了はよくないって聞くけど本当なの?

711 名前:デフォルトの名無しさん:2009/02/24(火) 22:41:07
強制終了が何故良くないのか解ってない人にとっては良くないね。
解ってればある程度の事前対処も出来るのだが。

まぁWSHに限らずの話でスレ違いになるから詳細は伏せる。

712 名前:デフォルトの名無しさん:2009/02/24(火) 22:48:50
>>707
Document.Refererはドキュメント取得時のRefererが記録された、言わばログなので書き換えても無意味。
書き換えるならHttpRequestHeaderの送信情報を書き換えないといけない。
HttpRequestHeaderを指定できるJavascriptライブラリなど探せば幾らでもあるだろ。
例えばこれとかな↓

http://www.s2factory.co.jp/tech/prototype/prototype.js.html#Ajax.Request


713 名前:デフォルトの名無しさん:2009/02/24(火) 23:13:27
>>707
window.navigate2 によるページ遷移ならパラメタにリクエストヘッダ指定できる
ただし、セキュリティの問題とかのからみがあるので正常動作するかは知らん


714 名前:デフォルトの名無しさん:2009/02/25(水) 00:41:18
>>705
肯定

715 名前:デフォルトの名無しさん:2009/02/25(水) 00:53:39
強制終了するとCOM参照の解放が行われないから、
アウトプロセスサーバが終了しないで残ったりするから、
やめといたほうがいいよ。

716 名前:デフォルトの名無しさん:2009/02/25(水) 03:10:57
Timeoutの終了だとCOM参照の解放が行われるようだから
>>688方式がお勧めだよ

717 名前:デフォルトの名無しさん:2009/02/25(水) 03:22:07
出来ない方法がオススメって・・・・・
あっ、「もし出来るのなら」ってことか

718 名前:デフォルトの名無しさん:2009/02/25(水) 03:34:30
COMがどういうものか解ってない人にとっては出来ないかもね。


719 名前:デフォルトの名無しさん:2009/02/25(水) 03:39:08

出来ると言い張る奴は居るが
出来ることを事実として示せる奴は居ない件について

自分だけは解ってるようなことを言う奴は居るが
具体的な理論を述べられる奴は居ない件について


720 名前:デフォルトの名無しさん:2009/02/25(水) 03:46:40
>>718
まぁWSHに限らずの話でスレ違いになるから詳細は伏せる。

721 名前:デフォルトの名無しさん:2009/02/25(水) 07:08:03
本当は自分でも間違ったことを言ってることに気付いてるが
引き下がれず必死に誤魔化そうとする姿は滑稽だな。

722 名前:デフォルトの名無しさん:2009/02/25(水) 08:10:36
初心者なんだから許してやれよw


723 名前:デフォルトの名無しさん:2009/02/25(水) 08:59:36
>>720
残念、WSHに限った話だ

724 名前:デフォルトの名無しさん:2009/02/25(水) 09:09:09
WSHスレってどういうことを語り合うの?

WSHを利用するのはスクリプト言語で、****scriptの話をしちゃいけないっていうじゃない。

じゃ何を話すの?

725 名前:デフォルトの名無しさん:2009/02/25(水) 09:15:35
話題転換?

726 名前:デフォルトの名無しさん:2009/02/25(水) 09:32:58
>>724
WSHで実行したスクリプトから、WSHで実行されてる別のスクリプトを
WScript.Quitする話とか。

これは言語の話ではなく、純粋なWSHの話だ。

727 名前:デフォルトの名無しさん:2009/02/25(水) 11:21:59
話題転換失敗
出来る厨、涙目w

728 名前:デフォルトの名無しさん:2009/02/25(水) 19:16:06
WScript.QuitはWScript.Sleep中は効くけど、MsgBox中などは効かない。
WScript.TimeoutならMsgBox中も効くので、使い分けてね。

729 名前:デフォルトの名無しさん:2009/02/26(木) 13:37:29
なるほど
ありがとうございました

730 名前:デフォルトの名無しさん:2009/02/27(金) 10:47:05
Windows XP SP3、WSH 5.7、Access 2003 VBA

フォームにCommandButtonとListBox(値リスト)を貼り付けて、

Private Sub コマンド0_Click()
Dim objShell As Object
リスト1.AddItem "AAA"
Set objShell = CreateObject("WScript.Shell")
Call objShell.Run("%ComSpec% /C SYSTEMINFO", , True)
Set objShell = Nothing
MsgBox "おわり"
End Sub

リスト1.AddItem "AAA" を

・コメントアウトするとRunが実行完了まで待機する
・コメントアウトしないとRunが実行完了まで待機しない

みんな、この現象が起きる?

731 名前:デフォルトの名無しさん:2009/02/27(金) 16:39:35
すれ地外が出てきませんように

732 名前:デフォルトの名無しさん:2009/02/27(金) 17:39:16
Excel2007では起きない
.Popup "aaa",5 はだめだけど

733 名前:デフォルトの名無しさん:2009/02/28(土) 22:50:09
VBSを使って、親ディレクトリ配下のサブディレクトリの中身の表示方法を「縮小版」に変更しようと思う。
ディレクトリの表示を変更するため、Windowsを制御する「 Windows API関数」を使えばいいというのは
分かったんだけど、肝心の「フォルダの表示方法を変更する関数」が見つかりません。
そこで以下の質問。

Q1.そもそもVBSで実現することは可能か?
Q2.「 Windows API関数」で縮小版の制御はできるのか?

調べてはいるんですが、何の成果もあがりません。
質問スレで聞いたらここに誘導されたので・・・。
お願いします。

734 名前:デフォルトの名無しさん:2009/02/28(土) 22:59:49
>>733
よく分からん
既存のエクスプローラの挙動を変えたいのか、
縮小表示のエクスプローラを起動したいのか、
自前のアプリに縮小表示の機能を作りこみたいのか
まず、何をしたいのかをはっきりさせてくれ

735 名前:デフォルトの名無しさん:2009/02/28(土) 23:06:42
>>733
A1.WSHとVBSの機能では不可能
A2.そもそもWSHやVBSはWinAPIを呼べない

COMと呼ばれる汎用コンポーネントを介すことで
実現自体は不可能じゃないけどね
どうしてもやりたければ、WSHやVBSではなくそっち方面を調べること

736 名前:デフォルトの名無しさん:2009/02/28(土) 23:08:53
WSHはCOMですけど?

737 名前:デフォルトの名無しさん:2009/02/28(土) 23:09:54
WindowsAPIじゃなくてExplorerAPI使わないとね!

そんなんあるのか?

738 名前:デフォルトの名無しさん:2009/02/28(土) 23:12:32
ActivePerlからWin32API呼べますけろ?

739 名前:デフォルトの名無しさん:2009/02/28(土) 23:14:13
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=31949&forum=7

740 名前:デフォルトの名無しさん:2009/02/28(土) 23:14:58
>>736
知ってますよ
幾人かの妄想上ではWSHがCOMだってことくらい

現実世界ではそれを証明できずに論破されましたが

741 名前:デフォルトの名無しさん:2009/02/28(土) 23:21:48
「知る」と「分かる」の違い?

742 名前:デフォルトの名無しさん:2009/02/28(土) 23:28:03
ttp://ja.wikipedia.org/wiki/Windows_Script_Host
正確にはWSH=ActiveScripting(COMを利用してる)のホスト。

広義ではCOM(COMに関係する)だけど、狭義ではCOMそのものではない。

743 名前:デフォルトの名無しさん:2009/02/28(土) 23:33:47
関連する、と、広義に当てはまる、は違う件について。

というか、外からWScript.QuitやWScript.Timeout出来るって話はどうなったの?
これの具体例出せれば、WSHがCOMだという現在敗色濃厚な主張も一発逆転じゃん。

744 名前:デフォルトの名無しさん:2009/02/28(土) 23:42:10
COMの話はどうでもいいが、本当にそれが出来るなら俺も知りたいね

745 名前:デフォルトの名無しさん:2009/03/01(日) 00:24:06
エクスプローラはCreateObjectできないけれど、
COMだからオブジェクト参照は別途入手して、
その内部オブジェクトのShellFolderViewのオブジェクト参照を
WSHの変数に設定すれば、
objFolderView.CurrentViewMode = viewMode
のように使えるのだ。わかるか?

746 名前:デフォルトの名無しさん:2009/03/01(日) 00:41:43
知ってるけどそれがどうかしたの?

747 名前:デフォルトの名無しさん:2009/03/01(日) 00:44:01
知っててわからんとは
まっ多少なりとも応用力がないと役に立たんみたいやね


748 名前:デフォルトの名無しさん:2009/03/01(日) 00:46:34
ttp://ja.wikipedia.org/wiki/Component_Object_Model#.E6.8A.80.E8.A1.93.E7.9A.84.E8.A9.B3.E7.B4.B0

749 名前:デフォルトの名無しさん:2009/03/01(日) 00:48:20
>>747
何勘違いしてるの?

750 名前:デフォルトの名無しさん:2009/03/01(日) 00:52:04
>>743
ScriptContorlでWScriptを渡すのはいいのかな?
元々の要望通りになるとは思えないけど。

751 名前:デフォルトの名無しさん:2009/03/01(日) 01:02:19
>>748のCOMの定義にあるインターフェイスを介す方法でよろしく
それ以外の方法で参照を取って操作したところでCOMとは言えないし

752 名前:デフォルトの名無しさん:2009/03/01(日) 02:12:07
え〜と、IUnknownを実装していてoleview.exeやExcelの参照設定からでもオブジェクトの内容を見れたとしても、それでもCOMではないと言い張るんだ?
Windows Script Hostの略称「WSH」とスクリプトからグローバルに参照できるインスタンス「WSH」を混同してるわけ?

753 名前:デフォルトの名無しさん:2009/03/01(日) 02:15:32
はぁ?

754 名前:デフォルトの名無しさん:2009/03/01(日) 02:18:40
ふわぁ〜眠

755 名前:デフォルトの名無しさん:2009/03/01(日) 02:28:40
COM serverはCOMだけど、COM ClientはCOMじゃない、みたいな言い方だな。

748をじっくり読めば分かるけど、COMってのはインターフェース等の通信規格の事で、
COM ClientがCOMじゃないって言うなら、COM ServerもCOMじゃないんだが。

756 名前:デフォルトの名無しさん:2009/03/01(日) 03:24:39
何見当違いなこと言ってキレてるんだ?

757 名前:デフォルトの名無しさん:2009/03/02(月) 19:14:29
>>735が恥ずかしさのあまり誤魔化そうと暴れまわってるんじゃなかろうか

758 名前:デフォルトの名無しさん:2009/03/02(月) 19:17:14
WScript.Quitと言えばこんなことも
ttp://blog.livedoor.jp/sage_p/archives/51376139.html

759 名前:デフォルトの名無しさん:2009/03/02(月) 21:02:59
>>757
残念ハズレ

760 名前:デフォルトの名無しさん:2009/03/02(月) 22:00:56
          . '   _ 二二 _ .、
          /    /´ -‐…‐- .`\
        /     /´    i   !`ヽト、
.    ,ヘ  ,'   i    !  !  | |i  |ハ i ヽ キリッ
   /  ゝ!  ノ|  ! !::__!::ノ ´  ̄  i::.i |!
   \  .| .:i i :i i |´   \  / `!、ハ:!
      `ヽi  从 i i | ニニミ    .ニニ !:::::|
.       |  YハiハN  {r::リ`  ´{r::リ '::::N    < 残念ハズレ
.       |  ヽゝ   ´´     ``ハ!`      
.       |∧   Y!        ′ ,':::|
       j/∧  _!::} 、   ⊂' ..イ:::::|
      ///∧´ ∨  `  ,.... ィ´゙Y:::::|
.     /////∧ ヽ    {ト、∧ |::::::!
     ,< ̄ ̄∧  } `ヽ  >''} { ̄`ヽ
.    /   `ヽ:::::::::Y´ヽ      i´`∨::::∧
   /      ∨:::::| .:: !       i .:.: !::::/ i
           _ ___
        ,. :'´: :,. -―‐-ミ:ヽ、
      /: : : :厶ィ': ´ ̄ ̄ヾ : :\
      /: : : : : :.!: :M: : : : : }、: ヽト、:.\   <じゃっておwww
     i: : :.!: : : レ‐' ` ̄⌒ ⌒" トヘ:ハ!
   ト--|: : :.!: : 、|  ー‐'' ´ `'ー  }: :.ト
  ミ ミ ミ : :!: : : :! z=≡   ≡z.{: :.ハ    ミ ミ ミ
 /⌒)⌒)⌒.ハ :_Nとつ \\\ C VVリ   /⌒)⌒)⌒)
 | / / /:弋こ \ヽ __,.   } (⌒)/ / / //
 | :::::::::::(⌒) : :}\  /   1  /  ゝ  :::::::::::/
 |     ノくf⌒Y ` {_  _,ノイ|    /  )  /
 ヽ    /  ヽ ヘ,、  _「 |::!:::::}   /    /     バ
  |    |   l||l 从人 l||l.!::|イ:::ヽ_./ l||l 从人 l||l  バ  ン
  ヽ    -一''''''"~~``'ー--、/:::::イ;  -一'''''''ー-、    ン

761 名前:デフォルトの名無しさん:2009/03/02(月) 22:32:15
必死になってAA探してくるほど悔しかったの?

762 名前:デフォルトの名無しさん:2009/03/02(月) 23:00:23
>>761
かわいそうだからそっとしておけ。

763 名前:デフォルトの名無しさん:2009/03/02(月) 23:24:22
A1.WSHとVBSの機能では不可能
A2.そもそもWSHやVBSはWinAPIを呼べない

COMと呼ばれる汎用コンポーネントを介すことで
実現自体は不可能じゃないけどね
どうしてもやりたければ、WSHやVBSではなくそっち方面を調べること

764 名前:デフォルトの名無しさん:2009/03/02(月) 23:54:32
そんなに怖い顔してモニターを睨まないでください

765 名前:デフォルトの名無しさん:2009/03/03(火) 00:49:54
反撃したいなら、間違ったこと書いてるレスをコピペしないと反撃にならないぞ

766 名前:デフォルトの名無しさん:2009/03/03(火) 01:37:17
VBSもCOMですけど

767 名前:デフォルトの名無しさん:2009/03/03(火) 01:39:21
JScriptもCOMですけど

768 名前:デフォルトの名無しさん:2009/03/03(火) 03:01:44
┐(´ー`)┌

769 名前:デフォルトの名無しさん:2009/03/03(火) 03:09:20
COMMAND.COM も COM ですけど

770 名前:デフォルトの名無しさん:2009/03/03(火) 03:40:59
完全に論破されて壊れちゃったんだね

771 名前:デフォルトの名無しさん:2009/03/03(火) 12:55:13
>733
 AppActivate() で目的のウィンドウを手前に持って来る
 → SendKeys()
 
 …で十分みたいな気がするのは俺だけか?

772 名前:デフォルトの名無しさん:2009/03/03(火) 14:00:02
COMで確実に操作できるのにわざわざタイミングのむずかしいSendKeysを使うものか

773 名前:デフォルトの名無しさん:2009/03/03(火) 14:14:26
WScript.Echo('JScriptはCOM',typeof(new Object()),'ですけど');

774 名前:デフォルトの名無しさん:2009/03/03(火) 14:30:12
sub sub1()
end sub
msgbox "VBScriptはCOM " & typename(getref("sub1")) & "ですけど"


775 名前:デフォルトの名無しさん:2009/03/03(火) 14:57:00
MORE.COMはEXEですけど

776 名前:デフォルトの名無しさん:2009/03/03(火) 19:23:16
結局勘違いして大法螺吹いてるだけだったわけだ。
何か俺等の知らない高いスキルでも持ってるのかと少しは期待したが
出てきた物は糞の足しにもならない言い訳がましい勘違い屁理屈ばかり。
格下と解りゃ煽っても踊らせても何も得る物は無いわけだから
あとは玩具として楽しめれば上等って話だな。

777 名前:デフォルトの名無しさん:2009/03/04(水) 19:52:55
「ググレカス」は
大見得切ってみせたものの出す物出せない忍者ハッタリくんの
隠れ身の術の呪文なんだよ^^

778 名前:デフォルトの名無しさん:2009/03/05(木) 20:32:59
真珠を投げないでください

779 名前:771:2009/03/05(木) 20:53:21
>772
 
 ホントだ、試してみたら >>745 の CurrentViewMode を使う方が
 便利だわ。収穫だった、thx

780 名前:デフォルトの名無しさん:2009/03/05(木) 23:21:47
>>778
"真珠"は投げられてない

781 名前:デフォルトの名無しさん:2009/03/06(金) 02:31:06
>>745の中にキラッと光るものが、、、あっ真珠だ!

782 名前:デフォルトの名無しさん:2009/03/06(金) 02:45:52
自分で垂れ流した糞を褒め称えてりゃ世話無いぜw

783 名前:デフォルトの名無しさん:2009/03/06(金) 02:57:38
ヒントを与えすぎたかと思ったがわからんかったようやね?よかったよかった

784 名前:デフォルトの名無しさん:2009/03/06(金) 03:10:25
ヒントどころかズバリ書いちゃってるじゃん
アレでわかんない奴なんて居ないよ

785 名前:ショートカット:2009/03/17(火) 22:58:26
ショートカットの指してる先のファイルをNTFSパーティーション上で
移動したりすると
元のショートカットそのものも次にダブルクリックしたときに
自動的に更新するよね?
(知らなかった人は試してみ?)

そんでこの自動更新を一個一個ダブルクリック等せずに
WSHでやる方法ないですか?

画像のショートカットが大量にあって
リンクが外れてサムネイルがみれなくなってしまって困ってるんだ
(もちろんダブルクリックすれば見れるようになるんだけど、数がおおくてめどい)

これじゃおちおち画像の整理もできやしないよ!

786 名前:デフォルトの名無しさん:2009/03/17(火) 23:03:03
WshShotcut Resolve

787 名前:ショートカット:2009/03/18(水) 00:03:00
Resolveてなに?

788 名前:ショートカト:2009/03/18(水) 00:48:35
WshShortcutオブジェクトでResolve試してみたけど

オブジェクトでサポートされていないプロパティまたはメソッドです XXX.Resolve

てなっちゃったよ
XXX.Resolve 4
XXX.Resolve = 4
両方同じ

具体的にどうやってResovlveすんの?
一応WSHは5.7でVBScript

789 名前:デフォルトの名無しさん:2009/03/18(水) 00:56:33
shell.application
folderitem.getlink.resolve

790 名前:デフォルトの名無しさん:2009/03/18(水) 01:00:56
元ファイルのフォルダごとリンク先を変えたのなら、
Shortcut Director というツールで一括変更できる。

WshShortcut の Resolve はリファレンスにあるけど、存在しない。

791 名前:デフォルトの名無しさん:2009/03/18(水) 01:03:08
saveし直せばいいんじゃね

792 名前:デフォルトの名無しさん:2009/03/18(水) 01:55:45
ショートカットファイルを複数D&D。
でも当方Vistaで削除しますか?っていわれちゃう。
-----------------------------
Option Explicit

Dim shellapp
Dim fso
Dim fc
Dim fcItem
Dim lnkFile
Dim objlnk
Dim e

Set shellapp = CreateObject("Shell.Application")
Set fso = CreateObject("Scripting.FileSystemObject")

For Each lnkFile In WScript.Arguments
Set fc = shellapp.NameSpace(fso.GetParentFolderName(lnkFile))
Set fcItem = fc.Items
For Each e In fcItem
If e.Path = lnkFile And e.IsLink Then
Set objlnk = e.GetLink
objlnk.Resolve(4)
objlnk.Save
End If
Next
Next

WScript.Echo "Done."
Set fso = Nothing
Set shellapp = Nothing


793 名前:デフォルトの名無しさん:2009/03/18(水) 03:41:20
set e=fcItem.item(fso.GetfileName(lnkFile))


794 名前:ショートカット:2009/03/18(水) 07:36:45
みんなありがとう
今日帰ったら早速試してみるよ
>>789-793

795 名前:デフォルトの名無しさん:2009/03/18(水) 15:29:21
自宅のXPマシンだと出来た。
OSの追跡機能をOFFってるとそもそもだめなのね。
>>793反映版。

Set shellapp = CreateObject("Shell.Application")
Set fso = CreateObject("Scripting.FileSystemObject")

For Each lnkFile In WScript.Arguments
Set fc = shellapp.NameSpace(fso.GetParentFolderName(lnkFile))
Set fcItem = fc.Items
Set e = fcItem.Item(fso.GetFileName(lnkFile))
Set objlnk = e.GetLink
objlnk.Resolve(4)
objlnk.Save
Next

WScript.Echo "Done."

796 名前:デフォルトの名無しさん:2009/03/19(木) 14:26:34
俺は追跡はウザイだけなので切ってるよ。

797 名前:デフォルトの名無しさん:2009/03/20(金) 14:54:30
そもそもショートカットっていらなくね?

798 名前:デフォルトの名無しさん:2009/03/20(金) 16:28:11
つかえないやつにかぎってそういうんじゃね?

799 名前:デフォルトの名無しさん:2009/03/20(金) 17:58:52
データに対するショートカットって使わないな。
ハードリンク使うし。

800 名前:デフォルトの名無しさん:2009/03/20(金) 18:10:22
うん。ランチャとジャンクション使うよ普通は

801 名前:デフォルトの名無しさん:2009/03/20(金) 18:52:59
.wshのショートカットって使わないな。
.lnkのショートカット使うし。


802 名前:デフォルトの名無しさん:2009/03/20(金) 18:54:51
WSHって使わないな。
PowerShell使うし。

803 名前:デフォルトの名無しさん:2009/03/20(金) 19:37:41
PowerShellって使わないな。
AppleScript使うし。

804 名前:デフォルトの名無しさん:2009/03/20(金) 19:56:04
> AppleScript
どこら辺を笑えばいいの?

805 名前:デフォルトの名無しさん:2009/03/20(金) 20:21:43
あまりの滑りっぷりの寒さ

806 名前:デフォルトの名無しさん:2009/03/21(土) 11:46:27
#!/bin/bash
hostname
who is god
hostname | sed 's/^[^\.]*\.//'

# VBSでやるとしたら
#Option Explicit
#
#Dim WSHNetwork
#Set WSHNetwork = WScript.Createobject("WScript.Network")
#
#WScript.Echo "ドメイン名  :" & WSHNetwork.UserDomain
#WScript.Echo "ユーザー名  :" & WSHNetwork.Username
#WScript.Echo "コンピューター:" & WSHNetwork.ComputerName


807 名前:デフォルトの名無しさん:2009/03/21(土) 11:47:47
#!/bin/bash
sed 's/ようこそ/Welcome/g' youkoso.txt > welcome.txt

# VBSでやるとしたら
#Set fso = CreateObject("Scripting.FileSystemObject")
#Set regEx = New RegExp
#Set inFile = fso.OpenTextFile("C:\TechEzo\Round23.txt")
#Set outFile = fso.CreateTextFile("C:\TechEzo\Round23_2.txt")
#
#regEx.Pattern = "ようこそ"
#repStr = "Welcome"
#Do Until inFile.AtEndOfStream
# tempLine = inFile.ReadLine
# repLine = regEx.Replace(tempLine, repStr)
# outFile.WriteLine repLine
#Loop
#
#inFile.Close
#outFile.Close

808 名前:デフォルトの名無しさん:2009/03/21(土) 11:52:56
MSがWSHを半ば見限ってPowerShellを開発したのは当然のこと。
上記二例からわかる通り、WSHでは
非開発者の管理者やエンドユーザには負担が大きくなるからだ。

809 名前:デフォルトの名無しさん:2009/03/21(土) 13:13:07
わかってないなぁ
M$は普通の人にPCを便利に使ってもらう必要はない
直感的に操作できるようにして便利だと錯覚させればOKだから

それに、一般人に簡便なスクリプト言語与えたら、簡単なツールで金取ってるような無能が失業するだろ
色んな意味で、馬鹿にはコンビューティングに目覚めないでもらったほうが都合がいいのさ

810 名前:デフォルトの名無しさん:2009/03/21(土) 14:12:53
PowerShellなら
(cat youkoso.txt) -replace "ようこそ","Welcome">welcome.txt
でいいんだもんな。リダイレクションだとUnicodeになっちゃうからOut-Fileを使う方がいいんだろけど。
WSHはエディタの補完機能がないと全く書く気になれない。

811 名前:デフォルトの名無しさん:2009/03/21(土) 14:24:17
> 上記二例からわかる通り
そんな不適切な例で、何が解るって言うつもりだ?

君がやってるのは、「四則演算は電卓の方が手軽だからPCはこの世に必要ないものです」と同じ事。
電卓側が手軽になる例だけ挙げて、その逆やましてや電卓で不可能なことには触れていない。

本気で書いてるなら「視野が狭い」と言うべきだが、きっと故意にやってるので「頭が悪い」と言った方が正しいな。

812 名前:デフォルトの名無しさん:2009/03/21(土) 15:41:01
> 上記二例からわかる通り
「頭が悪い」

813 名前:デフォルトの名無しさん:2009/03/21(土) 15:47:49
実にくだらない争いを見た。

814 名前:デフォルトの名無しさん:2009/03/21(土) 16:57:26
PowerShellやbashより簡単になる例ってどんなのがあるの?

815 名前:デフォルトの名無しさん:2009/03/21(土) 17:01:31
すれ違い

816 名前:デフォルトの名無しさん:2009/03/21(土) 17:02:57
しつこい

817 名前:デフォルトの名無しさん:2009/03/21(土) 19:00:47
>>807
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile("C:\TechEzo\Round23_2.txt").Write Replace(fso.OpenTextFile("C:\TechEzo\Round23.txt").ReadAll,"ようこそ","Welcome")


818 名前:デフォルトの名無しさん:2009/03/21(土) 21:19:05
>>817
それでもbashより面倒なのがイタいな

819 名前:デフォルトの名無しさん:2009/03/21(土) 21:25:09
そんなに行数、文字数減らしたかったら、
sed win32版を使えばいいだけ。あとはcygwinでも使え。
比較すること自体が嫌がらせ。荒らすなよ。

820 名前:デフォルトの名無しさん:2009/03/21(土) 22:00:41
>>818はsedをbashだと思ってるのかな?

821 名前:デフォルトの名無しさん:2009/03/21(土) 22:05:54
というか >>807 の「VBSでやるとしたら」のコードが面倒過ぎなだけだろうもん。

Set oShell = CreateObject("WScript.Shell")
oShell.Exec("cmd /c more > C:\TechEzo\Round23_2.txt").StdIn.Write _
sText = Replace(oShell.Exec("cmd /c type C:\TechEzo\Round23.txt").StdOut.ReadAll, "ようこそ", "Welcome")

822 名前:デフォルトの名無しさん:2009/03/21(土) 22:06:54
間違った・・・・。

Set oShell = CreateObject("WScript.Shell")
oShell.Exec("cmd /c more > C:\TechEzo\Round23_2.txt").StdIn.Write _
Replace(oShell.Exec("cmd /c type C:\TechEzo\Round23.txt").StdOut.ReadAll, "ようこそ", "Welcome")

823 名前:デフォルトの名無しさん:2009/03/21(土) 23:11:20
perl(Active) や PHPから使えばいいじゃん。

824 名前:デフォルトの名無しさん:2009/03/22(日) 01:18:30
@if(0)==(0) CScript.exe //NoLogo //E:JScript "%~f0" <youkoso.txt > welcome.txt & GOTO :EOF & @end
WScript.StdOut.Write(WScript.StdIn.ReadAll().replace(/ようこそ/g,"Welcome"));

825 名前:デフォルトの名無しさん:2009/03/22(日) 03:22:35
WSHでの正規表現の扱いは、確かに面倒ではある

826 名前:デフォルトの名無しさん:2009/03/22(日) 03:45:23
その代わりに柔軟だけどね

827 名前:デフォルトの名無しさん:2009/03/22(日) 04:26:12
> 上記二例からわかる通り
ほんとよく分かった。もっと勉強してから出直せよ

828 名前:ショートカット:2009/03/22(日) 14:16:58
>>799
>>799

おーハードリンクいいですね

早速ショートカットをハードリンクに置き換えるスクリプトでも、、

と思ったんだけどひとつ素朴な疑問。

同じ内容の2ファイルが
ハードリンクなのか別コピーなのか識別する方法って
どうやるの?
(内容がFC /bとかで一致してるのがわかってるとして

829 名前:ショートカット:2009/03/22(日) 14:17:56
さすがに
試しに片方のファイルに追記してみるとかはなしで

830 名前:デフォルトの名無しさん:2009/03/22(日) 16:43:41
ハードリンクの意味わかってるか?

831 名前:ショートカット:2009/03/22(日) 17:27:38
>>830
その質問は本人に聞いても意味ないでしょ

832 名前:デフォルトの名無しさん:2009/03/22(日) 17:28:07
>>830
質問の意味わかってるか?


833 名前:デフォルトの名無しさん:2009/03/22(日) 17:35:55
fsutil objectid query ファイル名
の結果が一致したら実体が同一ってことのはず。

834 名前:デフォルトの名無しさん:2009/03/22(日) 17:45:30
リンクカウントは?

835 名前:デフォルトの名無しさん:2009/03/22(日) 17:50:50
カウントだけじゃ
・AとBが同一内容で実体が別
・それぞれA=A'とB=B'のハードリンクが存在する
というケースで誤認するはず

836 名前:デフォルトの名無しさん:2009/03/22(日) 17:54:17
そうじゃなくてリンクカウント調べるには?


837 名前:デフォルトの名無しさん:2009/03/22(日) 18:14:17
objectidが一致するファイル名を数える

838 名前:デフォルトの名無しさん:2009/03/22(日) 18:15:18
だからリンクカウントじゃハードリンクの存在しかわからないから
誤認する可能性があると言ってる。厳密にやる必要性については知らん。

839 名前:デフォルトの名無しさん:2009/03/23(月) 00:11:43
GetFileInformationByHandle()つかうみたいね

840 名前:618:2009/03/23(月) 00:52:03
>>836
「リンクカウント調べる の は?」
と空目してた。正直すまんかった

841 名前:デフォルトの名無しさん:2009/03/23(月) 21:34:37
IE8 入れたけど、htmlfile から window オブジェクト取得して
userAgent 調べると MSIE 7.0 のままなんだけど、何故に?

IE から調べるとちゃんと MSIE 8.0 が表示される。

842 名前:デフォルトの名無しさん:2009/03/23(月) 23:39:00
IE8、正式版と言うわりには色々おかしいような
WSH関係無いけど、SSLのクライアント証明書が使えなくなった

843 名前:デフォルトの名無しさん:2009/03/24(火) 20:59:43
>>841
べつのdllなんじゃろうて
その理由はきっとこぴぺ開発
もっともらしく言えば既存環境に影響を与えないように環境を二重にしたとか

844 名前:デフォルトの名無しさん:2009/03/25(水) 03:05:21
確かに htmlfile と IE の window オブジェクトは色々違いあるね。
前者は特にクリップボードに書き込みできないのが勿体無い。

845 名前:デフォルトの名無しさん:2009/03/25(水) 10:17:45
それは単にセキュリティゾーンの設定

846 名前:デフォルトの名無しさん:2009/03/25(水) 11:10:30
prompt()がだめとか

847 名前:デフォルトの名無しさん:2009/03/30(月) 00:10:40
wsfの拡張子を他のに変えてWSHに渡すと
「ファイル拡張子 ".xxx" を持つスクリプト エンジンはありません。」
って言われるんだが、内容はwsfの様式で、拡張子が.wsfではないファイルを
wsfとして実行させるにはどうしたら良い?

.wsfはwscript.exeの通常実行のままで、他を拡張子毎にcscript.exe実行やデバッガ実行などを
既定動作にしたいんだが、.wsf時には正常に実行できるファイルでも、拡張子を変えた途端にエラーとなる。
デバッグの有無(//D)なら、<?job debug="true" ?>で済むが
デバッガ実行(//X)とかcscript.exe実行とかはxml要素での指定が出来ないし。

スクリプトで自身を実行し直したり、ラッパー噛ませたりと妥協策は有るには有るが
そういう姑息な方法ではなく、別拡張子を直接渡して問題なく実行できる方法が有ったら教えて欲しい。

848 名前:デフォルトの名無しさん:2009/03/30(月) 00:15:15
ない

849 名前:デフォルトの名無しさん:2009/03/30(月) 00:17:29
?script.exeの名前を変えてバイナリ書き換え

850 名前:デフォルトの名無しさん:2009/03/30(月) 02:48:41
短いファイル名を使えばできるかも

851 名前:デフォルトの名無しさん:2009/03/30(月) 03:47:59
拡張子を偽装するほうが、”姑息な方法” だと思うが。姉歯か?おまいは・・・

バッチで
CD /D %~dp1
IF %~x1==.wsf wscript.exe %1
IF %~x1==.vbs cscript.exe %1
IF %~x1==.unko cscript.exe //X %1
みたいなのを作って、ドラッグ&ドロップするのが簡単


852 名前:デフォルトの名無しさん:2009/03/30(月) 03:54:39
知らないのに無理にレスすんな

853 名前:デフォルトの名無しさん:2009/03/30(月) 16:51:02
ショートカットで我慢しろ

854 名前:デフォルトの名無しさん:2009/03/30(月) 19:24:03
なるほど
ありがとうございました

855 名前:847:2009/03/30(月) 19:50:17
>>848
ご存じありませんか。

>>849
それが出来るならそれでも良いんですが、バイナリをいくつかの文字コードで検索してみたところ、
使用方法説明の「//Job:xxxx Execute a 【WSF】 job」や、無関係な「Windo【wsF】older」しかヒットしません。

「もしかしたらこれで出来るかも」という思いつきなら、残念ながら出来ないようですということになりますが
間違いなく出来ると言うなら、書き換えるバイナリアドレスを教えてください。

>>851
取り違えられているようなので、今一度説明します。
問題は、拡張子によって実行コマンドを変える方法ではなく、
.wsfの拡張子を変更した物を渡して実行させる方法です。

他人の目を欺く偽装ではなく、自分の環境での話なので、
拡張子によって実行コマンドを変える部分は関連付けの変更により既に解決しています。
847でも書いた通り、問題は関連付けで既定動作(つまりダブルクリックやEnterキー押下で
wscript.exeやcscript.exeに渡るよう)にした上で、渡されたファイルが実行されないことです。

そのバッチも無意味で、.vbsを.unkoとしたものなら
IF %~x1==.unko cscript.exe //X //E:VBScript %1
で実行されますが、.wsfを.unkoとしたものでは>>847の2行目で書いたエラーが出るだけです。

>>853
妥協策としてはショートカットよりはラッパーを選びます。



今のところ、可能であるなら>>849が最有力候補です。
他人のPCで実行させる話ではなく自分のPCでの話なので、システムフォルダ内や関連付けは
自由に弄れますから、>>849が可能なら解決です。

856 名前:デフォルトの名無しさん:2009/03/30(月) 19:57:32
なんでそんなことしたいん?

857 名前:847:2009/03/30(月) 20:10:23
>>856
最初にも書いた通り、
> 拡張子毎にcscript.exe実行やデバッガ実行などを既定動作にしたい
からです。

vbsの拡張子をvbcに変えた物を既定でcscript.exe実行に定義する「VBCFile」と同じです。
ttp://www.vector.co.jp/soft/winnt/util/se304538.html
> .VBS、.JSファイルはWScript.EXEか、CScript.EXEのいずれか既定値で起動されます。
> 既定値は変更できますが、すべてのスクリプトファイル起動方法が一律に変わります。
> 例えば、大部分のスクリプトファイルはWScript.EXEで起動し、一部のスクリプトファイルだけを
> CScript.EXEで起動したい、というような使い分けが出来ません。
> そこで、CScript.EXEで起動する専用の拡張子を別に作ります。
> 「.VBS」に対して「.VBC」、「.JS」に対して「.JSC」です。

これを.vbsや.jsではなく.wsfでやりたいというだけの話です。

858 名前:デフォルトの名無しさん:2009/03/30(月) 20:13:00
前スレか他スレで昔やってたやついたよ。

859 名前:デフォルトの名無しさん:2009/03/30(月) 20:15:14
未解決の前例なんて無いのと同じ

860 名前:デフォルトの名無しさん:2009/03/30(月) 20:25:38
wshext.dll内に.wsfがあるけど

861 名前:847:2009/03/30(月) 20:42:51
>>858
確認してみましたが、>>859さんの言う通り、未解決のまま立ち消えのようです。

>>860
?script.exe以外だと、別拡張子が実行できるようになったとしても
今度は.wsfが実行できなくなって、本来の目的である使い分けが出来ないということになりませんか?

862 名前:デフォルトの名無しさん:2009/03/30(月) 20:48:16
VectorにWSFFileがあるだろ

863 名前:847:2009/03/30(月) 21:26:06
>>862
ありがとうございます。おかげさまで解決しました。
VBCFileと同じ作者のものなのに見逃してました。

864 名前:デフォルトの名無しさん:2009/03/31(火) 00:57:39
吉岡さんは神

865 名前:デフォルトの名無しさん:2009/03/31(火) 01:39:03
MVP落ち

866 名前:デフォルトの名無しさん:2009/03/31(火) 23:43:58
バイナリ書き替えなくても>>850でできるのでは?

867 名前:デフォルトの名無しさん:2009/04/01(水) 18:39:59
うん

868 名前:デフォルトの名無しさん:2009/04/01(水) 18:55:59
無理

869 名前:デフォルトの名無しさん:2009/04/01(水) 19:06:06
有理

870 名前:デフォルトの名無しさん:2009/04/01(水) 22:03:54
実際に試してから書いた方がいいぜ

871 名前:デフォルトの名無しさん:2009/04/02(木) 00:27:23
遅レスだけど、レジストリエディタで↓を参照。>847

HKEY_CLASSES_ROOT\.WSF
HKEY_CLASSES_ROOT\WSFFile\Shell\Open\Command

872 名前:871:2009/04/02(木) 00:30:51
ちなみにVistaだとコンテキストメニューに「コマンドプロンプトで開く」ってのが
標準装備されてますな。

873 名前:デフォルトの名無しさん:2009/04/02(木) 00:32:25
>>847を読み直したほうがいいぜ

874 名前:デフォルトの名無しさん:2009/04/02(木) 14:37:34
なるほど

875 名前:デフォルトの名無しさん:2009/04/02(木) 15:48:38
なるほど っていいたいだけだろ

876 名前:デフォルトの名無しさん:2009/04/02(木) 15:56:29
なるほど

877 名前:デフォルトの名無しさん:2009/04/06(月) 14:45:01
すみません、以前どこかで見たことがあるような気がするんですが
けっきょく捜しきれなかったので質問させていただきます

LAN内のほかのマシンで実行中のアプリ(MSAccess)をリモートから強制終了
させるVBSってのが知りたいのです

878 名前:デフォルトの名無しさん:2009/04/06(月) 14:47:07
あれれ、質問なのにSageちゃった
ごめんなさい
あげさせてもらいますね

879 名前:877:2009/04/06(月) 16:50:49
自己解決しました。

880 名前:877:2009/04/06(月) 17:23:52
877です。
879は、私ではありません。

881 名前: ◆877pupbpBk :2009/04/06(月) 17:33:07
本物の877です。
879は、私ではありません。
880も、私ではありません。

とは言え自己解決はしてますのでもう消えます。
この状況ではこの後も私の偽物が出てくるかも知れませんが
以後放置してくださって結構です。

882 名前:デフォルトの名無しさん:2009/04/10(金) 14:47:40
wsfのcreatescriptlet()って何?

883 名前:デフォルトの名無しさん:2009/04/13(月) 18:33:45
wshでファイルの移動をして、移動先に同名のファイルやフォルダがあった場合に
エクスプローラで出てくるような上書き確認のダイアログを出すことは出来ないでしょうか?

884 名前:デフォルトの名無しさん:2009/04/13(月) 18:47:56
普通にMegBoxやPopupで確認ダイアログ作れば良いだけじゃん

885 名前:デフォルトの名無しさん:2009/04/13(月) 19:11:03
MegBox

886 名前:デフォルトの名無しさん:2009/04/13(月) 19:18:14
分からないならレスしないでください

887 名前:883:2009/04/13(月) 19:37:36
移動でフォルダをちゃんと上書きする方法がわからなくて・・・
コピーメソッドは上書きできるみたいなんですが
サイズの大きいファイルだとかなり時間が違ってくるので
もしかしてオブジェクトで用意されてたりしないかなと思って

888 名前:デフォルトの名無しさん:2009/04/13(月) 19:49:13
shell.applicationのmovehere

889 名前:デフォルトの名無しさん:2009/04/13(月) 20:00:42
>>883
シェルオブジェクトを使えばいい。
Set sh = CreateObject("Shell.Application")
Set dst = sh.NameSpace("C:\TEMP")
dst.CopyHere "hoge.txt"
例えばコピー先フォルダ名・元ファイル名を適当に変えて
これを2度実行すれば、2度目は上書き確認のダイアログが出て来るはず。

890 名前:883:2009/04/13(月) 20:57:48
>>888>>889
ありがとうございました!
まさにこんなのを探してました


891 名前:デフォルトの名無しさん:2009/04/23(木) 16:03:23
vbsの変数宣言でついでに初期化させてくれよん
バリアント型だから数値変数にしか使うつもりないのまで初出で参照されるのは
いちいち1行1個ずつa=0 b=0 c=0・・・・・とか書くしかない



もうメジャーうpないから仕様追加してくれねーんだよね(変なところ頑固だよなヽ(`Д´)ノウワァァン)
普通にbreak,continueだっていっぱい要望来てたんだろうにレガシVB系にはついにつけなかったしね
VB.NETにはやっとつけたらしいけど

892 名前:デフォルトの名無しさん:2009/04/23(木) 19:00:30
dim a:a=0

893 名前:891:2009/04/23(木) 19:22:15
>>892ありがとう
そんな仕様があったのかー・・・>MS
この後ろには何も書けないみたいだけど前に初期化不必要変数宣言はできるからかなり行数減るわ

894 名前:デフォルトの名無しさん:2009/04/23(木) 20:25:11
いくらでも書けますが
dim a:a=0:dim b:dim c:b=0:c=0

895 名前:デフォルトの名無しさん:2009/04/23(木) 20:45:33
昔のBASICを思い出すなあ。
ベーマガに載ってるプログラムとか、
マルチステートメント使いまくりだったよね。

896 名前:デフォルトの名無しさん:2009/04/23(木) 20:59:43
>>894
△dim a:a=0:dim b:dim c:b=0:c=0
○dim a:a=0:dim b,c:b=0:c=0

宣言の連続はカンマ区切りにすればdim省略出来る
個別に宣言と代入を繰り返すか、一気に宣言して後から代入するかは好き好きだが
宣言が連続する場合に毎回dim書くのは非効率的

897 名前:デフォルトの名無しさん:2009/04/24(金) 12:39:49
dim a,b,cにしないのは何故?

898 名前:デフォルトの名無しさん:2009/04/24(金) 15:14:32
Dimにしないのは何故?

899 名前:デフォルトの名無しさん:2009/04/24(金) 21:07:15
>>897
JScriptの
var a=0;
に合わせて
dim a:a=0
を1セットとしたほうが感覚的に解りやすいって人も居るから。

だから宣言と代入を1セットとして個別に書くのは有りだと思うが
宣言が連続する場合に毎回:で区切ってdimを書くのは効率悪いだけ。

>>898
Dimにしなくちゃいけないのは何故?

900 名前:デフォルトの名無しさん:2009/04/24(金) 22:06:02
Dimの方が一般的だから

901 名前:デフォルトの名無しさん:2009/04/24(金) 22:08:48
それは理由にならないね

902 名前:デフォルトの名無しさん:2009/04/25(土) 11:54:26
>>899
聞き方が悪かったのかな。書き直す。
>>896
bとcをまとめてaをまとめないのは何故?

903 名前:デフォルトの名無しさん:2009/04/25(土) 13:14:01
こういうことも出来る、ああいうことも出来る、って見本だろ。

904 名前:デフォルトの名無しさん:2009/04/25(土) 16:23:15
なるほど

905 名前:デフォルトの名無しさん:2009/04/25(土) 20:41:26
Dimの後わざわざ0を代入しておかないと困るのってどんな場合?
普通に数値として使う分には0扱いになるよね?

906 名前:デフォルトの名無しさん:2009/04/25(土) 21:55:52
dim a
msgbox a

907 名前:デフォルトの名無しさん:2009/04/26(日) 00:43:12
アホなコードだな

908 名前:デフォルトの名無しさん:2009/04/26(日) 01:21:22
msgbox clng(a)
にすればいいんじゃね

909 名前:デフォルトの名無しさん:2009/04/26(日) 10:24:36

そゆのを、「対処療法」 って言うんです。

910 名前:デフォルトの名無しさん:2009/04/26(日) 11:03:10
もしかして:対症療法

911 名前:905:2009/04/26(日) 11:06:06
なるほど、MsgBoxの第一引数に数値を指定しちゃうような人は困るって事ね。
普通に数値として使わない訳だ。

912 名前:デフォルトの名無しさん:2009/04/26(日) 16:12:49
msgbox clng(a) & "個です。"


913 名前:デフォルトの名無しさん:2009/04/26(日) 17:48:59
なるほど

914 名前:デフォルトの名無しさん:2009/04/29(水) 11:08:09
if の条件で x>1 かつ x>2 としたい場合どのように書けばいいのでしょう?

915 名前:デフォルトの名無しさん:2009/04/29(水) 11:56:42
If x>1 And x>2 Then
End If

916 名前:デフォルトの名無しさん:2009/04/29(水) 11:58:32
てか x>2 なら x>1 だな

917 名前:デフォルトの名無しさん:2009/04/29(水) 11:59:05
両方 x なんだから x>2 だけでいいんじゃね


918 名前:デフォルトの名無しさん:2009/04/29(水) 14:02:10
>>914
Not (x > 1 Imp x <= 2)

919 名前:デフォルトの名無しさん:2009/04/30(木) 15:37:38
if の条件で x<1 かつ x>2 としたい場合どのように書けばいいのでしょう?

920 名前:デフォルトの名無しさん:2009/04/30(木) 16:15:11
>>915

921 名前:デフォルトの名無しさん:2009/04/30(木) 18:00:53
VBSだとJSのContinue;みたいなのなかったでしたっけ?



922 名前:デフォルトの名無しさん:2009/04/30(木) 18:15:33
命令としては無いよ
同じようなことはいくらでも出来るけどね

923 名前:デフォルトの名無しさん:2009/05/01(金) 16:07:19
(漏れはGotoなくてもいい派だけど)Gotoないんだったら
少なくてもContinueは入れとかないとダメでしょって気はするけどね
やっとVB.NETにはついたらしいけどこっちにつくことは永遠にない罠



旧VB系で有名なテク

for i=0 to 10
do ' Continue用のしかけ(インデントする必要ないだろ)
exit do ' Continue代わり
msgbox("Hello World!") ' 絶対実行されない
loop until TRUE ' Continue用の必ず一回実行されるループ
next

924 名前:デフォルトの名無しさん:2009/05/03(日) 00:27:58
なるほど

925 名前:デフォルトの名無しさん:2009/05/04(月) 00:20:22
WSHShell.CreateShortcutを使ってショートカットを作ろうとしているのですが、ショートカットに
引数を込みでショートカットを作成したいんです

んで、.TargetPathに全てを込みで設定してみたのですが、出来たショートカットが引数ごと "" で囲まれている
状態で、正常に引数として扱えないんです
これを起動するパスのみ "" で囲んで、その後ろの引数は通常通り "" の外に出したいのですが
実現可能でしょうか?

実現可能なら方法を教えてください よろしくお願いします


参考:
現状の作成したショートカットの状態
"C:\hogehoge.exe -option"

実現したい書式
"C:\hogehoge.exe" -option

926 名前:デフォルトの名無しさん:2009/05/04(月) 02:54:24
なんでTargetPathじゃないものまでTargetPathに放り込んで
起こるべく当然の現象に対して正常に扱えないとか文句言ってるの?
-optionまでがTargetPathだって君自身が指定してるんだから、-optionまで""で囲われて当然じゃん。
普通、引数はArgumentsで指定するもんだろ?wshヘルプにもそう書いてあるじゃん。

.TargetPath = "C:\hogehoge.exe"
.Arguments = "-option"

当たり前のことを当たり前にやれば何の問題も起きないってもんだ。

927 名前:デフォルトの名無しさん:2009/05/04(月) 03:00:05
>>926
うおーん Thx
そういうことだったのか

wshのヘルプを探すことからはじめます
ありがとう


928 名前:デフォルトの名無しさん:2009/05/11(月) 22:40:54
WSHShell.CreateShortcutは非シフトJIS文字のファイル名が駄目なんだって!
やっぱ9x起源なのかな?

929 名前:デフォルトの名無しさん:2009/05/11(月) 22:44:04
駄目って、回避方法ないのか?

930 名前:デフォルトの名無しさん:2009/05/11(月) 23:17:58
WSHでDOM (Shibuya.js in Kyoto) - てっく煮ブログ
ttp://d.hatena.ne.jp/nitoyon/20080720/wsh_dom


これすげー
でもクラス名とかどうやって調べればいいんだろ
タスクバーとかは弄れないのかな

931 名前:デフォルトの名無しさん:2009/05/12(火) 17:50:07
なるほど

932 名前:デフォルトの名無しさん:2009/05/12(火) 23:22:24
WScript.EchoのEを小文字にしているのを初めて見た。
というか小文字でも通るんだな。

933 名前:デフォルトの名無しさん:2009/05/12(火) 23:26:19
そりゃぁ、BASIC ですから

934 名前:デフォルトの名無しさん:2009/05/12(火) 23:28:40
JScriptは通らん

935 名前:デフォルトの名無しさん:2009/05/12(火) 23:35:44
実際やってみたらJScriptでもWScript.echoが通ったよ

936 名前:デフォルトの名無しさん:2009/05/13(水) 04:43:48
そりゃあなぁ

937 名前:デフォルトの名無しさん:2009/05/13(水) 11:23:51
JavaScriptじゃなくて、Jscriptのヘルプを掲載したお勧めページある?MSのサイトじゃなくて。
ローカルで使えるJScriptのCHMをあげてたサイトが、なぜか見つからない・・・

938 名前:デフォルトの名無しさん:2009/05/13(水) 18:03:14
MSのCHNの何が不満?

939 名前:デフォルトの名無しさん:2009/05/13(水) 19:53:16
少しお聞きします。

.batファイルでの

 set UNKO=dekkai

相当のこと(一時的な環境変数設定)をJScriptでやるには、
どうしたらよいのでしょうか?

WshShell.Environment("PROCESS");でItemプロパティに設定する方法であっているのでしょうか?

webで検索したところ、グローバルな環境変数を弄る話ばかりで、
うまく見つけられません…。

>>937
MSのchm使ってますが便利ですよ。サンプルコード豊富ですし

940 名前:デフォルトの名無しさん:2009/05/13(水) 19:59:55
>>930
これすごいですね。UIをDOMというJavaScriptのスタイルで弄るという発想が飛んでる

941 名前:デフォルトの名無しさん:2009/05/13(水) 22:21:38
ウィンドウタイトルが数字列のときAppActivateが効かないのは
どうしようもないのでしょうか?

942 名前:デフォルトの名無しさん:2009/05/13(水) 22:51:39
powershell使えよ

943 名前:デフォルトの名無しさん:2009/05/14(木) 09:47:55
↑↑
逃避

944 名前:デフォルトの名無しさん:2009/05/14(木) 19:53:46
↑↑
正攻法は?

945 名前:デフォルトの名無しさん:2009/05/14(木) 20:03:00
>>929
shell.application
但し、引数が使えない

946 名前:デフォルトの名無しさん:2009/05/14(木) 20:19:58
逃げてないでpowershell使えよ

947 名前:デフォルトの名無しさん:2009/05/14(木) 20:46:20
powershell使わんでもできるよ

948 名前:デフォルトの名無しさん:2009/05/14(木) 20:55:20
' >>939
' VBscriptで電源落とすまで使える環境変数を設定して、取得する奴ならこんな感じ
dim Ret
Ret = funEnvSetVolatile_sName_sVal("P_PortableApps","C:\mydocument")
msgbox("環境変数を設定しました PortableApps = " & funEnvGetVolatile_sName("P_PortableApps"))

private function funEnvSetVolatile_sName_sVal(sName,sVal)
dim objSHL
Set objSHL=WScript.CreateObject("WScript.Shell")
objSHL.Environment("VOLATILE").Item(sName)=sVal
funEnvSetVolatile_sName_sVal = objSHL.Environment("VOLATILE").Item(sName)
End Function

private function funEnvGetVolatile_sName(sName)
funEnvGetVolatile_sName = WScript.CreateObject("WScript.Shell").Environment("VOLATILE").Item(sName)
End Function

949 名前:デフォルトの名無しさん:2009/05/14(木) 21:24:02
// >>939 Jscriptでも出来た。環境変数の設定と取得
WScript.Echo("P_Test1111 = " + funEnvSetVolatile_sName_sVal("P_Test1111","C:\\test1111"));

WScript.Echo("P_Test1111 = " + funEnvGetVolatile_sName("P_Test1111"));

function funEnvGetVolatile_sName(sName){
var WshShell = new ActiveXObject("WScript.Shell");
var WshEnv = WshShell.Environment("VOLATILE");
return WshEnv(sName)
}

function funEnvSetVolatile_sName_sVal(sName,sVal){
var WshShell = new ActiveXObject("WScript.Shell");
var WshEnv = WshShell.Environment("VOLATILE");
//\は特殊文字なのでエスケープするのを忘れない。"C:\\test";
WshEnv.Item(sName) = sVal;
return WshEnv(sName)
}


950 名前:939:2009/05/15(金) 02:12:10
>>948-949
ありがとう。
WshShell.Environment("PROCESS") の Itemに設定して上手くいきました。
設定後、Runでアプリを起動してみたのですが、無事に環境変数を受け継いでくれていました。

951 名前:デフォルトの名無しさん:2009/05/15(金) 19:24:15
>>946 powershellに逃げてないでwsh使えよ

952 名前:デフォルトの名無しさん:2009/05/15(金) 19:55:28
powershell使うくらいならJScript.NETを使ってしまう

953 名前:デフォルトの名無しさん:2009/05/16(土) 14:40:40
>>947
excelつかうんじゃなくて?

954 名前:デフォルトの名無しさん:2009/05/16(土) 17:39:04
>>951
wshに逃げてないでpowershell使えよ


955 名前:デフォルトの名無しさん:2009/05/17(日) 00:22:38
↑↑
逃避

956 名前:デフォルトの名無しさん:2009/05/17(日) 00:23:59
↑↑
逃避

そうか。使いこなせないのか。そうかそうか。

957 名前:デフォルトの名無しさん:2009/05/18(月) 03:11:57
Wsh+AutoIt3で十分です。

958 名前:デフォルトの名無しさん:2009/05/18(月) 15:13:26
使いこなせば、wscript.shellのappactivateでできる。
修行が足りんな。

959 名前:デフォルトの名無しさん:2009/05/18(月) 16:43:16
なるほど

960 名前:デフォルトの名無しさん:2009/05/18(月) 20:54:33
新しいことを覚えるのから逃げてるだけ。


961 名前:デフォルトの名無しさん:2009/05/18(月) 21:35:59
つまらん 帰れ

962 名前:デフォルトの名無しさん:2009/05/19(火) 00:30:01
WSHでGUI組むときに便利なのありますか?
フォントを24ドットくらいにして、いくつかのボタンをつけた
リストボックスのダイアログが組み込めればいいのだけど。

963 名前:デフォルトの名無しさん:2009/05/19(火) 00:32:23
それだけでいいならhtaでいいんじゃない?

964 名前:デフォルトの名無しさん:2009/05/19(火) 00:53:04
そりゃそうだ。

965 名前:デフォルトの名無しさん:2009/05/19(火) 00:56:35
そりゃそうだじゃないw
HTAだとデフォのままだとファイルをドロップできないんで、
WSFかVBS、JS上でデカイダイアログ使いたいの。

966 名前:デフォルトの名無しさん:2009/05/19(火) 01:04:25
WSHからIE使えばええじゃないか

967 名前:デフォルトの名無しさん:2009/05/19(火) 01:26:29
HTA2CMDにすりゃデフォのままファイルをドロップできるが

968 名前:デフォルトの名無しさん:2009/05/19(火) 04:11:19
ドロップできるようにすりゃいいだろ ぼけ

969 名前:デフォルトの名無しさん:2009/05/19(火) 05:48:48
PowerShellならGUI自由自在だよ

970 名前:デフォルトの名無しさん:2009/05/19(火) 09:14:45
つーか、なんで最初からファイルをドロップしたいって書かないんだ?
こういう奴はファイルをドロップ出来るようになったところで
また後出し条件出すんだろうから放置でいいだろ

971 名前:デフォルトの名無しさん:2009/05/19(火) 10:42:29
>>967
なるほど、そういう手で偽装する手があったんですね。ありがとうございました!

972 名前:デフォルトの名無しさん:2009/05/19(火) 16:26:53
次はコンソールが出ないようにとか

973 名前:デフォルトの名無しさん:2009/05/19(火) 16:31:32
>>969
デフォを変えないヤツがPowerShellを使うか ぼけ

974 名前:デフォルトの名無しさん:2009/05/19(火) 16:52:20
>>972
HTA2JS

975 名前:971:2009/05/19(火) 20:01:52
>>974
複数行コメントが使えるJscriptでうまく偽装できましたよw
コンソール画面無しでHTAで行けました。
Jscriptも埋め込んで、WScript.Sleepとか
他の機能も使えるようになりました。
試した感じでは、HTA(VBSとJSCRIPT) と JSCRIPTを
1つのJSのファイルに埋め込むことが出来ました。
ここにAutohotkeyのスクリプトも埋め込めそうです。
GUIからDLLの利用まで一通り出来ますね。
SFCminiとAutoIt3をインストールしちゃってもいいんだろうけど。

976 名前:971:2009/05/19(火) 20:06:39
WSFとJSは便利だわ。

977 名前:デフォルトの名無しさん:2009/05/19(火) 20:47:30
デフォを変えないヤツがいろいろ使ってるな
とっととドロップ使えるようにしろよ

978 名前:デフォルトの名無しさん:2009/05/19(火) 20:54:47
htaは引数のパーズがめんどいからhta2jsはいいかも
jsからhtaへどう渡すかがポイントだな

979 名前:971:2009/05/19(火) 21:41:28
HTA+Jscript+Autohotkey のjsファイルと、
HTA+Jscript+AutoIt3 のjsファイルは動きました。
HTA+Jscript+Autohotkey+AutoIt3は無理みたいです。
ドロップされたファイルはJSのWScript.Arguments()で受けといて、
hta.commandLineでHTAのVBSで受け取れました。サンクスです。

980 名前:デフォルトの名無しさん:2009/05/19(火) 21:54:00
ファイルの更新日を更新したんだけど、VBSだけでできる?
今はcygwinのtouch.exeをVBSからつかって更新させてるんだけどVBSだけで完結したい

あ、最新に変更できれば問題ないです。

981 名前:デフォルトの名無しさん:2009/05/20(水) 01:18:43
ヘルプよめ

982 名前:デフォルトの名無しさん:2009/05/20(水) 16:12:17
DateLastModifiedプロパティは「値の取得のみ可能です。」だから素直にヘルプ読むとハマると思う

983 名前:デフォルトの名無しさん:2009/05/20(水) 16:41:17
shell.applicationのfolderitem.modifydateだね


全部 最新50
DAT2HTML 0.35f FIX Converted.