5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

お前ら、wsh使ってますか? part5

1 :名無し~3.EXE:2005/09/13(火) 01:39:43 ID:AYVL4/nR
こんなことコンピュータにやらせろよ。そう思ったことはありませんか?
簡易的な実行環境も含めて普通のOSだったら当たり前に備わっている自動実行。
Windowsの標準に備わっているそれがWSH(Windows Script Host)です。
また、ここではWSHだけに限らずWMI、ADSIなどのネタもOKです。

掲示板一般の注意は包括の上、その他諸注意。

・煽りや荒らしは基本的に無視の方針でお願いしますが、ウイルス、ワーム等の投稿は拒めません。
この板はWindows板であって、プログラム一般に知識のない方も見る可能性があります。
ローカルおよびネットワーク等に害が加わるコードを発見しましたら、その投稿者を騙って何をするものなのかとか、無害化、有益化等の解説を加えて頂ければありがたいです。

・また、一レスに収まりきれないコード(30行以上)はソースアップ板でどうぞ。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177
ソースをアップ出来ましたら、そこの個別リンクを張り、それを元に話を進めていただけると便利かもです。

・ここでヒントを得て完成したスクリプトは皆さんにお披露目してください。
 同じことで悩んでいる人のためになります。

・質問する際は、OS及び使用するコンポーネントのバージョンもまず先に告げることをお忘れなく。

基本的にsage進行で、プログラムのことよりも「これが出来る」便利さを語るスレになったらいいなと思います。

過去スレ
#1 http://pc.2ch.net/test/read.cgi/win/1009175619/
#2 http://pc2.2ch.net/test/read.cgi/win/1022248379/
#3 http://pc8.2ch.net/test/read.cgi/win/1058829737/
#4 http://pc8.2ch.net/test/read.cgi/win/1100489339/
また関連の>>1-4も見てください

2 :名無し~3.EXE:2005/09/13(火) 01:40:43 ID:AYVL4/nR
便利なリンク集(前スレより)
【WSH本体】
http://www.microsoft.com/japan/msdn/scripting/default.asp
【オンラインドキュメント】
http://www.microsoft.com/japan/msdn/library/default.asp
【Windows Script 5.6 ドキュメント ダウンロード (exe 形式; 1.67 MB)】
http://download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/JA/scd56jp.exe
【オブジェクト内のメソッドプロパティがわからないときはVB、Officeがあるならオブジェクトブラウザを見ること。
持ってない人はOLE/COM Object Viewerを使う。】
http://www.microsoft.com/com/default.mspx

WindowsXPには、コマンドラインツールとして、VBSファイルが結構あるみたいですね。
http://www.atmarkit.co.jp/fwin2k/xp_feature/013commandtool/commandtool.html
【ADSIの特集全文(?)が再掲されています。】
http://www.galliver.co.jp/writing/nikkei_tokushu/wad002/index.html

【個人サイト】
趣味のJavaScriptなページ
ttp://homepage3.nifty.com/aya_js/
Windows Scripting Host Laboratory
ttp://www.roy.hi-ho.ne.jp/mutaguchi/wsh/
Tips - (小技にも満たない)微ワザ集
ttp://www1.u-netsurf.ne.jp/~tomo_c/tips/Scr002.html
Nacelle - WSH「自動」
ttp://nacelle.info/wsh/index.php

3 :名無し~3.EXE:2005/09/13(火) 01:41:47 ID:AYVL4/nR
コンポーネント関連リンク
外部コンポーネント(MS)
DCOM(98/Me)
http://www.microsoft.com/japan/com/dcom/dcom98/dcom13.asp
DCOM(95)
http://www.microsoft.com/japan/com/dcom/dcom95/dcom13.asp

MDAC - データベース・メールボックス・WebDAV・バイナリの操作
http://www.microsoft.com/data/download.htm
WMI(95/98/NT4.0) - 統一されたコンピュータオブジェクト化モデルを提供するスクリプティングAPI、リモート管理
http://www.microsoft.com/downloads/release.asp?releaseid=23142
ADSI - Active Dictoryの機能を操作
http://www.microsoft.com/downloads/release.asp?releaseid=11093
SOAP - 非集中/分散環境におけるシステム間の構造化され型付けされた情報の交換
http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn-files/027/001/580/msdncompositedoc.xml
MSXML - XMLパーサ、SAX・DOM API、XSLT変換、POST/HTTPダウンロード
http://msdn.microsoft.com/library/default.asp?url=/downloads/list/xmlgeneral.asp

外部コンポーネント(MS社製以外)
BASP21 - メール、ファイルエンコード、文字コード変換、FTP/HTTPアップ、その他
ttp://www.hi-ho.ne.jp/babaq/basp21.html
Doodle2 - グラフィック変換、操作、描画
http://www.vector.co.jp/soft/winnt/prog/se219120.html
DynaCall - Win32APIコール
http://www.borncity.com/WSHBazaar/WSHDynaCall.htm
AutoItX - マウス・キーボード・クリップボード操作
http://www.hiddensoft.com/AutoIt/

4 :名無し~3.EXE:2005/09/13(火) 01:42:52 ID:AYVL4/nR
WSH(COM)参考書籍
「はじめてのWindows Scripting Host」 (株)アンク著 技術評論社
http://www.esbooks.co.jp/books/detail?accd=30456199

「VBScriptポケットリファレンス」
http://www.esbooks.co.jp/books/detail?accd=30567925

「使いながら覚えるWindowsScriptingHost プログラミング入門」 竹田英雄著 エーアイ出版
http://www.ai-pub.co.jp/contents/book/os/win_scr_host.html

「Windows Scripting Host入門 with VBScript」 毎日コミュニケーションズ
http://www.esbooks.co.jp/books/detail?accd=30446339

「WSHで楽しむWindows95/98/NT4.0版 ウィンドウズ・スクリプティング入門 VBScript編」 メディアテック出版
http://www.esbooks.co.jp/books/detail?accd=30421885

「WSHクイックリファレンス」 羽山博著 オライリー・ジャパン
http://www.esbooks.co.jp/books/detail?accd=30609520

「Rubyを256倍使う本 邪道編」 arton著 ASCII
http://www.ascii.co.jp/books/detail/4-7561/4-7561-3603-6.html

「ADSIスクリプトによるWindows2000システム管理 Windows2000管理者ガイドブック」ピアソン・エデュケーション トーマス・エック 著
http://www.pearsoned.co.jp/washo/win/wa_win70-j.html (どちらかというとVBによる操作本?)

「標準ASPテクニカルリファレンス」山田祥寛著 SOFTBANK
http://books.softbank.co.jp/bm_detail.asp?sku=4797314001

5 :名無し~3.EXE:2005/09/13(火) 01:43:42 ID:AYVL4/nR
【VBScript, JScript, Perl, Ruby以外にWSHで使える言語】
TCLScript
http://tclscript.sourceforge.net/
PerlScript
http://aspn.activestate.com/ASPN/docs/ActivePerl/Components/Windows/PerlScript.html
ActiveScriptRuby
http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/
PyScript
http://www.python.org/windows/win32com/ActiveXScripting.html
REXX Software for Windows 95/98/ME/NT/2000
ttp://www.borg.com/~jglatt/rexx/win32/rxusrw32.htm

6 :名無し~3.EXE:2005/09/13(火) 06:50:15 ID:KqXrRfZg
I Wish U Heaven

7 :名無し~3.EXE:2005/09/13(火) 21:45:44 ID:AptHJ6TV
保守は荒らし

8 :名無し~3.EXE:2005/09/14(水) 07:08:01 ID:F42LGcDs
>>1
リンク切れの修正くらいしろよ

9 :名無し~3.EXE:2005/09/14(水) 23:12:04 ID:6qM0sCyZ
じゃ、俺が代わりにメンテナンス後、テンプレを1/3程度に圧縮して
次スレから変更するわ。何ヵ月後になるかは知らんが。

10 :名無し~3.EXE:2005/09/16(金) 08:02:22 ID:NGHsZvAA
新スレみっけ

11 :11:2005/09/16(金) 13:38:58 ID:DWe+J9rR
11ゲット
過去スレミラーのご案内です。

お前ら、WindowsScripting使ってますか? Part3
http://winscript.s41.xrea.com/mirror/1058829737.html

お前ら、wsh使ってますか? Part4
http://winscript.s41.xrea.com/mirror/1100489339.html

# MSHのスレ立たないかな〜

12 :名無し~3.EXE:2005/09/20(火) 00:49:47 ID:PQfo7QY0
WMI使ってIEの履歴とかって見れないのかなぁ?

13 :名無し~3.EXE:2005/09/21(水) 07:17:52 ID:AK/S+HQm
何に使う気だ

14 :名無し~3.EXE:2005/09/24(土) 13:53:28 ID:sbQFEDCi
>11
mshってそれ自体の立ち上がりに時間がかかるから
mshファイルをダブルクリックして実行するとメッチャ遅い。

ダブルクリックして実行したら
起動済みのmsh.exeに処理させるようには出来ないのかな。

15 :名無し~3.EXE:2005/09/24(土) 15:27:48 ID:ZXIJYCRS
ある特定のフォルダのファイルの
ファイル名と、作成日時、更新日時を取得して、
何日以前作成or更新でかつ、ファイル名に"hogehoge"を含むファイルを
削除するWSHスクリプトを晒してください。

16 :名無し~3.EXE:2005/09/24(土) 15:33:58 ID:+5U1b2Sk
やだ

17 :15:2005/09/24(土) 15:38:29 ID:ZXIJYCRS
残念です。。。

18 :名無し~3.EXE:2005/09/24(土) 15:47:57 ID:AFhyDZVw
>>15
晒してもいいんだけど、残念ながら持ってなかった。
「書いてくれ」じゃなくて「晒してくれ」だから
持ってない場合はわざわざ書いてまで晒さなくてもいいんだよね。
まあ、いまさら訂正は認めないけどな。

この程度なら30分も調べりゃ全くの初心者でも書けるようになるからがんがれ。

19 :名無し~3.EXE:2005/09/24(土) 16:26:03 ID:R7h91I8q
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.GetFolder("フォルダのパス")
Set colFiles = objFolder.Files
For Each objFile in colFiles
' ここで検索パターンを書くなりファイルを消すなり好きにしろ
' Fileオブジェクトのプロパティ一覧を調べれば
' やることはわかるな。
' ファイル削除は"FileSystemObject ファイル 削除"でぐぐれ
Next
Set colFiles = Nothing
Set objFolder = Nothing
Set fso = Nothing

たまたま「特定のフォルダとそのサブフォルダ」から「特定の
ファイルタイプのファイル」を抽出して処理するスクリプトが
あったんで、大幅改変の上晒し。
>>15はサブフォルダ内も検索したいとは書いてなかったんで
その部分はばっさり削除した。

20 :名無し~3.EXE:2005/09/24(土) 17:52:54 ID:NBx7cxlm
>>19
それ枠組みだけじゃん
そんなん書く意味なしww


21 :名無し~3.EXE:2005/09/24(土) 19:34:53 ID:R7h91I8q
>>20
でも、あと3行で完成だよw

22 :名無し~3.EXE:2005/09/24(土) 19:53:09 ID:HuBWfMjI
>>21
で、>>19は4処理中の1つだけなんだがな
オブジェクトの解放やらなんやらで見た目の行数だけは多いが、処理的には
For Each objFile in fso.GetFolder("フォルダのパス").Files
の1行に過ぎない。

23 :名無し~3.EXE:2005/09/24(土) 19:59:54 ID:R7h91I8q
>>15は「何日以前」だから日時の判定は日付だけでいいんだよな?

だったら
If InStr(objFile.Name, "hogehoge") > 0 And Left(objFile.DateLastModified, 10) <= "2004/12/31" Then
objFile.Delete
End If
で済むよね。


24 :名無し~3.EXE:2005/09/24(土) 20:03:22 ID:HuBWfMjI
笑えねー・・・・・

25 :名無し~3.EXE:2005/09/24(土) 21:11:05 ID:IIm2QBQ9
必要もないのに条件式をAndで繋いだり、
Date型を返すDateLastModifiedを文字列比較したりと面白い子ですね。

26 :15:2005/09/24(土) 22:50:21 ID:rRbm0XLT
みなさん、ありがとう。でも、、、

>>18
“がんがれ”って言われても、
“がんが”ってみたんだけど、わからなかったんだよね。。。

>>25
言っとる意味がわからん。。。



27 :名無し~3.EXE:2005/09/24(土) 22:57:37 ID:vo9qcV0S
exerb(ruby用)のような感じで、
WSHのVBScriptやJScriptを実行ファイル化できるツール
をフリー限定で探してみるも、
環境によってコンパイルできなかったり
元のスクリプトが消えたりと余りいいのが見つからないですねえ。


・WSH用コンパイラ+
ttp://www.vector.co.jp/soft/winnt/prog/se344839.html

・スクリプトエンコーダ(下の方)
ttp://kajika.tk/fio/?Tool
 ※WinXP環境下専用。必ずスクリプトのコピーを作成しておくこと。

28 :名無し~3.EXE:2005/09/24(土) 23:38:55 ID:psDhNfYx
>>27
そんなに需要がないからだろう。

29 :15:2005/09/24(土) 23:41:35 ID:rRbm0XLT
http://www2.tokai.or.jp/mother/newhtm2/acvba/av07/av012.htm
↑を読んだら、だいたいわかったよ。

19さん、23さん、どうもありがとう。

30 :名無し~3.EXE:2005/09/25(日) 00:13:53 ID:gQ0KDRkL
>>27
VBScriptやJScriptをコンパイルするんだったら
VB.NETかC#でいいんじゃないかな?

31 :名無し~3.EXE:2005/09/25(日) 00:47:54 ID:2ZThvVa4
>>30
せっかくだからJScript .Netって言ってあげて。

32 :名無し~3.EXE:2005/09/25(日) 11:43:17 ID:lekHd/Mq
Webサーバ上のCSVファイルを読み込んで計算したいんですが
OpenTextFileでファイル名にURLを指定しても名前が不正と怒られます。
どうしたらできるのか教えてください。お願いします。

33 :名無し~3.EXE:2005/09/25(日) 13:16:02 ID:tAbbPAG2
msxml2.XMLHTTPオブジェクトとかを使う

34 :名無し~3.EXE:2005/09/28(水) 02:17:32 ID:4qoIk/Vk
ローカルファイルでもネットリソースでも
同じように処理してくれるものだと思っちゃうあなたはニュータイプです

35 :名無し~3.EXE:2005/10/02(日) 18:08:29 ID:tQNDmXF1
指定した時刻から経過した分数を足して出力するスクリプトです。
----------
Dim MyArray, times

check = 1
Function jikoku()
times = InputBox("""開始時刻,分""を入力。カンマで区切る",,"10:00,60")
MyArray = Split(times, ",")

m2h1 = MyArray(1) \ 60
m2h2 = MyArray(1) mod 60

MyArray(0) = DateAdd("h", m2h1, MyArray(0))
jikoku = DateAdd("n", m2h2, MyArray(0))
check = MsgBox(jikoku,65,"終了時刻")
End Function

Do While check = 1
jikoku()
Loop
------------
これを実行して結果を得た後にキャンセルを押すと「インデックスが有効範囲に無い」
と言われるんですが、何のエラーも無く終了させるにはどうすれば良いのでしょうか。

仕様は
「InputBoxで時間、分を入力→計算して結果をMsgBoxで出力→
MsgBoxの返り血が"1"なら初めに戻る、"2"なら華麗に終了」にしたいです。

36 :名無し~3.EXE:2005/10/02(日) 18:58:12 ID:W00N1dc+
wsh(vbs)使い始めて30分ってとこか。
あと30分も勉強すれば、原因も解決方法も解ると思うよ。

37 :名無し~3.EXE:2005/10/02(日) 18:58:23 ID:ZrKO0dFa
>35
Functionの位置がおかしい。
それとInputBoxでキャンセルすると同じエラーになる。

----------
Dim MyArray, times
check = 1
Do While check = 1
jikoku()
Loop

Function jikoku()
times = InputBox("""開始時刻,分""を入力。カンマで区切る",,"10:00,60")
if times = "" then Wscript.Quit
MyArray = Split(times, ",")
m2h1 = MyArray(1) \ 60
m2h2 = MyArray(1) mod 60
MyArray(0) = DateAdd("h", m2h1, MyArray(0))
jikoku = DateAdd("n", m2h2, MyArray(0))
check = MsgBox(jikoku,65,"終了時刻")
End Function


38 :35:2005/10/02(日) 21:43:31 ID:tQNDmXF1
>>37
あるがとうごさいます
FunctionとDo〜Loopの位置関係だけで改善されるとは…。
先にFunctionを読み込んで、それから呼び出す必要があるのかと思っていました。

>InputBoxでキャンセル〜
それでキャンセルしないようにし、
やったとしても特に問題にはなら無いので気にしないようにします。

>>36
恥ずかしながら、ちょこちょこやって三ヶ月以上触っています。
(今回のは三十分ぐらいで出来ました)
新しく書く度にドキュメントを見ながらやっている次第です。

39 :35:2005/10/02(日) 21:47:33 ID:tQNDmXF1
事故レス
>InputBoxでキャンセル〜
>>37さんので問題が解決されてました。「if times = "" then Wscript.Quit」を見落としていました。

40 :名無し~3.EXE:2005/10/02(日) 21:52:50 ID:4/zKP3a1
IEで表示している画像から、テンポラリフォルダに入ってるこういう画像パスを取得する方法ってないですか?
「file:///C:/Temporary%20Internet%20Files/Content.IE5/N13DF6BG/A.JPG

41 :名無し~3.EXE:2005/10/02(日) 22:03:22 ID:GNbvpUO2
とりあえず私はそれ用の簡単なCOMを作った。
事実上GetUrlCacheEntryInfo関数しか使ってないので、DynaCallを使えばいけると思う。
他の手段は知らない。

42 :名無し~3.EXE:2005/10/02(日) 22:14:52 ID:4/zKP3a1
>>41
GetUrlCacheEntryInfoってAPIですよね?
よければそのCOMを;゚∀゚)=3

43 :名無し~3.EXE:2005/10/02(日) 22:29:47 ID:ZrKO0dFa
>39
まぁ、本当はInputBoxで不正値を入力した場合の対応も必要だけど、
個人用ならそこまでしなくてもいいか。

44 :名無し~3.EXE:2005/10/02(日) 23:04:21 ID:GNbvpUO2
>>42
どぞ。動作保証はしませんが、まあ私の手元では動いています。
ttp://hongliang.up.seesaa.net/others/LocalCacheFinder.zip

45 :名無し~3.EXE:2005/10/02(日) 23:22:30 ID:4/zKP3a1
>>44
サンクスです!
しかし登録しようとしたら、
「LoadLibrary("LocalCacheFinder.dll")failed - 指定されたモジュールが見つかりません」ってなるんですが。

もち、同じフォルダでプロンプトから「regsvr32 LocalCacheFinder.dll」やったんですが

46 :名無し~3.EXE:2005/10/02(日) 23:28:57 ID:GNbvpUO2
おや。
ん〜、なんでだろ。
実はCOMを作ったのも渡すのも初めてなので良く分かってないんで。
同じフォルダって、カレントディレクトリがそれになってます?
C:\**********>
のところですが。
あるいはいっそdllのフルパスを指定してみるとか。

47 :名無し~3.EXE:2005/10/02(日) 23:32:05 ID:4/zKP3a1
フルパスとバッチファイルもやりましたが、ダメでした。。


48 :名無し~3.EXE:2005/10/03(月) 01:37:17 ID:VBxMcuwN
うん、私も他の環境で試してみて駄目でした。試せよ私。
作り直したのでダウンロードし直してくださいな。
//ついでにLocalCache.jsも修正……5行のコードにミス2カ所って……。

49 :42:2005/10/03(月) 01:50:21 ID:6du8aECY
>>48
無事登録できますた!
サンプルスクリプトを試した結果、パス取得出来ませんでした。。
自分はメモリにテンポラリ作ってるんですがこれがダメなんでしょうか?
C:\じゃないと無理?

50 :スレ違いすんません:2005/10/03(月) 02:30:43 ID:VBxMcuwN
メモリに? ……ん〜、どうなんだろ。
それがファイルパスで表現できるのなら取得できるはずなんだけど。
IEもこの辺のAPIを使ってキャッシュを探してるはずだし。

ttp://hongliang.up.seesaa.net/others/CacheTest.zip
こいつを、コマンドラインで引数無しで実行してみてください。
で、IEで
ttp://www.gdm.or.jp/img-src/title_small.gif
を見てから、 //見てませんよねこのサイト?
もう一度コマンドラインで実行してみてください。
取得できません?

51 :42:2005/10/03(月) 18:13:53 ID:twlgBP9+
>>50
レス遅くなってすみません。
CacheTest.exeからなら上手く表示されましたが
Scriptからはパスが取得出来ないみたいです。。

52 :42:2005/10/03(月) 18:24:44 ID:twlgBP9+
>>50
たびたびすみません。
スクリプトから正常に取得出来ました。

LocalCache.jsにブラウザに表示してる画像をそのままD&Dしていたのですが、
よく考えると、そのD&Dってテンポラリに入ってるキャッシュパスを引数に渡してたので
取得出来なかったことが分かりました。。こっち側のアフォ丸出しのミスでお手数かけてすみませんw

しかし、これすごい便利ですね。マジ感謝です!

53 :名無し~3.EXE:2005/10/07(金) 14:44:23 ID:vUxYWxnM
WSHって仕事で使って大丈夫ですか?
DOSバッチのように枯れても使い続けられるのなら良いのですが
MSが明日にもサポートやめとか言い出さないか心配

54 :名無し~3.EXE:2005/10/07(金) 15:24:33 ID:i8QUJJWn
>>53
VistaβにもWSH5.6はインストールされてるらしい。
monadは先送りになったし、しばらく生き残ってるんじゃない


55 :53:2005/10/07(金) 15:50:51 ID:vUxYWxnM
>>54
THX!
チ眥ョハルカッ、キ、ニ、゚、゙、ケ。」

56 :名無し~3.EXE:2005/10/07(金) 17:58:25 ID:tShn76jc
解読よろ

57 :名無し~3.EXE:2005/10/07(金) 19:06:03 ID:794dWbya
「早速勉強してみます。」

58 :名無し~3.EXE:2005/10/07(金) 19:24:51 ID:yZBUP9XY
エクセルのユーザーフォームに確実に値をブチ込みたいんですが、いい方法ありませんか?
SENDKEY以外で

59 :名無し~3.EXE:2005/10/07(金) 20:37:35 ID:Dgi9lVDc
OLE

60 :名無し~3.EXE:2005/10/07(金) 20:53:48 ID:yZBUP9XY
どうやって勉強すればいいでしょうか?
サンプルがほしい

61 :名無し~3.EXE:2005/10/07(金) 20:55:54 ID:tShn76jc
>>60
ここに詳しく書いてある
http://www.google.co.jp/

62 :名無し~3.EXE:2005/10/07(金) 22:08:43 ID:fl41Fbvq
>>61
そりゃ可哀相だ。せめてこれで。
tp://www.google.com/search?num=100&hl=ja&lr=lang_ja&q=Excel.Application+WSH


63 :名無し~3.EXE:2005/10/08(土) 05:39:32 ID:CqqQhp2X
おいっ。気をつけろ!
OLE OLE 詐欺だ!

64 :名無し~3.EXE:2005/10/08(土) 11:40:45 ID:K6ExNQXt
お前ら不親切ですね

65 :名無し~3.EXE:2005/10/08(土) 21:43:07 ID:pVHq8dAD
>>60
このスレの>>1-5を読めば
すぐに分かるようなことを質問するなよ

66 :名無し~3.EXE:2005/10/12(水) 10:41:04 ID:U5Lp2Slp
WSHでfs.deletefolder(c:\temp\)を実行すると遅いマシンで巨大なディレクトリを削除しようとした場合、
途中でタイムアウトになりエラーになってしまいます。

これを回避する方法は無いでしょうか?


67 :名無し~3.EXE:2005/10/13(木) 00:06:05 ID:RziHpml0
質問!
WSHに必要なファイル(exeやdllなど)を消したかもしれません。
何が必要ですか?「設定ファイル”C”が不正」と出ます。

68 :名無し~3.EXE:2005/10/13(木) 00:29:24 ID:dxxk/RGb
http://www.google.com/search?num=50&hl=ja&inlang=ja&ie=Shift_JIS&oe=Shift_JIS&q=%22%90%DD%92%E8%83t%83@%83C%83%8B%81hC%81h%82%AA%95s%90%B3%22&lr=lang_ja

69 :名無し~3.EXE:2005/10/13(木) 01:29:30 ID:dBkYtGa7
>>66
Dim fso, f, f1, fc, s
Set fso = CreateObject("Scripting.FileSystemObject")

Sub delFolderList(folderspec)
Set f = fso.GetFolder(folderspec)
Set fc = f.SubFolders
For Each f1 in fc
delFolder(f1.Path)
f1.delete
Next

End nSub


70 :ミスった:2005/10/13(木) 01:33:10 ID:dBkYtGa7
Dim fso, f, f1, fc, s
Set fso = CreateObject("Scripting.FileSystemObject")

Sub delFolderList(folderspec)
Set f = fso.GetFolder(folderspec)
Set fc = f.SubFolders
If fc.Count > 0 Then
f.delete
Else
For Each f1 in fc
delFolder(f1.Path)
Next
End If
End Sub

MsgBox "朦朧とした頭で再帰"

71 :名無し~3.EXE:2005/10/13(木) 01:53:24 ID:dBkYtGa7
Option Explicit
Dim objFS, objFolder, objSubFolder, colSubFolders
Set objFS = CreateObject("Scripting.FileSystemObject")
Call delFolderList("C:\Temp")
Sub delFolderList(folderspec)
Dim biggest
biggest = folderspec
Do While objFS.FolderExists(biggest)
Set objFolder = objFS.GetFolder(folderspec)
Set colSubFolders = objFolder.SubFolders
If colSubFolders.Count = 0 Then
objFolder.delete
Else
For Each objSubFolder in colSubFolders
delFolderList(objSubFolder.Path)
Next
End If
Loop
End Sub

MsgBox "ちょっと目が覚めた。オヤスミ"

72 :名無し~3.EXE:2005/10/13(木) 02:54:47 ID:dBkYtGa7
>>67

>>71の報告を待つ。

73 :名無し~3.EXE:2005/10/13(木) 22:26:01 ID:2jxo6pDt
ネットワーク上の別のPCのデスクトップにメモ帳を立ち上げる
なんてこと、出来るのでしょうか?


74 :名無し~3.EXE:2005/10/13(木) 23:17:52 ID:NSbgF2cC

>>73はマルチなので、以後放置で

WSH(・∀・)スレッド!
http://pc8.2ch.net/test/read.cgi/tech/1055075469/323



75 :名無し~3.EXE:2005/10/13(木) 23:25:13 ID:4mUwZTtz
>>73
できるよ。
でも、どうせ他の場所にも書いてるんでしょ?
そっちで聞いてね♪

76 :名無し~3.EXE:2005/10/14(金) 01:00:00 ID:WDfPxMxX
マルチがなぜいかんのですか?

77 :名無し~3.EXE:2005/10/14(金) 01:34:14 ID:CPrLXIeZ
開き直るなよ、俺たちゃスルーしたるぜおいってだけだろがこのう゛ぉけなす

78 :名無し~3.EXE:2005/10/14(金) 04:04:03 ID:n051L4u+
>>73
( ◔_ゝ◔)

79 :名無し~3.EXE:2005/10/14(金) 04:33:27 ID:uq9jALs4
>>76
セリオの方がいいから

80 :名無し~3.EXE:2005/10/14(金) 12:11:47 ID:qPLRYxKh
タスクバーに出ているアプリの名前を取得するにはどうすればいいでしょうか
WindowsShell.item(i).Nameなどでは当然シェル名しか取れずに困っています

81 :名無し~3.EXE:2005/10/14(金) 13:46:15 ID:CPrLXIeZ
タスクバーに表示されるのってアプリによってはアプリ名とは限らず、
文書名だったりして、ウィンドウのタイトルになってると思うけど、
実際に取得したいのはそのタイトル名? それともプロセス?
それから >>80 自身はどこまで試してどこまで把握してる?

82 :名無し~3.EXE:2005/10/14(金) 14:53:53 ID:4zR35YEl
任意サイトのHTMLソースを抜き取る方法を教えて下さいませ

83 :名無し~3.EXE:2005/10/14(金) 15:40:38 ID:n051L4u+
>>82
var oXMLHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
with(oXMLHttpRequest)
{
Open("GET", strUrl, false);
Send();
}
var str=oXMLHttpRequest.responseText;


84 :82:2005/10/14(金) 21:39:42 ID:va92Dl+v
>>83
感激!!

85 :名無し~3.EXE:2005/10/15(土) 09:22:28 ID:m+AMWUQc
UTF8→EUC-JPへの変換について質問です。

アクティブデスクトップ動くRSSリーダーを作ってます。
ヘッドラインの表示はすでに完成しました。

さらに、ヘッドラインのリンクをクリックするとIEなどのブラウザが起動してしまうのがいやだったので
リンク先ページをXMLHTTPで取得、任意の場所を抽出して、
アクティブデスクトップ内に表示させようとしています。

そこで問題になったのが文字コードです。
XMLHTTPはUTF8しか扱えないないので取得ページがUTF8以外だと文字化けしてしまいます。
http://wwwroy.hi-ho.ne.jp/mutaguchi/bbs/list52.shtml ページ内検索「Unicode2SJIS」
↑を使ってUTF8→SJIS変換はできるようになり正常に表示できます。

http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list49.shtml ページ内検索「objXML.loadXML("<root/>")」
次に↑を改造してUTF8→EUC-JPを試みていますが、
http://mito.xml.gr.jp/log.html?MLID=xmlusers&TID=1692&F=0&L=10&R=1
ここにあるようにセキュリティ関係の制限でXMLObj.save(FilePath)が使えないようです。

何かいい方法はありませんか?



86 :名無し~3.EXE:2005/10/15(土) 10:27:54 ID:UodkPmaD
ようこそWindows script hostスレへ

87 :名無し~3.EXE:2005/10/15(土) 13:24:36 ID:KTCGCJxJ
>>85
つ ADODB.Stream

88 :85:2005/10/15(土) 13:36:45 ID:m+AMWUQc
>>87 やはりそれですか。
http://www.hawk.34sp.com/stdpls/dwsh/charset_adodb.html
↑ここ見てやればなんとかなりますよね?

89 :名無し~3.EXE:2005/10/15(土) 19:41:31 ID:KMIx8+D9
自動的に次スレ立てるスクリプトでもつくらないか。


90 :85:2005/10/15(土) 20:21:30 ID:m+AMWUQc
stream = new ActiveXObject("ADODB.Stream");
の時点で「オートメーション サーバーはオブジェクトを作成できません」
とエラーが出ます。セキュリティ設定の問題?

91 :名無し~3.EXE:2005/10/15(土) 21:14:55 ID:zeq+8SpE
>>90
http://support.microsoft.com/default.aspx?scid=kb;ja;870669
以前このレジストリを書くパッチがwinupdateで出た。

92 :85:2005/10/15(土) 21:39:12 ID:m+AMWUQc
>>91
なるほど。。これ有効にするとセキュリティ的に弱くなるわけですか。
自分で使う分にはいいけど・・・
みんさんどうしてるんでしょう?

93 :名無し~3.EXE:2005/10/16(日) 00:36:43 ID:9NJFbQW2
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/wsmthregwrite.asp
スクリプト内で一時的に切り替えてから動かせば?

94 :85:2005/10/16(日) 07:08:55 ID:Bdzlzn2G
>>93
おおっ仕事中考えてたんですよ!
やっぱできますかそういうこと。なるほど〜
とりあえず出鼻くじかれずにすんでほっとしました。
ありがとうございます。

95 :85:2005/10/16(日) 15:22:41 ID:Bdzlzn2G
完成!とても使えるものができました。ありがとうございました。

TextEncoder(objXML.responseBody);
function TextEncoder(bite) {

//レジストリ修正 ADODB.Streamを使用可に
WshShell = new ActiveXObject("WScript.Shell")
WshShell.RegWrite("HKLM\\SOFTWARE\\Microsoft\\Internet Explorer\\ActiveX Compatibility\\\{00000566-0000-0010-8000-00AA006D2EA4\}\\Compatibility Flags",1,"REG_DWORD")

var FS = new ActiveXObject("Scripting.FileSystemObject")
var sFileName = FS.GetTempName()
var TS=FS.CreateTextFile(sFileName,true,true) //UNICODEとして書き込む
TS.Write(bite)
TS.Close()

var adTypeText = 2;
var stream = new ActiveXObject("ADODB.Stream");
stream.charset='_autodetect'; //文字コード自動判定
stream.type = adTypeText;
stream.open();
stream.loadFromFile(sFileName);
stream.position = 0;

var returnText = stream.readText();
stream.close();
FS.DeleteFile(sFileName)

//レジストリ修正 ADODB.Streamを使用不可に
WshShell.RegWrite("HKLM\\SOFTWARE\\Microsoft\\Internet Explorer\\ActiveX Compatibility\\\{00000566-0000-0010-8000-00AA006D2EA4\}\\Compatibility Flags",1024,"REG_DWORD")

return returnText
}

96 :名無し~3.EXE:2005/10/16(日) 15:46:54 ID:MFM2VfCz
ttp://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list139.shtml
こんな解決方法もあるらしい。
レジストリをいじらない分スマートかも知れない。

97 :85:2005/10/16(日) 16:07:51 ID:Bdzlzn2G
あ。はじめのWshShell.RegWriteの第二引数は1じゃなくて0ですね。

ってか完成じゃなかったようです。
いざ目的のアクティブデスクトップに設定してみると
「オートメーションサーバーはオブジェクトを作成できません」 orz
なんでだ!?
レジストリの書き換えはできてるみたいなのに。

>>96 ん?どこだ?探してみます。

ってか地震でけぇ

98 :85:2005/10/16(日) 16:33:30 ID:Bdzlzn2G
連続カキコすいません。
再起動したら動いたというオチでした。

99 :名無し~3.EXE:2005/10/16(日) 18:15:42 ID:wHYznMTs
フォルダ内の作成日時順にあるリストに従って名前をつけるスクリプト書いてください
MDダビングしたんだけどいちいちリネームするの面倒だ

100 :名無し~3.EXE:2005/10/16(日) 18:27:37 ID:zwr/qlnP
ここはスクリプト書いてくださいスレじゃないぞ
まあ、教えたがりのピエロが踊って(書いて)くれるかもしれないけど

101 :99:2005/10/16(日) 19:30:23 ID:wHYznMTs
いま自分で書いてますが、配列に作成日順にファイル名を入れる方法が思いつきません・・・
なにか方法ありませんでしょうか?

102 :名無し~3.EXE:2005/10/16(日) 19:42:04 ID:sH8XHMxs
>>101
日付オブジェクトを格納した配列をバブルソートでもなんでも使ってソートすればok


103 :名無し~3.EXE:2005/10/16(日) 19:42:54 ID:zwr/qlnP
書いたものを省略せずに全てここに書け
他人任せではなく、やる気があるならアドバイスするぞ

104 :ぴえろ:2005/10/16(日) 19:43:34 ID:Tmen2nQo
>>99
金払え。

Dim objFS
Set objFS = CreateObject("Scripting.FileSystemObject")
Dim objFolder, objFile1, objFile2, objTSR
Set objFolder = objFS.GetFolder("ぱす")
Set objTSR = objFS.OpenTextFile("りすとのぱす")
I = 0
For Each objFile1 In objFolder.Files
For Each objFile2 In objFolder.Files
Do until objFile1.DateCreated < objFile2.DateCreateed
I = I + 1
Loop

Next
Next

105 :ぴえろ:2005/10/16(日) 19:56:49 ID:Tmen2nQo
なにかんがえてたか忘れたよ。
ファイル名を日付順に連番にしてから名前をつけなおすつもりだったんだが。

106 :名無し~3.EXE:2005/10/16(日) 20:34:15 ID:Tmen2nQo
Dim objFS,objFolder, objFile1, objFile2, objTSR
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder("ふぉるだぱす")
Set objTSR = objFS.OpenTextFile("りすとぱす",1,False)
I = 0
For Each objFile1 In objFolder.Files
For Each objFile2 In objFolder.Files
If DateDiff("s",objFile1.DateCreated , objFile2.DateCreated) < 0 Then
I = I + 1
objFile1.Name = I
End If
Next
Next
For Each objFile1 In objFolder.Files
IF objTSR.AtEndOfLine Then Exit For
objFile1.Name = objTSR.ReadLine
Next

107 :99:2005/10/16(日) 20:50:26 ID:wHYznMTs
あんたら神だ。ちきしょう涙でモニタが見えねぇ・・・

108 :名無し~3.EXE:2005/10/16(日) 21:57:12 ID:63cH8Lck
安い神だな

109 :名無し~3.EXE:2005/10/17(月) 01:28:03 ID:gG3Z2JDI
>>107
てゆーか動かないだろ。>>106

110 :99:2005/10/17(月) 20:08:42 ID:vtLP9HIH
>>106から少々拝借しまして、日時をファイル名にして普通にリネームしたらできました
地道にリネームした方が早かったけど達成感があるからいいや

111 :名無し~3.EXE:2005/10/17(月) 21:14:55 ID:4T0yxDjM
すいません初歩的すぎて申し訳ないんですが、次のサンプルスクリプトをWSHへ書き換えたいんですが
パラーメータの渡し方がわかりません。
どなたか教えてください。

<object ID=NetMeeting CLASSID="CLSID:3E9BAF2D-7A79-11d2-9334-0000F875AE17">
<PARAM NAME = "MODE" VALUE = "DataOnly">
</object>
 
 ↓

Set NWobj = createobject("Netmeeting.App")

112 :名無し~3.EXE:2005/10/17(月) 21:18:09 ID:X+eN/ed5
はいはい。まるちまるち。

113 :名無し~3.EXE:2005/10/17(月) 21:21:35 ID:7wJb5T5x
HTMLでは属性の名前と値の間のイコール前後に空白をあけない方が良いぜ。

114 :名無し~3.EXE:2005/10/17(月) 21:32:44 ID:4T0yxDjM
>>112
答えてくれんだったら、どんなに批難を受けようと甘んじて受けますよ。

で、あっちのスレを見て、こっちのスレも見てる常連さんなら判るよね?


115 :名無し~3.EXE:2005/10/17(月) 21:36:02 ID:ZIj7Gff0
>>114
答えてやらなかったらどうだってんだ?
死ねや。
むこうで謝ってきてから死ね。

116 :名無し~3.EXE:2005/10/18(火) 04:57:01 ID:QUIUGa7d
最近はマルチしといて開き直るのが流行ってるのか?

117 :名無し~3.EXE:2005/10/18(火) 12:12:27 ID:4h0AXZ65
マルチを自覚しないからだろ

118 :名無し~3.EXE:2005/10/18(火) 18:02:25 ID:71I8S1aS
>114-117
フッ゚

>111
出来ない。
<Object>タグが使えのなら、wshでIEを起動して、そこへHTMLを吐き出す方法がイイヨ


119 :名無し~3.EXE:2005/10/18(火) 19:40:39 ID:NzqjbOgZ
えなに>>118が笑うところ?
普通にProgIDあるのに……。

120 :名無し~3.EXE:2005/10/18(火) 21:18:19 ID:JThSSxtE
フッ゚
↑崖から飛び降りた人のAA

121 :名無し~3.EXE:2005/10/19(水) 02:27:32 ID:k2AkQmq4
>フッ゚
なによりも「ッ」の後の「 ゚」が気になる

122 :名無し~3.EXE:2005/10/19(水) 02:31:55 ID:cbWDxhKr
「おっ゜て」みたいなもんだろ

123 :名無し~3.EXE:2005/10/19(水) 12:16:32 ID:RK1iuCBx
「アッー」みたいなもんだろ

124 :名無し~3.EXE:2005/10/20(木) 00:16:09 ID:rY7mmBcf
>>120
あ〜あ、丸が頭な。

125 :名無し~3.EXE:2005/10/20(木) 14:21:31 ID:615yvaOi
設定データの読み書きについて質問です。
hoge.ini に以下のように複数のカテゴリに複数の設定項目を読み書きしようとしてます。

[category1]
hoge1=100
hoge2=500
hoge3='test'

[category2]
hogehoge1=100
hogehoge2=500
hogehoge3='test'

書き込みは問題ないんですが読み込み時、
FSOでReadLine()したとしてもただのテキストデータなので変数としては扱ってくれません。
一般的にこういった設定データはどのように扱うものなんですか?

126 :名無し~3.EXE:2005/10/20(木) 14:51:02 ID:LkSSO743
>>125
wshからAPIを使える環境を整えてないなら、
行単位で読み込んだものを文字列操作していくしかないだろ。
やり方は自分で調べろ。

127 :名無し~3.EXE:2005/10/20(木) 14:57:08 ID:615yvaOi
>>126
それはwshからapiを使える環境を整えれば簡単にできるというこですよね?
具体的にはどういう作業なんですか?

128 :126:2005/10/20(木) 15:13:22 ID:615yvaOi
文字列操作は意外に簡単にできました。
hoge.ini
test=1

var fso = new ActiveXObject("Scripting.FileSystemObject")
var oTS = fso.OpenTextFile("hoge.ini", 1, true, -2)
var loadObj = oTS.ReadLine().split('=');
window[loadObj[0]] = loadObj[1];
alert(test)

129 :名無し~3.EXE:2005/10/20(木) 15:14:29 ID:elg9L1tn
GetPrivateProfileSection
行単位で呼んで解析するのと大して変わらないかな

130 :名無し~3.EXE:2005/10/20(木) 21:11:07 ID:49WL1Tof
>>125
前スレ出だしたJScriptでINIファイルを読み書き。
ttp://winscript.s41.xrea.com/wiki/index.php?plugin=attach&pcmd=info&file=INIFileObject.zip&refer=%5B%5B%A5%A2%A5%C3%A5%D7%A5%ED%A1%BC%A5%C0%A1%BC%5D%5D

131 :名無し~3.EXE:2005/10/20(木) 23:21:30 ID:E50MXwrL
HTMLの相対パスを絶対パスに一発変換出来る正規表現の構文教えてください。
先読みとかいろいろやったが「../../../index.html」とか上位階層の指定はどうやっても思いつかないです。

132 :安物神 ◆JkPWxq0SV6 :2005/10/21(金) 01:03:58 ID:lCzBfW4j
>>125
Function IniRead(IniFile, Section, Value)
Dim objFS, objTSR, line
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objTSR = objFS.OpenTextFile(IniFile, 1, False)
Section = "[" & Section & "]"
Do Until objTSR.AtEndOfStream
If Section = objTSR.ReadLine Then
Do until objTSR.AtEndOfStream
line = objTSR.ReadLine
If Value = Split(line, "=")(0) Then
IniRead = Split(line, "=")(1)
Exit Do
End If
Loop
Exit Do
End If
Loop
objTSR.Close
End Function
IniWrite "C:\y.ini","gg","ff","tekitou"

133 :名無し~3.EXE:2005/10/21(金) 01:17:37 ID:/SP5mNjV
>>132
もうちょっと例外処理をきちんとやった方が良くないか?
まあその辺は使う奴が修正しろってつもりならそれもいいけど。
指定セクションの指定キーが間違いなく有る場合は問題ないしな。

134 :正規表現が分からん ◆JkPWxq0SV6 :2005/10/21(金) 01:54:07 ID:lCzBfW4j
>>133
Function IniRead(IniFile, Section, Value)
On Error Goto er
Dim objFS, objTSR
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objTSR = objFS.OpenTextFile(IniFile, 1, False)
IniRead = Split(Split(objTSR.ReadAll, Section & ".*" & Value)(1),"\r\n")
er:
Set objTSR = Nothing
End Function

135 :名無し~3.EXE:2005/10/21(金) 07:53:57 ID:zEevjOh+
Sesame Scriptって何処かで聞いたような語感だよな

136 :名無し~3.EXE:2005/10/22(土) 19:28:06 ID:dxRt0ugV
話が逸れるけど、

>>128
>window[loadObj[0]] = loadObj[1];

これと同じ window[...] という表現をたまに見るんだけど、
文法的には「window オブジェクトのプロパティとして新たに
定義してる」って解釈で正しいのかな?

だとすると「連想配列の添字=プロパティ」っていう JS の
仕様を知らないと分からない、ちょっとアクロバチックな
書き方な気がする。


137 :名無し~3.EXE:2005/10/23(日) 17:36:09 ID:1/p+7tMa
JSにはそもそも連想配列なんてありませんが

138 :名無し~3.EXE:2005/10/24(月) 12:56:57 ID:dKouxBZe
教えて君ですみません。
ローカルエリア接続を「無効/有効」をWSHで行いたいのですが、ヒントすらも見つかりません。

こんなようなことがやりたい 
ifconfig en0 down|up


139 :名無し~3.EXE:2005/10/24(月) 15:48:32 ID:PnjB88s0

教えて君は書き込まないで下さいね。

140 :名無し~3.EXE:2005/10/24(月) 15:53:43 ID:gr36+Oz8
>>138
何かのツール使うしかないんじゃない?
とりあえずwmiじゃだめだったはず

141 :138な教えて君:2005/10/24(月) 17:08:04 ID:dKouxBZe
>139
ケチ!
>140
あっちこっち検索しているうちになんとか出来た。
Set Shell = WScript.CreateObject("Shell.Application")
For Each oItem In Shell.NameSpace(3).Items
If oItem.Name="ネットワーク接続" Then
For Each oSubItem In oItem.GetFolder.Items
If oItem.GetFolder.GetDetailsOf(oSubItem,1)="LAN または高速インターネット" Then
'これは4つあるので3になった
If oItem.GetFolder.GetDetailsOf(oSubItem,3)="Intel PRO/100とかなんとか" Then
'ファイアウォールを使っていなかったら違う書き方
If oItem.GetFolder.GetDetailsOf(oSubItem,2)="接続、ファイアウォール" Then
oSubItem.InvokeVerb "無効にする(&B)"
WScript.Sleep 1000
ElseIf oItem.GetFolder.GetDetailsOf(oSubItem,2)="無効、ファイアウォール" Then
oSubItem.InvokeVerb "有効にする(&A)"
WScript.Sleep 1000
End If
Exit For
End If
Exit For
End If
Next
Exit For
End If
Next

だれかCoolでスマートにしてくれ。(やっぱり教えて君)

142 :名無し~3.EXE:2005/10/28(金) 06:30:29 ID:xCgLkcWv
文字列をJIS・Shift-JIS・EUCJPにエンコードするにはどうすればいいのでしょうか?

UTF-8 → encodeURIComponent()
Unicode → escape()

の2つしか無理でしょうか?

143 :名無し~3.EXE:2005/10/28(金) 08:31:59 ID:z2+FWhds
このスレを検索すればでてくる

144 :142:2005/10/28(金) 10:01:40 ID:xCgLkcWv
>>143
>>85あたりからのことですよね?
奮闘してみましたが結局わからず・・・。

145 :142:2005/10/28(金) 11:16:02 ID:xCgLkcWv
UTF8→SJISの場合なんですが、どこが間違っているんでしょうか?
var word = external.menuArguments.document.selection.createRange().text;
var word1 = encodeURIComponent(word)
var word2 = Unicode2SJIS(word2)

alert(word2)

function Unicode2SJIS(bite){
var FS = new ActiveXObject("Scripting.FileSystemObject")
var sFileName = FS.GetTempName()
var TS = FS.CreateTextFile(sFileName,true,true) //UNICODEとして書き込む
TS.Write(bite)
TS.Close()

var TS=FS.OpenTextFile(sFileName,1,false,0) //SJISとして読む
if(! TS.AtEndOfStream){
TS.Read(2) //2バイトのごみ(UNICODEヘッダ?)
if(! TS.AtEndOfStream){
sTempStr = TS.ReadAll()
}
}
TS.Close()

var TS=FS.CreateTextFile(sFileName,true,false) //SJISとして保存
TS.Write(sTempStr)
TS.Close()

FS.DeleteFile(sFileName)

return sTempStr
}


146 :142:2005/10/28(金) 11:17:42 ID:xCgLkcWv
>>145
>var word2 = Unicode2SJIS(word2)

var word2 = Unicode2SJIS(word1)
の間違いです。

147 :名無し~3.EXE:2005/10/28(金) 11:32:01 ID:bah/pbyP
普通Unicodeと言えばUTF-16を指すな。

素直にADODB.Stream使うべし。

148 :名無し~3.EXE:2005/10/28(金) 17:31:02 ID:ktRkHCQR
最小化になってるJaneを最大化するにはどうしたら良いですか?

Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run """C:\(省略)\jane2ch.exe""",9,True

とやってもだめでした。よろしくお願いします。

149 :名無し~3.EXE:2005/10/28(金) 17:35:37 ID:5k4Gckqe
>>145
BASP21使うのは?KconvFile

150 :名無し~3.EXE:2005/10/28(金) 18:13:56 ID:z2+FWhds
const int SW_MAXIMIZE = 3;
HWND hWnd = FindWindow( "クラス名", "ウインドウタイトル" );
ShowWindow( hWnd, SW_MAXIMIZE );


151 :142:2005/10/28(金) 18:51:04 ID:xCgLkcWv
>>147ADODB.Streamでもできないんでうが、どこが間違っているでしょうか?
var word = external.menuArguments.document.selection.createRange().text;
var word2 = TextEncoder(word)

alert(word2)
function TextEncoder(bite) {
//レジストリ修正 ADODB.Streamを使用可に
WshShell = new ActiveXObject("WScript.Shell")
WshShell.RegWrite("HKLM\\SOFTWARE\\Microsoft\\Internet Explorer\\ActiveX Compatibility\\\{00000566-0000-0010-8000-00AA006D2EA4\}\\Compatibility Flags",0,"REG_DWORD")
var FS = new ActiveXObject("Scripting.FileSystemObject")
var sFileName = FS.GetTempName()
var TS = FS.CreateTextFile(sFileName,true,true) //UNICODEとして書き込む
TS.Write(bite)
TS.Close()
var adTypeText = 2;
var stream = new ActiveXObject("ADODB.Stream");
stream.charset='_autodetect'; //文字コード自動判定
stream.type = adTypeText;
stream.open();
stream.loadFromFile(sFileName);
stream.position = 0;
var returnText = stream.readText();
stream.close();
FS.DeleteFile(sFileName)
//レジストリ修正 ADODB.Streamを使用不可に
WshShell.RegWrite("HKLM\\SOFTWARE\\Microsoft\\Internet Explorer\\ActiveX Compatibility\\\{00000566-0000-0010-8000-00AA006D2EA4\}\\Compatibility Flags",1024,"REG_DWORD")
return returnText
}

152 :名無し~3.EXE:2005/10/28(金) 19:33:36 ID:AimtKwrD
何やりたいのか分からない。
スクリプトの中では文字列は文字列であって、別にエンコーディングとか無いよ?
エンコーディングが問題になるのはファイルに書き出すときとかそんなの。
まさかUnicodeバイト列を無理矢理Shift_jisで読み込むとか言う話でもないだろうし。

153 :142:2005/10/28(金) 19:38:29 ID:xCgLkcWv
>>152
よくわからないんですが、したいことを説明すると
「ブラウザで選択文字を右クリックから検索サイトで検索する」です。

この時、&ie=が使えないところもありますし、
検索サイトに合わせて文字をエンコードする必要があると思ってるんですが
勘違いでしょうか?


154 :名無し~3.EXE:2005/10/28(金) 20:26:31 ID:z2+FWhds
>>153
http://www.bousaid.que.jp/memo/php/urlencode.php

155 :142:2005/10/28(金) 20:42:38 ID:xCgLkcWv
>>154

変換しなくても日本語のままでいけるよってことでしょうか?

156 :名無し~3.EXE:2005/10/28(金) 20:51:09 ID:GVV6ev9K
あー、UrlEncodeだったのか。見落としてた。
こんなのでどうだろう。JScriptだとバイナリ操作が面倒だからなぁ……。

function urlEncode(text, encoding) { //encodingは"utf-8"とか"shift-jis"とか"euc-jp"とか
   var ados = new ActiveXObject("ADODB.Stream"); //まあこれは適当に許可を与えるなりして
   ados.type = 2;
   ados.charset = encoding;
   ados.open();
   ados.writeText(text);
   ados.position = 0;
   ados.type = 1;
   var xmldoc = new ActiveXObject("Microsoft.XMLDOM"), elem = xmldoc.createElement("tmp");
   elem.dataType = "bin.hex";
   elem.nodeTypedValue = ados.read();
   ados.close();
   var bin = elem.text, len = bin.length, retval = new Array(), i = 0;
   retval.push("");
   switch (encoding.toLowerCase()) { //BOMを無視するため
      case "utf-8"  : i = 6; break;
      case "unicode":
      case "utf-16" : i = 4; break;
   }
   for (; i < len; i += 2)
      retval.push(bin.substr(i, 2));
   return retval.join("%");
}

157 :142:2005/10/28(金) 21:02:07 ID:xCgLkcWv
>>156
できました!ありがとうございます!

158 :148:2005/10/29(土) 00:00:50 ID:fL642uml
解決しますた。
アクティブにした後、sendkeyで"%スペースX"でできました。
これでひとつ前進です。

159 :142:2005/10/29(土) 04:39:09 ID:oMw/bu2r
>>156の関数で解決したのですが、何故か
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/js56jsoriJScript.asp
ここで使ってみると

行:17
文字:2
エラー:引数が間違った型、許容範囲外、または競合しています。
コード:800A0BB9
ソース: ADODB.Stream

とエラーが出てしまいます。
17行目はados.writeText(text);です。


160 :名無し~3.EXE:2005/10/29(土) 04:56:01 ID:AefvmDHA
・ここで使うってどう使ったの?
・関数に渡した文字列は?
・encodingには何を?

161 :159:2005/10/29(土) 05:08:07 ID:oMw/bu2r
>>160
Sleipnir用のスクリプトですみませんが

var pnir = new ActiveXObject("Sleipnir.API");
var id = pnir.GetDocumentID(pnir.ActiveIndex);
var document = pnir.GetDocumentObject(id);
var word = document.selection.createRange().text;
word = urlEncode(word, "ISO-2022-JP")
var link = "http://www.wdic.org/?word=" + word;
pnir.NewWindow(link, true);

普通にIEの右クリックだと
var word = external.menuArguments.document.selection.createRange().text;
word = urlEncode(word, "ISO-2022-JP")
var link = "http://www.wdic.org/?word=" + word;
external.menuArguments.window.open(link);

>>159の時点では確認してなかったのですが、後者だとできました。
上のスクリプトでもMSのサイト以外なら機能しています。
エンコードを変えても、検索サイトを変えてもダメです。
Sleipnirのことだとスレ違いになってしまうかもしれませんが・・・。

162 :名無し~3.EXE:2005/10/29(土) 09:50:15 ID:NzN2rCzu
frameset/frame要素のせいだな。
その操作ではurlが示すdocumentしか取れないから、肝心のselectionが存在するframeを調べられないんだ。

これで選択中のdocument.selectionが取れる。
ただし、結構コストがかかる。MSDNだったら後ろから調べた方が良いんだが。
念のためにその後selection.createRange().textが空文字列かどうかもチェックした方が良いな。

function getSelectionInFrames(document) {
   var selection = document.selection;
   if (selection.type == "Text")
      return selection;
   else {
      var frames = document.frames;
      for (var i = 0; i < frames.length; i++) {
         if ((selection = getSelectionInFrames(frames.item(i).document)) != null)
            return selection;
      }
      return null;
   }
}

163 :159:2005/10/29(土) 09:58:28 ID:oMw/bu2r
>>162
ありがとうございます!

164 :名無し~3.EXE:2005/11/01(火) 00:31:27 ID:NSjNBsMW
ユーザプロファイルのバックアップのスクリプトを作成したいのですが、どなたか
作成方法ご存知でしょうか?ソースが乗ってあるサイトや書籍がありましたら、教えてくれませんでしょうか?
また、使用しないユーザ削除したり、プロキシ変更したりするプログラムもありましたら
お願いします。


165 :名無し~3.EXE:2005/11/01(火) 00:46:17 ID:8Iw7/s0Y




 、


..!!

166 :名無し~3.EXE:2005/11/01(火) 01:02:05 ID:kiE/SBjF
>>164
まずは自分で書いたものを晒せ
ここは、多少なりともwshの知識がある奴が
テクを披露したり、ヒントを貰ったりするスレであり、
全くのド素人に、ポンポンとソースくれてやる為のスレじゃないぞ
勉強する気すら無いなら立ち去れ

167 :名無し~3.EXE:2005/11/01(火) 01:05:48 ID:p4FoWbmP
>>164
googleを使い倒して見つからなかったらここで聞け

168 :名無し~3.EXE:2005/11/01(火) 01:25:07 ID:DaBmThTM
とあるhtmlを表示するのにSleipnirで表示させたいのですが、下記のように実行すると
IEで表示されます。対処法はありますか?(関連付けはSleipnirです)

Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run "abc.html"

169 :名無し~3.EXE:2005/11/01(火) 11:57:47 ID:PuOQ4rCS
Option Explicit

Dim pnir, document, id

Set pnir = CreateObject("Sleipnir.API")
id = pnir.GetDocumentID(pnir.ActiveIndex)
Set document = pnir.GetDocumentObject(id)

If document Is Nothing Then
Call pnir.MessageBox("Document オブジェクトを作成できません")
Else
' TODO: コードをここに記述してください。

Set document = Nothing
End If

Set pnir = Nothing

170 :名無し~3.EXE:2005/11/01(火) 12:41:47 ID:Y6E0wi/l
Set pnir = CreateObject("Sleipnir.API")
id = pnir.GetDocumentID(pnir.ActiveIndex)
Set document = pnir.GetDocumentObject(id)

If document Is Nothing Then
Call pnir.MessageBox("Document オブジェクトを作成できません")
Else
' TODO: コードをここに記述してください。
Set objShell = Wscript.CreateObject("Wscript.Shell")
objShell.Run "abc.html"
Set document = Nothing
End If

Set pnir = Nothing

同じくIEで起動します。

171 :名無し~3.EXE:2005/11/01(火) 12:44:33 ID:gC1g0iG5
テラワロス

172 :名無し~3.EXE:2005/11/01(火) 21:49:43 ID:PuOQ4rCS
コードは、

id = pnir.NewWindow("http://pc8.2ch.net/test/read.cgi/win/1126543183/l50", True)

とか、

pnir.Navigate id, "http://pc8.2ch.net/test/read.cgi/win/1126543183/l50"

173 :名無し~3.EXE:2005/11/01(火) 22:40:43 ID:AMuUIiHN
>>172
ありがとう。うまくいきました。

174 :名無し~3.EXE:2005/11/02(水) 22:11:11 ID:0+1XkwgM
>>168
通常使うブラウザの設定などが絡んでいる気がする。

175 :11:2005/11/03(木) 14:19:17 ID:XshjENEj
>>174
WshShell.Runはhttpの関連付けに関わらず、常にIEで開いてしまいます。
Shell.ApplicationのShellExecuteメソッドを使えば、httpの関連付けで開かれます。
Sleipnirに限らず、Donut系でもOKです。

Set Shell = WScript.CreateObject("Shell.Application")
Shell.ShellExecute "index.html"

176 :名無し~3.EXE:2005/11/03(木) 22:11:13 ID:Xy82FO4t
全角数字を半角数字に変換するには何か方法がありますか?

例 1234 → 1234

177 :名無し~3.EXE:2005/11/03(木) 22:24:53 ID:Z7Y4c8hT
文字コードをテーブルで変換……数字だけならテーブル作るまでもなく計算でいけるか。

var a = "1234", retval = "";
for (var i = 0; i < a.length; i++)
    retval += String.fromCharCode(a.charCodeAt(i) - 0xFEE0);
WScript.Echo(retval);

178 :名無し~3.EXE:2005/11/03(木) 23:38:22 ID:zRsZ7sw3
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set objNetwork = WScript.CreateObject("WScript.Network")
UserName = objNetwork.UserName

Call WshNetwork.MapNetWorkDrive("S:","\\zasdsd12\abc")
MsgBox( "IEのお気に入りのコピーを始めます。")

Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder("S:\")
Set objSubFol = objFolder.SubFolders
Set objNetwork = WScript.CreateObject("WScript.Network")
UserName = objNetwork.UserName
objSubFol.Add(UserName)
'お気に入りフォルダ作成
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder("S:\"&UserName)
Set objSubFol = objFolder.SubFolders
Set objNetwork = WScript.CreateObject("WScript.Network")
objSubFol.Add("お気に入り")
'IEのお気に入りのコピー
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFolder "C:\Documents and Settings\"&UserName&"\Favorites", "S:\"&UserName&"\お気に入り"
MsgBox("お気に入りのコピーは完了しました")

これに、ネットワークドライブが常に作成されたときにIEのお気に入りだけデータを上書きコピーするには
どうしたらよろしいのでしょうか?

ネットワークドライブが作成されており、再び実行するとエラーで帰ってきます。
再実行したときは、お気に入りだけを再コピーする方法はどうすればよろしいでしょうか?

179 :名無し~3.EXE:2005/11/04(金) 18:23:10 ID:vgPz33IZ
ワラタ

180 :名無し~3.EXE:2005/11/05(土) 10:21:38 ID:ByQ7/AwF
モバイルでプログラム【NS BASIC/CE】
http://pc8.2ch.net/test/read.cgi/mobile/1012242798/

NSBASIC/CEはWSHを知ってるならほぼ使えるよ!
PDAであるWindowsCE上(実質シグマリやjornadaでないときついが。)でもデスクトップでも
開発が可能。
手のひらで自分の作ったアプリが動く喜び!最新Ver6.02は、EXE化されたものに好きな
アイコンをつけられるのでほとんどスクリプトと分からない。
NS Basic/CEは、WindowsCEにRuntimeを導入してその上で動く。
最新のWM5にも対応しており、日本語版も出ているし、日本語サポートもいるので安心だ。



181 :名無し~3.EXE:2005/11/05(土) 10:23:42 ID:ByQ7/AwF
よかったら購入してユーザーにならないか? 俺もユーザーになったばかりなんだ。
日本サポートに確認をしたんだが、WEBでユーザー登録していただいて、その後、日本語サポートに連絡を
くれたら、無料Ver6(最新版)にアップデートできるそうだ。

FACTORY SABOT
501 Maritaimu 9-9 Higashimaikochou, Tarumi-ku, Kobe, Japan
Phone(078)787-3602 Fax(078)787-3619
http://www.sabot.co.jp/
sales@sabot.co.jp

MobilePLAZA
6-3-7-1F Sotokanda, Chiyoda-ku, Tokyo, 101-0021 Japan
Tel 03-3834-0315
http://www.mobileplaza.co.jp/

で買える。ttp://www.nsbasic.com/ce/Japanese/ が公式なんだが
DEMO版で試すことができるから、WSHのソースを貼り付けてみるといい。実質WSHだから。
シャープのW-ZERO3のCOMコントロールでPHSに信号を送り電話がかけられることがシャープより
確認が取れてるから今度出るWM5にも対応してる。

どだ?仲間になってくれないか?NSBASICがほぼWSHというのを(画面の大きさとかあるけど)知らない人が
多いんで宣伝してすまそ WSH(・∀・)スレッド! にも貼り付けたのであちらも覗いてる人には非常にすまない

182 :名無し~3.EXE:2005/11/05(土) 10:25:32 ID:ByQ7/AwF
あ、このWEBでユーザー登録して日本語サポートにメールくれたら
最新のをというのは

Ver5を買っても、無料でユーザー登録した時点の最新Verアップが可能と言うことなんだ。

183 :名無し~3.EXE:2005/11/05(土) 10:46:59 ID:GJducbq1
普通に.NET Compact Frameworkを使う

184 :名無し~3.EXE:2005/11/07(月) 00:42:32 ID:+n40qXsg
http://uploaderlink.hp.infoseek.co.jp/cgi-bin/512kb/src/up0491.lzh.html

スクリプトでYahooからHTMLを取得しようと考えていますが、
上記スクリプトではYahooからログアウトした状態でのHTMLを取得してしまいます。
Yahooにログインした状態で取得するにはどうしたらよろしいですか?

185 :名無し~3.EXE:2005/11/07(月) 07:04:34 ID:UiCzACCl
>>178
DriveExistsメソッド使っては?

お気に入りのコピーってスクリプト組むほど頻繁にやるもの?

186 :名無し~3.EXE:2005/11/07(月) 10:40:07 ID:ka4CyTdi
>>185
コピー対象を履歴に書き換えるんだろ


187 :名無し~3.EXE:2005/11/08(火) 05:01:33 ID:H8Xxh0KY
ファイルをごみ箱に入れることってできないでしょうか?
普通にDelete使ったらごみ箱に入らないし、Move使おうかと考えたけど
ごみ箱のパスってあるんですか?

188 :名無し~3.EXE:2005/11/08(火) 09:59:54 ID:hDJqOdXo
>>187
ググれば一発で出てくるが、何か?

189 :187:2005/11/08(火) 10:17:41 ID:H8Xxh0KY
>>188
ごみ箱のパスはわかったんですが、ファイルをごみ箱へ移動しても
エクスプローラで表示されないです。

190 :名無し~3.EXE:2005/11/08(火) 10:47:04 ID:hDJqOdXo
>>189
ごみ箱のパスなんて関係ないし
普通の移動(move)とは違うよ

「ググれば一発で出てくる」のはゴミ箱のパスじゃなくて
wshでファイルをごみ箱に入れる方法そのもの

191 :名無し~3.EXE:2005/11/08(火) 10:55:35 ID:0VynKZPX
Shell.Applicationから該当ファイルのFolderItemオブジェクト取得して
InvokeVerbかな?


192 :187:2005/11/08(火) 12:34:23 ID:H8Xxh0KY
ようやくわかりました。
ありがとうございました。

193 :名無し~3.EXE:2005/11/08(火) 23:15:56 ID:xzPX0pfJ
wshってエディターないんですか?
ワードパットで作っても味気ないし。

194 :名無し~3.EXE:2005/11/08(火) 23:31:00 ID:d4G8U5X1
ワードパッドにワロタ
本当にこういう子いるんだねぇ

195 :名無し~3.EXE:2005/11/09(水) 00:00:56 ID:4GzWBkXl
>>193
ノートパッド

196 :名無し~3.EXE:2005/11/09(水) 00:28:47 ID:GIvw4ww9
>>193
ワードパッドでもいいと思うがw
コード補完機能が欲しいのかい?
単純に予約語を挿入して、語法グループで色表示タイプなら、フリーのテキストエディタであるはずだがw

オブジェクト変数まで認識してメンバー候補まで出してくれるのは
あったかなぁ〜
つーか、まだオレはInterDev6使ってHTML上で補完して書いてるからゴメンな


197 :名無し~3.EXE:2005/11/09(水) 00:37:34 ID:s0BSuiLa
copalとかはどうかな

198 :名無し~3.EXE:2005/11/09(水) 01:53:14 ID:aow+q5Fd
EmEditorマジおすすめ、
学生、フリーソフト作者、テクニカルライターなら無料だし、
マクロがWSHベース


199 :名無し~3.EXE:2005/11/09(水) 07:46:09 ID:V1NPC6zJ
Office付属のVBEが一番いいんだろうけどWSHは補完されない。
Visual Studio .Netでも書けるらしいけど、使い方がよく分からなかった。

200 :名無し~3.EXE:2005/11/09(水) 16:08:42 ID:mqL03tXE
K2Editor + wshcomp でもええやん。

201 :名無し~3.EXE:2005/11/09(水) 16:10:25 ID:mqL03tXE
wshcomp = ъ( ゚ー^) WSH補完クン だった。

202 :名無し~3.EXE:2005/11/11(金) 10:33:07 ID:a7GVXNXi
aadmnistratorのユーザ名の変えるスクリプトなんですが、ログオンIDとパスワードは、
変更できるんですが、スタートメニューに表示される名前だけは、変更できません。
どのようにしたらよろしいでしょうか?

'Renaming Admin
Set oMachine = GetObject("WinNT://" & strComputer)
Set oInfoUser = GetObject("WinNT://" & strComputer & "/Administrator,user")
set oUser = oMachine.MoveHere(oInfoUser.ADsPath,"root")

'Reseting Admin Password
Set objUser = GetObject("WinNT://" & strComputer & "/root, user")
objUser.SetPassword "test"
objUser.SetInfo


203 :名無し~3.EXE:2005/11/11(金) 19:07:07 ID:dSM3507Z

CDO.MessageオブジェクトのCreateMHTMLBodyメソッドを使って
URLからWebアーカイブ (*.mht)を作成するVBSを作ったのですが、
とりあえずmhtの作成はうまくいくのですが、文字コードがEUCになってしまいます。
ブラウザでの表示では問題ないのですが、後の編集の都合上、
S-JISで保存したいのですが、どうすればよいのでしょうか?
以下が使用したコードです。これでEUCでの保存は正常にできてます。

Const CdoSuppressNone = 0
Const adSaveCreateOverWrite = 2

With CreateObject("CDO.Message")
 .CreateMHTMLBody "対象URL", CdoSuppressNone
 .GetStream().SaveToFile "保存ファイルパス", adSaveCreateOverWrite
End With

Eco-SoftのTipsに同じくCDO.Messageを使ってmhtで保存するサンプルがあるので
Eco-Soft製のEcoBoxUというmht形式スクラップツールも同じ方法を使ってると思われますが
EcoBoxUを使うとS-JISで保存されます。
なので何かしら方法は有るはずなのですが、さすがにEcoBoxUの作者さんに
VBSでどうすれば良いか聞くわけにも行かないのでこちらに頼りに来ました。
どうかよろしく御願いします。



204 :名無し~3.EXE:2005/11/11(金) 21:46:24 ID:BK/HFcYs
>>203
対象ページの文字コードに合わせて保存されるんじゃないの?

205 :203:2005/11/11(金) 21:57:39 ID:dSM3507Z
>>204
スクリプトとEcoBoxUを同じページで試しましたが、
EcoBoxUはS-JISになり、スクリプトはEUCになります。

206 :名無し~3.EXE:2005/11/11(金) 22:57:53 ID:HTTGsuI4
んー、普通に対象ページの文字コードで保存されるけどなぁ。
GetStreamで手に入れたストリームのCharsetを対象ページの文字コードにして、
ReadTextで読み出して保存するとか。

207 :名無し~3.EXE:2005/11/12(土) 01:44:50 ID:7/zSeljN
WSHでMicrosoft.XMLDOMを作ってDOMでXMLをいじるサンプルは見たことあるんですけど、
SAXはどうやったらいいですか?
各ノードがテキストの何行何列にあるか知りたいのでSAXならできないかと

208 :名無し~3.EXE:2005/11/12(土) 01:47:43 ID:h+dB9hyn
在るオブジェクト(変数)が有って、
それがNumber型かString型か、はたまた自作クラス型かを判別するには
constructorプロパテを調べれば分かりますが、
ActiveXObject型が絡んでくると思う様に判別してくれません。

String型、自作クラス型・ActiveXObject("ADODB.Stream")型・
ActiveXObject("Microsoft.XMLDOM")型等を
オブジェクト(変数)から判別する良い方法は有りませんか?

JScriptでバイナリを操作出来るクラスを作成していて、
メンバ関数で(疑似)オーバーロード的な事がしたいのですが…。

どなたか助言宜しく御願いします。

209 :名無し~3.EXE:2005/11/12(土) 02:06:45 ID:h7rEnih2
>>207
そもそもSAXってWindows/COM標準でサポートしてたっけ?
そうでなきゃCOM対応のSAX処理系を探してくるところから始めなきゃならないが。

>>208
COMの型を知るってのは無理じゃないかなー。
IUnknownだけしかもってないのならQueryInterfaceしかできないんだし。

210 :名無し~3.EXE:2005/11/12(土) 02:21:22 ID:7/zSeljN
MSXMLにSAXは含まれていますが、イベントハンドラとしてIで始まるインターフェースクラスを実装しないといけないので
WSHではどうすればいいのかと思いまして
http://www.perfectxml.com/msxmlSAX.asp


211 :名無し~3.EXE:2005/11/12(土) 05:28:19 ID:cZ5msSCR
それはJScript/VBScriptじゃ無理だと思う
なにか他の言語で定義・実装して(COMに公開して)やらないと

212 :名無し~3.EXE:2005/11/12(土) 09:57:43 ID:osJepUET
HTMLでメニューを作成して、そこから目的のVBSを起動するような事をしたいのですが、
どこかにサンプル的なものないでしょうか?


213 :名無し~3.EXE:2005/11/12(土) 14:50:11 ID:ANNBeOY1
>>211
え、リファレンスに WSH によるコンポーネントの作り方が書いてあるじゃん。
流し読みしたことしかないから違ってたら悪いけど、あれは使えないの?

214 :名無し~3.EXE:2005/11/12(土) 15:13:41 ID:D/Yf1vNS
>>213
私も流し読みしただけだが、既存のインターフェイスを実装する機能は見あたらなかった。
あくまで定義したメソッド・プロパティをCOMインターフェイスとして公開するだけっぽい。

215 :名無し~3.EXE:2005/11/12(土) 15:47:55 ID:ANNBeOY1
>>214
なるほど、実装できるのは OLE オートメーション (IDispatch かな?) と、
ASP 用、DHTML Behavior 用に限定されてるみたいね。
ご指摘ありがと。ちょっと勉強になった。

んーあんま使い道なさそうだな。


216 :203:2005/11/12(土) 22:10:46 ID:5m+MFH8m

>>206
> Charsetを対象ページの文字コードにして、
> ReadTextで読み出して保存するとか。
やってみました。
が、FSOのCreateTextFileメソッドで作成したTextStreamに
Writeメソッドで書き込みを試してみましたが何故か保存できず、
(Writeメソッドの引数を"hoge"とするときちんと書き込めるのでコード自体に間違いは無いはず)
ExcelのVBAを使い(開発環境が無いので)
Openステートメントで開いたシーケンシャルファイルに
Printメソッドで書き込みを試みると書き込みは成功しましたが
文字化けできちんと表示されずです。


どなたかページの文字コードに依存せず、
Shift-JISのmht形式でページを保存する方法をご教示ください。



217 :名無し~3.EXE:2005/11/12(土) 23:22:53 ID:SAqfpeJH
>>216
私はできた。

218 :203:2005/11/13(日) 01:22:15 ID:MRQQnkt+

>>217
Writeメソッドでの書き込みは出来るようになりました。
そのあといろんなページで試してみると、EUC-JPでも文字化けしないように保存できるページも有りました。
しかしいくつかのページではやはり文字化けしてしまいます。
具体的にはhttp://news.goo.ne.jp/の記事などで文字化けが起きました。

以下が条件別の結果です。
                    表示     保存ファイルの文字コード
スクリプトでSaveToFile      正常      EUC
スクリプトでReadText→Write  文字化け   Shift-JIS
EcoBoxU              正常     Shift-JIS

以下にコードを晒しますので、上記ニュースサイトの記事を
Shift-JISで文字化けしないように保存する方法が解る方(保存できた方)は
そのコードをここに貼るか、以下のコードの修正すべき点を教えてください。



219 :203:2005/11/13(日) 01:23:07 ID:MRQQnkt+

Const CdoSuppressNone = 0
Const adSaveCreateOverWrite = 2
Dim strURL, strFilePath, strFilePath2, strText

strURL = "http://〜"
strFilePath = "SaveToFile.mht"
strFilePath2 = "Write.mht"

With CreateObject("CDO.Message")
 .CreateMHTMLBody strURL, CdoSuppressNone
 With .GetStream
  .SaveToFile strFilePath, adSaveCreateOverWrite
  .Charset = "EUC-JP"
  strText = .ReadText
 End With
End With

With CreateObject("Scripting.FileSystemObject").CreateTextFile(strFilePath2)
 .Write strText
 .Close
End With



220 :名無し~3.EXE:2005/11/13(日) 02:48:00 ID:L1lnK3QE
ヒント:HTMLBody HTMLBodyPart


221 :203:2005/11/13(日) 18:02:20 ID:MRQQnkt+

>>220
Charset、ReadTextはググって解ったけど、
HTMLBody、HTMLBodyPartはググっても私の知識ではどうすればよいのかよくわからないです。
本当に出来るなら>>218で書いたように、そのコードを貼るか、
>>219のコードのどこをどうすれば良いのか具体的に教えて欲しいです。

私には>>219が限界なので、私の望むことを本当に出来る人が居るなら、
具体的なコードの教示をお願いします。



222 :名無し~3.EXE:2005/11/13(日) 18:26:32 ID:L1lnK3QE
ググる前にリファレンス読め、と思うんだけど。
馬鹿なクセに嫌みったらしいから、俺は教えてやらない。
「本当に出来る」と思えないなら、(あんたには)出来ないってことだ。

223 :名無し~3.EXE:2005/11/13(日) 18:57:57 ID:KqFwe+Df
答えられない時は煽って罵っておくのが吉ってやつか
"ヒント"なんて言い出すのも大抵よくわかってない場合だし

ここにはバカも多いが、博識な奴も居る
待ってりゃそのうちきちんと答えられる奴も来るさ
まぁバカな漏れが言うのもなんだけどw


224 :名無し~3.EXE:2005/11/13(日) 18:58:14 ID:dLRKNiR0
>>219
With CreateObject("Scripting.FileSystemObject").CreateTextFile(strFilePath2)
 .Write strText
 .Close
End With
でなくて、
With CreateObject("Scripting.FileSystemObject").OpenTextFile(strFilePath2, 2, True)
 .Write strText
 .Close
End With

かもね。
なんか胸糞悪いやり取りですね。

225 :名無し~3.EXE:2005/11/13(日) 22:58:53 ID:dLRKNiR0
>>224
追記。だめだった。

昔RSS用にShift-Jisを変換しようとして随分困った覚えがある。
結局、BASP21で解決した。

226 :名無し~3.EXE:2005/11/13(日) 22:59:40 ID:giL0CRPm
ADODB.Streamは?

227 :名無し~3.EXE:2005/11/13(日) 23:41:39 ID:dLRKNiR0
>>226
コード変換なんてできたっけ?

228 :名無し~3.EXE:2005/11/14(月) 01:40:18 ID:Q3BYVY42
できるよ

229 :名無し~3.EXE:2005/11/14(月) 09:57:02 ID:XE6jIwVT
> 「できる」と言葉で言うのは簡単
> 例え実際には出来なかったとしても
> やり方を知らなかったとしても
> 「できる」と言うのはいくらでも言える
>
> そして口先だけだろと指摘されても
> 本当に出来るけど教える義理はないとか
> 態度が気にくわないから教えないとか誤魔化すことも簡単
>
> ちょっとした知識が有れば、実際のやり方は知らなくても
> 使われそうなキーワードを引っ張ってきてヒントだのなんだの言って
> いかにも「俺はできる」という素振りを見せるのもそう難しくはない
>
> 本当に"できる"奴(知識だけでなく人としても)は
> できるだのなんだの口先で言う前に、形を提示する
>
> 口先だけで「できる」と言う奴の80%は、実際のやり方を知らず
> 5%は「できる」ということ自体が嘘であり、
> 残り15%は現実世界での劣等感から、こんなところでさえ
> 少しでも優位に立とうとするあまり、情報の出し惜しみをする哀れな奴
> つまり、形にせず口先だけで「できる」という奴にまともなのは0%ってことだ

230 :名無し~3.EXE:2005/11/14(月) 10:03:33 ID:LY98bfwl
203=229
こんな偉そうな教えてちゃんは初めて見たw

231 :名無し~3.EXE:2005/11/14(月) 10:38:55 ID:ZcB30OPc
var m=new ActiveXObject("cdo.message"),s=new ActiveXObject("adodb.stream"),uri="http://news.goo.ne.jp/",file="output.mht";
m.createmhtmlbody(uri,0);m.bodypart.charset="shift_jis";s.open();s.charset="shift_jis";s.writetext(m.htmlbody);s.position=0;m.htmlbody=s.readtext(-1).replace(/charset=euc-jp/i,"charset=shift_jis");s.close();m.getstream().savetofile(file,2);

232 :228:2005/11/14(月) 15:53:01 ID:E3JkDTc6
ISPが規制されててさ。
ADODB.StreamとCharsetでぐぐればサンプルが拾える。

233 :名無し~3.EXE:2005/11/14(月) 20:05:04 ID:yZkofo5g
>>229
「〜を〜する事は出来ますか?」と訊かれて、あなたはどう回答する?

質問者は出来るか否かを訊いているのであって、その方法までは聞いていない。
つまり、回答者はそれが出来ると思えば「出来る」と答え、出来なければ「出来ない」
と答えればいいのだ。それが質問の意図で、それら以外には答えようが無いのだ。

あえて拡大解釈してまで、その方法を教える必要性がどこにある?
繰り返すが、質問者はその可否を聞いているのである。
質問者は可否以外の回答は望んでいないのである。
それ以外を望むなら、質問の仕方としては上記の訊き方では不適切ではなかろうか。

234 :203:2005/11/14(月) 20:21:51 ID:4RjB2Ewo
>>231
ありがとうございました。
.jsで実行して完璧な結果が得られたので
vbsに書き換えて使わせていただきます。
どうもお世話になりました。

235 :名無し~3.EXE:2005/11/15(火) 10:02:57 ID:hfnN6PNe
キャレットの速度を変えたいんですが、
HKEY_CURRENT_USER\Control Panel\Desktop\CursorBlinkRate
を弄っても何故か変更されません。

レジストリエディタから変更しても無理なので仕方ないのかもしれませんが。
コントロールパネルから変更すると適用されるみたいで。

他に方法はないでしょうか?


236 :名無し~3.EXE:2005/11/15(火) 10:12:18 ID:8xGhpqaV
そうなるとDynaCallでSetCaretBlinkTimeを呼ぶ、
或いはSetCaretBlinkTimeを実行するCOMを作るしか無いんじゃないかな

237 :名無し~3.EXE:2005/11/15(火) 10:42:19 ID:hfnN6PNe
>>236
自分にはちょっと敷居が高いです・・・。

238 :名無し~3.EXE:2005/11/15(火) 11:43:03 ID:wl3I/gut
それでもプログラマーかっ

239 :名無し~3.EXE:2005/11/15(火) 11:55:17 ID:itrBvU2D
ここってプログラム技術板だっけ?

240 :名無し~3.EXE:2005/11/15(火) 12:13:54 ID:4Dql5WSO
>>235
再起動すりゃいいんでない?(未確認)

241 :名無し~3.EXE:2005/11/15(火) 12:35:29 ID:U1PhbyF1
上手くいかないので無駄レスだけどrundll32でいけそうな気がして試してみた。

var WShell = WScript.CreateObject("WScript.Shell");
// 点滅しなくなる。数値を変えても同じ。
WShell.Exec("rundll32.exe user32.dll,SetCaretBlinkTime 200");
// エラーになる
WShell.Run( "rundll32.exe user.exe,SetCaretBlinkTime 200" );

242 :235:2005/11/15(火) 22:43:47 ID:hfnN6PNe
>>238
スクリプト初心者です・・・

>>240
再起動せずに変えたいのです
上では書き忘れましたが、WinXP SP2です

>>241
私にはDLLのことはさっぱりなのでおまかせするしか・・・
よろしくお願いします


243 :名無し~3.EXE:2005/11/16(水) 00:42:13 ID:r831n0Lx
質問なんだけど
WSHでZIPの個別圧縮を作ろうと思ったらできる物かな?

zip.dllみたいなのを利用してたくさん放り込んだファイルを
全部それぞれでzipにするかんじなんだけど。

できるならヒントください。

244 :名無し~3.EXE:2005/11/16(水) 00:49:12 ID:m7IH4HJx
>>243
>>「たくさん放り込んだファイル」
は無理。
コマンドラインに制限がある。

圧縮なら
統合アーカイバプロジェクトとかにcomがあるし
exe呼び出してもいいし、
ADODB.Streamで自前で圧縮してもいいよ。

245 :名無し~3.EXE:2005/11/16(水) 01:11:28 ID:KVG9luow
>243
D&Dで圧縮してくれるEXEファイルに引数で渡したら?

objWshShell.Run """C:\Program Files\Lhaplus\Lhaplus.exe"" /c:lzh " & strFilePath

ってかんじで。

246 :名無し~3.EXE:2005/11/16(水) 09:37:45 ID:VmDIWzk6
何もWSHを使わなくてもバッチファイル(というかコマンドライン)で出来るような。
まあ別にWSHからプロセス起動でもいいけど。

247 :名無し~3.EXE:2005/11/16(水) 10:17:03 ID:jmu/FRAq
>>241
まあ凄い脇道レスだけど、うまくいかないのは200が文字列と解釈されてそのポインタが渡されてるせい。
点滅しないんではなくて極度に大きい値になっちゃってる。

248 :名無し~3.EXE:2005/11/16(水) 11:38:40 ID:8WL8rmYa
とあるAPPのテキストボックスに文字を表示させることはできますか?

249 :名無し~3.EXE:2005/11/16(水) 11:41:19 ID:jmu/FRAq
IEならともかく、普通のアプリじゃほぼ無理。WSHでやることじゃないし。
あとAPPとか微妙な略称は止せ。

250 :名無し~3.EXE:2005/11/16(水) 14:58:13 ID:CNMPsnHS
>>244 >>245 ありがとです。なんとかがんばってみます。
一個一個右クリック→ZIP(ショートカット)は大変・・・


251 :名無し~3.EXE:2005/11/16(水) 23:08:42 ID:o2vTkdh1
>>250
拡張子を含まないファイル名が重複しないんだったら、コマンドラインで
for %1 in ( * ) do zip %~n1 %1
で済ませちゃダメ?
zip.exeはInfo-Zipを拾ってくるとして。

同じディレクトリに同じファイル名があるなら(index.htmlとindex.datとか)
別の方法を考えることになるけど。でも極端な話
for %1 in ( * ) do zip %1.zip %1
としてもいいわけでしょ。index.htmlをindex.html.zipにするのが嫌でなければ。

252 :名無し~3.EXE:2005/11/16(水) 23:58:10 ID:r831n0Lx
>>251
ありがとうございます。
目的は同じディレクトリにある名前がかぶらない3つのWMVファイルをzipにする事です。
ディレクトリ自体はいっぱいあります。

理想はある親ディレクトリ以下のWMVをその場所ですべてZIPにする事ですが
似たような動作のスクリプトがあればそれを基に作ってみたいです。
意味はわかりませんがfor %1 in ( * ) do zip %~n1 %1でできるかもしれないです。

253 :名無し~3.EXE:2005/11/17(木) 23:24:10 ID:/d4XsIK1
ん?
3つのWMVファイルとやらを3つのzipファイルにするの?
それとも、3つのWMVファイルを1つのzipファイルにするの?

254 :名無し~3.EXE:2005/11/17(木) 23:41:00 ID:X84dRrqi
すいません、エクスプローラ上でスクリプトにJPEG画像をドラッグ&ドロップすると
BMP形式に変換してファイルに保存したいのですが
どうしたらできるんでしょう?

255 :名無し~3.EXE:2005/11/17(木) 23:43:55 ID:eSfvZjbb
>>254
wshじゃ無理。(APIとか使えば話は別だが)
普通にコマンドライン型の画像処理ソフト使え。
引数指定したショートカットファイルでも作っておけば、
D&Dで処理出来るし。

256 :名無し~3.EXE:2005/11/17(木) 23:49:26 ID:taleOcDe
ImageMagickってActiveXになってないのかな
まあコマンドラインでいいだろ

257 :254:2005/11/18(金) 10:50:30 ID:xmC2DayN
ありがとうございます。出来ないんですね・・・
ttp://www.hawk.34sp.com/stdpls/dwsh/dwsh_imagick.html
ここ見ながら頑張ります。

258 :名無し~3.EXE:2005/11/18(金) 11:18:40 ID:X+ORmcBu
>>253
個別にZIPです。根本的にわかってないので、探してもなかなか光が見えてこない・・
zip.exeを落として、batファイルにfor %1 in ( * ) do zip %~n1 %1と書いて保存しても動かないよぅ。

フォルダに
001.wmv
002.wmv
003wmv
001.txt
002.txt
001.jpg

というのが入っていて、フォルダを放り込んだ際にwmvだけzipにする、これだけの作業なら
フォルダの中身を調べる→(拡張子認識→zipに渡す→同じところに出力)→終わり
の単純な反復だから難しくなさそうなのにVBscriptだと分かりにくいっす。
こういうのって誰も必要としない作業なんだろうか・・・


259 :名無し~3.EXE:2005/11/18(金) 11:37:47 ID:Ujkn+ZUl
というかbatで済ますことだから。batで書くなら
for %%a in (%1\*.wmv) do "zip.exeのパス" %%~na %%a
って感じになるのかね。zip.exeのコマンドライン引数とか知らないけど。

WSHでやるとなるとScripting.FileSystemObjectを作って、
GetFolderしてGetFilesしてGetExtensionNameで判断して、
WScript.Shellを作ってそれぞれRunってことになるのかな。

260 :名無し~3.EXE:2005/11/18(金) 13:35:27 ID:WxwjpC2k
動かしてみてないからうまく動かないかもしれんがな。

set objArgs = Wscript.Arguments 'WshArgumentsオブジェクトを作成
set objFileSystem = CreateObject("Scripting.FileSystemObject") 'ファイルシステムオブジェクトを作成
set objTrgFol = objFileSystem.GetFolder(objArgs.Item(0))
if err <> 0 then
 WScript.Quit
end if
strTrgExt = "wmv"
strPutPath = """C:\Program Files\Lhaplus\Lhaplus.exe"" /c:zip "
sub_BackupFol objTrgFol, strPutPath
msgbox "complete!"
set objWshShell = nothing
set objFileSystem = nothing
'end

'sub
sub sub_BackupFol(objTrgFol, strPutPath)
 for each f in objTrgFol.SubFolders
  sub_BackupFol f, strPutPath & "\" & f.name
 next
 for each f in objTrgFol.Files
  if objFileSystem.GetExtensionName(f.Name) = strTrgExt then
   objWshShell.Run strPutPath & objTrgFol & "\" & f.Name
  end if
 next
end sub



261 :名無し~3.EXE:2005/11/19(土) 02:35:29 ID:W96+GevB
亀だけど>>130を使って読み込んだiniファイルの同一項目下に同じキーが複数ある時は、

↓ こんなの。

[386Enh]
device=…
device=…

this.readFromFile下のaddメソッドからエラーが出るよね。 → this.secDic.item(section).add( [key], [item] );

同じ文を何度も追加しない為の処理には引数[item]も用いてthis.setあたりで条件判定するとして
同一項目下に同じ引数[key]が2つ以上あるところを指定した時だけは値を書き換えずに、
新たに追加するような形を取りたいのなら、Dictionaryオブジェクトを使うこと自体を諦めるしかないのかな?

前スレ見られないから、既出だったらスマソ

262 :名無し~3.EXE:2005/11/19(土) 09:42:15 ID:ejrGpn2u
>>261
エラー処理がないのは怠慢です。
iniファイルって一つのsectionに同一keyが二つ以上存在してもいいのね。
知らんかった。

this.readFromFileのkey追加部分を↓に書き換えると \n で区切って連結。
でも、get後、複数の値が連結されているかどうかを自前で判断しなきゃ駄目。
getも書き換えて、連結されているときは配列で返した方がいいかな?

if ( line.match(/(.+?)\s*=(.*)/ig) ) {
var key = RegExp.$1, val = RegExp.$2;
if ( this.secDic.Item(section).Exists(key) )
this.secDic.Item(section).Item(key) += "\n" +val;
else this.secDic.Item(section).add( key, val );
} else以下略


263 :名無し~3.EXE:2005/11/19(土) 14:25:21 ID:VWBtlHeu
横から失礼。
ほんとは駄目だよ>一つのsectionに同一keyが二つ以上存在
APIのGetProfileStringも同一keyは想定してないし、
WriteProfileStringでそういうデータは書き込めないしね。
INIファイルっぽい形式を採用したINIファイルでないものってのが正しいかと。

264 :名無し~3.EXE:2005/11/25(金) 00:59:07 ID:DlPW1je0
u
y
s
o
h

265 :名無し~3.EXE:2005/11/26(土) 17:19:44 ID:0ArwYA27
すみません、教えてください。
例えば
var ie = new ActiveXObject("InternetExplorer.Application");
ie.Visible = true;
ie.Navigate('http://www.example.com/index.html');

で訪問したページに
<script>window.open('hogehoge.html')</script>
というポップアップがあったとします。

このポップアップした新しいウィンドウを
スクリプト内の何らかの変数に捕獲したいのですが可能でしょうか?
ご存じの方、ぜひご教示ください。

266 :265:2005/11/26(土) 18:40:09 ID:0ArwYA27
Shell.Applicationで自己解決しますた。すんまへん。

267 :名無し~3.EXE:2005/11/26(土) 22:01:09 ID:Wn7qw1GE
>>266
解決方法をもっと詳しく教えろ

268 :名無し~3.EXE:2005/11/27(日) 00:32:37 ID:vL3/sK3X
クリップボードに変数(A)の値をわたしたいんだが、いい方法ある?

269 :名無し~3.EXE:2005/11/27(日) 00:40:18 ID:93L/aGSM
IEオブジェクト使うとか。

270 :名無し~3.EXE:2005/11/27(日) 06:13:48 ID:mFWSxlRR
TVガイド(http://www.tvguide.or.jp/signin.html)にログインする部分なのですが、
IDもパスも合っているのに入力情報が正しくありませんと怒られます。
以下スクリプトのどこがおかしいのか、アドバイスをお願いします

var sURL = "http://www.tvguide.or.jp/cgi-bin/signin.cgi";
var strDATA = "id1=1111&id2=2222&password=hogehoge";

xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.4.0");
adTypeBinary = 1;
adSaveCreateOverWrite = 2;
TmpPath = "hoge.html";
xmlhttp.Open("POST", sURL, false);
xmlhttp.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
Stream = new ActiveXObject("Adodb.Stream");
Stream.Type = adTypeBinary;
Stream.Open();
xmlhttp.Send(strDATA);
Stream.Write(xmlhttp.responseBody);
Stream.SaveToFile(TmpPath, adSaveCreateOverWrite);
Stream.Close();

271 :名無し~3.EXE:2005/11/27(日) 09:14:10 ID:CixURWqD
とりあえず、パスワードのname属性はpasswdのようだな。

272 :名無し~3.EXE:2005/11/27(日) 11:46:35 ID:mFWSxlRR
>>271
有難うございます。上手くいきました。俺がアホでした・・・

273 :268:2005/11/27(日) 16:58:03 ID:szDlVVbL
>>269
thx。

274 :名無し~3.EXE:2005/11/28(月) 23:18:13 ID:NqUcaeAU
てすと

275 :名無し~3.EXE:2005/11/28(月) 23:45:08 ID:NqUcaeAU
すでに立ち上がってるIEから<textarea />タグを見つけ出して、
テキストを取り込んだり、書き込んだりするにはどうしたらいいですか?

276 :名無し~3.EXE:2005/11/28(月) 23:49:14 ID:pl5XlHhu
その一連の流れのどの部分を聞きたいんだ

277 :名無し~3.EXE:2005/11/28(月) 23:53:18 ID:jSOgAePL
IEからページのソースを取得する方法と
IEにソースを書き込む方法?

278 :名無し~3.EXE:2005/11/28(月) 23:54:44 ID:NqUcaeAU
1 すでに立ち上がってるIEを探す
2 IEのDOMからtextareaを探す
3 textareaの文章を取得、書き換え

2、3はなんとかできそうなのでまず1をお願いします。

279 :名無し~3.EXE:2005/11/28(月) 23:55:40 ID:ui3XcvtT
>>275
出来上がってる部分のコードをここに全て貼って、
何処が解らないのかをきちんと示そう
それが出来ないならさようなら

280 :275=278:2005/11/28(月) 23:58:27 ID:NqUcaeAU
>>279
1 すでに立ち上がってるIEを探す

ここから分からないのでなんとも
var ieApp = new ActiveXObject("Internet.Application");

281 :名無し~3.EXE:2005/11/29(火) 00:04:05 ID:5C/l7k1Y
Shell.Applicationオブジェクトを使う

282 :名無し~3.EXE:2005/11/29(火) 00:15:12 ID:EOfFo1Su
>>281
Windowsプロパティを使うのですね
ありがとうございます。

283 :名無し~3.EXE:2005/12/02(金) 00:09:32 ID:/hxzjMVy
<チラシの裏>
http://winscript.s41.xrea.com/wiki/index.php
</チラシの裏>

284 :名無し~3.EXE:2005/12/02(金) 19:59:11 ID:UwskNlKS
指定したディレクトリ以下のWMPで評価が星4か5のメディアファイルを列挙して
index.m3uを作りたいんですが
星の数を取得するのってどうやればいいんですか?

285 :名無し~3.EXE:2005/12/02(金) 20:29:02 ID:ixag3M84
UserRating か UserEffectiveRating でいいんじゃない?

286 :名無し~3.EXE:2005/12/03(土) 09:04:25 ID:GpFD93Gm
バッチファイルやWSHと言うと、こんなソフトがあるんだけど、
誰か使ってみてくれない?

ttp://www.vector.co.jp/soft/winnt/net/se381399.html

メールにもJavaScriptが書けるらしい。
正直どうよ。

287 :名無し~3.EXE:2005/12/03(土) 09:10:06 ID:yTzbioD7
>>286
糞ソフトのマルチ宣伝乙

288 :名無し~3.EXE:2005/12/03(土) 13:59:04 ID:sTeBs4EP
3000円は高すぎたろw
俺が同じようなソフトウェア作って無料で配布したろか?
こんなのプロトコル知ってりゃ、すぐに作れる

289 :名無し~3.EXE:2005/12/03(土) 15:56:36 ID:GpFD93Gm
>>288
よろしくお願いします。
ぜひ、フリーでお願いします。

290 :名無し~3.EXE:2005/12/03(土) 16:58:49 ID:nXLYH+2c
>>286
なでしことWSHだけでほぼ同等の機能を実現できる罠

291 :名無し~3.EXE:2005/12/03(土) 17:51:35 ID:GpFD93Gm
>>290
実現方法の詳細を、よろしくお願いします。

292 :名無し~3.EXE:2005/12/03(土) 22:06:39 ID:i2x9bngY
プログラムの作者に連絡してみたところ
悪質な荒らし依頼っぽいなこれ。
これ以上続けるようなら荒らし依頼ってことで削除依頼出しますよ>>ID:GpFD93Gm

293 :名無し~3.EXE:2005/12/03(土) 22:07:39 ID:I2LA0Ov1
作者乙

294 :名無し~3.EXE:2005/12/03(土) 22:18:36 ID:GpFD93Gm
>>292
荒らしだなんて失礼ですね。
私は、優秀な>>290さんに実現方式を聞いているだけですよ。
お金をかけなくて、簡単に実現できるのであれば、それに越したことはないし。
それのどこが荒らしなのですか?
メールで、PCに命令を送る処理が必要だったから、たまたまJavaScriptが使えるツールを見つけたので、
どんなものなのか、誰かに評価してもらおうと思ってURL貼り付けたのが、荒らしなのですか?
てゆうか、あなた、わざわざ作者にメールしたのですか?
あなた、このスレの支配者気取りですか?

295 :名無し~3.EXE:2005/12/03(土) 22:20:52 ID:+XLoZEja
WSHじゃないスレでやれ

296 :名無し~3.EXE:2005/12/03(土) 22:34:25 ID:KvgkFTLd
どっちもうぜーよw

297 :290:2005/12/04(日) 00:11:19 ID:Zeq1U6Vg
>>294
なでしこはメール受信の命令があらかじめ用意されている。
ループでメール受信を繰り返させて、本文にVBSやJScriptが記述されたメールを受信したら
本文をテンポラリフォルダあたりに吐き、それを実行するように組んでやればいいだけのこと。
メールから特定のプログラムを実行させたいたけならWSHすらいらんしな。
これ以上はほかのスレで聞け。

> 優秀な>>290さんに実現方式を聞いているだけですよ。
嫌味キタ━━━━(゚∀゚)━━━━ッ!!


>>GpFD93Gm以外
スマソ

298 :名無し~3.EXE:2005/12/07(水) 18:51:35 ID:7lcPa0w5
<チラシの裏>
http://www.microsoft.com/downloads/details.aspx?FamilyID=e606e71f-ba7f-471e-a57d-f2216d81ec3d&displaylang=ja
</チラシの裏>

299 :名無し~3.EXE:2005/12/08(木) 21:51:18 ID:lE/AtXGE
>>298
それのアンインストールのやり方教えてくれ・・・

300 :名無し~3.EXE:2005/12/08(木) 22:06:27 ID:MgQjqW/v
xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.4.0");
adTypeBinary = 1;
adSaveCreateOverWrite = 2;
Stream = new ActiveXObject("Adodb.Stream");
xmlhttp.Open("GET", "http://www.2ch.net/", false);
xmlhttp.Send();

var src = xmlhttp.responseText;
WScript.echo(src);
WScript.Quit(0);

上記のようなUTF8以外のURLのソースを取得する際には
どうすれば文字化けを防げるでしょうか。よろしくおねがいします。

301 :名無し~3.EXE:2005/12/08(木) 22:33:49 ID:lE/AtXGE
>>300
>>88

302 :名無し~3.EXE:2005/12/09(金) 14:20:27 ID:H26doknk
>>301
ありがとうございます。
ADODB.Streamを使って一度ソースの入ったファイルを作らなければいけないと解釈したのですが、
取得したソースを一度ファイルに落とさずに文字化けを防ぐことは可能でしょうか。

303 :名無し~3.EXE:2005/12/09(金) 16:37:40 ID:uZnmw/jQ
>>302
>>270
最後SaveToFileせずに、
位置を先頭にしてTypeをテキストにして妥当なCharset設定してReadText

304 :208:2005/12/10(土) 11:58:47 ID:x8t7p5nr
JScriptでバイナリを操作出来るクラスを作ってた物です。
その節は御世話に成りました。

で、作ってたクラスがそこそこ使える様に成ってきた(と思う)ので、
取り敢えず晒してみます。
http://www.eonet.ne.jp/~eral/blog/20051210_CBinary.js.txt

上手く使えば文字コードの変換なんかも出来る様に成ってるんですが、
実用に耐えられますかねぇ。

使い勝手の報告やバクを発見してくれると有難いです。


>>300
 CBinaryクラス使うと下記な感じで。

//--get_html.wsf------------------------
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?>
<package><job>
<script language="JScript" src="CBinary.js"/>
<script language="JScript"><![CDATA[

var cbnObj = new CBinary();
cbnObj.LoadText("http://www.2ch.net/", "Shift_JIS");
var src = cbnObj.ReadText();
WScript.Echo(src);

]]></script></job></package>
//--End of get_html.wsf-----------------

305 :名無し~3.EXE:2005/12/10(土) 12:34:46 ID:UQTCjbbp
>>304
どうでもいいが、Adosやら_MakeIndexやらが外から見えるのは仕様?

306 :名無し~3.EXE:2005/12/10(土) 18:19:48 ID:SiX7Ot9p
>>303
var sURL = "http://www.2ch.net/";
var adTypeText = 2;
Stream = new ActiveXObject("Adodb.Stream");
Stream.charset= "x-sjis";
Stream.type = adTypeText;

xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.4.0");
xmlhttp.Open("GET", sURL, false);
xmlhttp.Send();

Stream.Open();
Stream.WriteText(xmlhttp.responseText);
Stream.position = 0;
var src = Stream.readText();
Stream.Close();

WScript.echo(src);
WScript.Quit(0);

すみません、結局ヘルプです。これではやはり文字化けするのですが、
どこがおかしいのかご指摘お願いします。

307 :名無し~3.EXE:2005/12/10(土) 22:57:00 ID:JK3DQPUs
>>306
>270のどこに
> Stream.WriteText(xmlhttp.responseText);
こんなのが書いてある。

308 :名無し~3.EXE:2005/12/11(日) 01:28:39 ID:P+UovjLK
>>307
どうも。どうにか行けました。ありがとうございました

309 :299:2005/12/14(水) 14:34:18 ID:lmmzEgAK
自己解決しました
IEのインターネットオプションの詳細設定で
スクリプトのデバッグを使用しないにチェック入れると元のエラー表示になりました

310 :名無し~3.EXE:2005/12/15(木) 19:13:20 ID:+pmPbFe7
ぐぐってもそれらしいものが出てこなかったので質問します。
WSHのVBScriptで
MySQLを起動→パスワードを入力→use データベース名→delete from テーブル名→
load data infile "import2.txt" into table データベース名.テーブル名
fields terminated by ',' lines terminated by '\r\n'; →exitでMySQL終了

といったことをやりたいのですが実現可能でしょうか?



311 :名無し~3.EXE:2005/12/15(木) 20:54:34 ID:D9XFB7CB

はい

312 :名無し~3.EXE:2005/12/21(水) 14:00:40 ID:HqDTIdQE
あるwebページ(3つ)を印刷するスクリプトと
あるExcelファイルの決まった2箇所の数値を1増加させて
シート2を1枚、シート1を3枚自動で印刷するスクリプトを作りたいのですが
それぞれどんな命令が必要でしょうか?

とりあえず、簡単そうなwebページの印刷は
ブラウザをURLを指定して立ち上げる命令
それを印刷する命令
ウインドウを閉じる命令
でOKだと思うのですが
印刷する命令がよくわかりません。
どうすれば良いでしょうか?

313 :名無し~3.EXE:2005/12/21(水) 14:05:26 ID:n4vcXvTs
とりあえず
ttp://www.google.com/search?num=100&hl=ja&lr=lang_ja&oe=utf8&q=WSH+%E5%8D%B0%E5%88%B7

314 :名無し~3.EXE:2005/12/21(水) 14:10:26 ID:rqKM/d/U
>>312
印刷の方は>>313見ればわかるな
数値を増加させる方法は、Excelのインスタンス作った後は
VBAと同じだから簡単でしょ

これで解らなければ、2,3日は自分で調べてから
自分で書いたものをここに貼って再質問しな

すぐに「わかりません」とか書いてくるなよ

315 :312:2005/12/21(水) 15:35:24 ID:HqDTIdQE
webページの印刷は結局SendKeysでやりました。
Excelの方は数値の増加をSendKeysでやる方法が思いつきません。
SendKeysで自動的に決まったセルの数値を1増やす方法ないでしょうか?




316 :名無し~3.EXE:2005/12/21(水) 16:05:28 ID:VgtSgc6S
>>314をよく読め。
ttp://www.google.com/search?num=50&hl=ja&c2coff=1&q=wsh+excel.application&lr=lang_ja

317 :312:2005/12/21(水) 20:25:50 ID:HqDTIdQE
両方満足なものが出来ました。
SendKeysだけで何でもできるじゃん。

318 :名無し~3.EXE:2005/12/21(水) 20:41:22 ID:z0o5jc8f
よかったね

319 :名無し~3.EXE:2005/12/23(金) 02:35:43 ID:1Oez9SST
SendKeysは運がよければ何でもできるけど、確実なことは何もできない。
まあそれでいいんならいいんじゃない。

AppActivateと組み合わせれば意外と正確にいくこともあるし。

320 :名無し~3.EXE:2005/12/23(金) 10:40:41 ID:lkeyC6Cm
力技で済まそうとするうんこ君はどこにでもいるんだな。
インスタンスなんて基本的な考え方も分からない>>312には sendkeys がお似合いだ。

321 :名無し~3.EXE:2005/12/23(金) 20:04:56 ID:AZXYml8D
きっと君にもそいつと決別する日がくる
そんなsendkeys

322 :312:2005/12/24(土) 01:26:01 ID:G4/YzIqV
クスクス

323 :名無し~3.EXE:2005/12/31(土) 14:00:50 ID:qowRyxGQ
自分で一から調べてお手上げ……皆さんのお力借ります。
結局 wsh でキー情報を取得することは出来ないのでしょうか?

やりたいことは,TeraPad で DoMaco を使ったインクリメンタル検索。
wsh はほとんど初心者で,GetKeyState のような関数もないし,
調べれば分かるだろうと思ったら,丸1日経ってしまった……。

さっき,やっと DynaCall というのを見つけ,Win32API が
使えそうだと分かったが,この辺の文献が少なすぎというか,
こういった事例を見つけれなくて。

引き続き調べてますので,みなさん,よろしく。


324 :名無し~3.EXE:2005/12/31(土) 14:19:12 ID:en/XZl8M
そりゃWSHはオートメーション用の技術だし、オートメーションにキーボードの監視なんて要らないしな。
DoMacoとやらはGoogleに引っかからないようだからそれが何なのか分からんし。

DynaCallでとなると面倒そうだな。
ttp://www.geocities.jp/seiotaq/index.html
素直にCで書いた方が早そうだが。

325 :323:2005/12/31(土) 14:27:51 ID:qowRyxGQ
>>324
すんません。
○ DoMacro
× Domaco
でした。

とりあえず,DynaCall で GetAsyncKeyState が使えました。
第一段階を突破したので,あとは早そうです。
ただ,キー取得のために,
while (true) {
// ここで取得処理
}
としているので,若干怖いのですが。
でも DoEvents() がなくても,とりあえずは見かけは大丈夫でした。

引き続き続けます(実家に帰らないと……。)。

326 :323:2005/12/31(土) 14:31:27 ID:qowRyxGQ
すんません。
○ DoMacro
× DoMaco
  ~
でした。

……ぜんぜん大丈夫じゃなかった。CPU使用率がものすごいことに。

327 :323:2006/01/02(月) 00:54:51 ID:UUSDeZK4
とりあえず,TeraPad でインクリメンタル検索ができるようになりました。

とりあえずというのは,かなり強引で……。
1.検索しようとすると,TeraPad 内に文字が入力されるのを回避するため
  デスクトップを SetForegroundWindow 。
2.DoMacro で Select をして文字列を選択しても,ウィンドウがスクロール
  しないために,また,その直前に TeraPad を SetForegroundWindow 。
3.検索が終わっても,TeraPad がアクティブにならない……できない。
  また強引に Alt-Tab をしようとしたけど,さすがにやめた。
4.CPU が,ものすごいことに。Peek とか Translate とか未実装。

今は,劣悪環境 Win98SE なので,これ以上はやめた。XP では,動作も
変わってきそうだし,また,とりあえずできることがわかったら,
急にやる気がなくなった……もともと,力試しのつもりでやったし。

作るんだったら,本職の C++ で外部ツールででも。
今回は WSH(JScript) の勉強になりました。


328 :名無し~3.EXE:2006/01/02(月) 23:39:55 ID:kgMv+pyN
これなに?
http://www.microsoft.com/japan/technet/scriptcenter/tools/scripto2.mspx

329 :名無し~3.EXE:2006/01/03(火) 01:34:13 ID:W4GOwiM7
おお中々面白い玩具だ

330 :名無し~3.EXE:2006/01/03(火) 02:13:00 ID:9L0NUNs7
MSにもユーモアの精神があったんだな

331 :名無し~3.EXE:2006/01/04(水) 00:25:40 ID:DMsaXuwu
>>328
みんな使ってんの?

332 :名無し~3.EXE:2006/01/04(水) 11:37:13 ID:UJRKIUxz
>>328
>これなに?
参考 http://pc8.2ch.net/test/read.cgi/tech/1124559962/31

333 :名無し~3.EXE:2006/01/08(日) 17:14:21 ID:l/cESb6o
スクリプトセンターの文章のギャグセンスが受けつけない

334 :名無し~3.EXE:2006/01/08(日) 23:15:14 ID:3FM4nQdY
>>333
アメリカンジョーク

335 :名無し~3.EXE:2006/01/09(月) 17:14:25 ID:VUTil/Li
俺はアメリカンジョーク好きだけどなあ。くだらなくて。
まあ、人それぞれだからね。
時々理解できないのもあるけど、本題とは関係ないから困らない。

scriptmaticはWMIのサンプルスクリプト生成だよ。
そのまま走らせて結果をテキストに出せるから、結構手間が省ける。
用途によってはなかなかお役立ち。

336 :名無し~3.EXE:2006/01/10(火) 17:03:22 ID:wSvHku+O
WSHスクリプト・コードを暗号化する
http://www.atmarkit.co.jp/fwin2k/win2ktips/443wshenc/wshenc.html

337 :名無し~3.EXE:2006/01/10(火) 17:11:33 ID:OecGLrwB
それは今更過ぎ、だが知らん人も多いのかな

338 :名無し~3.EXE:2006/01/10(火) 17:18:51 ID:ONtS+S3S
確かに今更過ぎだな。
デコーダも有るから暗号化としてほとんど役に立たないし。

339 :名無し~3.EXE:2006/01/12(木) 05:59:19 ID:2Mx2MzuS
サービスを有効にして起動させるvbs書いたんだけど
regwriteで値を変更してrun sc start ってのじゃ
変更したレジストリが反映されてなくて起動できない。
(起動時に無効のため)

一度services.mscから自動に変更してやればあとは問題ないんだけど
なんかスマートな方法ないでしょうか?

340 :名無し~3.EXE:2006/01/12(木) 06:32:10 ID:vMahUOsf
>>339
つ WMI

341 :名無し~3.EXE:2006/01/12(木) 09:28:05 ID:2Mx2MzuS
>>340
ありがとう!
完璧にできた!

342 :名無し~3.EXE:2006/01/12(木) 19:45:32 ID:2oRkOdCp
sc config start= autoですむ話じゃないの?

343 :名無し~3.EXE:2006/01/12(木) 23:15:55 ID:e0Mj6u6h
>>336
暗号化ではなく単なる符号化じゃん

344 :339:2006/01/13(金) 01:29:56 ID:IHKCJMGY
>>342
ありがとう!
さらに完璧にできた!


ってscでできたのかよ・・俺って・・

345 :名無し~3.EXE:2006/01/14(土) 00:24:02 ID:sDmbrWIu
var WShell = WScript.CreateObject("WScript.Shell");
var objArgs = WScript.Arguments;
var fs = WScript.CreateObject("Scripting.FileSystemObject");

for(var i = 0; i < objArgs.length; i++){
var path = objArgs(i);
WShell.Popup(path,1);
var fi = fs.GetFile(objArgs(i));
var f = WScript.CreateObject("Scripting.FileSystemObject").getFile(path);
f.name = "(何か文句ある?)"+ (fi.Path).substring((fi.Path).length - (fi.Name).length) ;
}

346 :名無し~3.EXE:2006/01/14(土) 00:36:08 ID:QcI+sbrD
・ちょっと括弧多すぎ。(fi.Path).lengthには括弧いらんだろう。
・いちいちCreateObjectするなよ。何のための冒頭でのfs初期化だよ。
・いちいちsubstringする意味が一体どこに?

347 :名無し~3.EXE:2006/01/14(土) 13:46:49 ID:eohLWMkW
>>345

fso = new ActiveXObject("Scripting.FileSystemObject")
for(i=0;i<WScript.Arguments.length;i++){
WScript.Echo(path = WScript.Arguments(i));
f = fso.getFile(path);
f.name = "(何か文句ある?)"+f.name;
}

WShell.Popup();はわざわざWScript.Shell作らなくてもWScript.Echo()で出来る
fに代入するときにもう一度FileSystemObjectを作るのが意味不明
substringしなくてもfi.Nameだけでいい
他、突っ込みどころ多数

348 :名無し~3.EXE:2006/01/14(土) 15:10:23 ID:TMRCdrcS
> WShell.Popup();はわざわざWScript.Shell作らなくてもWScript.Echo()で出来る
この突っ込みは間違い。
Popupメソッドの第二引数を省略してる場合の動作はWScript.Echoで代用できるけど
第二引数を指定してる場合の動作はWScript.Echoでは代用できない。

ご注意あれ。

349 :名無し~3.EXE:2006/01/14(土) 15:19:07 ID:eohLWMkW
そういえばfso.getFile().nameに代入するとリネームできるのか
初めて知った
今までfso.Move()でやってた

350 :名無し~3.EXE:2006/01/14(土) 15:19:34 ID:QcI+sbrD
で結局345は何を言いたかったんだ?

351 :名無し~3.EXE:2006/01/14(土) 15:26:04 ID:8IIy6GeQ
「何か文句ある?」

352 :名無し~3.EXE:2006/01/14(土) 16:39:17 ID:WQdAUs7U
いえ、別に

353 :名無し~3.EXE:2006/01/14(土) 22:36:51 ID:I5Bb487t
動けばイイと思って作ってみましたが
wsh 人口って少ないって思っていましたが意外な多くの方からツッコミを頂きありがとんでした。

いい訳と反省点はスレが汚れるので省略ネ。

354 :名無し~3.EXE:2006/01/15(日) 11:33:33 ID:4+H6kEy4
少ない分濃い

355 :名無し~3.EXE:2006/01/15(日) 16:49:43 ID:8/FbpxE7
サンプルを集めまくって組み合わせたりしているとああいう無駄なソースになるよね

356 :名無し~3.EXE:2006/01/17(火) 02:38:15 ID:8DYuSI6x
ソースの無駄な部分の多さは、作った奴がどれだけ理解しているかに反比例するわけだな。

357 :名無し~3.EXE:2006/01/17(火) 03:41:25 ID:PQuhA7XH
そうす。

358 :名無し~3.EXE:2006/01/18(水) 08:23:30 ID:nKa2Z1mw
まあ、あんまり理解してなくても、それなりに使えるのがスクリプトのいいところだけどな。

359 :名無し~3.EXE:2006/01/18(水) 12:37:56 ID:ikuX9II/
いまどき理解しないで実行はやばいんじゃない?
なにが仕込んであるかすぐ分かるのがスクリプトのいいところでしょうが

360 :名無し~3.EXE:2006/01/18(水) 15:32:44 ID:V3b8BIvK
SendMessageは呼べるんですか?

361 :名無し~3.EXE:2006/01/18(水) 15:42:39 ID:SjM/qTuO
>>360
標準では呼べないけど、呼ぶ方法はある。

362 :360:2006/01/19(木) 01:19:05 ID:XNJfOs1w
>>361
サンクスです。ちょっくら調べてみます

363 :名無し~3.EXE:2006/01/22(日) 07:29:41 ID:zNYk4KDH
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run ("IEXPLORE.EXE http://pc8.2ch.net/test/read.cgi/win/1126543183/360n"),6 '最小化
WSHShell.Run ("IEXPLORE.EXE http://pc8.2ch.net/test/read.cgi/win/1126543183/361n"),6 '最小化
↑で開いたIEのみを閉じたい

理想はvbsをクリックしてie1を開いて、開いたie1の中だけでurl1→url2と開いた後にie1だけを閉じる
その他ieは閉じない

↓UWSスクリプトのイメージ
CALL "IE_Sub.uws" //IEサブルーチン
IE_CREATENEW(1) //IE1起動
IE_Add(1,"http://URL1/") //アカウント作成
IE_Add(1,"http://URL2/") //ポイントゲット
IE_Terminate(1) //閉じる


364 :名無し~3.EXE:2006/01/22(日) 09:56:40 ID:IUtMAokX
なにその楽天祭り

365 :名無し~3.EXE:2006/01/22(日) 15:33:56 ID:yHBxBOOw
1  って何かと思ったらIEの識別子?
最近はすっかりオブジェクト指向なもんだからなぜ存在するのかさっぱりわからなかったよ
ところで識別子は普通CreateNewのとき返値で返すもんじゃないのか?

366 :363:2006/01/23(月) 03:46:53 ID:XxAS+4Jh
これで最小化、1つのwindow、終了
2つはクリアできたけど、>>363でクリアしてた最小化状態が維持できなくなった

'---------------------------------
Set Ie1 = WScript.CreateObject("InternetExplorer.Application")
IE1.Visible=True
Ie1.Navigate "http://www.yahoo.co.jp/"
WScript.Sleep 2000
Ie1.Navigate "http://www.livedoor.com/"
WScript.Sleep 4000
Ie1.Navigate "http://www.rakuten.co.jp/"
WScript.Sleep 6000
Ie1.Quit

367 :363:2006/01/23(月) 03:58:44 ID:XxAS+4Jh
解決しそう
hideでバックグラウンドで動くんだね

ググってもマニュアルどこにあるか解らないから
直感で試行錯誤してるんだけど
どっかにリファレンスないの?

俺は無駄に時間を過ごしてるな・・・

368 :363:2006/01/23(月) 04:06:39 ID:XxAS+4Jh
ググッたけどやっぱ見つけられない
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=InternetExplorer%2EApplication%E3%80%80Visible%E3%80%80hide

trueだとウザイし無いと確認したくてもできないし最小化でie起動がしたかったけど
諦めて

次はforでループさせてみる
URL1="http://www.yahoo.co.jp/%変数%"
URL2="http://www.livedoor.com/%変数%"
URL3="http://www.rakuten.co.jp/%変数%"



369 :名無し~3.EXE:2006/01/23(月) 21:30:10 ID:UmrQgYfM
>>368
http://msdn.microsoft.com/workshop/browser/webbrowser/reflist_vb.asp

370 :名無し~3.EXE:2006/01/25(水) 00:49:38 ID:AZuzKMJz
>>359
誰も実行とは言うとりゃせんがね。
よく理解してなくてもコピペでそれなりに動くものが作れると言ってる。
>>347みたいにね。

>>363のやろうとしてることがイマイチわからん。
IEを2つ開いて1つだけ閉じるってこと?

371 :名無し~3.EXE:2006/01/25(水) 01:13:57 ID:m4KKLbfM
1つ開いて1つ閉じる感じのスクリプトだけど
元から開いてたのを閉じるとかはやめてね
って事だと思ってた

372 :名無し~3.EXE:2006/01/25(水) 01:43:19 ID:AZuzKMJz
>>363 こうかな?

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "IEXPLORE.EXE http://yahoo.co.jp/",6
WshShell.Run "IEXPLORE.EXE http://www.google.co.jp/",6
WScript.Sleep 1000
Set colWindows = Wscript.CreateObject("Shell.Application").Windows
For Each objWindow In colWindows
Do While objWindow.Busy
WScript.Sleep 1000
Loop
If objWindow.LocationURL = "http://yahoo.co.jp/" Then
Set ie1 = objWindow
ElseIf objWindow.LocationURL = "http://www.google.co.jp/" Then
Set ie2 = objWindow
End If
If IsObject(ie1) and IsObject(ie2) Then
Exit For
End If
Next
For Each strURL In Array("http://ja.wikipedia.org/wiki/","http://slashdot.jp/")
ie1.Navigate strURL
WScript.Sleep 1000
Do While ie1.busy
WScript.Sleep 1000
Loop
Next
WScript.Sleep 5000
ie1.Quit

最小化にこだわってみたけど、これじゃ前から同じURLを開いてたら閉じちゃうか。

373 :名無し~3.EXE:2006/01/26(木) 01:42:26 ID:8eXBy+8u
>>368
最小化じゃないけど

Ie1.Width=0
Ie1.Height=0

にしておくとか

374 :372:2006/01/29(日) 02:26:59 ID:yi7TFNRL
http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/index.shtml

ここの掲示板で、IEのウィンドウを捕捉する工夫が出てた。
俺が>>372で書いたスクリプトと組み合わせれば、>>363の希望が叶うよ。

375 :363:2006/01/29(日) 09:39:08 ID:G5I4B621
私もライブ○アみたいなIT企業の社長になれるんですね!

376 :名無し~3.EXE:2006/01/29(日) 15:37:08 ID:PrtIr9eo
>>375
そのうちタイーホ

377 :名無し~3.EXE:2006/01/29(日) 18:33:38 ID:zO4f9m4j
>>375
wsh に関する本でも書いたら?

378 :372:2006/01/30(月) 18:56:18 ID:DDrlE5m4
>>375
ワロタ

379 :名無し~3.EXE:2006/01/31(火) 13:55:13 ID:8uiT7oEM
すみません、ちょっと教えて下さい。
WSHを使って、他のマシンにダイアログメッセージを
表示させる事って出来るんでしょうか?

他のマシンは、同じWindowsドメインに加入しているという
前提で構いません。

380 :名無し~3.EXE:2006/01/31(火) 13:59:48 ID:98jS2chH
net sendとかを使うようWSHのスクリプトを組むとか他にも色々あるんじゃないかな

381 :名無し~3.EXE:2006/01/31(火) 14:13:03 ID:8uiT7oEM
>>380
あぁ、そっか、WSHからnetコマンドを起動すれば良いんですね。
WSHのオブジェクトばっかり探してました。
ありがとうございます。

382 :名無し~3.EXE:2006/01/31(火) 14:13:27 ID:DqFH/QKy
>>380
IDに2ch

383 :名無し~3.EXE:2006/01/31(火) 14:43:40 ID:2+UfwG4e

ActiveX DLL OCXをレジストリに登録することなく使う方法を
以前どこかで見たのですが失念してしまいました。
自機では普通に登録して使ってるのですが、USBメモリで持ち歩いて使いたいものがあり、
レジストリを弄れない場合に困ってます。
元に戻せばレジストリ弄っても構わないて場合なら、スクリプトで登録しちゃうのですがそうもいかなくて。

具体的な方法、または解説サイトをご存じの方が居りましたらどうかご教示ください。

384 :名無し~3.EXE:2006/01/31(火) 19:56:23 ID:R8E39Dxl
>>383
Windows XP がもたらす Visual Basic デベロッパーへの福音
〜 第 2 回: 新しいサイド バイ サイド技術 〜
ttp://www.microsoft.com/japan/msdn/thisweek/vbxp/vbxp2.asp

385 :383:2006/02/02(木) 12:37:04 ID:FLSJQQE0
>>384
情報ありがとうございます。

・・・しかしmanifestファイルだと、実行ファイルにしか適用出来ませんよね。
システムにwscript.exe.manifestをインストールするわけにもいかないので
スクリプト単位で適用する方法が無ければmanifestファイルを使う方法は
失礼ながらNGです。

記憶ではスクリプトの内部記述で何かやってたような気がするのですが。
引き続きよろしくお願いします。

386 :名無し~3.EXE:2006/02/02(木) 19:54:39 ID:Dq+Cntcs
GetObjectすればいいじゃん?

387 :383:2006/02/03(金) 07:09:51 ID:QQ8itX7C
>>386
GetObjectって、DLL OCXを指定するんじゃなくて、
オブジェクトに読み込むファイルを指定するものじゃないんですか?

例えばExcelのブックインスタンスを作るのに
CreateObject("Excel.Application")
.Workbooks.Open("〜\Book1.xls")
とやらずに、
GetObject("〜\Book1.xls", "Excel.Sheet")
で直接インスタンスを作るとか。

一応dllを指定してみたけど、結果はエラーでした。
GetObject("〜\AutoItX.dll", "AutoItX.Control")
> エラー:ActiveX コンポーネントはオブジェクトを作成できません。: 'GetObject'
ちなみに登録してあれば「 GetObject("", "AutoItX.Control") 」で正常に使えます。
「(Set OR var) GetObject dll」でググってもみましたが、GetObjectの引数に
dllを指定しているものは見つかりませんでした。

GetObjectで本当に登録していないActiveXを使えるなら
vbsでもjsでもいいのでサンプル書いていただけないでしょうか?
これが不可能なら引き続き情報を待ちます。よろしくお願いします。

388 :名無し~3.EXE:2006/02/03(金) 21:45:10 ID:EHjBVkGj
レジストリ登録は検索のためだけだよねえ。
Path通すとかw

389 :383:2006/02/04(土) 09:23:14 ID:uzdOns+A
>>388
Path通すこと自体レジストリを使うのでNGですが
自機で試したところ、Path通してもダメでした。

390 :タスケテクン:2006/02/05(日) 00:27:04 ID:TQ5ur8kx
すまん。 BATなんだが、XPで
・ダブルクリックすると正しく実行できない
・CMD.EXEから呼べば正しく動く
・デスクトップに置くと正しく実行できない
という状況。正しく実行とは、1〜4までカウントすること。
正しく実行できないとは、実行するといきなりPAUSEで終わる。
おまいらの環境でどうよ!?

ーーーーーー怪BAT-------------------------
@ECHO OFF
GOTO _MAIN
1
2
3
4
5


:_MAIN
FOR /F "skip=2" %%I IN (%0) DO CALL :_TEST %%I
GOTO _END

:_TEST
IF %1==5 EXIT
ECHO %1

:_END
PAUSE
ーーーーーーーーーーーーーーーー-------------------

391 :名無し~3.EXE:2006/02/05(日) 00:31:13 ID:wqX987LJ
スルー

392 :タスケテクン:2006/02/05(日) 00:34:03 ID:TQ5ur8kx
スルー嫌。

393 :名無し~3.EXE:2006/02/05(日) 00:36:51 ID:1wU62Bpb
スレタイもう一度見て帰れ

394 :名無し~3.EXE:2006/02/05(日) 02:16:31 ID:N05JtUT+
みなそんなに毛嫌いしなくても…。確かにスレ違いだが。

>>390
ダブルクリックだと %0 がダブルクォーテーションで囲まれ、ファイル名
でなく文字列として扱われる。
かといって %~0 などとクォートをはずすと空白入りのパスでNGだから
usebackq を組み合わせて使う。
あとは FOR のヘルプ見て勉強。


395 :タスケテクン:2006/02/06(月) 22:59:39 ID:9FwmQsVW
>394
ありがとう

396 :タスケテクン:2006/02/06(月) 23:05:56 ID:9FwmQsVW
>394
%~fs で動作確認OKでした。感謝!

397 :名無し~3.EXE:2006/02/06(月) 23:13:59 ID:qB1uEA6K
ーと-が混ってるのが何とも

398 :名無し~3.EXE:2006/02/06(月) 23:33:31 ID:PAMxrxZu
日本人にありがちなこと

399 :名無し~3.EXE:2006/02/09(木) 23:59:06 ID:/4sGmEAj
"(ダブルクウォーテーション) を変数に文字列として格納したいんですけど、
特殊文字を特殊文字として扱わずに変数に格納する方法はありますか?
やりたいことは以下のような感じです。
---
dim objshell
dim work_day
dim exec_script

work_day = mid(date,3,2) & mid(date,6,2) & mid(date,9,2)
exec_script = "cmd.exe /c test.vbs" & work_day

set objshell = createobject("wscript.shell")

objshell.run(exec_script)

--
objshell.run で指定する流したいスクリプトを格納する際ダブルクウォーテーションがないとエラーになってしまいます。
しかし、ダブルクウォーテーションがどうしても格納できません。
>objshell.run("cmd.exe /c test.vbs 060209")
のようにすべて固定でダブルクウォーテーションをいれるとうまく処理は動きます。
初歩的な質問ですが、ググっても答えが出ませんでしたので、ご教授願いたいと思います。


400 :名無し~3.EXE:2006/02/10(金) 00:31:05 ID:C1LgYiKy
えすけーぷ

401 :名無し~3.EXE:2006/02/10(金) 00:33:07 ID:9XqNJ9mu
"cmd.exe /c test.vbs" & work_day
だとwork_dayが060210の場合に、
"cmd.exe /c test.vbs060210"
となるからエラーになんじゃない?
"cmd.exe /c test.vbs " & work_day
じゃだめ?

402 :名無し~3.EXE:2006/02/10(金) 01:19:06 ID:wdrUSV8+
cmd通す必要あるの?
普通cscript.exeじゃない?

403 :名無し~3.EXE:2006/02/10(金) 03:05:09 ID:ROwUzMOo
chr(&h22)

404 :名無し~3.EXE:2006/02/10(金) 13:47:07 ID:MDH5Vkas
"""

405 :345:2006/02/10(金) 18:52:00 ID:QMvupBI6
test.vbs をクリップボードに格納された文字列を処理するように作り変えるとか。

406 :名無し~3.EXE:2006/02/10(金) 19:19:12 ID:Vdp8+5z2
dim objshell
dim work_day
dim exec_script

work_day = mid(date,3,2) & mid(date,6,2) & mid(date,9,2)
exec_script = "cmd.exe /c test.vbs " & chr(34) & work_day & chr(34)

set objshell = createobject("wscript.shell")

objshell.run(exec_script)

407 :名無し~3.EXE:2006/02/10(金) 23:30:47 ID:hVCdqBjD
exec_script = "cmd.exe /c test.vbs """ & work_day & """"

でもいける。
文字列中の"" は " に展開されるから。
"を1文字だけ指定したいときは """" になる。なんかマヌケだ。

408 :名無し~3.EXE:2006/02/12(日) 02:56:46 ID:k/4DAaDb
sakura時計みたいにntpサーバに同期させる事をしたい

wshからcmd起動させて
net time /setsntp:ntpサーバ名
net stop w32time
net start w32time
とか試してみたけどあんまり関係ないコマンドだった・・・

409 :408:2006/02/12(日) 05:40:07 ID:k/4DAaDb
無理そうだったら諦めて
tcsntp.exe /silent

410 :399:2006/02/12(日) 09:40:21 ID:6O3LbXj4
解決しました。
一番手っ取り早いのが chr(&h22) でした。
各種回答助かりました。

>"""
わらた

>クリップボード
処理煩雑杉・・・

411 :名無し~3.EXE:2006/02/12(日) 11:16:18 ID:wqeN07wD
>>410

""" は普通なんだが・・・

412 :名無し~3.EXE:2006/02/12(日) 12:47:54 ID:pyDdYSAl
え?

413 :名無し~3.EXE:2006/02/12(日) 14:35:12 ID:r0XwcI1i
え?って言う

414 :名無し~3.EXE:2006/02/13(月) 22:37:54 ID:JU7i4tzw
え?って言う。と言う

415 :名無し~3.EXE:2006/02/15(水) 17:01:54 ID:X1ymxm6F


416 :名無し~3.EXE:2006/02/15(水) 19:22:03 ID:q+mlH9nM
eval(print("ほしゅ");function print(s){Wscript.Echo(s+"\r\n!");});

417 :名無し~3.EXE:2006/02/15(水) 19:36:26 ID:eI+m+v6G
>>416
行:1
文字:18
エラー:')' がありません。
コード:800A03EE
ソース: Microsoft JScript コンパイル エラー

418 :名無し~3.EXE:2006/02/15(水) 19:47:29 ID:uuweQD+M
>>416
なんでevalしてるのか意味不明

419 :名無し~3.EXE:2006/02/15(水) 20:33:49 ID:q+mlH9nM
>>417
実行したんかい!
eval の中は文字列じゃないといけないので恐らく
eval("print(\"ほしゅ\");function print(s){WScript.Echo(s+\"\r\n!\");}");

>>418
200字ぐらいのマジレスを書いたが長すぎるのでやめにして、「それが青春だからさ!」

420 :名無し~3.EXE:2006/02/15(水) 20:37:36 ID:CDGr6XX0
\r\nはそれぞれエスケープが必要だな。
そうじゃないと
WScript.Echo(s+"
");
なんてコードになる。

421 :名無し~3.EXE:2006/02/15(水) 20:52:37 ID:uuweQD+M
print("ほしゅ");function print(s){WScript.Echo(s+"\r\n!");}

422 :名無し~3.EXE:2006/02/17(金) 07:49:59 ID:Ori9oUZF
>>411
""""


423 :名無し~3.EXE:2006/02/17(金) 08:01:37 ID:ckpWcdTB
文字列の末尾に書く場合なら3つだが、(先頭に一つあるので)
これだけを書く場合だと4つ書かなくちゃダメだね。
404にはそういう説明も無いし。

424 :名無し~3.EXE:2006/02/17(金) 09:18:03 ID:w1h+hBmY
"""この表記はなんとかならんのか?"""

425 :名無し~3.EXE:2006/02/17(金) 09:25:53 ID:bV+mNU05
"\"そうは言っても一般化してるとはいえこの書き方も煩わしい\""

426 :名無し~3.EXE:2006/02/17(金) 21:06:00 ID:PJi5TguM
WScript.Echo('"JScriptならこう書いたり"、' + "'こう書いたりできる'。");

427 :名無し~3.EXE:2006/02/17(金) 21:45:14 ID:CQe6hEb6
ちょっと質問です。
JScriptにはVBのInputBoxみたいなのないんですか?
prompt()って、jsファイル直では使えないみたいなんですが?

428 :名無し~3.EXE:2006/02/17(金) 21:49:17 ID:zk/mN7sI
無いな。
wsfにして呼び出すとか。

429 :名無し~3.EXE:2006/02/17(金) 21:57:32 ID:CQe6hEb6
>>428
そうですか・・・。
ちなみにwsfって何?のレベルなんで、ちょっとググってきます。
最近wshの便利さを知ってハマッたばっかりなもんで。

430 :名無し~3.EXE:2006/02/17(金) 23:38:37 ID:cU6dEXQu
評価文字列が半角数値かどうかのチェックをする関数を作りたいと思ってます。
仕様はこんな感じで・・・

<input>
評価する文字列を指定

<return code>
引数値が空またはnullまたは未設定の場合     = -1
引数値が半角数字のみの場合                 =  0
引数値が半角数字と符号を含む場合           =  1
引数値が半角数字と小数点を含む場合         =  2
引数値が半角数字と符号と小数点を含む       =  3
引数値が半角数字と符号であるが符号位置誤り = 98
引数値が半角数字・符号以外を含む場合       = 99
これに、カンマ付き数値かどうかを判定する機能をつけたいんです。
もち、カンマの位置が正しいかどうかもチェックしまつ。

次レスでソースうpしますね。

431 :430:2006/02/17(金) 23:45:08 ID:cU6dEXQu
Public Function NumChk(sMoji)
    Const NUM_DEF                 = "0123456789"
    Const SIGN_DEF                = "+-"
    Const POINT_DEF               = "."
    Dim numCount   : numCount   = 0
    Dim signCount  : signCount  = 0
    Dim pointCount : pointCount = 0
    Dim i, sumCount, strLength
    strLength = Len(sMoji)
    If IsNull(sMoji) or IsEmpty(sMoji) or strLength = 0 Then
        NumChk = -1
        Exit Function
    End If
    If Not IsNumeric(sMoji) Then
        NumChk = 99
        Exit Function
    End If

(続く)

432 :430:2006/02/17(金) 23:47:54 ID:cU6dEXQu
(続き)
    For i = 1 To strLength
        If InStr(NUM_DEF, Mid(sMoji, i, 1)) > 0 Then
            ' 数値の数をカウントする
            numCount   = numCount + 1
        ElseIf InStr(SIGN_DEF, Mid(sMoji, i, 1)) > 0 Then
            ' 符号の数をカウントする
            signCount  = signCount + 1
        ElseIf InStr(POINT_DEF, Mid(sMoji, i, 1)) > 0 Then
            ' 小数点の数をカウントする
            pointCount = pointCount + 1
        End If
    Next
    sumCount = numCount + signCount + pointCount
    ' 数値、符号、小数点以外がある
    If sumCount <> strLength Then
        NumChk = 99
        Exit Function
    End If
(続く)

433 :430:2006/02/17(金) 23:49:38 ID:cU6dEXQu
(続き)
    ' 記号が複数ある
    If (signCount > 1) or (pointCount > 1) Then
        NumChk = 98
        Exit Function
    End If
    ' 符号の位置不正
    If (signCount > 0) and (InStr(SIGN_DEF, Mid(sMoji, 1, 1)) = 0) Then
        NumChk = 98
        Exit Function
    End If
    If (signCount > 0) and (pointCount > 0) Then
        NumChk = 3
    ElseIf signCount > 0 Then
        NumChk = 1
    ElseIf pointCount > 0 Then
        NumChk = 2
    Else
        NumChk = 0
    End If
End Function

434 :名無し~3.EXE:2006/02/17(金) 23:51:22 ID:PJi5TguM
正規表現使ったほうが簡単にできそう。

435 :430:2006/02/17(金) 23:51:38 ID:cU6dEXQu
長くなってスマソ

カンマの位置とか、うまいロジックが思い浮かばなくて困ってます。
誰かいい方法を教えてください。

436 :名無し~3.EXE:2006/02/18(土) 01:03:52 ID:yUn3XY4h
正規表現だと、

function numchk(n) {
var m = n.match(/^([+-])?\d{1,3}(?:(?:,\d{3})*|\d*)(\.\d+)?$/);
var r = -1;
if (m) {
r = 0;
if (m[1]) r |= 1;
if (m[2]) r |= 2;
}
return r;
}

こんな感じ。カンマ位置も見てる。
エラーの理由は面倒だなあ。

437 :430:2006/02/18(土) 01:37:06 ID:EkFtphQu
>>436
おおっ、なんかすっきりしてていいですね。
エラーの詳細まではわからなくても、エラーかどうかがわかればいいので、
これに引数が空かどうかの判定を加えれば十分です。
どうもありがとうございました。

438 :名無し~3.EXE:2006/02/18(土) 01:41:21 ID:qW5HmsRN
正規表現テラツヨス

439 :名無し~3.EXE:2006/02/18(土) 18:28:46 ID:y2dHl+KB
正規表現スレもどうぞ
正規表現 part2
http://pc8.2ch.net/test/read.cgi/tech/1131028296/l50

440 :名無し~3.EXE:2006/02/19(日) 22:17:12 ID:UuLhEDIH
>>429
地味に楽しい世界へようこそw

441 :名無し~3.EXE:2006/02/22(水) 17:55:56 ID:49elD2Pu
Msxml2.XMLHTTP→Adodb.Stream使ってHTMLを読み込んで
タグでやIDの子要素とか取得したいんですが
Microsoft.XMLDOM使ったDOMみたいな操作はできないんでしょうか?

442 :名無し~3.EXE:2006/02/22(水) 18:15:01 ID:2orvd70u
>>441
マターク意味がわからん
日本語で言ってくれ

443 :名無し~3.EXE:2006/02/22(水) 18:22:52 ID:mSm33lQd
>>441
documentfragmentを使うとか。

444 :名無し~3.EXE:2006/02/22(水) 18:33:15 ID:u1eFexIY
var idoc = new ActiveXObject("htmlfile");
idoc.write(html);
idoc.close();
WScript.Echo(idoc.all.length);

445 :名無し~3.EXE:2006/02/22(水) 18:43:12 ID:49elD2Pu
日本語おかしかったですね。
× タグでや
○ タグで

>>443-444
そんな構文合ったなんて知らなかった・・ちょっと調べてみます。
ありがとうございます!

446 :名無し~3.EXE:2006/02/22(水) 19:43:33 ID:+0Ol31Gk
構文ではないだろう

447 :名無し~3.EXE:2006/02/23(木) 22:18:58 ID:rX2JsHCV
VBSで既存のテキストファイルから
「最後の行から2番目の行だけ」を読み出したいのでが上手くいきません。
最後の行だけなら

Do Until objTS.AtEndOfLine
strLine =objTS.ReadLine
Loop

で読み出せたのですが、この先がどうしてもわかりません。
VBSでテキストファイルからn行目だけを読み出すことは可能でしょうか?
初歩的な質問で申し訳ないのですが、どなたかご解答願います。

448 :名無し~3.EXE:2006/02/23(木) 22:27:23 ID:S1NWr3I9
そんなに大きいファイルでないのなら、各行を配列に読み込んでおくとか。
//VBScript だと毎回ReDimする必要があるのか? ならScripting.Dictionaryの方がいいかも。
最後から、じゃなくて先頭から、なら必要な行までReadLineで空読みするだけなんだが。

449 :名無し~3.EXE:2006/02/23(木) 22:28:41 ID:P7swjMDc
strLine = objTS.ReadLine

Do Until objTS.AtEndOfLine
  LastLine = strLine
  strLine = objTS.ReadLine
Loop

LastLine ← 最後から二行目が保存されている

細かいところは適当だスマソ

450 :名無し~3.EXE:2006/02/23(木) 22:40:46 ID:TZMYQMM4
JScriptでnlinesを変えれば何行でも
...
var nlines = 2;
var line = new Array(nlines);
while (! tf.AtEndOfStream) {
    line.shift();
    line.push(tf.ReadLine());
}
while (line.length) {
    var t = line.shift();
    if (t)
        WScript.StdOut.WriteLine(t);
}
...

451 :名無し~3.EXE:2006/02/23(木) 23:12:05 ID:KuS/D1bA
>>449
1行目の strLine = objTS.ReadLine がコボラーっぽくね?

452 :名無し~3.EXE:2006/02/23(木) 23:15:33 ID:rX2JsHCV
>>448 さん>>449さん >>450さん
ご親切に回答ありがとうございます。

>>449さんの具体例を元に試してみたのですが、
やはり上手くいきませんでした。
もう少し自分なりに試行錯誤してみます。



453 :449:2006/02/23(木) 23:27:10 ID:P7swjMDc
>>452
動いたけど・・・

Set fso = CreateObject("Scripting.FileSystemObject")
Set objTS = fso.OpenTextFile("C:\\hogehoge.txt")

LastLine = ""
strLine = objTS.ReadLine

Do Until objTS.AtEndOfLine
  LastLine = strLine
  strLine = objTS.ReadLine
Loop

WScript.echo "LastLine = '" & LastLine & "'"

454 :名無し~3.EXE:2006/02/23(木) 23:40:11 ID:P7swjMDc
>>451
コボラーって cobol?
10年ぐらい前に仕事でちょっとやらされたけど
全然覚えてないッス・・・

455 :名無し~3.EXE:2006/02/23(木) 23:48:28 ID:PgWJNhuK
>>451の言いたいことがよく分からん。
とりあえず普通のハンガリー記法だと思うけど。

456 :名無し~3.EXE:2006/02/24(金) 00:23:11 ID:eZez2HzH
>>453
無事きちんと動きました。
本当にありがとうございます。

457 :名無し~3.EXE:2006/02/24(金) 15:32:24 ID:Kf0BeUgl
>>451
で?だからなに?


458 :名無し~3.EXE:2006/02/24(金) 17:03:32 ID:WHZ2ZN+b
COBOLer m9(^Д^)プギャー

459 :名無し~3.EXE:2006/02/28(火) 07:26:35 ID:Qcq45Rbh
質問です

DateLastModified の結果と date-15 など n 日前の結果を比べ、
より古ければ削除の処理をしたいのですが、
数値でなく日付の比較でノ処理は可能でしょうか?

こんな感じで、

OldDay = date-15
FileLastUpdate = objFile.DateLastModified
If FileLastUpdate > OldDay then
objFS.DeleteFile FileName

因みにこれでは出来ませんでした。





460 :名無し~3.EXE:2006/02/28(火) 08:16:20 ID:SbWJ5nYT
>>459
>数値でなく日付の比較でノ処理は可能でしょうか?
これが意味分からんが、例えば今日から15日前よりも古ければ削除、という処理なら
こんな感じでどうか

  // 比較対象日時を作成
  var today, OldDay;
  today = new Date();
  OldDay = new Date(today - 15 * 24 * 60 * 60 * 1000);  // 15日前(ミリ秒単位)

  // 最終更新日時を比較
  FileLastUpdate = objFile.DateLastModified
  If(FileLastUpdate > OldDay){
    // 比較対象日時より古いので削除処理
    objFS.DeleteFile FileName;
  }

461 :名無し~3.EXE:2006/02/28(火) 21:33:28 ID:6oU46L82
WSHで非アクティブウィンドウにキー入力を送ることって出来ますか?
出来なければ何を使えば出来るでしょうか?

462 :名無し~3.EXE:2006/02/28(火) 21:38:15 ID:hRwNVAVi
DynaCallとか使えば送ることはできる(AutoItXでもできるかな)
修飾キーは無理な気がするけど

463 :名無し~3.EXE:2006/02/28(火) 22:06:26 ID:6oU46L82
>>462
thx
調べてみます。

464 :名無し~3.EXE:2006/02/28(火) 22:07:50 ID:DfOsdb27
Set WshShell = CreateObject("WScript.Shell")
WshShell.AppActivate タイトルバーの文字列
でアクティブにしてからSendKey
ってことじゃないの?

465 :名無し~3.EXE:2006/02/28(火) 22:11:05 ID:6oU46L82
>>464
あぁすみません、あいまいでした。
非アクティブを維持したままってことです。

466 :名無し~3.EXE:2006/02/28(火) 22:53:06 ID:7+dX3SXD
それじゃあ
アクティブにしてSendKeyして別の窓をアクティブにする
ってのはアウアウか

467 :名無し~3.EXE:2006/03/03(金) 07:25:21 ID:GZffQiR7
非アクティブ維持のままキーを送る…方法があれば是非知りたいな。

ところで初心者にちょっと教えて欲しいのですが、MsgBox を出したまま
平行して別の処理(例えば SendKeys)を行う事は可能ですか?イメージは、
ある作業を行いつつ、作業の経過を MsgBox に表示し、かつ MsgBox の
ボタンを押すと作業を一時停止または終了させられるというものなですが。。

468 :名無し~3.EXE:2006/03/03(金) 09:26:53 ID:A0UbvjKM
> 非アクティブ維持のままキーを送る…方法があれば是非知りたいな。
(wshに)そういう機能は無いが、(COMなどを使えば)方法はある。

MsgBoxも然り。
組み込みの"MsgBox"をmodelessで呼び出す方法(引数など)は無いが、
modelessなダイアログなんていくらでも作りようがあるし、IEなどを使うって手もある。
wshではどう利用するかより何を利用するかだ。
用意されてる機能は限定的なものなので、「MsgBoxを」と変にMsgBox関数に拘らず、
やりたいこと(modelessなダイアログを表示)から、何を使うかを考えればいい。
ちなみに実際にやりたいことはプログレスバー+処理の中断だね。
まあ、COMの作り方に関して解らないことは、利用する言語のスレで聞こうな。
IEを使ったプログレスバーのサンプルとかもどっかにあったし。

469 :467:2006/03/03(金) 09:51:16 ID:GZffQiR7
>>468
非常に参考になります・・・。本当にありがとうございました!
実際にやりたい事はご指摘の通りです。勉強してきます!!

470 :名無し~3.EXE:2006/03/03(金) 21:43:42 ID:OzvvdOoG
>>467
HTAを使えばWSHでもできるよ。
HTMLが書けるなら、こっちの方が簡単だと思う。
スタイルシートのwidthの値をいじることで、擬似プログレスバーも作れるし。


471 :467:2006/03/04(土) 14:16:26 ID:60Ws1S/g
>>470
おお… html/css/perl はいつも使っているのでそこそこ書けます。
重要なキーワードを教えて頂き有難うございます!!早速調べます。

472 :名無し~3.EXE:2006/03/05(日) 10:11:55 ID:qEaOH4F6
現在 日付表記の形式が M/d/yyyy のシステムがあるのですが、
この形式から yyyy/mm/dd の値を取得したいのですが。
例)3月5日 → M/d/yyyy⇒3/5/2006 yyyy/mm/dd⇒2006/03/05
FormatDateTime では M/d が MM/dd になりませんでした。
If 〜 then で何十行かかけばできないことは無いのですがスマートにできる方法はないでしょうか?
外部プログラムの追加及びシステム変更は行えないシステムです。

473 :名無し~3.EXE:2006/03/05(日) 10:19:52 ID:g2SuFG/v
>>472
俺JavaScriptしか出来ねえ
str = "3/5/2006";
spl = str.split("/");
rs = spl.pop();
for(i=0;i<2;i++){
rs += "/";
if(Number(spl[i])<10){
rs += "0";
}
rs += spl[i];
}
//alert(rs);
WScript.Echo(rs);

474 :472:2006/03/05(日) 10:22:51 ID:qEaOH4F6
早いレス有難う、しかし自分 VBS しかできねぇ・・・
Split も試してみたんだが、駄目でした。

475 :名無し~3.EXE:2006/03/05(日) 10:56:42 ID:xzl8GKUL
駄目でしたってどう駄目だったかは書こうぜ。

Dim d
d = "1/23/2006"
Dim dates, ymd, i
dates = Split(d, "/")
For i = 0 To 1
  If Len(dates(i)) = 1 Then
    dates(i) = "0" & dates(i)
  End If
Next
ymd = dates(2) & "/" & dates(0) & "/" & dates(1)
WScript.Echo(ymd)

476 :473:2006/03/05(日) 10:59:16 ID:g2SuFG/v
ymdが「山田」に見えた俺は異常

477 :名無し~3.EXE:2006/03/05(日) 11:05:07 ID:31UrTos3
d = CDate("3/5/2006")
msgbox Year(d) & "/" & Right(Month(d)+100,2) & "/" & Right(Day(d)+100,2)

478 :名無し~3.EXE:2006/03/05(日) 11:11:28 ID:nbRYQamZ

MsgBox FormatDateTime("3/5/2006", 2)

FormatDateTime関数は「地域のプロパティ(地域のオプション)」に依存するが、
うちの環境では上記で2006/03/05が返ってくるよ。

479 :名無し~3.EXE:2006/03/05(日) 11:42:48 ID:qEaOH4F6
>475
>477
共に出来ました。あがとう御座いました。

CDate 関数は知りませんでした。勉強になります。


>478
>FormatDateTime関数は「地域のプロパティ(地域のオプション)」に依存するが、
これが一番の問題なんですね、今回は。

480 :名無し~3.EXE:2006/03/08(水) 12:19:23 ID:QDIkneZT
JScriptでDOMを扱おうと思いいきなりつまずきました。アドバイスお願いします
以下のスクリプトでhello.xmlが読み込めないようなのですが原因が分かりません。

var xmldoc = WScript.CreateObject("MSXML2.DOMDocument");
xmldoc.async = false;
rtn = xmldoc.load("hello.xml");
WScript.echo(rtn.xml);
WScript.Quit(0);

----------hello.xmlの中身---------
<?xml version="1.0" ?>
<document>
<hello>hello!</hello>
</document>
----------hello.xmlの中身---------

481 :名無し~3.EXE:2006/03/08(水) 12:32:40 ID:3mJNNlX3
WScript.echo(xmldoc.xml);

482 :名無し~3.EXE:2006/03/08(水) 12:46:23 ID:QDIkneZT
>>481
ありがとうございます・・・恥ずかしい・・・

483 :名無し~3.EXE:2006/03/09(木) 03:04:33 ID:dGxlAAxX
っておいおい
それでいいのかよ?

484 :名無し~3.EXE:2006/03/09(木) 18:03:38 ID:Qc7Gncbs
色々ググッたのですが分からないのでお聞きします

いま、あるツールで作成したデータをFDなとに
書き込んでいるのですが、書き込み終了を取得したいのです

windowsXPでメディアに書き込み中かどうか
取得する方法はないでしょうか?
ツール自体がいじれないので、wshで監視したいのです
wmiとかでできるでしょうか?
検索ワードでも良いので、ヒントをお願いします

485 :名無し~3.EXE:2006/03/09(木) 18:24:49 ID:JmsBD3t3
>>484
ツールはデータを書き込んだ後終了するの?

486 :484:2006/03/09(木) 18:42:10 ID:Qc7Gncbs
>>485
自分で作ったものではないので、
内部は何をしているかわからませんが、

データ作成→書き込み処理→返答待ち→最初に戻る

な流れです。
この返答待ち状態の時も書き込み続けているのですが
返答を返すと書き込みを中断し次の処理にはいってしまい
正常に書き込みができないのです。

まぁアクセスランプ眺めてろって言われたらそれまでなんですが

487 :名無し~3.EXE:2006/03/09(木) 18:59:03 ID:dGxlAAxX
var fso = WScript.CreateObject( "Scripting.FileSystemObject");
var fdd = fso.GetDrive("a:");

で一定間隔ごとにfdd.IsReadyを調べるってのはだめかね?



488 :名無し~3.EXE:2006/03/09(木) 19:10:49 ID:JmsBD3t3
書き込み処理 で書き込まれるファイルは一ファイルだけ?
ファイル名は固定?

489 :484:2006/03/09(木) 19:12:09 ID:Qc7Gncbs
>>487
やってみましたがダメでした
FDが挿入されていればtrueを返すみたいです


490 :484:2006/03/09(木) 19:24:03 ID:Qc7Gncbs
>>488
ファイル名は固定です
ただ、条件分岐(内部処理)で作られるファイル数は
固定ではありません
最高で30ぐらいかと思います

491 :名無し~3.EXE:2006/03/09(木) 20:24:58 ID:JmsBD3t3
一番最後に書き込まれるファイルが固定だったら
それを排他モードでオープンしてみてエラーだったら
まだ書き込み中、とか・・・
ツールが共有モードでオープンしてたらだめか

WMIで該当のプロセスがどのファイルをオープンしてるかって
分からないんだっけ?

492 :名無し~3.EXE:2006/03/09(木) 22:45:50 ID:8i8nChcs
レジストリを自動で削除するスクリプトを作りたいんだけど、アクセス拒否になってる項目が
削除できん
自動で許可に設定する事できんのかな

493 :名無し~3.EXE:2006/03/09(木) 22:55:51 ID:S8UR0VmX
何のためのアクセス拒否だ

494 :名無し~3.EXE:2006/03/10(金) 22:31:30 ID:D2skE9jT
>>492
管理者権限がないユーザーから消したいなら、runasコマンドの類を使って一時的に管理者として動かしてやるしかない。
もちろんIDとパスワードは必要。

アクセス権を変えるのが目的なら、WSHからはレジストリのアクセス権を変更できないみたいだから、
レジストリのアクセス権を変えるならリソースキットの中にあるツールを使うか何かしなきゃダメ。
フリーウェアで↓こんなのもある。結構使いやすい。
http://homepages.cae.wisc.edu/~micro/regperm/

ただしレジストリのアクセス権を変えるのにも、もちろん管理者権限が要るからね。

495 :名無し~3.EXE:2006/03/10(金) 22:45:08 ID:D2skE9jT
>>484
ちょっとトロくさい方法だけど、こんなのはどうか。

1. FDの空き容量を調べて、変数に入れておく
2. 少し時間を空けてループ。
3. 空き容量が減り始めたら、書き込みの開始とみなす。
4. 一定時間、空き容量が変わらなければ終了とみなす。

直接的じゃないけど、これでできないかな?

496 :名無し~3.EXE:2006/03/10(金) 23:20:42 ID:D2skE9jT
暇だったから書いてみた

Set objFso = CreateObject("Scripting.FileSystemObject")
Set WshShell = Wscript.CreateObject("Wscript.Shell")

Do Until MsgBox objFso.GetDrive("A:").IsReady
MsgBox "FD入れろやゴルァ!"
Loop

x = objFso.GetDrive("A:").FreeSpace

Set objExec = WshShell.Exec "ツールのパス"

Do While x = objFso.GetDrive("A:").FreeSpace
WScript.Sleep 500
Loop

y = objFso.GetDrive("A:").FreeSpace

Do Until y = objFso.GetDrive("A:").FreeSpace
WScript.Sleep 500
Loop

objExec.Terminate

MsgBox "おい終わったぞ"
WScript.Quit

ツールの速度にあわせてSleepの時間を調整すれば、使えなくはないと思う。

497 :名無し~3.EXE:2006/03/10(金) 23:22:29 ID:D2skE9jT
ごめん4行目に意味不明のMsgBoxが入ってる
我ながらワケカワラン
消しといて

498 :名無し~3.EXE:2006/03/10(金) 23:31:22 ID:wpK3Zj3n
FD入れろやゴルァ!

499 :名無し~3.EXE:2006/03/10(金) 23:41:26 ID:WTibj92w
FD入れろやゴルァ!


FD持ってなかったよヽ(`Д´)ノウワァァン!!
これもゆとり教育の弊害か・・・

500 :名無し~3.EXE:2006/03/11(土) 00:00:35 ID:D2skE9jT
ゆとり教育直前世代なのにカタカナまで間違ってる俺ってorz

501 :名無し~3.EXE:2006/03/11(土) 00:08:38 ID:83wn2DuW
おい終わったぞ

502 :名無し~3.EXE:2006/03/11(土) 00:10:24 ID:uM2Kl48e
>>501


503 :名無し~3.EXE:2006/03/11(土) 01:14:34 ID:5XPvRHrn
>>501


504 :名無し~3.EXE:2006/03/11(土) 01:18:58 ID:HkPKRHg1
("A:")

505 :名無し~3.EXE:2006/03/11(土) 01:21:36 ID:5XPvRHrn
あ、そうだ、俺も聞きたいことがあったんだ。
スクリプトセンターとかでたまにみる、ADSIってのがわからない。

ユーザーアカウントいじるのに使えるのはわかった。
スクリプトセンターのサンプルをいじって適当に使うことぐらいはできた。
でもそこから先がわからない。

ADSIについて、っていうかWinNT:なんとかかんとか、みたいな書式について、
何かいい参考書みたいなのないですかね。
少しぐらい高くてもいいので、俺みたいなアホでもわかるような本があれば嬉しいんだけど。
「この本はよかった」みたいな情報があれば教えてください。

506 :名無し~3.EXE:2006/03/11(土) 01:25:12 ID:5XPvRHrn
>>499
FD持ってなくてそのメッセージが出たら、ひたすらループ?

507 :名無し~3.EXE:2006/03/11(土) 01:52:48 ID:uM2Kl48e
>>506
ひたすらループ
プロセスを殺すしかない

508 :名無し~3.EXE:2006/03/11(土) 12:58:11 ID:vRHhFS6e
1時間ぐらいのタイムアウトを仕込んだら?

509 :名無し~3.EXE:2006/03/11(土) 13:13:55 ID:5XPvRHrn
勝手にループ10回までにしてみた

Set objFso = CreateObject("Scripting.FileSystemObject")
Set WshShell = Wscript.CreateObject("Wscript.Shell")
i=0
Do Until objFso.GetDrive("A:").IsReady
MsgBox "まことにお手数ではございますが、FDを挿入してはいただけないでしょうか"
i = i + 1
If i = 10 Then Exit Do End If
Loop
x = objFso.GetDrive("A:").FreeSpace
Set objExec = WshShell.Exec("ツールのパス")
i = 0
Do While x = objFso.GetDrive("A:").FreeSpace
WScript.Sleep 500
i = i + 1
If i = 10 Then Exit Do End If
Loop
i = 0
y = objFso.GetDrive("A:").FreeSpace
Do Until y = objFso.GetDrive("A:").FreeSpace
WScript.Sleep 500
i = i + 1
If i = 10 Then Exit Do End If
Loop
objExec.Terminate
MsgBox "大変お待たせして申し訳ございませんでした、作業完了いたしました"
WScript.Quit

510 :名無し~3.EXE:2006/03/11(土) 13:15:36 ID:5XPvRHrn
FD挿入でExit Doだと次でエラーになっちゃうか。
WScript.Quitにすればよかったかな。

511 :名無し~3.EXE:2006/03/11(土) 14:49:37 ID:avMFUYin
まことにお手数ではございますが、FDを挿入してはいただけないでしょうか

512 :名無し~3.EXE:2006/03/11(土) 14:53:20 ID:uM2Kl48e
だから持ってねーっつってんだろがよヽ(`Д´)ノウワァァン!!

513 :名無し~3.EXE:2006/03/11(土) 15:15:06 ID:9ck93slP
MsgBox "もうダメッ!ウンチ出るっ、ウンチ出ますうっ!ビッ、ブリュッ、ブリュブリュブリュゥゥーーッッ!"

514 :505:2006/03/13(月) 19:12:53 ID:3pfppWbE
ごめん、ふざけすぎた。

誰かADSIのいい本しらない?
MSDN検索してもよくわからないし、本屋で聞いたらADSLの本を案内されたよ。

515 :名無し~3.EXE:2006/03/13(月) 19:32:49 ID:Xjs9GJyq
本は知らんが、MSDN じゃ駄目なのか? なかなか充実してるようだが。
あとはこんなの。
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=39044e17-2490-487d-9a92-ce5dcd311228&DisplayLang=en

> MSDN検索してもよくわからないし、本屋で聞いたらADSLの本を案内されたよ。
本屋で聞くのは店員に酷だろw

516 :505:2006/03/13(月) 19:41:09 ID:3pfppWbE
>>515
ありがとう。
MSDNは2週間ぐらい前から彷徨ってるんだけど、基礎知識が足りないらしく理解できない。
でもActive Directoryを家に用意できるほどの金はないし、何の知識が足りないのか自分でもよくわからないんだ。

何か本があれば、そこから足りない知識を調べる手がかりが掴めるかもしれないと思った。
同じ理由で、ADSI Scriptomaticも色々操作してみたけどよくわからないんだ。
勉強する方向を見失っちゃって。

本屋で聞いたのは確かに失敗でした。w
丁寧にADSLの本の紹介をしてくれたので、断るのが申し訳なくて1冊買ってしまった。
イラネェ…

517 :名無し~3.EXE:2006/03/13(月) 20:26:02 ID:yv7syayA
日本人ってんは大変んだね

518 :505:2006/03/13(月) 23:30:00 ID:3pfppWbE
日本人っつうか、俺個人だけどね。
俺自身が技術系・・・とはいってもサービス業みたいな仕事してるもんだから、
サービスには対価を払うべきだと考えている。

519 :名無し~3.EXE:2006/03/14(火) 00:42:50 ID:HSioJ8Ao
ADSI の記事見たけどのっけからユーザー1000人追加するとか、
趣味用途には無縁ぽいな。管理者なの?

520 :484:2006/03/14(火) 01:24:29 ID:r5bTu56z
おぁっ一生懸命Win32_FloppyDriveとかWin32_FloppyControllerのプロパティを調べているうちにサンプルがっ

ID:D2skE9jTさん、ID:5XPvRHrnさんありがとうございます。
参考にして、自分仕様でHTA作ってみました。スレ違いぽいですけど貼っておきますね
HTAにしたらsleepが使えないので、コードがむちゃくちゃになった気がしまくりなんでご容赦を。

<html><head><title>test</title>
<script language="vbscript">
resizeTo 300,200
Dim fso,driA,TimeID
set fso=createobject("scripting.filesystemobject")
set driA=fso.getdrive("A:")
sub a
timerArea.innerText=now()
if Not chkval.innerText then
Window.ClearInterval(TimeID)
Capa.innerHtml="": timerArea.innerText=""
exit sub
end if
if Not driA.IsReady then
Capa.innerHtml=""
Info.innerHtml="<font color=#ff0000>入ってなくね?フロッピ-が。</font>"
exit sub
end if
if Capa.innerText="" then
Capa.innerHtml=driA.FreeSpace
Info.innerHtml=""
else



521 :名無し~3.EXE:2006/03/14(火) 01:26:03 ID:r5bTu56z
'>>520続き
if Capa.innerText <> cstr(driA.FreeSpace) then
Capa.innerHtml=driA.FreeSpace
Info.innerHtml="<font color=#0000ff>更新してるっぽくね?</font>"
elseif Info.innerText <> "" then
Info.innerHtml="<font color=#000000>処理終わったぽくね?</font>"
replay=msgbox("FD監視続けちゃう?",4)
if replay=7 then
Window.ClearInterval(TimeID)
msgbox "またのご利用をスタッフ一同"& vbNewLine & "心よりお待ち申し上げております"
set fso=nothing: set driA=nothing: Close
else
Info.innerHtml=""
end if
end if
end if
end sub
sub DownMouse
chkval.innerText=Not chkVal.innerText
if chkval.innerText then TimeID=window.setInterval("a",1000)
end sub
</Script>
<body onload="">
<input type="button" onMouseDown="DownMouse" value="chk">
<div>更新チェック:<span id="chkval">False</span></div>
<div>現在時刻:<span id="timerArea"></span></div>
<div>空き容量:<span id="Capa"></span>KB</div>
<div>更新情報:<span id="Info"></span></div>
<div>チェック速度:<span id="Speed">1秒</span></div>
</body></html>

522 :484:2006/03/14(火) 02:57:43 ID:r5bTu56z
なんどもすいません。。。

これでイケル思ったら、FreeSpaceはファイルがひとつの場合は
書き込み完了前に残量を返すので駄目でしたorz
複数ある場合はちょっとずつ渡すみたいで、イケルと勘違いしました。

500kのzipファイルで試したら、一瞬にしてFreeSpaceが残700とか返しやがるですよ。。。
もちろん書き込みは全然終わっていません。
なんで上のコードは全く役に立ちません(しかもKBじゃなくてbyteじゃん。。。)

ろくに検証もせずにコード書いてしまってスレ汚しすんません。
勉強して出直してきます(´・ω・`)



523 :505:2006/03/14(火) 20:33:58 ID:RSgpFfEu
>>519
管理者ではありません。
でもローカルのPCの情報取得にも使えるようですし…。

実際にやりたいのは任意のユーザーアカウントが存在するかどうかの確認なんですが、
WMIにやらせるとドメインに接続したPCで動かしたときに異常に遅いのが難点。
そこでADSIを使えば多少マシな動きをさせられるのではないかと考えたんです。


524 :505:2006/03/14(火) 20:44:46 ID:RSgpFfEu
>>484
でかいファイルができることもあるってことですか…
なんだか小さいファイルをたくさんっていうイメージがあったので、Sleepの値で調整できるかと思ってました。
お役に立てなくて申し訳ない。

525 :名無し~3.EXE:2006/03/15(水) 08:07:05 ID:9wKDqzPB
>>523
> 実際にやりたいのは任意のユーザーアカウントが存在するかどうかの確認なんですが、

これで良いのでは?
Performing a Search to Determine Whether a User Account Name Is in Use
http://www.microsoft.com/technet/scriptcenter/guide/sas_usr_seaa.mspx

ADSIについては漏れもちょっと前に調べて、これ買ったよ。結局よく読めてないけど、
良い本だとは思う。あなたの目的に合うかどうかはわからんけど。
ttp://www.amazon.co.jp/exec/obidos/ASIN/4894712881/qid=1142377238/sr=1-2/ref=sr_1_10_2/249-8937680-7728355

WinNT、LDAP、GC、どのプロパイダでバインドするかは、これから入っていく人にうまく
説明してる資料少ないんだよね…

526 :505:2006/03/15(水) 22:09:30 ID:VCd+QO3t
>>525

ありがとうございます!
TechNetの方は今のところ私のスマート&コンパクトな頭脳には理解できませんが、
ちょっとじっくり格闘してみようと思います。

ご紹介頂いた書籍は在庫なしなんですね…。
まずは古本漁りかな。


527 :名無し~3.EXE:2006/03/15(水) 22:45:21 ID:B17MTGHE
スマート?

528 :505:2006/03/16(木) 01:02:21 ID:l35lbKrC
〔時にけなして〕ずるい、なまいきな、思い上がった

529 :名無し~3.EXE:2006/03/16(木) 10:56:36 ID:BL2zGXxY
.vbcという拡張子をcscriptに関連付けただけじゃ動かないんですが
この拡張子をスクリプトエンジンに登録するにはどうすればいいでしょうか?

もし既にcscriptに関連付けられた拡張子があったら教えてください。
また、それがあったとしても登録方法も知りたいので
手順等がまとまっているサイトがあったら教えてください。

530 :名無し~3.EXE:2006/03/16(木) 11:01:52 ID:qI9a7tU6
フォルダオプションで該当拡張子の引数に //e:vbscript を追加する

531 :名無し~3.EXE:2006/03/16(木) 14:33:28 ID:BL2zGXxY
> //E:engine スクリプト実行時にエンジンを使用する
さくっとスルーしてました・・・orz
ありがとうございます。

532 :名無し~3.EXE:2006/03/16(木) 17:10:02 ID:g+im9cJD
ttp://anime.2ch.net/test/read.cgi/ranime/1136333069/

533 :名無し~3.EXE:2006/03/18(土) 08:32:36 ID:8VaHzgwO
昨日からvbsで使い始めたけど
手足を縛られた状態で泳ぐような変な面白さがあるなw

534 :名無し~3.EXE:2006/03/18(土) 12:44:40 ID:ntYq6MKi
UNIXのシェルスクリプトも変態だけどVBSもまた違った変態文法だよな。
Active PythonかRuby使うのが一番楽。

535 :名無し~3.EXE:2006/03/18(土) 13:26:58 ID:zm/J37yZ
JScript使えば

536 :名無し~3.EXE:2006/03/18(土) 16:48:29 ID:mOvaHJ8g
VBは読む気がしないのでサンプルとかがVBSで書かれていると参る
どうせならJScriptで書こうよ


537 :名無し~3.EXE:2006/03/18(土) 16:57:18 ID:5FcNa1Qp
やなこった。

538 :名無し~3.EXE:2006/03/18(土) 17:04:40 ID:/zv1iL+c
JScriptもウンコだろ

539 :名無し~3.EXE:2006/03/18(土) 17:10:13 ID:2S94/Pds
excelマクロから入った俺はJScriptが読めなくて困ってる。

540 :名無し~3.EXE:2006/03/18(土) 17:16:45 ID:zm/J37yZ
PerlScriptの拡張子 .plsがWinampに取られて困る

541 :名無し~3.EXE:2006/03/18(土) 17:47:56 ID:l1w1IFwY
awk と sed があれば十分

542 :名無し~3.EXE:2006/03/19(日) 00:19:35 ID:SAdYKeXB
>>540
iTunesとかな。
ってかPealScriptはマルチバイト文字があるとエラーになるから使いものにならない

543 :名無し~3.EXE:2006/03/19(日) 00:20:24 ID:SAdYKeXB
ピールになっちまった

544 :名無し~3.EXE:2006/03/21(火) 13:00:15 ID:8KpM4NTp
VisualStudio2005面白い
無料で遊んでたけど、結局買ってしまった

>>542
Peal?

545 :名無し~3.EXE:2006/03/21(火) 17:16:06 ID:OL8p/2AW
JapanScript は、WORD やEXCELなどのコンポーネントを使おうとすると日本語で書かれた史料がないのでつらいな。

546 :名無し~3.EXE:2006/03/21(火) 19:16:34 ID:IAlZVqlX
そうだな

547 :名無し~3.EXE:2006/03/21(火) 21:18:33 ID:GH59CSwF
つ……つられないぞ

548 :533:2006/03/22(水) 06:56:36 ID:ltWAvhie
vbsでCOMをいじるとき複数の返り値はどうやってうけとるんでしょうか?
もしかして出来ない?
typelibはこうなってるんだけど
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Execute2(
/* [in] */ int flags,
/* [in] */ int codePage,
/* [in] */ BSTR command,
/* [out] */ int __RPC_FAR *pErrorCode,
/* [out] */ BSTR __RPC_FAR *errorMsg,
/* [out] */ BSTR __RPC_FAR *history,
/* [out] */ BSTR __RPC_FAR *results) = 0;
Obj.Execute2(0, 0, "command", 0, 0, 0, 0) は動いてるけど
後の4つの0を変数に置き換えると実行時に型が違うとおこられてしまった
swapとかの例題でbyrefの使い方はいくつか見たんだけどどうもわからない

549 :名無し~3.EXE:2006/03/22(水) 07:17:42 ID:hmpnt/68
"戻り値"は必ず一つ。
それ以上の値を受け取りたい時は、複数のメンバを持つオブジェクトを返すとか
変数を参照渡しで渡して、それを書き換えさせるとかの方法があるけど、それは後者の方だね。
ただ、VBSには宣言時の変数型が無いから、VBSから使うことを考慮されていないCOMだと
VBSからは使えない可能性もある。参照渡しの場合に渡す変数型は、全く同じ型か言語仕様として
互換性のある型じゃないとダメだからね。値渡しなら仕様として非互換でも内容に互換性があれば渡せるけど。
まあ、自分でVBSから使えるようにCOM作るのが手っ取り早いよ。

550 :533:2006/03/22(水) 07:27:54 ID:ltWAvhie
ありがとう、やっぱりそうか

起動はwshじゃなくちゃならない + 既製品のCOMを使う、っていう状況なので
VBとかC#でラップするよ

551 :名無し~3.EXE:2006/03/22(水) 18:48:45 ID:lnnr1epD
WSH(・∀・)スレッド!
http://pc8.2ch.net/test/read.cgi/tech/1055075469/

どっちがメイン?

552 :名無し~3.EXE:2006/03/22(水) 23:09:47 ID:Ob9urYOA
どっちの雰囲気が好きかって事で。
個人的にはム板でスクリプトの質問(雑談ならまあいい)はダサいと思う

553 :名無し~3.EXE:2006/03/22(水) 23:24:21 ID:lnnr1epD
どっちも成立してるのか
ならこっちでいいや。

554 :名無し~3.EXE:2006/03/23(木) 21:33:55 ID:EPsuLSSz
NICデバイスの有効/無効をバッチファイルかcscriptからやりたい。
WMIで調べてたんだけどできないとMSに書いてあった。
IoSetDeviceInterfaceState() を使うしかなさそうなんだけど、
cscriptってperlみたいにCのヘッダ食ったり、API呼び出したりできるの?

あと、使用できるCOMコンポーネントってどうやって調べたらいいの?
MSDNみても一覧とかないし、そもそも調べ方がわかんないんだけど。

555 :名無し~3.EXE:2006/03/23(木) 22:14:43 ID:3Wll5fXo
>>554
> cscriptってperlみたいにCのヘッダ食ったり、API呼び出したりできるの?
API 呼び出すなら >>1-10のどっかにある COM 使う
がしかし、ActivePerl 入れてるのなら PerlScript 使うのが楽かも

> あと、使用できるCOMコンポーネントってどうやって調べたらいいの?
> MSDNみても一覧とかないし、そもそも調べ方がわかんないんだけど。
これも >>1-10 に紹介がある

556 :名無し~3.EXE:2006/03/23(木) 23:57:43 ID:sTuO/Bwq
>>141

557 :名無し~3.EXE:2006/03/24(金) 14:05:21 ID:E7xRdLnR
指定したファイルまたはフォルダを削除するスクリプトを教えていただけませんか。
WSHの知識はほとんどないため、当初コマンドラインで挑戦しましたが
ファイルとフォルダを判別する方法がわからず断念しました。
またファイラから呼び出したいので複数指定したいです。

558 :名無し~3.EXE:2006/03/24(金) 14:31:53 ID:DSMiO4X3
残念ながらここはスクリプトを書いてもらうスレじゃないんだ。
理解する気があるなら助言はするけど。

559 :名無し~3.EXE:2006/03/24(金) 18:12:56 ID:AIsw2LHu
@echooff
rmdir *.*

560 :名無し~3.EXE:2006/03/24(金) 18:35:36 ID:YAmr/BIE
複数指定・・・WScript.Arguments
ファイルオブジェクトを取得・・・FileSystemObject.GetFile()
フォルダオブジェクトを取得・・・FileSystemObject.GetFolder()
ファイル又はフォルダを削除・・・FileSystemObject.Delete()

これぐらいでいけるかな

561 :名無し~3.EXE:2006/03/24(金) 22:22:39 ID:QJhNhdCP

Set oMsg = CreateObject("CDO.Message")
oMsg.From = "xxxx@soushin.com"
oMsg.To = "xxxx@jushin.com"
oMsg.Subject = "Test "
oMsg.TextBody = "テストメッセージです" & vbCrLf & Now
oMsg.AddAttachment("C:\cmd\xxxx.txt")
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"XXX.XXX.XXX.XXX"
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oMsg.Configuration.Fields.Update
oMsg.Send
---
としているのですが,
添付ではなく「本文」に,
C:\cmd\xxxx1.txt
C:\cmd\xxxx2.txt
と複数展開したい場合どのようにすればよいですか?

562 :名無し~3.EXE:2006/03/24(金) 22:44:50 ID:YAmr/BIE
>>561
oMsg.TextBody = "C:\cmd\xxxx1.txt" & vbCrLf & _
           "C:\cmd\xxxx2.txt" & vbCrLf & _
                ・・・・・・
じゃね?

563 :名無し~3.EXE:2006/03/24(金) 22:53:58 ID:QJhNhdCP
ありがとうございます。あと初心者的な質問すみません。

これをmail.vbsとして
mail.vbs "C:\cmd\xxxx1.txt" "C:\cmd\xxxx2.txt" ......
と複数したい場合,どのように引数定義したらよいでしょうか?

564 :名無し~3.EXE:2006/03/24(金) 23:01:24 ID:qhwCTP1D
vbs ファイルに引数定義もなかろ。
引数は WScript.Arguments で配列と同様に扱える。

565 :名無し~3.EXE:2006/03/24(金) 23:03:37 ID:QJhNhdCP
???

具体的にどのように定義すればよいですか?>>564

566 :名無し~3.EXE:2006/03/24(金) 23:09:28 ID:qhwCTP1D
いや、だから定義することなんか何もないって。
スクリプトは WScript.Arguments を利用するだけ。
ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wsproarguments.asp
ループの作り方から聞いてるんじゃあるまいな。

567 :名無し~3.EXE:2006/03/25(土) 00:35:19 ID:k/Pk7RKA
>>565

コマンドスイッチはWScript.Argumentsの中に配列と同じような形で入ってる
1つ目ならWScript.Arguments(0)
2つ目ならWScript.Arguments(1)

数を数えたいならWScript.Arguments.Count
ひとつずつ取り出したいならFor Eachで文字列値として取り出せる


568 :557:2006/03/25(土) 01:18:17 ID:Bj2eKhQF
>>558
そうですね、挑戦してみます。
>>559
それだと引数にフォルダしか指定できませんので。
>>560
はい、それらの情報はウェブサイトから見つけたのですが、
使い方がわからなかったのでその時は断念しました。

Set arg = WScript.Arguments
Set fso = CreateObject("Scripting.FileSystemObject")
Set src = fso.GetFolder(arg)

For Each FileName In src.Files
WScript.Echo FileName
Next

For Each FolderName In src.Subfolders
WScript.Echo FolderName
Next

こんな風にして引数指定したファイルまたはフォルダを列記するスクリプトを書いてみましたが
早速3行目でエラーが出てしまいます。また、
Set src = FileSystemObject.GetFolder(arg)
も受け付けてもらえません。

569 :名無し~3.EXE:2006/03/25(土) 01:23:21 ID:k/Pk7RKA
>>568
GetFolderにはフォルダのパスの文字列を渡してやらなくちゃいかん。
しかるにWScript.Argumentsはコマンドスイッチが0個以上入ったオブジェクトだ。
オブジェクトの中から文字列を取り出して渡してやらなくては意味がない。

570 :名無し~3.EXE:2006/03/25(土) 01:23:27 ID:QFWNWU+d
エラーの内容を書かないと意味無いぜ。

すぐ上にも出てるが、WScript.Arguments は配列的なものだ。
FileSystemObject の GetFolder が引数に要求するのは文字列なので、型が合っていない。

571 :557:2006/03/25(土) 01:26:34 ID:Bj2eKhQF
>>569,570
助言ありがとうございます。
なるほど、少しわかってきました。
また挑戦して戻ってきます。

572 :名無し~3.EXE:2006/03/25(土) 01:27:05 ID:C6evlAp3
>>568
ちょっとだけ直せば動くよ
arg を舐めるfor文を入れてみれ

573 :名無し~3.EXE:2006/03/25(土) 01:32:32 ID:c+2zG/Hm
Explorerのすべてのファイルを表示すると隠しファイルを表示しないを一発で切り替えるスクリプトってどうやって書けばいいですか?

574 :名無し~3.EXE:2006/03/25(土) 01:36:32 ID:k/Pk7RKA
ファイル・フォルダ混じりで複数指定だと、
ファイルとフォルダの判別もしてやらなきゃいけないな。

Shell.Applicationで判別してFileSystemObjectで消すのが綺麗かな。

575 :名無し~3.EXE:2006/03/25(土) 01:38:49 ID:k/Pk7RKA
>>573
普通にはできない。
再起動が入っていいならレジストリ操作でできる。
再起動なしなら不確実だがSendKeysで操作してやるしかないだろうね。

576 :557:2006/03/25(土) 11:11:33 ID:UhIsyIYx
>>572
引数を順に表示させようと思ってやってみましたが、うまくいきません。

Set arg = WScript.Arguments
For EachObj in arg
Wscript.Echo EachObj
Next

仕事の前後で調べながらやっているのですが、なかなか難しいですね。。。

577 :557:2006/03/25(土) 11:13:04 ID:UhIsyIYx
>>574
はい、私もそう思っています。
ただShell.Applicationのところにたどり着くのにまだだいぶかかりそうです。

578 :名無し~3.EXE:2006/03/25(土) 11:24:14 ID:k/Pk7RKA
>>576

Set arg = WScript.Arguments
For Each str in arg
Wscript.Echo str
Next

だな。
strの中に一つずつ文字列が取り出される。
だから、strはオブジェクトじゃないぞ。

579 :名無し~3.EXE:2006/03/25(土) 11:24:28 ID:C6evlAp3
>>576
>>566に引数を表示するサンプルあるジャン

580 :名無し~3.EXE:2006/03/25(土) 11:29:03 ID:k/Pk7RKA
それからShell.Applicationを使わなくてもFileSystemObjectで判別はできる。

objFs.FolderExists("パス文字列")
がTrueならフォルダ、Falseならフォルダ以外か存在しない。
objFs.FileExists("パス文字列")
がTrueならファイル、Falseならファイル以外か存在しない。

だからこれをifでつないでやれば、フォルダの場合・ファイルの場合・パスが存在しない場合に分けることができる。
そこまでできれば消すのは簡単だね。

581 :557:2006/03/25(土) 11:53:00 ID:UhIsyIYx
Set arg = WScript.Arguments
Set fso = CreateObject("Scripting.FileSystemObject")
For Each str in arg
if fso.FolderExists(str) then
set del = fso.GetFolder(str)
Wscript.Echo "folder:" + del
elseif fso.FileExists(str) then
set del = fso.GetFile(str)
Wscript.Echo "file:" + del
end if
Next

ここまで出来ました。
引数がファイルかフォルダかを判別するところまで来ました。
Wscript.Echo...の代わりにfso.delete(del)としましたがうまく働きません。
もう少しがんばってみます。

582 :557:2006/03/25(土) 11:55:45 ID:UhIsyIYx
Set arg = WScript.Arguments
Set fso = CreateObject("Scripting.FileSystemObject")
For Each str in arg
if fso.FolderExists(str) then
set del = fso.GetFolder(str)
del.delete
elseif fso.FileExists(str) then
set del = fso.GetFile(str)
del.delete
end if
Next

まだ野暮ったいですが、なんとなく出来てきました。
皆さんのおかげです。もう少しがんばってみます。

583 :名無し~3.EXE:2006/03/25(土) 12:03:13 ID:k/Pk7RKA
ここまでできればもう教えてあげても勉強の邪魔にはならんだろう。

Set objFso = CreateObject("Scripting.FileSystemObject")

If Not WScript.Arguments.Count = 0 Then
    For Each strArgument In WScript.Arguments
        If objFso.FolderExists(strArgument) Then
            objFso.DeleteFolder strArgument
        ElseIf objFso.FileExists(strArgument) Then
            objFso.DeleteFile strArgument
        Else
            WScript.Echo "無効な引数です"
        End If
    Next
Else
    WScript.Echo "引数がありません"
End If

俺ならこう書く。

584 :557:2006/03/25(土) 12:19:09 ID:UhIsyIYx
>>583
先生、皆さん、ありがとうございました。
昨日までWSHの知識は全くありませんでしたが(ほぼ一文字も理解できなかった)、
おかげさまでほぼ目的の動作が出来るようになりました。
またWSH(VBScript?)の仕組みが少しわかりました。

後は削除確認のダイアログボックスを出す処理をつけたいですが、
これは必須でないので少し自分で調べてみます。
また行き詰ったら助言をいただければ幸いです。

本当にありがとうございました。

585 :557:2006/03/25(土) 14:10:23 ID:UhIsyIYx
>>1に完成品を投稿するようあったので、出してみます。
私の場合、スクリプトの引数としてファイラからファイルもしくはフォルダが必ず渡されるので
引数なし、引数無効のエラー処理は省かせていただきました。

Set fso = CreateObject("Scripting.FileSystemObject")
Set arg = WScript.Arguments
num = arg.Count
If num = 1 Then msg = "this object"
If num > 1 Then msg = "these " & num & " objects"
If MsgBox("Delete " & msg & "?", 259, "Delete") = 6 Then
For Each str In arg
If fso.FolderExists(str) Then fso.DeleteFolder str
If fso.FileExists(str) Then fso.DeleteFile str
Next
End If

改善点があればまたご指導ください。

586 :名無し~3.EXE:2006/03/25(土) 14:36:30 ID:kuZMN6OL
>>585
ハードコーディングやめれ

587 :557:2006/03/25(土) 14:57:43 ID:UhIsyIYx
>>586
ハードコーディングを知らなかったので検索しました。
msgboxの259のことですね、すいません。
これはvbYesNoCancel + vbDefaultButton2、だったのですが、
これだとエディタで改行して見にくかったので数値にしてしまいました。
確かにわかりにくいですね、以後気をつけます。

588 :557:2006/03/25(土) 15:00:29 ID:UhIsyIYx
If MsgBox("Delete " & msg & "?", vbYesNoCancel + vbDefaultButton3, "Delete") = vbYes Then
でした。

589 :名無し~3.EXE:2006/03/25(土) 15:25:48 ID:7YMPeyeW
>>557さん
蛇足だけど、ソースが横に長くなるのが嫌なら
改行の前に"_"をつければソースを改行できるよ。
例えば、>>588の部分だったら↓こんな感じで。

If MsgBox("Delete " & msg & "?", _
vbYesNoCancel + vbDefaultButton3, _
"Delete") = vbYes Then

590 :557:2006/03/25(土) 15:39:40 ID:UhIsyIYx
>>589 ありがとうございます。全く知りませんでした。。。

ところで、引数をたくさん指定しますと以下のようなエラーが出ます。

Windows cannot access the specified device, path, or file.
You may not have the appropriate permissions to access the item.

もしかすると処理できる引数(あるいはその文字列長)に限界があるのかもと思っていますが、
本当のところはどうなんでしょうか。
今日は出っぱなしで申し訳ありません。

591 :名無し~3.EXE:2006/03/25(土) 15:50:33 ID:E1rxo3CY
スペースがパスに含まれてるのに""でくくってないんじゃない?
ってそれはないか。
そのファイルがある場所って普通のフォルダ?

592 :557:2006/03/25(土) 16:14:43 ID:UhIsyIYx
>>591
ロングファイルネームをダブルクォーテーションで囲った場合も
8.3形式ファイル名で指定した場合も、大量に指定するとどちらもエラーが出ます。
フォルダは通常のフォルダです。
今はD:\aというフォルダに大量のファイルを入れて削除を試みましたが、
90個くらい指定すると先ほどのエラーが出てきます。

ファイラ側は引数を渡せているはずで、というのも同じ量のファイルに対し
FFCというコピーツールは正常に作動しているからです。

593 :名無し~3.EXE:2006/03/25(土) 16:51:19 ID:ZAGRYrni
引数の数と引数の長さの両方に制約があったはず。

594 :名無し~3.EXE:2006/03/25(土) 16:56:55 ID:Pb7zZW1W
>>592
wshの一部として使ったことがないからどう扱うのかよくわからないが
>>585をtest.vbsで適当な所に保存してファイルを適当にDDしたら
「実行できません。引数一覧が長すぎます。」のダイアログでるから
[引数の長さの合計]+[引数の個数(null)]が1024位までの限界があるのでは

595 :名無し~3.EXE:2006/03/25(土) 19:42:16 ID:3bhj02O0
http://msdn.microsoft.com/library/ja/script56/html/wsDragAndDrop.asp?frame=true
これかな?

596 :名無し~3.EXE:2006/03/25(土) 20:14:07 ID:k/Pk7RKA
>>592
実験方法も正しいし、結論も正しい。
引数が長すぎるとエラーになる。

これはWindowsの持つ欠点の一つだね。
スクリプトじゃな普通のアプリケーションでもエラーになる。
これはどうしようもない。

だからWindowsで沢山のファイルをドロップするようなソフトは、
アイコンにドロップではなくウィンドウにドロップするように作られる。
他のOSから見ると奇妙に見えるけど、仕方ない。

コマンド自体を受け取りきれないので、スクリプトの書き方で回避はできない。
コマンドスイッチの書き方も含めて短くなるよう工夫(カレントディレクトリを活用するなど)するか、
フォルダの中を検索させて条件にあったものを探すなどさせるか、
スイッチ部分をテキストに書き出しておいて読み込ませるか…などといった回避方法があるね。

597 :557:2006/03/25(土) 23:41:37 ID:muSr8OSZ
>>593-596
ありがとうございました。
次は回避方法を考えないといけないですね。。。
確かにスクリプト実行前のエラーのようなのでスクリプト側では対処できないようです。
しかしWSHとFFC(コピーツール)で引数制限に違いがあるのも不思議です。

598 :名無し~3.EXE:2006/03/26(日) 00:27:49 ID:zAKFTMBl
FFCってMS純正品?

599 :名無し~3.EXE:2006/03/26(日) 00:39:53 ID:KiUd7v++
>>597
FFCを知らないんで外してるかもしれないけど、
スクリプトに引数を与えるって事は、実際は

wscript.exe スクリプト名 コマンドスイッチ

という形になるはずなので、wscript.exeの分だけ文字数が違ってるのかもしれないね。

600 :名無し~3.EXE:2006/03/26(日) 04:54:27 ID:Ge1wKjPA
FFC ってこれかな

Fire File Copy
ttp://www.k3.dion.ne.jp/~kitt/pc/sw/ffc/index.html

601 :557:2006/03/26(日) 05:05:02 ID:S8QYjY1T
>>600
はい、それです。

602 :名無し~3.EXE:2006/03/26(日) 22:29:24 ID:0Qul3ith
本文に添付を展開したいのですが。。>>562
それだと,"C:\cmd\xxxx1.txt"の文字が入るだけです。
CDO.Messageで添付を展開するのは無理なんですかね?

603 :名無し~3.EXE:2006/03/26(日) 22:35:24 ID:LbFgDs8v
FileSystemObject 使って読み出せばいいだろ。

604 :名無し~3.EXE:2006/03/27(月) 00:40:14 ID:ajs2HCZl
>>602
馬鹿なこと言っちゃいけない
本文にどんな文字を書くか指定する命令で、いちいちファイルの中が表示されてたら
本文にパスを書きたいときはどうすりゃいいんだよ

ちゃんとファイルの中を読む命令を作ってやって、その中身を渡さなきゃダメだ
根本的に考え方がおかしい

605 :名無し~3.EXE:2006/03/27(月) 01:30:53 ID:td0qz9EG
質問です
いま、あるHTMLから正規表現で<body>〜</body>の間を抜くパターンを
regEx.Pattern = "\<BODY(.*\n)*.*\</BODY\>"
としているのですが、間にあるscriptタグが邪魔なので除外したいのですが
パターンの定義が色々試したのですが分かりません。

今は泥臭いですが、最初にscriptタグの範囲を取得してreplaceで置き換え
その後にbodyを取得しています

一発で、scriptタグを除外しつつbodyタグを抜く正規表現のパターンは
どうしたら良いのでしょうか?

606 :名無し~3.EXE:2006/03/27(月) 01:43:40 ID:F1EbK5tT
素直に二段階でやっとけ。正規表現こねくり回すよりよほど応用が利く。

607 :名無し~3.EXE:2006/03/27(月) 02:20:55 ID:NF0FVdvl
proxスレかと思t

608 :605:2006/03/27(月) 02:47:35 ID:U9eV57vQ
>>606
了解です

因みに勉強の為に、気が向いたら
上記のような場合の時のパターンを教えていただけると助かります

>>606
proxをググッたんですが良くわかりませんでした
調べると幸せになれますか?
とりあえずこんなんでましたけど・・・
ttp://72.14.203.104/search?q=cache:QR7VCjqS_OsJ:www6.plala.or.jp/kenz/flash/prox-wcup.html+prox&hl=ja&gl=jp&ct=clnk&cd=7&lr=lang_ja

609 :名無し~3.EXE:2006/03/27(月) 03:11:10 ID:NF0FVdvl
>>608
まるでproxomitronっていうローカルプロキシソフトのフィルタの話みたいだな
っていう独り言だから気にしないでいいけど、詳しくはこちらへどうぞ

Proxomitron Part26
http://pc8.2ch.net/test/read.cgi/win/1130549011/

610 :名無し~3.EXE:2006/03/27(月) 09:47:05 ID:EyFFFSmz
確かにそうですね>>604


Set oTs1 = Fs.OpenTextFile(WScript.Arguments(0),ForReading)
としてみたのですが,
エラーとなりました。
こういうことは出来ないのでしょうか?

611 :名無し~3.EXE:2006/03/27(月) 10:07:45 ID:BOowG7oP
何度も言ってるような気がするが、

エラーの内容を書け。

612 :名無し~3.EXE:2006/03/27(月) 10:13:51 ID:EyFFFSmz
プロシージャの呼び出し,または引数が不正です。
です。

613 :名無し~3.EXE:2006/03/27(月) 10:28:03 ID:EyFFFSmz
済みません。解決しました。m(__)m

614 :名無し~3.EXE:2006/03/27(月) 10:50:26 ID:/NXBZzTO
どうやって解決したのか書かないの

615 :名無し~3.EXE:2006/03/28(火) 00:24:16 ID:j1CS4EWQ
自分のファイルパスを取得したいのですが。マルチですが

616 :名無し~3.EXE:2006/03/28(火) 00:59:29 ID:IBYEE/3Z
>>615
http://download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/JA/scd56jp.exe

617 :名無し~3.EXE:2006/03/28(火) 03:17:20 ID:209eAzmT
>>615
http://wscript.name/index.php?%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%CB%DC%C2%CE%A4%CE%A5%D1%A5%B9%A4%F2%C4%B4%A4%D9%A4%EB

618 :名無し~3.EXE:2006/03/28(火) 11:13:36 ID:MOZlBCjA
こういう感じの単純なソフト操作をスクリプトにしてD&Dで
一括処理させようと思ってるんですが、D&D処理の仕方を
教えていただけませんでしょうか?


<job id="IncludeExample">
<script language="JScript">
var WShell = WScript.CreateObject("WScript.Shell");
var file = WScript.Arguments.Unnamed.Item(0);
var oExec = WShell.Exec("ソフトウェア");//ソフトウェアを起動
var oExec = WShell.Exec( "ソフトウェア" + " \"" + file + "\"" );
while(oExec.Status == 0)
WScript.Sleep(100); //読み込み待機
WShell.Sendkeys("^E");//キーを送る
WScript.Sleep(1000);
WShell.Sendkeys("{ENTER}");//キーを送る
WScript.Sleep(9000); //処理待機
WShell.AppActivate("ソフトウェア" + " \"" + file + "\"");
WShell.Sendkeys("%F+X");//キーを送る
</script>
</job>

619 :名無し~3.EXE:2006/03/28(火) 13:10:29 ID:OpCFTPaY
>>618
var file = WScript.Arguments.Item(0);

620 :名無し~3.EXE:2006/03/28(火) 13:11:43 ID:OpCFTPaY
ごめん寝ぼけてた
スルーして

621 :618:2006/03/28(火) 14:37:33 ID:MOZlBCjA
いえいえ。お気になさらず助言いただければ幸いです。
ソフトウェアを起動して、”Alt+X"で終了させるところまで1括りにしたいんです。
それを、D&Dしたファイル全部に対して同じ処理を施すといような形です。

スクリプトもプログラムも理解しきれてないのですが、
サンプルを組み合わせてここまで形にしたのですが・・・。

教えてくださる方がいらっしゃいましたら、引き続きお願いいたします。

622 :名無し~3.EXE:2006/03/28(火) 14:40:01 ID:4DEvj0j0
>>621
>>566

623 :名無し~3.EXE:2006/03/28(火) 15:36:57 ID:yEGw/J61
ttp://download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/JA/scd56jp.exe
これおとしてエディタからF1とかで引けるようにしておくと便利だよ

624 :名無し~3.EXE:2006/03/28(火) 18:57:57 ID:209eAzmT
JScriptわからん
For Eachは使えるんかな
ちょっとリファレンス読んでくる

625 :名無し~3.EXE:2006/03/28(火) 19:01:16 ID:4DEvj0j0
for...in だが、まあまともには使えないな
配列に対してくらいか。コレクションオブジェクトには使えない
ほとんどのオブジェクトに対して、そのプロパティを列挙するって働きになる

626 :名無し~3.EXE:2006/03/28(火) 20:35:12 ID:209eAzmT
ん、今リファレンス読んで、どーも使いにくいなと思ってたとこ。
場合によってはVBScriptの方が強力なこともあるんだね。

JScriptはコンパイルできるのが強いけど、
コンパイルしたいだけならVB.NETで書いてもいいもんね。
VBScriptをやってたおかげかどうか、VB.NETも今のとこ順調に勉強が進んでるよ。

↓これおもしろいな。
http://www.microsoft.com/japan/msdn/vstudio/express/vbasic/

627 :名無し~3.EXE:2006/03/28(火) 20:39:39 ID:aancQ8Kb
Set oTs1 = Fs.OpenTextFile(WScript.Arguments(0))
で解決しました。 >>614

628 :名無し~3.EXE:2006/03/28(火) 20:44:12 ID:h8E+faqA
ただ単に定数をそのまま記述していたってヲチですか

629 :名無し~3.EXE:2006/03/28(火) 21:06:09 ID:209eAzmT
まぁ初心者はコピペから始めるものだから、そういうこともあるだろう。

630 :名無し~3.EXE:2006/03/28(火) 21:18:25 ID:h8E+faqA
Constを使って定数を定義する云々は教えてあげなくてもいいですか?

631 :名無し~3.EXE:2006/03/28(火) 21:33:50 ID:209eAzmT
直接数字ぶっこんでも特に問題はないしねえ。

それに、そもそも自分の書いてる命令の意味を理解してない段階で、
細かいことを教えても混乱させるだけになりはしないかな。

もうちょっと細かいところに興味を持ち始めた段階で教えてあげた方がいいと俺は思う。
興味を持たない人に無理に教えて、ウザがられるのもやだし。

>>627さんが興味があるなら教えてあげよう、ぐらいでいいんじゃない?

632 :618:2006/03/28(火) 21:39:15 ID:MOZlBCjA
>>622
似たような質問をされた方がいらっしゃったんですね。
しかしながら、WScript.Arguments.Unnamed.Itemを、
どう利用すればいいのかも全く解らないのです。。。
ちょっと自分で調べてみます。。。

色々調べてやってみようと思ったんですが、垣根がまだ高かったですかね・・・・

633 :名無し~3.EXE:2006/03/28(火) 23:33:46 ID:209eAzmT
>>618
いやその前にこのスレ読めよ。
直前に同じ事で引っかかった人がいて、説明したばっかりなんだ。
まだ1週間も経ってない。

それでまた説明を書くのって何かおかしいだろ?
掲示板なんだから、読めばいいだけのことなんだからさ。

634 :618:2006/03/29(水) 00:52:29 ID:5Em6VaBu
>>633
ごめんなさい。読んでも根本的なところを理解できてないので、
全く理解できなかったんです。スミマセンデシタ。


635 :名無し~3.EXE:2006/03/29(水) 10:02:31 ID:uJMFkrd2
ActiveScriptRubyでどのオブジェクトにもぶら下がってない関数
InputBox, MsgBoxはどう呼べばいいんですか?
これはVBS固有の機能でしょうか。

636 :名無し~3.EXE:2006/03/29(水) 10:34:09 ID:YaF9j6ox
VBS 固有の関数なら固有だな。Ruby に実装されてるかどうかは知らん。
InputBox は代替物がなかなか無いが、MsgBox なら WshShell の Popup でほぼ代用できる。
あとは wsf にする手もあると思うが、それで Ruby から他の言語で定義した関数をどう呼ぶのかは知らん。

637 :名無し~3.EXE:2006/03/29(水) 11:05:31 ID:pb6pQSMR
表示はPopupで出来ました。
ありがとうございます。

InputBoxの代替はなさそうですね。
Win32APIにあれば呼べるんですが、それもなさそうな感じです。
exe作るしかないのかな・・・

638 :名無し~3.EXE:2006/03/29(水) 23:03:53 ID:Anco8/dV
普通にVBS使えばいいだけなのでは…?
exeでもいいんだろうけど、スクリプトの使い分けで十分なような。

639 :名無し~3.EXE:2006/03/31(金) 00:48:31 ID:VEkmjKaO
..636
これじゃ駄目なん?
(ActiveScriptRubyが無いのでJScriptですまんが…。)

<!-- test.wsf -->
<package><job>
<script language="VBScript">
  Function vb_input(prompt, title, default)
    vb_input = InputBox(prompt, title, default)
  End Function
</script>
<script language="JScript">
  var strIn = vb_input("Information", "Title", "Default String");
  WScript.Echo(strIn);
</script>
</job></package>
<!-- End of test.wsf -->

640 :名無し~3.EXE:2006/03/31(金) 00:58:20 ID:7WnoM0UX
もちろんJScriptならそれでいいが、RubyにはRubyなりの事情もあろう。
暗黙に宣言されたオブジェクトとかが作られるんかね?

641 :名無し~3.EXE:2006/03/31(金) 23:34:34 ID:YCDBRtg2
<!-- ちらしの裏


人事異動で必死で考えて楽をさせてもらったスクリプトが意味を無くしたな。
後任はプもわからん一般事務員でサポートしたくないから、引き渡さんけど

ちらしの裏  -->

642 :名無し~3.EXE:2006/03/32(土) 00:29:37 ID:sgmWfzje
プって何だろう

後任に能力を超えたツールを与えるとサポートに呼ばれる
スクリプトといえどもそれは同じ
確かにやめておいた方がいいかもしれん

643 :名無し~3.EXE:2006/03/32(土) 01:04:51 ID:8wJeJNyo
>> 642

「プ」と書いて 「プログラムの「プ」の字」 と読めば意味が通りそうだよ。

644 :名無し~3.EXE:2006/03/32(土) 03:02:45 ID:Vpz6YBqD
いつからここは、プログラムが解る奴が偉そうにするスレに変わったんだ?

645 :名無し~3.EXE:2006/03/32(土) 05:56:15 ID:jNOwyvPq

どなたか>>383もお願いします。

とりあえず以下の方法はNGです。
・wscript.exe.manifestで定義 → システムディレクトリを弄らなければならない
・Pathを通す → 通してもダメだし、レジストリ使うので
・GetObject → 使い方が悪いのかもしれないけど、目的の用途に使えないっぽい

とにかく、システムディレクトリやレジストリを弄らずに実現できる方法を探してます。
宜しくお願いします。


646 :名無し~3.EXE:2006/03/32(土) 12:12:18 ID:sgmWfzje
>>644
プログラムに限ったことではないけど、わからない側の人間が偉そうにするのは異常ですよ。

>>641-643について言っているのなら、それは偉そうにしてるというのとは違う。
勉強する気のない人間を中途半端に助けると、何度でも助けてもらおうとするから時間の無駄になる。
だから見捨てる方がよい、と言っているだけ。


647 :名無し~3.EXE:2006/03/32(土) 23:44:03 ID:Vpz6YBqD
>勉強する気のない人間を中途半端に助けると、何度でも助けてもらおうとする
>>646は、どうやらロクでもない人間関係しか築いてこなかった人物らしいな
利用されまくり乙であります!が、全部が全部そういう人間じゃないと思われ

疑心暗鬼になるのは判るけどなー

648 :名無し~3.EXE:2006/04/02(日) 00:02:28 ID:ghkRKVV2
助け合い頼りあいは大事だけど、それは相互にされなきゃ意味ないからな…

649 :名無し~3.EXE:2006/04/02(日) 02:49:23 ID:wG8OZfZS
見ず知らずの人が尋ねる掲示板での質問に見返りを求めるってのはちょっと・・・


650 :名無し~3.EXE:2006/04/02(日) 03:05:06 ID:s74drTGL
>645
ActiveX.dllやocxをdeclare宣言だけで呼び出したいってなら
標準モジュールに関数、*.defにエクスポート定義書いて
コンパイル後、リンカオプションに
/DEF:エクスポート定義ファイル
を付けてDLLを作る

651 :名無し~3.EXE:2006/04/03(月) 00:59:17 ID:RhR1K2xC
レジストリ等を使わずに呼び出せるdllの作り方ではなく、
レジストリ等を使わずに既存のActiveX.dllを呼び出す方法じゃないの?

652 :名無し~3.EXE:2006/04/03(月) 01:13:32 ID:IrvSUhdJ
教えもしないで一言二言多い奴がいるっぽいな

653 :名無し~3.EXE:2006/04/03(月) 04:07:45 ID:UreiUDfH
誰かこれ使った事ある人いる?

WindowsScriptHost用コンパイラ 3.0β
http://www.vector.co.jp/soft/win95/prog/se277804.html
うちの環境が悪いのか、インストールできないんだが・・・

654 :名無し~3.EXE:2006/04/03(月) 13:24:21 ID:UreiUDfH
スクリプトエンコーダ
http://kajika.tk/fio/?Tool

これかなりイイ(゚∀゚)
D&Dで処理させるようなスクリプトだと何故か実行しない(´・ω・`)
作者さん対応させてー


655 :名無し~3.EXE:2006/04/03(月) 20:01:14 ID:5Bxnki4g
MSのやつと名前が紛らわしいね。
ファイルに書き出して実行するって書いてあるけど
ノートン先生対策になるのかな?

656 :名無し~3.EXE:2006/04/03(月) 20:12:53 ID:84sv7NaI
ならないだろう。書き出した時点でチェック入るはず。
// そうでなきゃそのアンチウィルスソフトはゴミ。
まあそもそも MS のエンコーダでいいじゃんと思うけど。

657 :名無し~3.EXE:2006/04/05(水) 15:56:21 ID:dCPVSqSc
>>654
そのexeを叩いた時に、”ファイルを一時的にどこかに書き出して実行する”仕様みたいだね。

だからD&Dのような処理だと、exeにD&Dした瞬間に吐き出されたファイル自体へ
取得したデータを渡すようにしないとダメだろうね。

658 :名無し~3.EXE:2006/04/05(水) 22:31:13 ID:zAHLZFVW
ノートン先生なら書き出さなくても見つけてきそうな気がするけどね。
最悪でも書き出す瞬間には見つけられちゃうだろうなあ。

スクリプトをアプリケーションとして動かしたいだけなら、こんなのもあるよ。
http://www.vector.co.jp/soft/win95/util/se295978.html
これは別ファイルに書き出したりはしないようだ。
まあコマンドプロンプトが上がっちゃうし、あまり好きじゃないけど一応紹介しとくよ。

659 :名無し~3.EXE:2006/04/05(水) 22:42:14 ID:zAHLZFVW
>>647
友人や仲間が相手ならいいんだけどね。
自分でやろうともしないで面倒を押し付けてくる奴と、友好関係を築く必要は感じないな。
他人でも、努力している人なら無償で助けてあげようって気になることもあるけどね。

>>649
それは最初っから掲示板についての話じゃないよ。
掲示板でなら、勝手な要求をする人がいても無視されるだけのことで、問題にはならないんじゃないかな。

660 :名無し~3.EXE:2006/04/06(木) 00:42:18 ID:J3+U4l5h
勝手な憶測であれこれ書くぐらいだったら無視すればいいんじゃないの?

661 :名無し~3.EXE:2006/04/08(土) 05:58:22 ID:xEitski5
既出だったらスマン

WINDOWSサーバーHACKS
ttp://www.amazon.co.jp/exec/obidos/ASIN/4873112265/qid%3D1144443273/249-2589020-8385962

サンプルスクリプトが結構使える。ヒント集としても強力。マジお勧め。



662 :名無し~3.EXE:2006/04/08(土) 10:09:44 ID:JepkcL+y
VBSのSendKeyでCtrl+Alt+Delを送出したいのですがこれはどうすればいいのでしょうか?
過去ログをさかのぼってみたのですが同時送出のやりかたが乗ってなかったのでどなたか教えてください。

663 :名無し~3.EXE:2006/04/08(土) 15:10:15 ID:vLyUlz+e
そりゃ過去ログには載ってないだろうな。
WSH(VBS)のヘルプ(リファレンス)のSendKeysの項目にばっちり載ってるようなことを
わざわざ聞くようなバカは居ないから。

それともSendKeysではなく本当にSendKeyだったりするのか?
俺はSendKeyの方は知らないけど。
つーか、キーを送ることに拘らず、キーを送った結果起こることをVBSで実行すればいいじゃん。
例えばXPの標準環境ではCtrl+Alt+Delでタスクマネージャが起動するが、
これでいいならRunでタスクマネージャを実行してやるだけでいい。
Ctrl+Alt+Delで他のことが起こるにしても、それを直接行えばいいだけ。

664 :名無し~3.EXE:2006/04/08(土) 15:18:53 ID:/t7HaIh2
>>663
このツンデレ野郎め!!!

665 :名無し~3.EXE:2006/04/08(土) 16:03:13 ID:LG94hXy8
余計な一言を書く奴がどうも多いよな・・・見てて不愉快になる。

>>662
Ctrl+Alt+Delでタスクマネージャー出したいんだったら、
Ctrl+Alt+Escでも出せるよ。
Win2Kだったら後者がお勧め
>>663は言葉悪いかもしれないけど、普通にググっても出てくる範囲は
さすがに調べる気あるのか?と思われても仕方ない面はあるよ。
聞く前にある程度調べてなさそうな奴の発言が多いから、見ていても
不愉快な煽りが増えるんだよ。

頼むからググって調べられる事は調べてね。


666 :名無し~3.EXE:2006/04/08(土) 16:05:15 ID:74D2C8dA
>>663
タスクマネージャーを起動するだけじゃ駄目なんですよ。
RDPの終了後にスクリーンセーバーも起動せずにマウス入力やキーボード入力も無視する、
ブラック画面状態になります。これから復帰するのがCtrl+Alt+Delしか無いのでして・・・
SendKeyでもSendKeysでもいいので教えてもらえないでしょうか?

WShell.Sendkeys("^%{Del}")
こう書いてもXPでCtrl+Alt+Delを押したときの画面が表示されないので。。。

667 :名無し~3.EXE:2006/04/08(土) 16:52:59 ID:yKXboO3Y
ちょっとやってみた。
ある特定のアプリケーションに下のコードで Ctrl+Shift+Del は送れるんだけど、
何にもないところで Ctrl+Alt+Del でタスクマネージャって言うふうには行かないみたいですね^^;
    WS.SendKeys "^+{DELETE}"

WSHのヘルプファイルに書いてあった () で囲むのもやってみたけどだめでした。
ブラック画面状態から戻る方法、ほかにはないんですか?
ダミーで何か適当なアプリ起動するとか、スクリーンセーバー起動するとか。

668 :名無し~3.EXE:2006/04/09(日) 00:43:53 ID:ebqchdRt
Set xh = CreateObject("MSXML2.XMLHTTP")
On Error Resume Next
If Err <> 0 Then
Err.Clear
  Set xh = CreateObject("Microsoft.XMLHTTP")
End If
xh.Open "GET", Url, False
xh.Send
If Err <> 0 Then Exit Function

上記Scriptでxh.Sendを実行してから次のステップに進むまで4秒くらい(URLはyahooやInfoseekなどどのサイトでも)
かかりますがみなさんもそのくらい、時間がかかりますか?

OSはWinXPです。

669 :名無し~3.EXE:2006/04/09(日) 04:11:43 ID:lpeC9j12
つい Date 型の format メソッドを延々定義してしまっていた。

>>668
まず 1 秒未満だな。

670 :668:2006/04/09(日) 14:50:45 ID:MZ+WzGSq
自己レス

IEでPROXYの設定がしてあると遅く、PROXYの設定をはずすと1秒以内に処理が終わることが分かりました。
串はとあるUSサイトのものを設定しています。
そこでパケットッモニタで調べたが、実際はPROXY経由の通信はしていないようです。
MSXML2.XMLHTTPの仕様なんでしょうか?

671 :名無し~3.EXE:2006/04/09(日) 15:37:57 ID:N5B6wZjM
proxy 経由してるはずだけど……。

OS が多少限定されるけど MSXML2.ServerXMLHTTP 使うとか。

672 :668:2006/04/09(日) 15:41:55 ID:MZ+WzGSq
>>671
勘違いしてたようで、PROXY経由でした。スイマセン

MSXML2.ServerXMLHTTPだと直接接続になるんですか?

673 :名無し~3.EXE:2006/04/10(月) 19:04:32 ID:TDLlxF7L
c:\foo.txt
にアーカイブフラグが立っていたら何かを処理してフラグをクリアするという処理はどう書けばいいんでしょうか?

674 :名無し~3.EXE:2006/04/10(月) 19:24:03 ID:xHXyGg4l
>>673
○Fileオブジェクトを取得
Set filespec = "c:\foo.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(filespec)

○アーカイブフラグを取得
f.attributes and 32

○アーカイブフラグをセット
f.attributes = f.attributes + 32;

○アーカイブフラグをリセット
f.attributes = f.attributes - 32;

675 :名無し~3.EXE:2006/04/10(月) 19:24:23 ID:/jGXIavb
FileSystemObject の File オブジェクトの Attributes プロパティ使えばよかろ

676 :名無し~3.EXE:2006/04/10(月) 23:07:53 ID:i3k+rSM4
○アーカイブフラグをセット
f.Attributes = f.Attributes Or 32

○アーカイブフラグをリセット
f.Attributes = f.Attributes And (Not 32)

ではあるまいか

677 :名無し~3.EXE:2006/04/10(月) 23:50:38 ID:gLywV5Rc
同じだよ

678 :名無し~3.EXE:2006/04/10(月) 23:53:40 ID:xHXyGg4l
いや
>>676の方が安全だ

679 :名無し~3.EXE:2006/04/11(火) 00:31:27 ID:EwASrKdH
取得した後、分岐するんじゃねぇかな?                    どうでもいいけど

680 :名無し~3.EXE:2006/04/11(火) 17:42:48 ID:4kcYmlhd
VBSで現在の日付を”20060501”のような形式で得る方法がありましたら教えてください。

681 :名無し~3.EXE:2006/04/11(火) 18:07:05 ID:WGbGDmTa
Replace(FormatDateTime(Now, 2), "/", "")
こんなのどうだろ

682 :名無し~3.EXE:2006/04/11(火) 18:20:30 ID:P1z+xepn
Function Hizuke()
  d = Now
  Hizuke = Year(d) & Right("0" & Month(d),2) & Right("0" & Day(d),2)
End Function

683 :名無し~3.EXE:2006/04/11(火) 20:44:46 ID:5Jrf0nwZ
>>681-682
ID違いますがありがとうございました。

684 :名無し~3.EXE:2006/04/14(金) 15:22:13 ID:HyFvZTtL
・VBSの正規表現を使ってファイル名から3桁の数字列を取り出したい
・3桁以外の数字列にはマッチさせたくない
・ファイル名に規則性はない

正規表現 (^|\D+)(\d{3})(\D+|$) だと dkfja0721-dy095-081.txt の場合 081 がマッチしません
ここ数日調べてますが詰まってしまって、どう記述していいやらわかりません
どなたか解決法教えていただけないでしょうか

685 :名無し~3.EXE:2006/04/14(金) 15:44:07 ID:8fc5OKJM
(?:^|\D)(\d{3})(?=\D|$)

686 :名無し~3.EXE:2006/04/14(金) 15:44:45 ID:oG3wQsOE
monadマダー?

687 :名無し~3.EXE:2006/04/14(金) 17:32:16 ID:HyFvZTtL
>>685
ありがとうございました
肯定先読みっていうのを使うんですね
勉強不足でした

688 :名無し~3.EXE:2006/04/15(土) 06:39:42 ID:JUGIyD82
教えてください。
CreateMHTMLBodyで作ったmhtmファイルと、IEの「名前をつけて保存」で作った同ファイルに容量の違いがあります。
この差というのはなんなのでしょうか?

689 :名無し~3.EXE:2006/04/15(土) 07:50:23 ID:ZPzOikhB
>>688
容量に関わってくる部分はフィルターフラグとエンコードかな。
画像を埋め込めるmhtmlにおいて、画像を取り込まない設定を使えば
当然容量は減るし、他にもいろんなフラグがある。
エンコードが違えば容量が変わってくるのは言わずもがな。
あとはリファレンス見ればわかるはずなので自分で調べましょう。

690 :名無し~3.EXE:2006/04/15(土) 21:53:12 ID:JUGIyD82
>>689
ありがとうございました。

691 :名無し~3.EXE:2006/04/17(月) 20:23:49 ID:o+Bf6AmH
wsh で JScript を実行する時に使われる実行エンジンと
IEで JScript を実行する時に使われる実行エンジンは
同じものですか?またそうであれば両者でできることについての制約は同じですか?

692 :名無し~3.EXE:2006/04/17(月) 20:37:51 ID:iceGkRbA
WScript オブジェクトが暗黙に宣言されてるかどうかって違いはあるな

693 :名無し~3.EXE:2006/04/18(火) 03:53:13 ID:TguSFBtI
WshShell.Run "cmd.exeどうこう

で、ウィンドウを最小化するにはどう書けばいいわけ?
ぐぐってもstart /minしかでてこない。


694 :名無し~3.EXE:2006/04/18(火) 04:08:47 ID:YkSiARgw
MSDN の WshShell.Run の項目では解決しない?

695 :名無し~3.EXE:2006/04/20(木) 18:00:45 ID:X6lWO4wR
長い時間ループしているVBSの処理を何かのキー入力で中断させたいのですが、
うまい方法がありますでしょうか。 今は別のVBSを同時に走らせてMsgBoxのボタンを
押してOSのユーザー環境変数を変更し、それをフラッグに使って本体の処理を中断
できるようにしています。 とても不細工みたいなので良い方法をご教示ください。


696 :名無し~3.EXE:2006/04/20(木) 18:19:12 ID:2OeTDCjj
>>695
そういう操作が出来ない(無理矢理やろうとすると不細工で面倒)かわりに
手軽に使えるのがwshというものだが。
キーイベントを使いたいならそういうことが出来るまともな開発言語に移行してくれ。
それがイヤなら不格好でも我慢しな。まぁ俺なら不格好にやるにしても
MsgBoxなんて使わずにAutoHotkeyでも使ってグローバルホットキーを割り当ててやるがな。

697 :名無し~3.EXE:2006/04/20(木) 18:40:46 ID:X6lWO4wR
>>696
レス有難うございます。AutoHotkeyですかorz まともな開発言語を覚える暇がないので、wshでなんとか
やっている状態なんです。 不恰好でも何とか動いているので我慢することにします。  

698 :名無し~3.EXE:2006/04/20(木) 19:50:35 ID:44OWU501
HTAにすりゃHTMLを使って簡単に中止ボタンとかGUI実装出来るよ。


俺も無限ループ持たせたスクリプト常用してるけど、
バッチファイルで任意のタイミングで中止出来るようにしている。

type nul > wshflag.txt

みたいなバッチファイルで、スクリプトの方には

if (fso.FileExists("wshflag.txt")) {
    fso.DeleteFile("wshflag.txt");
    WScript.Quit();
}

みたいなコードをループ内に組み込んでいる。これはこれで不細工だけどね。

699 :695:2006/04/20(木) 20:59:17 ID:X6lWO4wR
>>698
皆さん苦労してるんですね。 ファイルをフラッグに使うと何だかHDDを傷めるような気がして
メモリで済まそうと環境変数を使っているんですが、どうなんでしょう? スピードも
環境変数の方が速いと勝手に思って使っていますが、 ディスクキャッシュとのからみも
あっってわけ若布の状態です。 HTAは使ったことありませんが、 WSHが何とか使える程度の
能力で簡単に覚えられるのでしょうか? 簡単に乗り換えられるのならトライしてみようかな?

700 :名無し~3.EXE:2006/04/20(木) 21:24:52 ID:q/scm9PN
>ファイルをフラッグに使うと何だかHDDを傷めるような気がして
そういう下らないことは考えなくていい

701 :名無し~3.EXE:2006/04/20(木) 21:30:46 ID:uB5k0IUH
完全な排他制御は理論上無理だからね

702 :名無し~3.EXE:2006/04/21(金) 08:20:40 ID:6ghPYaqo
クリップボードに特定の文字列を入れたら終了とか、
wscript.exeのプロセスが2個以上になったら終了とか、
ある名前のウィンドウが開いたら終了とか、

色々考えられるね。

703 :名無し~3.EXE:2006/04/21(金) 08:31:43 ID:4uqxsnm5
プロセス終了でいいやんけ
中断後さらに何かやりたければメインプログラムからループだけするプロセスを起動するとか。

704 :名無し~3.EXE:2006/04/21(金) 19:16:03 ID:wYhS5llG
explorer.exe のプロセスを終了する良い方法ないでそうか?

taskkill 使うとログオフ扱いで「終了オプション」
wmi で Process.terminate だと終了するも即再起動しちゃいます

やりたいことはindex.datの削除なんだけど・・

705 :名無し~3.EXE:2006/04/21(金) 19:50:53 ID:Sj99EInk
>>704
ttp://support.microsoft.com/kb/293402/

706 :名無し~3.EXE:2006/04/21(金) 23:33:24 ID:rPl5qXp9
同じなわけねぇじゃん。

707 :ここでいいのかな?:2006/04/23(日) 03:42:04 ID:dT6brCX/
>>130 の、INIFileObject.js使ってみたよ
作者の耳たぶを甘噛みしちゃいたいくらい、すっげー便利だった。

でさ、INIFileObject.readFromFile(file) の
「line = file.ReadLine();」は,
「line = file.ReadLine().replace(/;.*$/mig, "");」
とするとコメントアウトされたセクション・キー名を
拾わなくなるんで、ちょっとだけ使い勝手が向上するかな
とか思った。

708 :連投ゴメン:2006/04/23(日) 04:01:07 ID:dT6brCX/
>>695

SeraphyScriptDialog ってコンポ-ネントの DLL(scrdlg.dll)を
どこかに放り込んで、コマンドラインから「regsvr32 DLLのパス」
と登録しておけば、任意のキーが押下状態かどうかを返す
「GetASyncKeyState(n)」が使える筈だよ

709 :695:2006/04/23(日) 10:49:38 ID:LNVmHWno
>>708
おおお! 出来ました! こんなOBJECTあるとは知りませんでした。
他にも色々便利に使えそうで、WSHの能力大幅アップ。 有難うございました

710 :704:2006/04/23(日) 11:12:34 ID:asA1TsHJ
>>705
それを自動化したいんですが・・

711 :名無し~3.EXE:2006/04/23(日) 11:30:12 ID:k60FxBTQ
/F

712 :名無し~3.EXE:2006/04/23(日) 22:29:59 ID:rpt1yEwh
http://www.emeditor.com/jp/pro6.htm
PerlScript, Python, RubyScriptでマクロが書けるエディタだそうだ

713 :名無し~3.EXE:2006/04/24(月) 00:21:07 ID:eAJsx2pJ
xyzzy使ってたほうがましだな

714 :名無し~3.EXE:2006/04/24(月) 00:29:28 ID:LR7vbq98
>>713
xyzzyでPerlScript, Python, RubyScriptのマクロを書く方法を教えて

715 :名無し~3.EXE:2006/04/24(月) 03:14:29 ID:dde41rJb
>>714
xyzzyを起動し、キーボードを打ってPerlScript, Python, RubyScriptのマクロを書く

716 :名無し~3.EXE:2006/04/24(月) 03:50:08 ID:LR7vbq98
実行できないと意味ねー

717 :名無し~3.EXE:2006/04/24(月) 08:58:43 ID:oPUZv78Y
臭い爺は全然リンク先の意味わかってないだろw

718 :名無し~3.EXE:2006/04/24(月) 11:37:19 ID:X1hgnEtU
xyzzy=「くさいじじい」=「臭い爺」

719 :通りすがりの名無しさん ◆NNS/AVDM5A :2006/04/24(月) 21:21:42 ID:Cj9M/K0x
hta でインターフェイスつくって処理しているんですが、
チェックボックス3つで、どのチェックが付いているかIFで判別してるのですが、
思った結果にならず、理解に苦しんでいます。

以上<script language=VBScript>から始まる序文
--
If A_Check.checked = true Then
If B_Check.checked = true Then
If C_Check.checked = true Then
CheckNo = "0"'A_/B_/C_
Else
CheckNo = "1"'A_/B_
End if
Else
If C_Check.checked = true Then
CheckNo = "2"'A_/C_
Else
CheckNo = "3"'A_
End if
End if
Else

720 :通りすがりの名無しさん ◆NNS/AVDM5A :2006/04/24(月) 21:22:26 ID:Cj9M/K0x
If B_Check.checked = true Then
If C_Check.checked = true Then
CheckNo = "4"'B_/C_
Else
CheckNo = "5"'B_
End if
Else
If C_Check.checked = true Then
CheckNo = "6"'C_
Else
CheckNo = "7"'Error
End if
End if
End if
--
以下 html

CheckNo 0 〜 3 は想定通りなんですが、
4 〜 7 が思ったとおりにならず、全部チェックがなない場合は 7 になると思ったのですが、
全部チェックが無いと 6 に、C のチェックが逆になったように動作します。
ならば逆に書けばいいだけなのですが、理解出来ない動作も問題ですので。
これは動作的に正しいのでしょうか?

721 :名無し~3.EXE:2006/04/24(月) 21:58:12 ID:FfSKNERm
いや、試した限り期待通りなようだが?
て言うかなんつー泥臭いコーディングを。

Const a = 1
Const b = 2
Const c = 4
Dim CheckNo : CheckNo = 0
If A_Check.checked Then CheckNo = CheckNo Or a
If B_Check.checked Then CheckNo = CheckNo Or b
If C_Check.checked Then CheckNo = CheckNo Or c

これで。
チェック済みなのはむしろ 1 にすべきだろう。

722 :通りすがりの名無しさん ◆NNS/AVDM5A :2006/04/24(月) 23:17:29 ID:Cj9M/K0x
>>721
回答有難うございます。
>いや、試した限り期待通りなようだが?
→ 原本のコードだとなぜかNoチェックで6が返ってきて考えあぐねいているんですがね。
   もっかい見直して見る価値ありかもです。

で、頂いたコードですが、なるほど。
>CheckNo Or a
いかんせん素人丸出しですが、この構文は知らなかったです。
結果も無問題、有難う御座いました。

723 :名無し~3.EXE:2006/04/26(水) 22:15:24 ID:4IRKjJGk
デスクトップの何も無いところや、エクスプローラのウィンドウのファイルの無いところ、
スタートメニューのプログラムの中の何も無いところやタスクバーの何も無いところ

このあたりって右クリックメニューを呼び出す方法ないですよね?
アイコンを名前順に並び替えたりとかしたいんだけど、どうにも方法が見つからないんです。
なかなかうまくいかないなぁ・・・。

724 :名無し~3.EXE:2006/04/26(水) 23:11:07 ID:TLakQonZ
> このあたりって右クリックメニューを呼び出す方法ないですよね?
いいえ。

> アイコンを名前順に並び替えたりとかしたいんだけど、どうにも方法が見つからないんです。
見つかったよ。

> なかなかうまくいかないなぁ・・・。
うちではうまくいったけど。


「ないですよね?」という確認と、「見つからないんです。」という報告と、
「なかなかうまくいかないなぁ・・・。」という愚痴だけで、
質問では無いようなので具体的なやり方は書かないでおく。
例え質問だとしても、ここは丸投げ上等のスレじゃないし。

725 :名無し~3.EXE:2006/04/27(木) 00:49:06 ID:XVR2chgF
とんでもない>>723がやって来た!

726 :723:2006/04/27(木) 01:09:06 ID:KCQopRU6
>>724
失礼しました。

かなり長い間調べていたので、諦め半分だったもので…。
Shell.Applicationでデスクトップを指定してもダメですし、色々指定してみたりはしたのですが。

レジストリ操作でできるのは知っているのですが、WSHでもできるのならもうちょっと調べてみます。
ありがとうございました。

727 :723:2006/04/27(木) 03:20:22 ID:KCQopRU6
そうだ、言い忘れてました。
タスクバーの右クリックメニューは操作できないようです。
少なくともクイック起動については他の方法でも無理だそうです。

ttp://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/sept05/hey0901.mspx

ご参考、と言うほどにはならないかもしれませんが、
他にお礼できるような情報も持ち合わせておりませんので、これでご勘弁ください。

728 :名無し~3.EXE:2006/04/27(木) 20:59:42 ID:UAScfV0X
WSHでQuickTime つかいたいんだけど
誰かおしえてちょんまげ

729 :名無し~3.EXE:2006/04/27(木) 21:29:24 ID:YEFck84K
>>728
勝手に使えばいいじゃん。誰も止めたりはしないからさ。
あ、QuickTimeの使い方がわからないとか言うなよ。
んなのはwshとは全く関係ない話だからさ。

QuickTime ActiveX コントロールの使い方も向こう参照ね。
>>3みたいにwsh始め、ActiveXが扱える言語から使うことを
主要としたもの(というかそれ以外に使い道が無い物)ならまだしも
主として別のインターフェイスを持ち、おまけ程度でActiveX化されたり、
ActiveX版が付属するようなものの使い方はスレ違いと言わざるを得ないから。

あくまでも使いたいソフトの使い方は熟知(最低でもやりたいことは出来るというレベル)した上で
wsh的な質問があるなら具体的に書いてくれ。

730 :名無し~3.EXE:2006/04/27(木) 23:07:46 ID:KlA6Iwhw
>>728
http://developer.apple.com/quicktime/activexcontrol.html

731 :名無し~3.EXE:2006/04/27(木) 23:08:29 ID:KlA6Iwhw
ああ、一応>>729には同意ね。

732 :名無し~3.EXE:2006/04/28(金) 02:26:18 ID:LnGJSfUY
Windows PowerShell RC1
(要.NETFramework2.0)
http://www.microsoft.com/windowsserver2003/technologies/management/powershell/

ドキュメント ttp://www.microsoft.com/downloads/details.aspx?FamilyID=b4720b00-9a66-430f-bd56-ec48bfca154f&DisplayLang=en
x86 ttp://www.microsoft.com/downloads/details.aspx?FamilyID=2b0bbfcd-0797-4083-a817-5e6a054a85c9&DisplayLang=en
x64 ttp://www.microsoft.com/downloads/details.aspx?FamilyID=4a2d5ecb-0740-4ad5-98d3-eb236c3f37d9&DisplayLang=en
IA64 ttp://www.microsoft.com/downloads/details.aspx?FamilyID=d9a36d03-33cf-47b1-acfa-7eaea534404c&DisplayLang=en

IronPython1.0 Beta6
(要.NETFramework2.0)
http://www.gotdotnet.com/workspaces/workspace.aspx?id=ad7acff7-ab1e-4bcb-99c0-57ac5a3a9742
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=f5bb7def-7c71-40d0-9ad7-81e60e85e3db&DisplayLang=en

733 :名無し~3.EXE:2006/05/02(火) 05:51:46 ID:J33gtCID
キー入力を待って受け取ったものを返すような関数のあるActiveXありますか?

734 :名無し~3.EXE:2006/05/02(火) 08:36:50 ID:lH62/ugn
もしかして、俺が作ったアレのこと?
いや、公開してないからこれは除外か。
俺は見つからなかったから作ったんだが、他にもあるのかねぇ?

735 :名無し~3.EXE:2006/05/02(火) 14:39:28 ID:JGI1TUZQ
ありますか?って聞いてるんだから、既存の物を知ってるわけじゃないんじゃない?

736 :名無し~3.EXE:2006/05/02(火) 14:59:41 ID:+8gXS2tE
「ありますか?」=「よこせゴルァ」

737 :名無し~3.EXE:2006/05/06(土) 02:40:26 ID:7yALK9L2
CreateMHTMLBodyでmhtファイルを作る際にエンコード(quoted - printable等)の指定は可能でしょうか?
不可能な場合、他の方法で、なにかありますでしょうか?

738 :名無し~3.EXE:2006/05/06(土) 05:42:44 ID:NN/yrBEg
>>737
過去ログに同じ質問と、回答がある。

739 :名無し~3.EXE:2006/05/07(日) 14:16:28 ID:vSHBjUrs
WScript.Arguments[0]じゃなくて
WScript.Arguments(0)を使うって何なの?
気持ち悪い

740 :名無し~3.EXE:2006/05/07(日) 14:47:30 ID:6J63bKXz
>>726
> レジストリ操作でできるのは知っているのですが、WSHでもできるのならもうちょっと調べてみます。

723さん!僕は逆にレジストリ操作でアイコンの整列を
する方法を教えてほしいです。


741 :名無し~3.EXE:2006/05/07(日) 15:14:23 ID:H/iICkSL
>>739
WScript.Arguments配列
WScript.Argumentsメソッド

WScript.Arguments.item(0)は
WScript.Argumentsオブジェクトのitemメソッド

742 :名無し~3.EXE:2006/05/07(日) 17:36:56 ID:VOi7ujTd
Set fso1 = CreateObject("Scripting.FileSystemObject")
Set obc = fso1.CreateFolder("C:\w")
Set fso1 = Nothing: Set obc = Nothing
を実行すると、800A004Cエラーになります。なにがいけないのか?間違ってないと思うんだけど

743 :742:2006/05/07(日) 18:53:34 ID:N83ueXlk
できた。("C:\w.w.w")のように . が入ったとき 800A004Cエラーになる。
TEMPフォルダ内のファイルを消したんだけどやはりエラーになる

744 :名無し~3.EXE:2006/05/07(日) 19:24:15 ID:bjWwgFU8
WScript.Argumentsは配列でもあるのかと思って調べちゃったじゃないか。

745 :名無し~3.EXE:2006/05/07(日) 20:31:06 ID:vSHBjUrs
>>741
WScript.Argumentsが配列じゃないのが直感的じゃないと思う。
なんでメソッドなのか分からない

746 :名無し~3.EXE:2006/05/07(日) 20:35:56 ID:5NMQvEpN
COM オブジェクトだからさ。

747 :741:2006/05/07(日) 22:43:09 ID:H/iICkSL
WScript.Arguments(0)は
WScript.Arguments.item(0)の省略

WScript.Arguments[0]は件のメソッドから作った配列

だと勝手に思ってる

ところでWScript.Arguments.lengthってのもあるな

748 :名無し~3.EXE:2006/05/07(日) 23:41:03 ID:bjWwgFU8
WScript.Arguments[0]は未定義でしょ?

749 :742:2006/05/08(月) 01:16:36 ID:W3C5Qf7g
あの・・

750 :名無し~3.EXE:2006/05/09(火) 17:16:31 ID:97tI7kNk
>>742
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/jsmthcreatefolder.asp
指定したフォルダが既に存在していた場合は、エラーが発生します。

751 :名無し~3.EXE:2006/05/10(水) 07:22:28 ID:SJ8lJ1n4
>>750
それとはエラーコードが違う。
せっかく質問者がエラーコード書いてるんだから、ちゃんと読もうね。

752 :名無し~3.EXE:2006/05/10(水) 13:51:29 ID:CnVInpqD
Path not found

実はCドライブがなかったりして (゚∀゚)アヒャ

753 :名無し~3.EXE:2006/05/10(水) 15:46:49 ID:q520RB9p
エラーコードがどんなエラーか調べる義務はないから適当な回答でも文句言えない
エラーメッセージを省略する方が悪い

>>752
どうやったらそんなエラー出るんだと思ったが
たしかにx:\とかだと出るね

754 :742:2006/05/10(水) 19:29:15 ID:DKFPOkOL
ののしってください。"C:\a\w.w.w"の\aを先に作ったらできた

755 :名無し~3.EXE:2006/05/10(水) 19:39:49 ID:1VltviEb
氏ね屑

756 :名無し~3.EXE:2006/05/10(水) 19:44:16 ID:pF0EWkPT
ブタ野郎

757 :名無し~3.EXE:2006/05/10(水) 20:32:53 ID:COVwWQgC
>>754
この公衆便所が!!

758 :名無し~3.EXE:2006/05/10(水) 21:15:42 ID:ttbCt15/
>>756
黒川ハケーン

759 :名無し~3.EXE:2006/05/10(水) 22:46:49 ID:WJpqCRNz
>>754
構造解析していいですか?

760 :名無し~3.EXE:2006/05/11(木) 01:10:00 ID:/Ty//HJs
つまりなにか、>>742
上位ディレクトリ("a")が存在しないうちに下位ディレクトリ("w")を作成しようとしていたからこそ
吐かれたエラーなのに、コードから肝心の"\a"の部分を削った上で助言を求めに来ていた、と、そういうわけか?
そういうわけなのか? アァン?

761 :742:2006/05/12(金) 00:26:51 ID:bs+ewIev
>>759いいわけねーだろ。TOYOU>>755-757>>760そ。    皆、これからもよろ^^

762 :名無し~3.EXE:2006/05/12(金) 03:19:20 ID:8004EEXU
>>740

HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags\1\Desktop\ItemPos(解像度ごとに複数)
のバイナリ値がアイコンの位置の記録なので、これを消すだけです。

それから、同じキーにあるFFlagsのDWORD値が、アイコン整列の方法を表しています。
ちょっと今、手元にメモが無いのでうろ覚えだけど、たしかアイコンの自動整列のフラグが4、等間隔に整列が2だったと思います。

ただしこれは即反映はされないし、ログオフ時に書き戻されるので面倒なんですよね。
手っ取り早いのはexplorer.exeを落とすことだけど…。


デスクトップのアイコンの並びあたりのメニューって、リストビューですよね。
VB.NETとかからなら簡単にできるのはわかったんだけど、WSHでリストビューを弄る方法がみつからないです。
Shell.ApplicationからだとフォルダとしてしかVerbの出し方が判りません。

他にもタスクバーの固定やスタートメニューのプログラムを名前順に並び替えなんかの機能も
レジストリをいじらずに操作する方法があればいいなと思い、Verbでできないか調べています。

実際にできている方もいらっしゃるそうですし、私は何か根本的なことを見落としてるんでしょうか。
何かヒントをいただけませんか?

763 :名無し~3.EXE:2006/05/12(金) 23:25:47 ID:5AdKiPwI
>>712
糞ソフトの宣伝乙

764 :名無し~3.EXE:2006/05/12(金) 23:29:00 ID:04kP5bkH
おっ?意外といいソフトだぞ。

765 :名無し~3.EXE:2006/05/12(金) 23:43:05 ID:O81STR39
http://pc8.2ch.net/test/read.cgi/tech/1055075469/564
564 名前:デフォルトの名無しさん[] 投稿日:2006/05/12(金) 23:23:58
>>529
糞ソフトの宣伝乙

763 名前:名無し~3.EXE[] 投稿日:2006/05/12(金) 23:25:47 ID:5AdKiPwI
>>712
糞ソフトの宣伝乙

投稿日:2006/05/12(金) 23:23:58
投稿日:2006/05/12(金) 23:25:47

766 :名無し~3.EXE:2006/05/13(土) 00:27:39 ID:4aNWoeDT
リストビューって何?

767 :名無し~3.EXE:2006/05/13(土) 00:43:05 ID:Z0/ypWEC
手首がもの凄い勢いで飛んでいってしまう奇病

768 :名無し~3.EXE:2006/05/13(土) 00:57:41 ID:BMFC8XE0
>>767
マジンガーZみたいに?

769 :名無し~3.EXE:2006/05/13(土) 01:06:52 ID:Z0/ypWEC
>>768
マジンガーは肘から先だからチョト違うけど
感じは似ているね

770 :名無し~3.EXE:2006/05/13(土) 01:09:30 ID:BMFC8XE0
>>769
ボインミサイルの方が感じは似てないかな。

771 :名無し~3.EXE:2006/05/13(土) 01:36:30 ID:HZIGUJTv
>>762
要するにデスクトップの何もないとこを右クリック→アイコンの整列→アイコンの自動整列
をwshからチェックしたいってことか?できるかどうか俺はわからんな。
リストビューじゃなくて単なるネストしたメニューじゃない?

772 :740:2006/05/13(土) 02:48:38 ID:1CoHAT8E
>>762
情報ありがとうございます!
でもログオフで書き戻されちゃうんですね。
explorer.exe を落とすのもまた荒技ですしw、難しいですね。

僕も Verb を使った方法を調べたことがありますが結局見つからず、
キーシーケンスのエミュレートで妥協した覚えがあります。




773 :名無し~3.EXE:2006/05/13(土) 06:28:18 ID:4aNWoeDT
>>772
rundll32使ってできないかな?

774 :名無し~3.EXE:2006/05/14(日) 12:00:04 ID:1rwczZGC
>>771
ネストしたメニューからリストビューを弄ってるって事みたいです。
VB.NETの方で調べてたら、そのリストビューを直接弄る形で操作できました。

HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags
以下のキーと値を全て消してexplorer.exeを落とすと、正体を見ることができます。
(設定を戻しにくいので、試すときは実験用のアカウントを作るとかして下さい)

WSHからリストビューを弄れなかったので、メニューを弄る方法を探すようになったんです。
MSDNでShellのAPIを見たら役に立ちそうなのもあったんですが、スクリプトからは呼び出せないようなんですよ。
やっぱり無理なのかな…

775 :名無し~3.EXE:2006/05/14(日) 14:48:30 ID:zJnDrjRm
dynacallは?

776 :名無し~3.EXE:2006/05/14(日) 22:06:25 ID:sx+ynBE3
vbsで必死こいてテキストファイルをいじってたけどひょんなことからSEDやAWKを知った
適材適所でSED,AWKを使った方がラクなこともあるな
お前らは他のスクリプト言語も使ってますか?

777 :名無し~3.EXE:2006/05/14(日) 22:57:15 ID:jghYqyYC
とりあえずスクリプト言語はWSHで使えるものだけで大抵事足りてる>>5
事足りなければ他スクリプトの使用を考慮する前に
COMを自作してどうにかしてしまう。

マクロ言語は使うソフトに合わせにゃならんので、
DMonkeyだのPPAだの独自言語だのいろいろ覚えにゃならんがな。

778 :762:2006/05/14(日) 23:45:50 ID:1rwczZGC
>>740
explorer落とすと他にも影響出ますからねぇ。
レジストリのRunOnceに登録して、explorerが起動する前に動かしてしまうという方法もあります。

>>775
dynacallって、スクリプトからAPI叩けるってやつですよね。
それも考えて、どんな感じか見ようと探したんですが、DLのURLが変わってるのか入手できませんでした。
でもまあ、API使うのならVB.NETでもいいかな?と思ってます。

とりあえずAPIの解説書とか買ってみたんですが、素人には難しいですね。
理解するには時間がかかりそうです。

皆さんどうもありがとうございます。
もし何か情報があれば、何かのついででも結構ですので教えていただけるとうれしいです。

>>776
テキストを大量にいじる時なんかは、Perlを使うことがあります。
Active Perlをインストールしなきゃいけないので、余程じゃなきゃ使わないですけど、
VBScriptよりテキストがいじり易いです。


779 :名無し~3.EXE:2006/05/14(日) 23:55:34 ID:dv/Hb9HL
Perlの文字列処理の強さは異常

780 :名無し~3.EXE:2006/05/15(月) 01:57:35 ID:9RWo0FLn
jcode.plとか参考にして、vbs版作ったりできないかな
vbsだけでできると便利そう

781 :名無し~3.EXE:2006/05/15(月) 02:04:11 ID:lzsJMRVb
大抵は ADODB.Stream で事足りると思うが

782 :名無し~3.EXE:2006/05/15(月) 20:41:40 ID:9RWo0FLn
最速攻略 VBScriptサンプル大全集 最速攻略
http://www.amazon.co.jp/exec/obidos/ASIN/4774127108/ref=pd_sim_dp_5/250-3163802-2042647

書籍の紹介にないようなので購入してみた。
サンプルスクリプトがたくさん見たい人にお勧め。
でもCDなしで本だけだと、解説を読んでも意味不明です。
PCの前でCDの中を見ながら読まないと使えない。
まあ普通はPCの前で読む本なんだろうけど。

はっきり言って、解説はわかりやすい方ではないと思う。
でも入門書じゃないからそれでいいのかもしれない。
WSHを使うのに慣れてきて、もっと情報が欲しいっていうぐらいの人向きだった。

783 :名無し~3.EXE:2006/05/15(月) 21:47:08 ID:BGmr9mEu
XMLHTTPで取得したバイナリをADODB.Streamを使わないで保存するよい方法ないですか?

784 :名無し~3.EXE:2006/05/15(月) 21:52:42 ID:s4pzqwNM
それじゃ何のためのADODB.Streamか解らなくなる

785 :名無し~3.EXE:2006/05/15(月) 21:53:18 ID:/0yRYT7t
>783
なんでADODB.Streamだとだめなの?

786 :名無し~3.EXE:2006/05/15(月) 22:01:58 ID:BGmr9mEu
Win98でMS06-014を適用すると使えなくなるから。

787 :名無し~3.EXE:2006/05/15(月) 22:14:23 ID:lzsJMRVb
>>90-100 あたりに色々ADODB.Streamの情報がある

788 :名無し~3.EXE:2006/05/15(月) 22:20:54 ID:BGmr9mEu
そのへんが通用しなさそうだから慌てているのですよ…

789 :名無し~3.EXE:2006/05/15(月) 22:27:40 ID:lzsJMRVb
少なくとも二種類提示されているが、どの辺が通用しないんだ

790 :名無し~3.EXE:2006/05/15(月) 22:40:02 ID:BGmr9mEu
MS06-014当ててもレジストリでADODB.Streamを無効にしてるわけではなさそうだということ。
実際の環境は明日会社に行かないとないのでこの辺で。


791 :名無し~3.EXE:2006/05/15(月) 22:50:47 ID:aZwPBJ6H
>>790
お前、業績悪いだろ?

792 :名無し~3.EXE:2006/05/15(月) 23:27:54 ID:9RWo0FLn
教えてもらったURLも見ないっていうのはどうなんだろう。
既に出来ないものと思い込んでるのかな?

793 :名無し~3.EXE:2006/05/16(火) 00:10:18 ID:rYEuaEMe
compatibility flagを0にしても効果ねえよ。カスめ。

結局Win98用のMDAC2.8用の修正プログラムの問題だな。
MDAC2.8SP1とそれ用のパッチ当てれば問題なし。

ほんと使えない連中ですね。もういいです。

794 :名無し~3.EXE:2006/05/16(火) 00:18:08 ID:X2+ttQUP
>>793
お前、業績悪いだろ?

795 :名無し~3.EXE:2006/05/16(火) 01:46:35 ID:VDeBkZHo
>>793
それを回避する方法がURL先にあるんだが…

796 :名無し~3.EXE:2006/05/16(火) 06:48:52 ID:rYEuaEMe
>>90-100 に貼ってあるURLの先にそれがあるってか?

読んでも俺が試してだめだったことしか書いてねえんだよ。




797 :名無し~3.EXE:2006/05/16(火) 08:28:11 ID:Kf2UsS13
WSHからバイナリをいじりたかったら素直にBASP21入れとけ。
BinaryReadやBinaryWrite、BinaryConcat、MidBなどなど、いじり放題。
よくぞフリーで提供してくれてるもんだ。

798 :名無し~3.EXE:2006/05/16(火) 08:45:24 ID:VDeBkZHo
>>796
>>96に書いてあるレジストリを弄らない方法はダメだったのかどうなのか
そこを報告しなきゃ次の意見が出てこないのは当たり前だろ
普通に会話を進めるように進めればいいだけなのに、何キレてるんだ?

799 :名無し~3.EXE:2006/05/16(火) 14:19:30 ID:QWdDzbwB
セキュリティパッチでブラウザで使えなくするのと、
WSHでも使えないのは別の話な気もする。

800 :名無し~3.EXE:2006/05/16(火) 19:34:46 ID:rYEuaEMe
キレてるのはご指南が的外れだからだよ。

>>799
全くそのとおり。

結局 Windows9x-MDAC28RTM-KB911562-x86.exe に入っているmsdart.dllがwin9xのkernel32.dllと
互換性ないのが原因だった。このファイルをパッチ当てる前のものに戻しただけで直ったよ。


801 :名無し~3.EXE:2006/05/16(火) 19:37:03 ID:/94mq9Ds
へー

802 :名無し~3.EXE:2006/05/16(火) 20:47:24 ID:2UeMGGbE
おまいらPowerShellってどうよ

803 :名無し~3.EXE:2006/05/16(火) 23:30:48 ID:VDeBkZHo
>>800
君の説明が悪かったせいで、みんなの説明が的外れになってるんだ。
自分の脳内でわかってても、ちゃんと伝えなきゃダメだよ。
相手は超能力者じゃないんだから。
いまだにWindows98を現役で使ってる人は、もう多くないんだよ。

804 :名無し~3.EXE:2006/05/16(火) 23:51:25 ID:X2+ttQUP
どのスレでも時代遅れの猿は厄介だな。
MSの延長フェーズが後一月半を切ったOSに
しがみついていなければならないとは哀れw

805 :名無し~3.EXE:2006/05/17(水) 00:11:45 ID:KOj4tGNs
いや、Win98じゃないと動かない開発環境とかあるし
新しい開発環境を導入するほど需要はないけど
古い製品のメンテで必要だから切るに切れない・・・みたいな状況はある。

806 :名無し~3.EXE:2006/05/17(水) 00:21:38 ID:M7qmE1Sh
>>802 重いので手軽さが感じられない。

807 :名無し~3.EXE:2006/05/17(水) 01:29:22 ID:b9zRIYa9
>>802
Perl風ってことらしいけど、情報が少ないし、現時点で使うメリットなさそう。
もうちょっと情報が出てきて使えそうなら使うけど、今のところはスルーかな。
何か別の言語にない強力な機能とかってあるのかな?

標準搭載されるようになったら、多分いじってみる。
わざわざインストールして使うのなら、それなりに情報のあるPerlを選ぶよ。


808 :名無し~3.EXE:2006/05/17(水) 19:54:04 ID:bjnpSFQr
>>800
パッチ適用前のmsdart.dllください。

809 :名無し~3.EXE:2006/05/20(土) 02:18:39 ID:A0wXnUeH
>>808
mdac_typ.exe /c /t:<展開先のパス>
展開先から拾う

810 :名無し~3.EXE:2006/05/20(土) 23:49:42 ID:p7S0H+QV
>>809
下のmsdart.dllはパッチ適用されてるっぽいですね
ダウンロードの詳細 : MDAC 2.8
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&DisplayLang=ja


811 :名無し~3.EXE:2006/05/21(日) 13:43:27 ID:kRMv0uTt
vbsで全角半角変換ってどうやればできるんでしょうか?

812 :名無し~3.EXE:2006/05/21(日) 14:01:06 ID:CBxpeSLS
Basp21 使うとか
英数カナくらいなら力業でも良いか まあちょっと検索すればすでに存在してそうだけど

813 :名無し~3.EXE:2006/05/21(日) 14:02:19 ID:+VTvYT8c
変換テーブル作ればいいんじゃね?

814 :名無し~3.EXE:2006/05/21(日) 14:07:39 ID:8JQiIKNY
>>811
wshにもvbsにも全半角変換関数は無いので
BASP21とかを導入してそいつにやらすか、
変換関数を自分で書くかだな。
俺は自分でCOM作ってやってるけど。


815 :名無し~3.EXE:2006/05/21(日) 16:09:00 ID:kRMv0uTt
>>814
COMってどうつくるんでしょうか?
もしくはうpしてください

816 :名無し~3.EXE:2006/05/21(日) 18:47:38 ID:uRKpeFM0
クレクレ君キタ━━━━━━(゜∀゜)━━━━━━ !!

817 :名無し~3.EXE:2006/05/21(日) 22:02:52 ID:4F5U339Q
>>814
私も欲しいです。

818 :名無し~3.EXE:2006/05/21(日) 22:10:15 ID:CBxpeSLS
どうせCOM使うならBASP21でいいじゃん?

819 :名無し~3.EXE:2006/05/21(日) 22:18:00 ID:E+FDJhdX
JScriptで全半角変換関数を作ったことある

820 :名無し~3.EXE:2006/05/21(日) 22:51:29 ID:No48R6GO
BASP21でできるのにCOM作る意味もわからんが、
それを欲しがる奴はもっとわからんな。

作る方は自分好みの実装にするって意味もあるかも知れんが
貰う側にメリットはないだろ

821 :名無し~3.EXE:2006/05/22(月) 04:22:11 ID:K6qei0wB
わからんといいながら、
自分で作る理由いっちゃいましたよ?

> 作る方は自分好みの実装にするって意味もあるかも知れんが

822 :名無し~3.EXE:2006/05/22(月) 16:59:27 ID:2+8k0Izu
>>815
開発環境でActiveX DLLを作る。

823 :820:2006/05/22(月) 23:18:41 ID:EGrS542n
>>821
やっぱり理由ってそれしかないのかねぇ?
別にBASP21の実装は使いにくくないと思うんだけどな。
他に理由があるかもしれないから、わざわざわからんと断ってるんだ。

まあ、君がわざわざ2chで馬鹿晒す意味すら俺にはわからんしな。
書く方は自分がいいところに気がついたと思ったって意味もあるかも知れんが。

824 :名無し~3.EXE:2006/05/22(月) 23:21:18 ID:K3/Ueey0
すまんが、COMって何?

825 :820:2006/05/22(月) 23:23:27 ID:EGrS542n
次にお前は「ネタにマジレス…」と言う

826 :名無し~3.EXE:2006/05/22(月) 23:27:46 ID:18T6PAxQ
「会社の方針でフリーウエアは使っちゃダメといわれました」
なんじゃないの?

827 :名無し~3.EXE:2006/05/22(月) 23:32:04 ID:FnT0bWRE
Pro 版買ってもらうチャンス!

828 :名無し~3.EXE:2006/05/22(月) 23:44:20 ID:EGrS542n
>>826
それで、どこの誰とも知らん相手に貰うかな?
余計に怒られるような気がするけど。

貰った後で自分が作ったと言い張るつもりだった…とか?
管理者がアホだとフリーウェアでさえなければOKっていうところもあるのかなあ。
わかったような、わからんような。

829 :名無し~3.EXE:2006/05/23(火) 19:31:04 ID:cNK8cvLj
>828
簡単なチェックリストがあって、それに違反してなければ
無料有料問わず違法コピー以外はOKって会社なら知ってる。
チェックOKのソフトウェアが一覧表になっていて、
一覧表にないソフトをインストールする場合は自分でチェックして表に追加しておく。

・・・WinMXとWinnyがOKになってた時点で実態については察してくれって感じだが。

830 :名無し~3.EXE:2006/05/24(水) 08:34:10 ID:Zf9wuTCp
>>829
それなんて弊社?

831 :名無し~3.EXE:2006/05/24(水) 10:11:57 ID:s11mgY0o
弊社の意味分かってる?

832 :名無し~3.EXE:2006/05/24(水) 14:19:29 ID:GJzI9+zS
>>831
「お前の会社の話なんだろ?」という意味で言ってるんだろう。
2ch初心者か?

833 :名無し~3.EXE:2006/05/24(水) 17:11:43 ID:bk0LZXYC
2ch初心者! 出た!2ch初心者出た!得意技!
2ch初心者出た!2ch初心者! これ!2ch初心者出たよ〜〜!」


834 :名無し~3.EXE:2006/05/24(水) 20:13:09 ID:Zf9wuTCp
2chで、しかもネタの会話で正しい言葉遣いを求められたのは初めてだよw

835 :名無し~3.EXE:2006/05/24(水) 23:04:43 ID:WBm2nDgk
「それウチの会社の話じゃん!」ってネタで言ってるんだろ。
文盲なんだな。

836 :830:2006/05/24(水) 23:32:02 ID:Zf9wuTCp
ま、ネタだから別に通じなくても困らないんだけどな。
国語の勉強はそれぞれ自分でやるとして、WSHの話でもしようぜ。


837 :名無し~3.EXE:2006/05/24(水) 23:51:05 ID:8drhn4nk
ま、某M社から下請け各社に回ってるメールも大概だが。

・"Winny.exe"でHDD内を検索してください。
・"Winny2b71exe"でHDD内を検索してください。
・"btdownloadgui.exe"で(以下延々と続く
該当の実行ファイルが検出された場合は、対象ファイルを削除した上で
情報漏洩が無かったか自社の責任で調査すること。

838 :名無し~3.EXE:2006/05/25(木) 09:24:37 ID:AmAggYQE
必死でネタにしたがってる830に糞ワラタwww

弊社ってお前の会社って意味なんだwww
ヤバスギ

839 :名無し~3.EXE:2006/05/25(木) 10:09:33 ID:zCGEtdIx
へいしゃ 1 【弊社】

自分の会社をへりくだっていう語。


三省堂提供「大辞林 第二版」より

840 :名無し~3.EXE:2006/05/25(木) 14:50:21 ID:46xgRyk5
>>832がバカなんだろ

841 :830:2006/05/25(木) 19:23:11 ID:Uixyh3Sv
>>832は多分、>>829にとっての弊社って意味に深読みしたんだろう。
そういう意図は無かったが、まあネタだから別にそれでもいい。
当初の意図は>>835が読み取ってくれたようだね。

IDと名前で別の人と区別できるように気を遣ってたんだが、>>838にはわからなかったようだね。
ネタでもないのに、それなんて○○?なんて書き方は普通しないでしょ。
2ch以外で使う奴も普通いないし。

しかしまあ、弊社なんていう知っててあたりまえの単語で、そこまで得意になれるってのは羨ましいよ。
簡単に幸福になれる方が長生きできそうだしな。

842 :名無し~3.EXE:2006/05/25(木) 19:25:02 ID:s8bo8TbL
age

843 :名無し~3.EXE:2006/05/26(金) 09:39:59 ID:ve74jS/M
何れにせよ面白くも何とも無いネタである事は確か。


844 :名無し~3.EXE:2006/05/26(金) 10:11:52 ID:PdOKylR+
妙なツッコミ入れるからだろ
分からなきゃスルーしてればいいんだよ

845 :名無し~3.EXE:2006/05/26(金) 22:31:49 ID:LlZjYn4V
さあ、いい具合に荒れてまいりました。
>>832がバカなのは間違いないけど

846 :名無し~3.EXE:2006/05/26(金) 23:00:35 ID:QWWfWTQ+
えらい伸びてると思ったらこのザマかw

847 :名無し~3.EXE:2006/05/27(土) 19:59:54 ID:02AXE8Od
まあ、wsh 知らなくても生きていけるし。

848 :名無し~3.EXE:2006/05/27(土) 22:48:43 ID:UKrI+1cK
まあ、wsh 知らなくても生きていけるし。
>>832がバカなのは間違いないけど

849 :名無し~3.EXE:2006/05/29(月) 19:06:03 ID:yRwgcdC+
>>847-848
そんなあなたにScripting Guys
ttp://www.microsoft.com/japan/technet/scriptcenter/topics/beginner/firststeps.mspx

850 :名無し~3.EXE:2006/06/02(金) 23:33:19 ID:beZP5StJ
これって11氏?
ttp://www.atmarkit.co.jp/fwin2k/tutor/cformwsh01/cformwsh01_01.html

851 :名無し~3.EXE:2006/06/03(土) 02:15:23 ID:9ZA93N2Y
そうみたいだけど
PowerShellがそこまでってときになんでこんな連載?

852 :名無し~3.EXE:2006/06/03(土) 06:42:19 ID:UxDTx8s1
WScript.Echo "WSHマスターに俺はなる!"
ちょwwwww

853 :名無し~3.EXE:2006/06/03(土) 07:41:56 ID:b59r7PUR
謝礼はいくらぐらいもらえるのかな。

854 :名無し~3.EXE:2006/06/03(土) 09:52:12 ID:GtKpuZ4o
バッチとは違うのだよ!バッチとは!

次スレの1に追加したいw

855 :名無し~3.EXE:2006/06/06(火) 18:21:07 ID:GETR6u8/
文字列を右クリックしてtxtファイルに並び順を変えて
追記したいのですが上手くいかなくて困っています
A B C D→を右クリックで範囲選択してtxtファイルにB,A,D,Cと言った具合に追記していく
骨格だけでもご教授願えませんでしょうか

856 :名無し~3.EXE:2006/06/06(火) 18:39:40 ID:/IhLuXoh
骨格は君自身が示してるな
どこが巧く行かないんだ?

857 :名無し~3.EXE:2006/06/06(火) 21:37:43 ID:2ZFPFnut
Ctrl+Cをsendkey
IEをインスタンス化
about:blankにナビゲート
ビジーが終わるまで待つ
クリップボードから文字列取得
順番入れ換え
テキストファイルを開いて追記
テキストファイル閉じる
IE破棄

858 :名無し~3.EXE:2006/06/06(火) 23:28:38 ID:nE5SY1/N
> 文字列を右クリックして
何処で右クリックするのかくらい書けよ。

859 :名無し~3.EXE:2006/06/06(火) 23:47:35 ID:2iahu6Xd
>>858
中指だろ。そんなこといちいち聞くなよ。

860 :名無し~3.EXE:2006/06/07(水) 00:14:29 ID:3TaDGwD7
中指(・∀・)イイ!!

861 :名無し~3.EXE:2006/06/07(水) 09:07:57 ID:buMMqsjP
>>859
わろた

862 :名無し~3.EXE:2006/06/09(金) 15:25:48 ID:jh09TyhB
WSHでチェックボックスなウィンドウって無理ですか?
窓の手みたいなレジストリ設定を切替えるするスクリプトを作りたいんですけど。

ex)
Registry Customize
----------------------------------------------
NTFS LastAccessUpdate
○ Diable      ◎ Enable
NoDriveAutoRun
○ Diable      ◎ Enable
...
----------------------------------------------

863 :名無し~3.EXE:2006/06/09(金) 15:27:52 ID:zPFSDkht
つ HTA

864 :名無し~3.EXE:2006/06/12(月) 18:08:55 ID:fstc9Vll
862ってチェックボックスじゃないよな

865 :名無し~3.EXE:2006/06/13(火) 01:25:22 ID:1IbOwvVi
和田ラジヲ

866 :名無し~3.EXE:2006/06/13(火) 09:15:35 ID:OwcI+uu3
あげ

867 :名無し~3.EXE:2006/06/15(木) 05:50:25 ID:51bGC6fT
変数に格納されている文字列を元にした名前を持つグローバル関数を定義したいのですが
WSH ではグローバル変数・関数が集まっているオブジェクトって存在するのでしょうか?
(ブラウザでのJavaScript実行環境における window にあたるオブジェクト)

具体的には InternetExplorer のイベントを監視する為に
function observe(s, f) { window["InternetExplorer_On" + s] = f; }
のようなコードを書きたいのです。

Global オブジェクトかな、とも思ったのですが、うちの環境(Windows XP sp2)では
参照しようとするとエラーがでてしまいます。なんで…(´・ω・)
eval を使う手も考えましたが、実行されるのが関数の中なのでグローバルにできません…。

868 :名無し~3.EXE:2006/06/18(日) 17:45:11 ID:nXFI6xLf
壁紙変更のためにレジストリを変更した場合
それを再起動やログオフなしに反映させる方法はあるでしょうか?
WSHだけでできないなら、反映をシステムに通知する1行コマンドツールのようなものはないでしょうか

869 :名無し~3.EXE:2006/06/18(日) 18:53:42 ID:3sA6RFJK
>>868
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

870 :867:2006/06/18(日) 19:45:37 ID:33rS1xM2
>>867 の質問は、改めてプログラム板のWSHスレッドでしたいと思いますので、
こちらでは中止とさせて頂きます。ありがとうございました。

871 :868:2006/06/19(月) 22:47:39 ID:+Cvb6y1r
>>869
即答ありがとうございます!感謝です

872 :名無し~3.EXE:2006/06/19(月) 23:42:37 ID:+Cvb6y1r
壁紙は反映されますが、背景色は反映されないですね、、むむむ

873 :869:2006/06/20(火) 00:17:21 ID:75jg4yfP
一々実況しなくていいよ。

874 :名無し~3.EXE:2006/06/20(火) 07:51:59 ID:vza81Z/Q
>>872
>>869じゃ一部の反映しかされないんだよね。背景色はAPI Call使うアプリを呼び出す必要があると思う
簡単に1行コマンドではできないんじゃないかな(俺はしらないスマソ)

実際、画面のプロパティで変更して適用押した時も、壁紙だけだと即時反映なのに
背景色変えると「お待ちください」ウィンドウが表示されてちょっと待たされる。

>>873
普通に質問だろ、一々反応しなくていいよ。

875 :名無し~3.EXE:2006/06/20(火) 21:05:54 ID:K5vxRhP/
>>867
perl使いがよくこういうのやりたがるよな
evalとかExecuteでやるとローカルになっちゃうのが限界なんだろうな

876 :名無し~3.EXE:2006/06/25(日) 21:49:54 ID:cahcCqsB
hosyu


877 :名無し~3.EXE:2006/06/26(月) 13:58:16 ID:vdI3ypYa
わっしゅ

878 :名無し~3.EXE:2006/06/26(月) 17:47:42 ID:VBWAtc8c
当方 WindowsMe, WSH5.6

MSHTA.EXEって、渡されるHTAファイルのパスの解釈がおかしくね?
パス中にURLエンコードと解される文字列(*1)があったら勝手にデコードしやがる。
((*1) 正規表現で "%[0-9A-Fa-f]{2}"。)
URI的には"%68%6F%67%65"と"hoge"とは等価だが(RFC 3986)、Windows上のパスとしては別物だぞ。

例えば、C:\HTA\%30\内にある

<script>
window.alert("hello, world");
</script>

という内容のファイル"TEST.HTA"を起動しても、ウィンドウが開くだけで何もしない。
"C:\HTA\0\TEST.HTA"などというファイルは存在しないからだ。
ちなみに拡張子を"HTM"に替えれば期待通りに動く(アラートダイアログが出る)。

C:\HTA\内のHTAファイル"SUB%2F1.HTA"や"SUB%5C1.HTA"を起動しても
実際に実行されるのは"C:\HTA\SUB\1.HTA"という別のファイルだ(あればだが)。

これってかなりマズい仕様だと思うんだけど。

879 :名無し~3.EXE:2006/06/26(月) 18:33:49 ID:VBWAtc8c
URLデコードするだけじゃなくドットセグメントの解決も勝手に行っちゃうみたい。
"..%5CTEST.HTA"という名(普通こんな名前付けないけど)のHTAファイルを起動すると
実行されるのは親ディレクトリにあるTEST.HTAだわ(あれば)。

要するに、受け取ったパスをそのままの文字列として扱わず、URI正規化を行っている。

なんだかね。

880 :名無し~3.EXE:2006/06/27(火) 01:16:34 ID:pCqbtNY/
D:\desktop>echo %30%30.txt
%30%30.txt

D:\desktop>set 30=null

D:\desktop>echo %30%30.txt
null30.txt


881 :名無し~3.EXE:2006/06/27(火) 10:20:47 ID:9uFz862W
ΩΩ Ω な、なんだって〜!!

882 :名無し~3.EXE:2006/06/27(火) 16:50:28 ID:7znpOhej
D:\desktop>echo %path%
とか知らんのか?
バッチファイルで、%1 とか使わないのか?

883 :名無し~3.EXE:2006/06/27(火) 16:54:45 ID:7znpOhej
ごめん勘違い

884 :名無し~3.EXE:2006/06/27(火) 17:08:48 ID:EaC/9H5e
>>878-879の現象(URLデコード)と一見関係ありそうで実は全く関係のない
>>880のカキコ(環境変数の展開)が>>882の勘違いを誘発した、と

885 :名無し~3.EXE:2006/06/28(水) 22:45:02 ID:nZ9GEb0C
エンコードされた「%」(=25)をさらに延々とエンコードし続けて252525・・・・・・・ってなります
リネームしたらFilesコレクションに追加されてまた変換対象になってる感じのようですが
何かミスってるんでしょうか?

set fso = WScript.CreateObject("Scripting.FileSystemObject")
set sc = WScript.CreateObject("ScriptControl")
sc.Language = "JScript"
set js = sc.CodeObject
path = "○○○"
set TargetFolder = fso.GetFolder(path)
for each f in TargetFolder.Files
 newname = js.encodeURI(f.name)
 if f.name <> newname then
  f.name = newname
 end if
next



886 :884:2006/06/28(水) 23:32:28 ID:+WhutmJU
変換対象って言い方も変ですね(´・ω・`)
ループ制御の処理対象とかそんな感じで脳内変換お願いします

887 :○885 ×884:2006/06/28(水) 23:33:21 ID:+WhutmJU
(;´Д`)間違えた・・

888 :名無し~3.EXE:2006/06/28(水) 23:59:03 ID:3aY1FQa4
いったん配列にファイル名を全部コピーしておけばいいじゃない

889 :名無し~3.EXE:2006/06/29(木) 00:19:34 ID:D6ByTPP8
>>885
そのコードで c:\test\%%.txt が c:\test\%25%25.txt になる。
そのコード自体をループで呼び出してない?

890 :名無し~3.EXE:2006/06/29(木) 00:26:26 ID:AzkGGMVR
>>888
やっぱりそうするしかないですか。
一旦配列作るのもどうかなぁと思ったので。

>>889
いえ、>>885で書いたコードだけです。
他所から呼び出したりとかはしていません。

>>888-889
ありがとうございます。

891 :名無し~3.EXE:2006/06/29(木) 08:51:53 ID:/nkLmLh/
どうあれ、フォルダやファイル名に%は含めない方が無難っぽいな

892 :名無し~3.EXE:2006/06/30(金) 01:41:06 ID:OKZsW717
ファイルのタイムスタンプを修正するにはどうしたらよいでしょうか?

893 :名無し~3.EXE:2006/06/30(金) 06:28:47 ID:WoRjh8Gf
風の息づかいを感じるんだ

894 :名無し~3.EXE:2006/06/30(金) 07:00:31 ID:HTXuYEBJ
ファイルのタイムスタンプを修正出来るCOM使えば良いだけでは?
FSOもWMIも確か読みとりしか出来ないからな。

895 :名無し~3.EXE:2006/07/02(日) 13:16:11 ID:oGAYqwgO
スクリプトセンターによさげな記事があった

http://www.microsoft.com/japan/technet/community/columns/scripts/sg0305.mspx


896 :名無し~3.EXE:2006/07/03(月) 02:18:30 ID:f1Ov0nd0
「これが、Dsofile がッ非常に便利なツールとなっている理由です。」

誰かぬるぽでもしたのか?

897 :名無し~3.EXE:2006/07/03(月) 15:18:11 ID:W/nBSL5P
>>895
サンクス!勉強になった。
だが、しかしちょっと惜しい。

898 :名無し~3.EXE:2006/07/03(月) 17:53:32 ID:HA0W8UUv
>>896 ほんとにあった。自分は検索で見つけたけど、896さんよく見つけたね。

899 :名無し~3.EXE:2006/07/04(火) 05:31:33 ID:kcTgYLAF
WSHでウィザード形式のアプリは作れますか?
たとえば画面1で名前を入力して「次へ」
画面2でラジオボタンからオプションを選択して「次へ」みたいな
設定ファイルを対話形式で生成するスクリプトが簡単に作れればと思ったのですが

900 :名無し~3.EXE:2006/07/04(火) 06:49:46 ID:9vXtRmP9
むりぽ

901 :名無し~3.EXE:2006/07/04(火) 06:52:55 ID:R1OV0Shd
GUI作れるCOM(ScriptFormとか)を使うか、
GUI作れるインターフェイス(HTAとか)使う。

COM使うなら、そのCOMの解説を読めばいいし
HTA使うなら、html勉強して、どうしてもわからなければ
htmlスレやHTAスレに行けばいい。

またはInputBoxのみで強引にやるとかな。
「名前を入力」はそのままInputBoxで出来るし、
ラジオボタンみたいな選択的な部分は
Do
 blnLoop = False
 Select Case InputBox(Join(Array("1 選択A", "2 選択B", "3 選択C"), vbCrLf))
  Case "1" strResult = "選択A"
  Case "2" strResult = "選択B"
  Case "3" strResult = "選択B"
  Case Else blnLoop = True
 End Select
Loop While blnLoop
MsgBox strResult
こんな感じにするとかな。あとは2回目以降は、入力値が不正であったことをタイトルに表示するとか、
キャンセルが押されたら処理を中断するとか、いろいろ工夫すればいいし。

902 :名無し~3.EXE:2006/07/04(火) 13:09:38 ID:ZSFn+smI
俺の場合は、そういうことするときは、cscriptで実行して標準入力使ってる。

903 :名無し~3.EXE:2006/07/04(火) 13:14:38 ID:ZSFn+smI
(間違って書き込んでしまった。)

If InStr(LCase(WScript.FullName), "wscript") Then
WScript.CreateObject("WScript.Shell").Run "cscript //nologo """ & WScript.ScriptFullName & """"
WScript.Quit
End If

スクリプトの書き出しは こんな感じ。
進捗状況を確認するメッセージを出しながら進められるので、割と気に入ってる。

904 :名無し~3.EXE:2006/07/04(火) 20:40:49 ID:qjKN6McE
ADODBでグループに所属するメンバー一覧を取得するスクリプト書いてるんだけどさ、
1000人以上いるグループのメンバー一覧が取得できないんだ。
dsquery, dsgetでも1000人以上のメンバーを取得できないんだが、これはバグなんだろうか・・・。

ttp://www.mcse.ms/archive44-2004-8-996279.html
これを見つけてSize Limitを10000とかにしたけどダメだった。。。

誰か分かる人いたら教えてくれると助かる。おまいらに託す。

905 :名無し~3.EXE:2006/07/04(火) 21:26:05 ID:AJWvxpJv
>>904
とりあえず、今あるスクリプトをさらせ

906 :名無し~3.EXE:2006/07/05(水) 04:40:31 ID:98JKlN7p
WScript.ScriptFullName:スクリプトのフルパス
WScript.ScriptName  :スクリプトのファイル名
WScript.FullName    :exeのフルパス
WScript.Name      :「Windows Script Host」(←なんでexeのファイル名じゃないの・・)

907 :名無し~3.EXE:2006/07/05(水) 17:30:38 ID:bI35sznT
899です
素の状態で使えるのが魅力だったので
htaに行ってみようかと思います
返答ありがとうございました

908 :名無し~3.EXE:2006/07/06(木) 14:57:15 ID:3ILVbwlu
Dim x
x = "ただの人間に興味はありません。"
MsgBox x

909 :名無し~3.EXE:2006/07/06(木) 22:00:36 ID:mU6EnZnX
InputBox("ハルヒ?")

910 :名無し~3.EXE:2006/07/06(木) 23:10:03 ID:j4Ppvgq5
ゴゴゴゴゴ
 このスレにはエスパーいませんか?

APIってのを使いたいんです><
自分のAPIのイメージ→どっかからDLしてくるもしくは初めからついてる何かにこの町で

Cでインクルードってのやった気がするからたぶんそんなのを書く
え・・・?
本当に教えてください

911 :名無し~3.EXE:2006/07/06(木) 23:15:05 ID:j4Ppvgq5
  肝心なことを書き忘れましたが
 DeleteUrlCacheEntry
   というのw使いたかったんですYO(;;)

Option Explicit
Const ssfINTERNETCACHE = 32'shell:Cache
Dim ie
Dim sFolder
Dim FolderItem
Dim I
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")

Set ie=CreateObject("InternetExplorer.Application")
ie.Navigate2 ssfINTERNETCACHE
Do While ie.Busy Or ie.ReadyState<>4
WScript.Sleep 100
Loop
Do While InStr(ie.StatusText,"個のオブジェクト")=0
WScript.Sleep 100
Loop
Set sFolder=ie.Document.Folder

For Each FolderItem In sFolder.Items
FolderItem.InvokeVerb("削除(&D)")
Next
ie.Quit

912 :名無し~3.EXE:2006/07/06(木) 23:16:39 ID:j4Ppvgq5
ここまで書いた
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

913 :名無し~3.EXE:2006/07/06(木) 23:17:07 ID:l44C3G6g
>>1-10

914 :名無し~3.EXE:2006/07/06(木) 23:26:32 ID:MpSnJ/qW
他の言語で単機能exeつくるのが一番簡単。

915 :名無し~3.EXE:2006/07/07(金) 03:06:35 ID:+/g7KikI
【@IT】Microsoft MVPの牟田口大介さん「ただの人間に興味はありません。」
http://news20.2ch.net/test/read.cgi/news/1152176745/

916 :名無し~3.EXE:2006/07/07(金) 03:07:06 ID:+/g7KikI
メランコリック阿龍
http://etc3.2ch.net/test/read.cgi/charaneta2/1151852640/

917 :名無し~3.EXE:2006/07/07(金) 04:42:08 ID:eQp1noNN
        /´〉,、     | ̄|rヘ
  l、 ̄ ̄了〈_ノ<_/(^ーヵ L__」L/   ∧      /~7 /)
   二コ ,|     r三'_」    r--、 (/   /二~|/_/∠/
  /__」           _,,,ニコ〈  〈〉 / ̄ 」    /^ヽ、 /〉
  '´               (__,,,-ー''    ~~ ̄  ャー-、フ /´く//>
                                `ー-、__,|     ''
                    ,イ
                   / |
               ,r‐、λノ  ゙i、_,、ノゝ
              ゙l            ゙、_
              .j´   ヽ('A`)ノ    (.
              {     (  )      /
               )    ノ |    ,l~

918 :910:2006/07/07(金) 08:22:53 ID:+lpOSGdr
>>913 ie.ReadyState<>4?
>>914 短小エクゼ
>>917はマジでエスパー
>>910書くときにそのAA探しまくったけど しかみつからなかtrた
           ___
          ./    \
          .| ^   ^ |
          | .>ノ(、_, )ヽ、.| <あまり私を怒らせない方がいい
         __! ! -=ニ=- ノ!___  ので困ってた
    /´ ̄ ̄ .|\`ニニ´/    `ヽ
   {      .|__  ̄ ̄ヾ      }
   i;;',,,  r---イ     /|,、_,,  ,',;:',i
   .l;';',;,,  }  /;\     / ヽ / ,;,;;',;l
   .|;;',;,   } ./;;;,, \   / ;;;;;;ヽ ,,;;','i
   i;',,   / /;;,',';;  ノ--, ',',;;::',',゙i ,,';';i
   i;,';  /./,',',';;" /   \ ',',',;;,'i ,;',i
  /  / i 、  /    ヽ ',;::'、|  \
 ヽヽヽヾ丿  〈       ヽ''  {////
  ```` ト,   i        | 、 i´´´
      |',',;;  }        ! ',',;;i
      |,','、 /        ヽ',',','|
      !;;', /          !,',;,;'|

919 :911:2006/07/07(金) 10:23:53 ID:+lpOSGdr
すみません
 DeleteUrlCacheEntry
  ってのを使うやり方を教えてください
   これがないとクキー右クリックで消してるんです
        /´〉,、     | ̄|rヘ
  l、 ̄ ̄了〈_ノ<_/(^ーヵ L__」L/   ∧      /~7 /)
   二コ ,|     r三'_」    r--、 (/   /二~|/_/∠/
  /__」           _,,,ニコ〈  〈〉 / ̄ 」    /^ヽ、 /〉
  '´               (__,,,-ー''    ~~ ̄  ャー-、フ /´く//>
                                `ー-、__,|     ''
                    ,イ
                   / |
               ,r‐、λノ  ゙i、_,、ノゝ
              ゙l            ゙、_
              .j´   ヽ('A`)ノ    (.
              {     (  )      /
               )    ノ |    ,l~

920 :名無し~3.EXE:2006/07/07(金) 18:11:27 ID:LmwdXesp
>>915
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh02/cformwsh02_02.html だな
ワラタ

921 :名無し~3.EXE:2006/07/08(土) 16:07:37 ID:QT8W20XU
>>919
[DllImport( "wininet.dll" )]
private static extern bool DeleteUrlCacheEntry( IntPtr lpszUrlName );


922 :名無し~3.EXE:2006/07/08(土) 19:09:29 ID:beyK7iQE
>>921
ただただありがとう
              ゙l    感謝玉     ゙、_
              .j´   ヽ('A`)ノ    (.
              {     (  )      /
               )    ノ |    ,l~

923 :名無し~3.EXE:2006/07/08(土) 19:45:34 ID:CQEd4xMw
Win2000を使っているのですが、ADODBは普通に使えます。
しかし、アップデートすると使えなくなる、とかいう話を見掛けたのですが、本当でしょうか?
Server2003やXPでは普通に使えるのでしょうか?

924 :名無し~3.EXE:2006/07/08(土) 20:00:23 ID:2Z43z8uu
使えなくはならない。単に使用を禁止する設定がデフォになるだけ。
そのままでは使えないが、許可してやれば普通に使える。
詳しくは過去ログおよびGoogle参照。

925 :名無し~3.EXE:2006/07/09(日) 00:14:40 ID:Nr5NUyL+
IEで使えないフラグがレジストリに立つんじゃなかったか

926 :923:2006/07/09(日) 10:03:08 ID:qeI/sQrQ
>>924 >>925
どうも有り難うございます。
一応調べたんですが、実際に確かめることができない事もあり、完全にはわかりませんでした。

2003やXPでは「IEではオブジェクトの生成失敗ダイアログが出るけど、WSHでは全く問題なく使える」という事になっているのではないかと想像するのですが、そういう事でよろしいでしょうか?

927 :名無し~3.EXE:2006/07/09(日) 10:23:59 ID:jVpNoFRx
>>4の参考書籍、絶版になっている物が多いですね。
皆さん、勉強や調べ物はオンラインヘルプなどで済ませる事が多いのでしょうか?
でもVBScriptの本とJScriptの本は比較的新しくて評価もいい物があるみたいですね。

928 :名無し~3.EXE:2006/07/14(金) 02:45:42 ID:WVQ6tQhx
>>899
HTAでHTMLのvisibleを変更しながら動くようにすればできる
CSSとかの知識も少しは要るけど、そんなに難しくない

929 :名無し~3.EXE:2006/07/14(金) 02:50:24 ID:WVQ6tQhx
>>927
初心者から始めるのなら、VBScriptハッカーズプログラミングとかいうのがわかりやすいよ
あまり広い範囲はカバーされてないけど、この本を読んでから別の本を読むと読みやすい
最終的にJScript使うつもりでも概念をつかみやすいから一読の価値はある

でも付録のCDは役に立たないので古本で十分

930 :名無し~3.EXE:2006/07/14(金) 23:00:27 ID:JzpMQFPj
ijs.jsを完璧パクッてこんなの作っているんだが
http://d.hatena.ne.jp/rahAloe/20060713
括弧が閉じているか閉じていないか判別するisComplete関数がうまく作れん。
(2回以上のネストに耐えられない。)
正直こういうのつくるの初めてで知識がなす。
誰か構文解析やったことある人ヒントでいいいので教えて下さい。

931 :930:2006/07/15(土) 00:01:37 ID:JzpMQFPj
すまん。正規表現使って何とかできそうだ。


932 :名無し~3.EXE:2006/07/15(土) 00:25:04 ID:wr84mff/
PerlならともかくJavaScriptじゃ正規表現でネスト付き括弧の対応は表せないはず

933 :930:2006/07/15(土) 00:31:20 ID:DEK42adf
>>932
うん。できなかった。
でもなんとかルーチン作ってやってみたら完成しますた。
試してみてくださいな。
使い方は
http://www.geocities.jp/representation_space/imjs.js
こいつを落としてきてコマンドプロンプトで
> cscript \path\to\imjs.js
でいけるはず。

934 :930:2006/07/15(土) 00:53:37 ID:DEK42adf
何か要望あったら言ってくれるとありがたい。

935 :名無し~3.EXE:2006/07/15(土) 01:27:15 ID:wr84mff/
>>933
うちの環境だと、

js> var n = 10;
js> if (n == 10) {
Exception: '}' がありません。

となるけど、これで正しい動作?

936 :935:2006/07/15(土) 01:28:11 ID:wr84mff/
あっと、ごめ、勘違いでした。

937 :930:2006/07/15(土) 01:35:32 ID:DEK42adf
>>935
びっくりさせないで〜。

for文に対応させました。
具体的には
---
for( ) <Enter>
としても評価されないようになりました。

938 :930:2006/07/15(土) 01:39:46 ID:DEK42adf
あごめん
これダメだわ。

939 :名無し~3.EXE:2006/07/15(土) 01:40:24 ID:wr84mff/
一応つっこんでおくと
print("{");
で isComplete が false になるのはまずいかも。

あと、こっちも・・・まあ、こんなの書く方が悪いけど一応。
var n = 10; /* { */
var m = 20; // {

940 :名無し~3.EXE:2006/07/15(土) 01:45:27 ID:DEK42adf
938は気にしないで

>>939
そうか・・・そういえばそうだ。
うーん。考えてみます。
指摘ありがとうございます。

941 :名無し~3.EXE:2006/07/15(土) 01:46:17 ID:8XrEvf+s
>>933
これで何ができるの?

942 :名無し~3.EXE:2006/07/15(土) 01:48:23 ID:DEK42adf
>>941
インタラクティブにJScriptが使えます。
rhinoとかSpiderMonkeyとか使ったことある人向け。


943 :930:2006/07/15(土) 03:47:27 ID:DEK42adf
わからん。

944 :939:2006/07/15(土) 06:57:03 ID:wr84mff/
>>943
つっこんだままじゃ悪いので、括弧の対応を調べるクラスを作ってみましたよ。
http://www.dotup.org/uploda/www.dotup.org4100.txt.html
judgeBracket 関数を、このクラスを使うように書き換えてみたら、とりあえず動きましたのでどぞ。

一応、状態遷移でやってて>>939で書いたようなのでも、ちゃんと調べられます。各種括弧に対応。
あと nestCount メソッドで、現在のネストの深さが調べられるので、上手くすれば
"--- " っていう表示を "1-- " みたいにネストの深さ付きで表示できるかも。

ところで、入力内容の eval をメソッドのスコープの中でやっちゃうと var で変数を宣言しても使えないような。
var は癖になってるので、トップレベルのスコープで評価するようにしてもらえるとありがたいかも。かも。

945 :939:2006/07/15(土) 09:55:48 ID:wr84mff/
上のだと
js> if ("test".match(/"/)) {
みたいにリテラル正規表現パターンに " とか入ってるとエラーになっちゃうので修正しますた。
といっても、判定する前に正規表現パターンっぽいところを潰してるだけ。
http://www.dotup.org/uploda/www.dotup.org4104.txt.html

946 :930:2006/07/15(土) 10:08:03 ID:DEK42adf
>>944-945
うおおおおおおおおおおおおお。
マジありがとうございます。
ここで聞いてよかった。
色々コメントまでつけてもらって本当にありがとうございます。
でも、ちょっといま眠いのですぐには対応できんです。今日中にはするので〜。

よかったらブログにコメント残していってくださいな。
本当にありがとうございました。

947 :930:2006/07/15(土) 11:06:45 ID:DEK42adf
完成というか939さんのをそのままアップしました。
http://d.hatena.ne.jp/rahAloe/20060715

>>944
>ところで、入力内容の eval をメソッドのスコープの中でやっちゃうと var で変数を宣言しても使えないような。
>var は癖になってるので、トップレベルのスコープで評価するようにしてもらえるとありがたいかも。かも。

の部分は修正しておきました〜。
ていうか939さんレベル高すぎます。orz
解析しないと。
完成ソース。
http://www.geocities.jp/representation_space/imjsv3.js

でも
>"--- " っていう表示を "1-- " みたいにネストの深さ付きで表示できるかも。

っていうのはもう少し待ってください。orz

948 :名無し~3.EXE:2006/07/16(日) 10:02:22 ID:Xlm0I8M5
>>929
927です。レスありがとうございました。

949 :930:2006/07/17(月) 17:39:19 ID:QIEMxz0K
完成しました。(ネストレベルの表示を実装しました。)
http://www.geocities.jp/representation_space/imjs.js
使い方は
上のスクリプトをimjs.jsとでも名前をつけて保存。
コマンドプロンプトで
> cscript.exe imjs.js
で実行できます。

このスクリプトで何ができるの?
1.インタラクティブにJavaScript(JScript)がつかえます。
2.インタラクティブにWSHが使えます。
要するにJScript shellです。

950 :名無し~3.EXE:2006/07/17(月) 21:14:00 ID:qAyKly+7
インタラクティブって何?

951 :930:2006/07/17(月) 21:17:39 ID:QIEMxz0K
対話的に・・・。うーんいちいちエディタで書いて保存して実行しなくてもいいみたいな感じ?

952 :名無し~3.EXE:2006/07/17(月) 21:21:14 ID:06s9r265
初参加だわな
数日前にYAHOOの新バージョンになったがメールが送れない
YAHOOに確認したらノートンのセキュリティーが邪魔しているから
ノートンに確認しろだって
ふざけんじゃないぞー
YAHOO BB はあらゆる角度から検証してバージョンアップして
いるんじゃないんじゃ!!
勝手にバージョンアップして
あげくの果てPCが古いからとか、セキュリティーに問題ありだと
勝手にホザイテ
あらゆるサイトに書き込みしてヤルゾー

953 :名無し~3.EXE:2006/07/17(月) 21:45:22 ID:qAyKly+7
>>949
> cscript.exe imjs.js

1回実行するだけでいいですか?
PC起動のたびに毎回ですか?

954 :名無し~3.EXE:2006/07/17(月) 21:54:03 ID:QIEMxz0K
>>953
使いたいときに実行してください。

955 :名無し~3.EXE:2006/07/17(月) 21:57:43 ID:QIEMxz0K
あ。すみません意味がわかりました。
PC起動のたびに毎回です。環境設定等はしない単なるスクリプトなので。
なお
http://d.hatena.ne.jp/rahAloe/20060717
ここで実行ファイル(というかスクリプトを実行させるだけのexeファイル)形式でも配布しました

956 :名無し~3.EXE:2006/07/17(月) 22:55:17 ID:qAyKly+7
>>955
thx

さっそくhello worldやってみます

957 :名無し~3.EXE:2006/07/17(月) 23:17:18 ID:gtrHf7wd
昨年かな
HDD → 外付USB HDDへのバックアップ
を簡単なcscriptで作った

するとバックアップ先のファイルが時々消える
コピーの最中に、コピー先のフォルダが見えなくなることがある
でもコピーはし続けている

USB HDDの会社のサポートは、CSCRIPTなんてサポート対象外、添付のバックアップソフトかマウスでドラッグしろとしか言わない
他社のUSB HDDでも同様な事が起きた

cscriptでファイルのコピーしちゃいけないんですか?

958 :名無し~3.EXE:2006/07/17(月) 23:29:55 ID:kcVXC56W
cscript.exeにファイルをコピーするメソッドなんて有ったか?
普通はscrrun.dll(FileSystemObject)とか使うんじゃないの?

まあFSOの場合は普通なら、「FSOでコピーしちゃいけない」なんてことは無いが
USBみたいに不安定な接続使ってるなら避けた方が無難かも。

959 :名無し~3.EXE:2006/07/17(月) 23:46:26 ID:gtrHf7wd
>>958
あ、それそれ、FileSystemObjectと言うのを確か使った
MSのサイト見ながら作ったんだけどFileSystemObjectってCSCRIPTじゃないのか?

960 :名無し~3.EXE:2006/07/17(月) 23:50:12 ID:kXvAUYUa
cscript.exe はスクリプトを解釈して実行するだけ
実際にファイルを操作しているのは ActiveX/COM という仕様に従ってインターフェイスを公開している DLL

961 :名無し~3.EXE:2006/07/18(火) 03:27:40 ID:w0zawqD3
>957
ファイルが消えるってのは画面上から一時的に?
それともコピーしたはずのファイルがコピーされてない?

962 :名無し~3.EXE:2006/07/18(火) 04:04:48 ID:p2V5R6L7
>cscriptで作った
>FileSystemObjectってCSCRIPTじゃないのか
このへんの表現からして、ものすごい勘違いをしていると思んだがね

963 :930:2006/07/18(火) 07:55:28 ID:ZrS7lcyE
http://d.hatena.ne.jp/rahAloe/20060717
に追記加えたんだけど他にWSHでおもしろい例ってない?
ちなみに
shellApp.TileVertically();
はおすすめ。

964 :名無し~3.EXE:2006/07/18(火) 14:19:39 ID:/u/+5p1b
tabで予約語補完なんてできるとうれすい

965 :名無し~3.EXE:2006/07/18(火) 14:59:49 ID:BMTuuzRv
やっべインタプリタ楽しいなこれ

966 :名無し~3.EXE:2006/07/18(火) 18:47:12 ID:WcFv4TMH
HTA がいいよ。

967 :930:2006/07/18(火) 20:27:42 ID:ZrS7lcyE
>>964
ムズイ。つーか俺には無理。
bashのreadline使って実現するのが現実的だけどそれもムズイと思う。
rlwrapっていうソフトも一応あるけどアレは予約語補完はしてくれないし。

>>965
でしょでしょ。

>>966
HTAでインタープリタか〜。できるかも。

968 :名無し~3.EXE:2006/07/18(火) 20:49:01 ID:jG+XbGRb
>>964
そんなに長い予約語なんて無いでしょ

969 :930:2006/07/18(火) 20:54:12 ID:ZrS7lcyE
>>966
HTAよくわからなす。ていうかHTMLも実はよくわからなす。
一応作ったけどとても使いづらいものができた。orz
HTAわかるひとだれか作って。
WScript.StdIn.ReadLine
WScript.StdOut.Write[Line]
あたりを書き換えたら動きはした。あと気のせいかHTAにするとWSH使えなくね?

970 :964:2006/07/18(火) 21:05:00 ID:MFA7CkwB
xyzzyのshell-modeでごにょごにょして補完します。(´・ω・`)

971 :名無し~3.EXE:2006/07/18(火) 21:46:57 ID:7tMxRw/N
> あと気のせいかHTAにするとWSH使えなくね?

WSHってかWScriptオブジェクトを使えない。
Sleep()メソッドやEcho()メソッドが使えなくなる。

WScript.Shellとかなら大丈夫だけどね。ルートオブジェクトは無理。

972 :名無し~3.EXE:2006/07/19(水) 22:35:54 ID:9QMALXU3
2chの過去ログの最終書き込み日を取得する方法を教えてください。
やりたいことは、過去ログの勢い(総レス数」/日)を知りたいのですが、
その為には、スレ立て日時、最終書き込み日時、総レス数の3つの情報が必要です。

鯖URI( http://pc8.2ch.net/ )、板名( win )、スレ番号( 1100489339 )
を指定して、スレ立て日を計算し、総レス数を取得するところまでは出来たのですが
最終書き込み日時を取得する方法がどうしてもわかりません。
2chブラウザでdatを落として解析すれば解らないこともないのですが、JScriptのみで完結させたいのと、
ログを取得する前に勢いを調べたいので、2chブラウザなどを使ってdatを落とすのはNG。

●は持ってるので、JScriptで●ログインして、last-Modifiedを調べればとかも思いましたが
その方法自体解らないし、現行スレと違って、過去ログの場合last-Modified=最終書き込み日時とも限らないような気もするし。
とりあえずJScriptで●ログインする方法だけでもいいし、他の方法でもいいので
何かご存じの方が居りましたらどうか宜しくご教示ください。

973 :名無し~3.EXE:2006/07/19(水) 22:56:22 ID:AFYqMo3K
ttp://www.monazilla.org/document/kakocheck.html
今も使えるんかどうかは知らんが。

974 :名無し~3.EXE:2006/07/22(土) 15:36:17 ID:ECcFfIfP
質問です。
http://tomari.org/main/wsh/wsh.html
'単一フォルダの名前変更
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFolder "C:\FSO\Samples" , "C:\FSO\Scripts"
これを応用してフォルダ名のリネームスクリプトを作りたいのですが、
objFSO.MoveFolderの第2引数の生成でつまずいています。

第2に引数はフォルダ名を除いたパス名+整形フォルダ名で渡せばよいと思うのですが
このパス名はどうやれば取得可能でしょうか?

975 :名無し~3.EXE:2006/07/22(土) 16:02:05 ID:5TKTBjbD
>>974
その親となるパスを変数にしておけばよくない?

第一引数を利用するなら
objFSO.GetFolder("C:\FSO\Samples").ParentFolder.Path

976 :名無し~3.EXE:2006/07/22(土) 17:15:15 ID:ECcFfIfP
>>975
出来ました!ありがとうございます。

977 :名無し~3.EXE:2006/07/22(土) 17:21:36 ID:YUXOdd96
objFSO.GetFolder("C:\FSO\Samples").Name = "Scripts"
とか。

978 :名無し~3.EXE:2006/07/28(金) 22:28:49 ID:ucOL3nJF
ムダ口ばっか

979 :名無し~3.EXE:2006/07/29(土) 14:11:41 ID:6ay/4b0E
あるドメインユーザのログオンスクリプトを明示的に実行したいのですが
何かよい方法はないでしょうか。
ADSIでそのユーザを検索し、scriptPathからログオンスクリプトのパスを取得し
スクリプトファイルを直接実行するぐらいしか思いつかないんですが、
これでは真似ているだけで、本質的にログオンスクリプトを実行しているとは言えず、
もっとスマートな方法(たとえばRunLogonScriptメソッドがあるとか)とかないでしょうか。

980 :930:2006/07/29(土) 14:48:58 ID:d9wPSh9Y
>>970
それ何気にすごくね?

>>971
サンクス。そうかWScriptオブジェクトが使えないのか。
というわけで一応
WScript.CreateObject

new ActiveXObject
に変更しておきました。

981 :名無し~3.EXE:2006/07/30(日) 00:50:26 ID:Bg6jNaXI
ファイルの更新日時をWshで変更する方法ってある?
windows shellのModifyDateやFileSystemObjectでは読み取れても設定できないみたいだけど。

982 :名無し~3.EXE:2006/07/30(日) 06:14:58 ID:aYKMcaFq
次スレ立ったら誘導よろ。

983 :名無し~3.EXE:2006/08/01(火) 21:06:39 ID:lRTH5hAv
次スレまだー?

984 :名無し~3.EXE:2006/08/02(水) 03:44:13 ID:hvIGg3jU
>981
バイナリストリームに読み出してそのまま上書きで保存するとか。
ファイルサイズが大きいと無駄に時間がかかるが。

985 :名無し~3.EXE:2006/08/02(水) 09:03:41 ID:XRm4nR4V
それじゃ実行時のタイムスタンプにしか変更出来ないじゃん

986 :名無し~3.EXE:2006/08/02(水) 18:41:39 ID:MCheBk9Y
WScript.CreateObject("WScript.Shell").Run("touch.exe " + filename)

987 :名無し~3.EXE:2006/08/03(木) 01:42:39 ID:Ys4yoYi2
'touch' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

988 :名無し~3.EXE:2006/08/03(木) 09:03:59 ID:6T9Y8hkg
つ Cygwin

989 :名無し~3.EXE:2006/08/07(月) 05:04:54 ID:eSGg/lfm
このスレまだ落ちないのか

990 :名無し~3.EXE:2006/08/07(月) 07:35:16 ID:OQ7wW9nd
まだだ、まだ落ちんよ!

991 :名無し~3.EXE:2006/08/07(月) 14:52:10 ID:Cl92vfCF
CInt(True) = ?
CInt(False) = ?

992 :名無し~3.EXE:2006/08/08(火) 03:29:17 ID:kw9OBTUM


993 :名無し~3.EXE:2006/08/08(火) 03:53:32 ID:kw9OBTUM


994 :名無し~3.EXE:2006/08/08(火) 03:54:02 ID:kw9OBTUM


995 :名無し~3.EXE:2006/08/08(火) 03:54:33 ID:kw9OBTUM


996 :名無し~3.EXE:2006/08/08(火) 03:55:03 ID:kw9OBTUM


997 :名無し~3.EXE:2006/08/08(火) 03:55:35 ID:kw9OBTUM


998 :名無し~3.EXE:2006/08/08(火) 03:56:06 ID:kw9OBTUM


999 :名無し~3.EXE:2006/08/08(火) 03:56:36 ID:kw9OBTUM


1000 :名無し~3.EXE:2006/08/08(火) 03:57:07 ID:kw9OBTUM
1000なら最高!

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

284 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)