TClock Script Help

TClock2ch付属サイト…

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

お前ら、WindowsScripting使ってますか? Part3

1 名前:名無し~3.EXE:03/07/22 08:22 ID:mXvbxGuv
前スレ
#1 http://pc.2ch.net/test/read.cgi/win/1009175619/
#2 http://pc2.2ch.net/test/read.cgi/win/1022248379/
こんなことコンピュータにやらせろよ。そう思ったことはありませんか?
簡易的な実行環境も含めて普通の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-4も見てください。




2 名前:名無し~3.EXE:03/07/22 08:22 ID:ltGk05DV
 森山 直太朗  【さくら(独唱)】



                   サクラッ
   サクラッ       ヽ(゚∀゚ )ノ
          彡   (桜 )ヘ
   ヽ( ゚∀゚)ノ      <
     ( 桜)ヘ   彡
     <

3 名前:名無し~3.EXE:03/07/22 08:23 ID:mXvbxGuv
便利なリンク集(前スレまとめ)

WSH本体
http://www.microsoft.com/japan/msdn/scripting/default.asp
オンラインドキュメント
http://www.microsoft.com/japan/developer/library/default.asp?PP=/japan/developer/library/toc/script56/script560.xml&tocPath=script560&URL=/japan/developer/library/script56/vtoriMicrosoftWindowsScriptTechnologies.htm

オブジェクト内のメソッドプロパティがわからないときはVB、Officeがあるならオブジェクトブラウザを見ること。
持ってない人はOLE/COM Object Viewerを使う。
http://www.microsoft.com/com/resources/oleview.asp

WindowsXPには、コマンドラインツールとして、VBSファイルが結構あるみたいですね。
http://www.atmarkit.co.jp/fwin2k/xp_feature/013commandtool/commandtool.html
XPで追加・強化された、スクリプト関係の機能についてはこちら。
http://content.communities.msn.com/WindowsScript/windowsxp.msnw
ADSIの特集全文(?)が再掲されています。
http://www.galliver.co.jp/writing/nikkei_tokushu/wad002/index.html

Windows StartのWSH連載記事「Windows Scripter 2000」
http://www.netjoy.ne.jp/~tuya/RensaiHome.html

USERS Group過去ログ - WSH
http://www.users.gr.jp/ml/archive/wsh/

個人サイト
ttp://www.roy.hi-ho.ne.jp/mutaguchi/wsh/
ttp://member.nifty.ne.jp/aya/wsh/
ttp://www.hi-ho.ne.jp/tetsuzo/windows/wsh/

4 名前:名無し~3.EXE:03/07/22 08:24 ID:mXvbxGuv
コンポーネント関連リンク
外部コンポーネント(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/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/766/msdncompositedoc.xml

外部コンポーネント(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


5 名前:名無し~3.EXE:03/07/22 08:24 ID:mXvbxGuv
WSH(COM)参考書籍

「はじめてのWindows Scripting Host」 (株)アンク著 技術評論社
http://www2.gihyo.co.jp/books/bookinfo.asp?ID=327

「VBScriptポケットリファレンス」
http://www2.gihyo.co.jp/books/bookinfo.asp?ID=616

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

「Windows Scripting Host入門 with VBScript」 毎日コミュニケーションズ
http://book.mycom.co.jp/books/bookshelf/1998/09/win_sp/index.html

「WSHで楽しむWindows95/98/NT4.0版 ウィンドウズ・スクリプティング入門 VBScript編」 メディアテック出版

「WSHクイックリファレンス」 羽山博著 オライリー・ジャパン
http://www.oreilly.co.jp/BOOK/wsh/wsh.htm

「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


6 名前:名無し~3.EXE:03/07/22 08:35 ID:IiE/kLtw
中途半端なスレタイ

7 名前:名無し~3.EXE:03/07/22 08:45 ID:L02HH9Fr
Host

8 名前:名無し~3.EXE:03/07/22 09:28 ID:61ZaJMEh
何はともあれ乙 >>1


9 名前:名無し~3.EXE:03/07/22 10:12 ID:kJLa1zTg
.zip .cabファイルの圧縮展開はどうやればいいですか?
コマンドラインではなくCOMでやりたいのですが。

10 名前:名無し~3.EXE:03/07/22 10:17 ID:9WE9KdxJ
>1
結構参考にしているのでスレ立って良かった!

11 名前:前々スレ11:03/07/22 11:11 ID:jMrqRMix
今度こそゲット!

>3に追加してここもどうぞ。

Microsoft TechNet
http://www.microsoft.com/japan/technet/treeview/default.asp?url=/japan/technet/scriptcenter/default.asp

>>9
http://www.csdinc.co.jp/archiver/lib/activex/index.html
ここのActiveX DLLがWSHから使用できるはずです。

12 名前:名無し~3.EXE:03/07/22 11:28 ID:ss/Xn/fi
WindowsScriptingでぐぐると8件しか出てこない罠

13 名前:名無し~3.EXE:03/07/22 13:20 ID:b0tmSvvu
アクセスでデータベースのデザインビューの説明の項目を
取得したいのですが、どうすればいいでしょうか。

14 名前:9:03/07/22 13:35 ID:kJLa1zTg
>>11
できればOS標準の機能を使いたいのですが。

15 名前:名無し~3.EXE:03/07/22 14:13 ID:liBTLFvo
圧縮解凍ができるAPIとかあったっけ?

16 名前:11:03/07/22 14:17 ID:jMrqRMix
>>14
http://groups.google.com/groups?hl=ja&lr=&ie=UTF-8&inlang=ja&c2coff=1&selm=Oqs%24H3ioCHA.1636%40TK2MSFTNGP09
cabファイル作成なら、MakeCab.MakeCabというコンポーネントが使えるようです。
Win2000とXPのみらしいですが。
また、解凍ができるかどうかは調べてません。

WinXPにはzipファイルを作成する機能がOS標準で存在するので、
コンポーネントとして登録されているような気がしますがこれも未調査です。

http://groups.google.com/groups?hl=ja&lr=&ie=UTF-8&inlang=ja&c2coff=1&selm=3D7FDE08.CDA30007%40hydro.com
あまり関係ないですが、WMIを使ってファイルやフォルダに圧縮属性をつける方法が出てます。

17 名前:名無し~3.EXE:03/07/22 20:25 ID:wIvcYyB3
>>11 殿
11時11分 おみごと!

18 名前:名無し~3.EXE:03/07/22 21:13 ID:7n8zB16V
1)WSH(VBS)でIEで表示しているページを印刷させたいのですが、どのようにすれば良いでしょうか?

2)また、現在表示してるページの文字列(ソース)を取得するにはどうすれば良いでしょうか?

教えて君で申し訳ないのですが、このような情報をどうやって調べるかも教えていただければ助かります。
会社の仕事で、トップページを指定すると全てのリンクをたどって印刷する必要があるのです。
宜しくお願いします。

19 名前:13:03/07/22 22:04 ID:kSIjvv99
1。ExecWB でできますがなにか?
2。innertextとか。。

答えてあげたので、漏れの答えもキボン


20 名前:1様:03/07/22 23:01 ID:mXvbxGuv
>>18
2) の回答です。Windows2000で動作確認。
------------------------------------------
set http = createobject("msxml2.xmlhttp")
sURL = "http://www.microsoft.com/ms.htm"
http.open "GET",sURL,false
http.send
sHtml = http.responsetext
msgbox sHtml
------------------------------------------

>>このような情報をどうやって調べるか
臆せずに英語サイトを徘徊すれば、すぐに見つかります。
今回は「vbscript htm get source」でぐぐりましたよ。

21 名前:名無し~3.EXE:03/07/22 23:17 ID:HId2o3DK
確かそれってUnicodeだよね?

22 名前:1様:03/07/22 23:42 ID:mXvbxGuv
unicode でまずければ、自分でコンバータを用意するんじゃない?
このへんで。
<http://search.microsoft.com/search/results.aspx?View=msdn&st=a&s=2&c=4&qu=AscW>

23 名前:4864968:03/07/22 23:45 ID:K93L1mQj
http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=2120992&pid=871244846
http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=2120992&pid=871244826
http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=2120992&pid=871244709
http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=2120992&pid=871247214
http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=2120992&pid=871244751
http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=2120992&pid=871260844
http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=2120992&pid=871244834
http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=2120992&pid=871336660

24 名前:名無し~3.EXE:03/07/23 02:17 ID:dson7ACp
まずいとは言ってないけど…

25 名前:平民:03/07/23 23:05 ID:WKUX6Oxz
現在開いているIEのウインドウの右上の[X]が押されるのを認知してイベントを起こす方法、解る神様いらっしゃいませんか???

26 名前:名無し~3.EXE:03/07/24 00:57 ID:EyV/w3Us
>>25
ウインドウハンドルを監視する。
もしくは、IEをスクリプトから起動すれば、終了後になんらかの処理が可能。

言語に関係なく、アルゴリズムで悩んでるやつ多すぎ。

27 名前:名無し~3.EXE:03/07/24 01:37 ID:/V1ocjcw
Dim objIE
Set objIE = WScript.CreateObject("InternetExplorer.Application", "Event_")
objIE.Visible = True
objIE.GoHome()
Do
WScript.Sleep 100
Loop

Sub Event_OnQuit()
MsgBox "閉じるイベント"
End Sub


28 名前:平民:03/07/24 07:28 ID:YTx4JcSn
回答ありがとうございます。
回答いただいたスクリプトについてですが
これをIEのhtmソースに組み込む場合、Wscript.Sleepが使えないと思うのですが
どのようにしますか?

29 名前:27:03/07/25 01:37 ID:9cGWvKD0
htmlでやるのなら、シンプルにbodyタグのonUnload属性ではダメなの?
ページ切り替え時もイベント起きるけどね。

30 名前:平民:03/07/30 22:22 ID:g73wqP0y
結局それでやりました。age

31 名前:直リン:03/07/30 22:23 ID:25+DqMIw
http://homepage.mac.com/maki170001/

32 名前:名無し~3.EXE:03/07/31 10:15 ID:yBhq53DF
なんかインストの後しばらく使ってると、どこかが壊れてしまうのか
まともに機能しなくなって、ブラウザでサイト開いたときや
右クリックでスクリプト使うメニュー動かしたときにエラーがでるようになる。

その度に js56njp.exe や WindowsScript56JP.exe を当て直して
いちおうはエラーがでなくなるけど、ひと月くらいでまたおかしくなる。鬱…

33 名前:ぼるじょあ ◆ySd1dMH5Gk :03/08/02 05:25 ID:HUaFCpOt
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ

34 名前:名無し~3.EXE:03/08/03 23:35 ID:ygqtzpR5
未決あったんちょっと見逃した。悪い。解決したかもしれないが、とりあえずサンプルだけ書いとく。
>13
Const dbHiddenObject = 1
Const dbSystemObject = &H80000002

Set oFS = CreateObject("Scripting.FileSystemObject")
Set Application = CreateObject("Access.Application")
Application.OpenCurrentDatabase "C:\Documents and Settings\hogehoge\My Documents\toaru.mdb"
Set Database = Application.CurrentDb
For Each TableDef In Database.TableDefs
With TableDef
If ((.Attributes And dbSystemObject) Or (.Attributes And dbHiddenObject)) = 0 Then
sOutput = sOutput & .Name
On Error Resume Next
sOutput = sOutput & "/説明:" & .Properties("Description")
On Error GoTo 0
sOutput = sOutput & vbNewLine
End If
End With
Next
oFS.OpenTextFile("toaru.lst", 2, True).Write sOutput



35 名前:名無し~3.EXE:03/08/03 23:49 ID:1IR1sTSt
スクリプトにもかかわらずタイプ量が無駄に多いのはいかがなものか。

36 名前:名無し~3.EXE:03/08/04 01:32 ID:7MdLUjy5
これをCで書いたらどれくらいの長さになるもんだか…

37 名前:名無し~3.EXE:03/08/04 03:52 ID:1F2wXJ1g
>>35-36
たぶんどっちの言ってることも正しい(w
スクリプトといえど目的によってはそれなりのコーディング量になってしまうのであれば、
スクリプトの魅力は半減だし、いっぽうで、言語でコーディングすれば、
やっぱりそれなりのコーディング量になるわけで。

「こんなことできないかな」が、スクリプト数行でできてしまうのは、スクリプトの醍醐味だし、
7行プログラミングじゃないけど、短くて実用的なものが書けたときはスクリプト冥利に尽きるね。

38 名前:名無し~3.EXE:03/08/04 23:04 ID:rze7uNKQ
.chmファイルにキーワードを指定して開きたいんですが
コマンドライン引数の指定の仕方が分かりません。
どう指定すればいいですか?

39 名前:名無し~3.EXE:03/08/04 23:56 ID:NX0AWO+t
>>38
開いてから
SendKeys('%(NW){END}+{HOME}{DEL}KEYWORD{ENTER}');
で流し込めば?


40 名前:名無し~3.EXE:03/08/06 01:39 ID:juL7OMQg
>>38
hh.exeを前提としているのであれば、引数にキーワード指定はないので
コマンドラインからの実行は諦めるしかない。


41 名前:名無し~3.EXE:03/08/06 13:33 ID:MlhEuSBn
>>40
アプリはどうやってキーワードを渡してるんですか?

42 名前:13:03/08/06 20:59 ID:b2M0lgd/
>>34

ありがとう。

見捨てられてるかとオモターヨ。
なぜか、漏れのAccessでは、
テーブル名しか取得できなかった。

多分、Fields コレクション取得してないのが
原因だと思うのだが、どうすればイイ?

たびたびスマソ。

43 名前:名無し~3.EXE:03/08/07 00:19 ID:8c+b9D2f
>>41
HtmlHelpAPI

44 名前:名無し~3.EXE:03/08/07 00:43 ID:wAvDHHlR
>42
Ifブロック中の最後の方で
For Each Field In TableDef.Fields
sOutput = sOutput & "フィールド: " & Field.Name & vbNewLine
On Error Resume Next
sOutput = sOutput & "/説明:" & Field.Properties("Description") & vbNewLine
On Error GoTo 0
Next

動作は確かめてないけど、こんな感じで良いんじゃないのかな。
ここいらを詳しく知りたいときはDAOのオブジェクトモデルを調べること。

45 名前:42:03/08/07 15:39 ID:dRZ2D5+c
>>44

サンクス。

今度はうまく逝ったようだ。

> ここいらを詳しく知りたいときはDAOのオブジェクトモデルを調べること。

DAOならアヤたんとこで知ってたんだが、Accessのオブジェクトから
取得する方法は知らなんだ。

勉強になたーヨ。

46 名前:名無し~3.EXE:03/08/08 09:44 ID:krG258V7
ShellUIHelperのAutoScan メソッドの使い方
を教えてください。

47 名前:名無し~3.EXE:03/08/09 12:10 ID:ksFxcMI1
Win98/IE5.5sp2、WSH ver5.1を使ってます。
2chのお気に入りスレのログを定期的に保存するスクリプトを書こうと思っています。

2chサーバの場合、存在しないファイルにアクセスすると
404 Not Found でなく
302 Found と Location: ヘッダ等を返してきますが、
とりあえずVBScriptでこのようなものを書いてみて実行すると

---
Set xh = WScript.CreateObject("microsoft.xmlhttp")
xh.Open "HEAD", "http://pc2.2ch.net/hoge", False
xh.Send
Msgbox xh.Status
---

ステータスとして HTTP/1.1 302 Found を返してくれず、なぜか
Location で飛んだ先までアクセスして HTTP/1.1 200 OK を返してきてしまいます。
メソッドをHEADでなくGETにしても同じでした。

これは microsoft.xmlhttp の仕様なんでしょうか?
最初に返ってくるステータスを取得する方法はないでしょうか?
#basp21 の W3get なら戻り値を使うだけですぐできますが、
#なるべくそういった追加のソフトを使わないで実現したいのです…

48 名前:名無し~3.EXE:03/08/09 12:45 ID:/nGaS3A5
Jet4.0SP7 あげ。

MDAC 入れると XML perser のバグ入りも入ります(windowsupdate で修正可)。
ttp://www.microsoft.com/japan/msdn/data/default.asp

49 名前:名無し~3.EXE:03/08/09 20:41 ID:5n5ENv+G
そのパーサのバグってどんな内容ですか?

50 名前:名無し~3.EXE:03/08/09 23:39 ID:DmLS44QD
>46
ShellUIHelper::AutoScanなら板&スレ違い、APIかC++関係で聞いて下さい。
external.AutoScanメソッドならスクリプトがらみでこっちでも良いですけど。

>47
ウチの環境では取得できない場合、エラーが出る。(Win2k,IE6,WSH5.6,msxml3.dllのver8.30.9926.0)
だので想定の域を出ないのだが、Request-URIとContent-Locationを比較するってのは解決方法にはならないかな?

>48
MDACは修正効かない場合があるから逆じゃなくてよかった。

51 名前:47:03/08/10 01:41 ID:NdwTzMAI
>>50
レスどうもです。
GetAllResponseHeaders メソッドを使って Content-Location ヘッダを探すということですか?
しかしレスポンスヘッダには Content-Location が見当たらないようです…


っと、書きながら気づきましたが、datを落とすのだけが目的なら
Content-Type が text/plain(2chのdatファイルの形式) か
text/html(2chの302エラーページはほとんどこの形式?) かで判断できそうです。
しかし場当たり的で気持ち悪い。

52 名前:名無し~3.EXE:03/08/10 02:00 ID:EyDmO+/H
Perlでも導入してはどうです。
いろいろ出来ますし、他のOSに移行しても過去の資産が有効活用できます。

53 名前:46:03/08/10 10:09 ID:1vl5ww6v
>>50
> external.AutoScanメソッドならスクリプトがらみでこっちでも良いですけど。
オブジェクトとしては同じなので、そちらで結構です。
(前者がVBScript、後者がJavaScript)
よろしくお願いします。


54 名前:11:03/08/10 10:50 ID:/T1SkZv4
>>46>>50
ShellUIHelper::AutoScanのリファレンスはこちら。
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/external/reference/ifaces/ishelluihelper/ishelluihelper.asp

externalオブジェクトを経由するならこんな感じで使います。
(HTAはexternalオブジェクトにアクセスできないので、拡張子はhtmlにしてください)
<script language="vbscript">
external.AutoScan "2ch","",""
</script>

この例だと、www.2ch.co.jp→www.2ch.org→www.2ch.net→www.2ch.eduの順でWebサーバーへの
接続を試行します。最初に存在したドメインのindex.htmlに移動します。
(この例だと、www.2ch.net…じゃなかったりします)

実際の検索順は、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\UrlTemplateで
指定された順になります。日本語版IE6ではデフォルトでは上記のようになってます。

二つ目の引数は、ドメインが見つからなかった場合に表示するページのアドレスで、
指定しない場合はres://C:\WINNT\system32\shdoclc.dll/dnserror.htmになります。
また、三つ目の引数は、結果を表示するターゲットフレーム名です。

WSHから使うとしたらこうでしょうか。
Set UIHelper=WScript.CreateObject("Shell.UIHelper")
MsgBox UIHelper.AutoScan ("2ch","","")

ただし、まったく無意味ですねコレ。
というのも、WSHは、Webページを表示するためのコントロールを持ちませんから。
おそらく、使えても無意味なため、ShellUIHelperスクリプトリファレンスの方には
載ってないんでしょう。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/objects/shelluihelper/shelluihelper.asp

55 名前:11:03/08/10 11:21 ID:/T1SkZv4
>>47
私も>50さんと同じ環境なため、やはり同じくxh.Sendの時点で「アクセスが拒否されました」という
エラーになります。

でもエラーというのもおかしな挙動だなぁ。IEで接続する限りは、ちゃんと302を返すんですが。
ちなみに、ドキュメントが無い場合404を返すWebサーバーなら、問題なくxh.Statusに404が入ります。
302とXMLHTTPは相性が悪い(?)んですかね。

私は半ば諦めモードで、httpを扱うときはBASP21に頼ってます。

で、datを取得するという目的に限定するならこんなのはいかがでしょう。

たとえばhttp://servername.2ch.net/dat/threadkey.dat の生存を確認するには、
http://servername.2ch.net/test/read.cgi/bbsname/threadkey/1 をGET(これは必ずHTTP/1.1 200 OKを返す)して、
レスポンスに「そんな板orスレッドないです。」という文字列があれば、
threadkeyは存在しない。
「このスレッドは過去ログ倉庫に格納されています。」という文字列があれば、
threadkeyはdat落ち。
その他ならスレは生存している。

のように判別する手もあります。もちろん決してスマートではないですが。
(あと、人大杉の時も使えない手だな)

56 名前:48:03/08/10 11:24 ID:8qzH3XTz
Jet 入れたら walign を忘れずにね>Win98系使ってる方(オレモナー

>>49-50
ttp://www.microsoft.com/japan/technet/treeview/default.asp?url=/japan/technet/security/bulletin/ms02-008.asp

うちの環境(98SE + IE6SP1)では MDAC2.6SP2 入れたら起きました。

スレ違いで申し訳無いのですけど、MDAC を入れると、素の状態よりも
リソースが増える気がするのは漏れだけ?

57 名前:11:03/08/10 11:48 ID:/T1SkZv4
>55の補足ですが、2chのCGIを呼ぶときは、こちらのリクエストヘッダがデタラメだと、
容赦なく302を返してきます。
幸い、XMLHTTPはリクエストヘッダを省略時でもそこそこ適当に付けてくれるので、
デフォルトのままでも弾かれることは無いようですが。

GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
Host: 127.0.0.1
Connection: Keep-Alive

デフォルトではこんな感じです。User-AgentはsetRequestHeaderメソッドで上書きしない限り、
IEと同じになります。(.NET Framework 1.0に1.1を上書きしたのがバレますね)
IEのキャッシュに残ってればIf-Modified-Since:なんかも勝手に付けてくれます。

…それより、XMLHTTPが日本語テキストのレスポンスをまともに
デコードしてくれないという問題があることを忘れてた(w

58 名前:46:03/08/10 20:25 ID:1vl5ww6v
>>11さん

ありがとうございます。
いままでの疑問が氷解しました。

自分の場合は、.comのURLに飛ばされました。

いま応用とか考えていますが、IEのオブジェクト

(ShellWindowsやInternetExplorer.Application)

とかにこれを利用するには、どうすればいいでしょうか。

59 名前:名無し~3.EXE:03/08/11 23:47 ID:1tSxff8p
ダイヤルアップネットワークを制御することってWSHでできますか?
(接続したり、切断したり)

60 名前:名無し~3.EXE:03/08/12 00:12 ID:l2aZPl4c
バッチですら出来まっせ。

rasphone.exe

61 名前:59:03/08/12 00:13 ID:6yVB1Lxv
ttp://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list12.shtml
を発見。これを参考にして↓を書いてみました。Win98用。
---
Set Shell = WScript.CreateObject("Shell.Application")
For Each oItem In Shell.NameSpace(17).Items

If oItem.Name="ダイヤルアップ ネットワーク" Then
Set oFolder=oItem.GetFolder
For Each oSubItem In oFolder.Items
If oSubItem="接続/切断したいプロバイダの接続設定名をここに入力" Then
If oFolder.GetDetailsOf(oSubItem,3)="接続" Then
oSubItem.InvokeVerb "切断(&I)"
Else
oSubItem.InvokeVerb "接続(&O)"
End If
End If
Next
Exit For
End If

Next
---
ただこれだと、切断は一発ですが、接続の時にダイアログの「接続」ボタンを押す必要が…
もう少しがんばってみます。
失礼しました。

62 名前:59:03/08/12 00:16 ID:6yVB1Lxv
入れ違いになってしまいました。
>>60
windowsのフォルダ内にはそのファイルがありませんでした。


63 名前:59:03/08/12 00:19 ID:6yVB1Lxv
win98では
rundll32.exe rnaui.dll,RnaDial エントリ
とやるんですね…無知で恥ずかしい。

64 名前:59:03/08/12 00:30 ID:6yVB1Lxv
Else
oSubItem.InvokeVerb "接続(&O)"
End If
だったところを
Else
oSubItem.InvokeVerb "接続(&O)"
Wscript.sleep 1000
WshShell.AppActivate("接続")
Wscript.sleep 1000
WshShell.SendKeys "~"
End If
で解決ですね…スレ汚し失礼しました。

65 名前:名無し~3.EXE:03/08/21 23:56 ID:lcHR3fX/
見よう見まねでVBSをつかってますがWMIに突入しようとするといきなり訳わからなくなりますね・・・
やはりきちんとVBから勉強すべきなんでしょうか?
VB6.0とか.netとかありますけどどっちがいいですかね

66 名前:名無し~3.EXE:03/08/22 01:33 ID:yI6YAMhl
MS03-033 あげ
MDAC2.5-2.7 が影響を受けるそうです(2.8 は影響を受けない)。

67 名前:66:03/08/22 01:36 ID:yI6YAMhl
補足
ttp://www.microsoft.com/japan/technet/treeview/default.asp?url=/japan/technet/security/bulletin/MS03-033.asp

68 名前:名無し~3.EXE:03/08/22 01:56 ID:RzA3EqXB
.NET Framework標準搭載なLonghornがでたら
wshの位置付けってどうなるんだろ。
尻すぼみになるのかね。

69 名前:名無し~3.EXE:03/08/26 11:21 ID:X+6A2fwM
ショートカットのようにアプリ名、引数、ディレクトリを指定して
実行するにはどうすればいいですか?
WScript.ShellのExecやRunではディレクトリは指定できないようです。

70 名前:名無し~3.EXE:03/08/26 12:44 ID:GfNkexby
>>69
その起動したいアプリにはディレクトリ指定するオプションはないの?

71 名前:名無し~3.EXE:03/08/26 13:57 ID:5aize2cF
>69
全てを設定したショートカットを Run する

72 名前:名無し~3.EXE:03/08/27 13:04 ID:yp7pMq5n
71補足
ショートカットはスクリプトで作成可能
(WshShell オブジェクトのCreateShortCutでWshShortcutオブジェクトを生成し、WorkingDirectoryプロパティ等を設定)

73 名前:名無し~3.EXE:03/08/28 02:55 ID:/MDBk+o3
>>69
実行する前ににカレント ディレクトリを変えてあげれば良いのでは?

74 名前:名無し~3.EXE:03/08/30 09:02 ID:YVCpZKrK
VBSで、ある特定のフォルダの共有設定をしたりその設定を解除したり
みたいなことは可能でしょうか。
(フルアクセスかリードオンリーかというような細かいところも含めて)

75 名前:74:03/08/30 18:10 ID:4kf09Ugs
ヘルプファイルみたいなもの見つけて、「WSH ネットワーク管理者サンプル
スクリプト」って項目見てたら何だかそれっぽい解説がのってました。
ちょっとかじりついてみます。
失礼しました。

76 名前:名無し~3.EXE:03/09/03 15:02 ID:kMvLeho+
あと、DOSコマンドの NET SHARE を叩いてみるとか。
これはあんまり細かい設定はできないんだっけ。

77 名前:名無し~3.EXE:03/09/03 22:47 ID:7whhqdoj
難問ですが、IIS(ASP)のWEBに埋め込んだスクリプトから
Exchange(MAPI)にログオンして会議通知を出すことってできないでしょうか。
神様教えてください。

78 名前:名無し~3.EXE:03/09/05 00:10 ID:eLw6MIRp
埋め込みスクリプトじゃなくて、サーバーサイドのASPから
BASP21でも叩いて単純にメール発射するだけじゃだめ?

79 名前:77:03/09/08 20:19 ID:TxNAMb3v
あなたはBASPでMAPI操れるんですか。
そうでないとしたら、仕様要求が満たされてないです。
しかしなぜBASP?メールならIISの標準機能で間に合わせませんか?普通…

80 名前:名無し~3.EXE:03/09/08 23:44 ID:qIXb5KyB
WEBに埋め込んだスクリプトっていまいち意味がわからんけど、
MAPI.Session でぐぐればちょこちょこ出てくるやつとは違うのか?


81 名前:名無し~3.EXE:03/09/09 06:06 ID:lUwaCxNa
今まで焼いた動画を真空波動研に送り詳細コピー
ファイル名+焼き.txtを作り貼り付け、元の動画を削除
とやっていたんですがWSHで一発で出来ませんか?
よろしくお願いします

あとリネームスレでエディタを使った
一括リネームのスクリプトがあったので載せておきました
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=40

82 名前:名無し~3.EXE:03/09/14 02:22 ID:a9ZaT47+
>>81
一生手でやってろ。

83 名前:名無し~3.EXE:03/09/14 10:32 ID:8ZsOTXme
>81
ちょっとまじめに考える。まだスクリプトは作らんけどね。
また、現時点では作るか作らないかの判断も保留にさせていただく。
手始めに要求仕様の分解から。

>今まで焼いた動画を
これは、誰か管理しているの? 管理していないのだとすればカタログから作る必要がある。
現データがHDDにあるという前提で一対一の関係? フォルダ構成は同一? その中のファイル構成は漏れ・別焼き等は無い?
こういった場合には、よくボリュームラベルがIDに使われる。同一のボリュームラベルは無い?
現状のカタログデータに参列していない場合の追加と削除はどのように考える?

>ファイル名+焼き.txtを作り
スキーマはどうする? 特に指定が無ければMD5等のハッシュ、焼き先のフルネーム、更新日時が加算されたカタログを作成することになるだろう。
真空波動研というアプリがどういったスキーマを生じるさせるのか? 全てを列記する必要がある。
一対一の対応で無い場合の処理は?
また、こういった場合自分はXMLで定義するのが好き。上記程度は必須でいいけど
それ以上細かい打ち合わせしなくても大抵の場合先方で加工できるからね。

>元の動画を削除
同様に一対一の対応で無い場合の処理は?

ぱっと見考えられるのはこのぐらいかな。ルーチンワークといっても手作業と言えるところは全てチェックする。
またこういうものは択一化したほうが後で整理されていて見やすいと思えるから、できれば作業も固定してこれだと言えるやり方をもっておく。


84 名前:名無し~3.EXE:03/09/14 12:43 ID:8B6V447O
DExploreをスクリプトから操作したいんですが、
スクリプトが終了すると作成したDExploreも終了してしまいます。
これをIEのようにスクリプトが終了しても作成したプロセスが残るようにする方法はあるんでしょうか?

85 名前:名無し~3.EXE:03/09/14 20:51 ID:LY4vb1Qy
>>83
小難しく考えすぎな気が。スクリプトなんだからこの程度じゃ駄目?
yakizumi.js とかで保存して動画ファイルをD&D。
消した動画ファイルはゴミ箱に入らない無いので注意。

var Shell = WScript.CreateObject( "WScript.Shell" );
var Argu = WScript.Arguments;
var Fso = new ActiveXObject("Scripting.FileSystemObject");
var IE = new ActiveXObject("InternetExplorer.Application")
IE.Navigate("about:blank");

for ( var i = 0; i < Argu.length; i++ ) {
var target = Argu.Item(i);
Shell.Exec( "C:\\temp\\sinkuhadouken\\SinkuHadouken.exe " + target );
WScript.Sleep(800);
Shell.Sendkeys( "^c" ); WScript.Sleep(100);
Shell.Sendkeys( "%{F4}" ); WScript.Sleep(100);
var data = IE.Document.frames.clipboardData;
var file = Fso.CreateTextFile( target + "_焼き.txt" );
file.WriteLine( data.getData("text") );
file.Close();
Fso.DeleteFile(target);
}

86 名前:83:03/09/15 09:48 ID:vBMxDNYv
>84
確認するけどDExplorerってMicrosoft Document Explorerの事だよね。
Runメソッドでそんな振る舞いをするの? ウチでは普通に起動するのだが、別の操作方法があるか、そもそも別物?
解答ではなくすまないが、.NETでWSH Helpクン見たいな事ができないか模索しているとこなので。

>85
おお、すまねっス。
風呂敷広げすぎて、下手したら今週か来週の休日半日ぐらい潰すとこだった。
多分そこまで要求していないとは思ったけど、使い方が分からない以上必要十分を満たすまでは提示して無いと。
OLSで前出で言った感じ+サムネール機能まで備えたものとかがありそうな気もするし。
徒労はたいした事ではないが、再発明はコストかかり過ぎと思えたので。

87 名前:名無し~3.EXE:03/09/17 10:16 ID:/NLoFkkS
>>85
ありがd。ラクチンでよいですね

しかし、手動では取得できるんですが
ファイルによって必ず「ファイルのオープンに失敗」になります
多分真空波動研側の問題っぽいですけど

88 名前:名無し~3.EXE:03/09/17 23:05 ID:d7ZBtWRC
>>87
ファイル名やディレクトリ名にスペースが含まれているとか。

Shell.Exec( "C:\\temp\\sinkuhadouken\\SinkuHadouken.exe " + target );
↓変更
Shell.Exec( "C:\\temp\\sinkuhadouken\\SinkuHadouken.exe " + "\"" + target + "\"" );

89 名前:名無し~3.EXE:03/09/17 23:06 ID:d7ZBtWRC
sage忘れた…回切首升。

90 名前:名無し~3.EXE:03/09/19 10:33 ID:jYVZqxOM
同じ環境で(ハードウェア構成のみ違う)片方だけWSHでエラーが出ます。
エラーは
行 20
文字 1
エラー 0x80041013
コード 80041013
ソース (null)
で、スクリプトは(上12行は改行エラーに引っかかるので削って有ります)
SamurizeDir = "C:\progra~1\Samurize"

'---- これ以降は恐らく触らないように
Dim WshShell

Set WshShell = CreateObject("WScript.Shell")

for each Process in GetObject("winmgmts:").InstancesOf ("win32_process")
if Process.name = "Client.exe" then
Process.Terminate()
end if
next

WshShell.run chr(34) & SamurizeDir & "\Client.exe" & chr(34)
です。
WSHも最新版入れてみたんですけど駄目でした。
片方は正常に動作してるんですけどもなぜでしょうか?
XPSP1a

91 名前:名無し~3.EXE:03/09/19 12:59 ID:YbfJ695c
そのエラーはWMIのライブラリがおかしいか、In-proc-providerがregsvrされていないか
どちらにせよXPだと外部コンポーネントでは無いので直すのはきつそうだね。


92 名前:名無し~3.EXE:03/09/21 02:18 ID:6/vZ8kKX
win98のペイントに SendKeys を使って
起動/変形(I)/キャンパスの色とサイズ(A)/ の
ダイアログを開くところまでの .vbs を書きました。
このあとダイアログ内の幅・高さの値として
それぞれの枠内へ共に 16 を打ち込ませる記述の仕方を教えて下さ。

93 名前:名無し~3.EXE:03/09/21 02:51 ID:Hyh0GkZT
>>92
{TAB}

94 名前:名無し~3.EXE:03/09/21 11:23 ID:45wJ62Te
>>81のエディタを使った一括リネームスクリプトをjsで書き直しつつ改造してみた。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=41

大文字<>小文字の変換、ファイル名の相互変換が可能なあたりが
改造ポイントだったんだけど、書いてる内にドンドン長くなって収拾つかなくなった…
最初によく考えてから作らな駄目ね。

95 名前:90:03/09/21 18:22 ID:zUh2oDNn
>91
ありがとうございました。SP2出たら再インスコします。
他に特に不具合無いですし、dll書き換えしてあるから面倒なので。
その間に解決法もう少し探してみます。 

96 名前:名無し~3.EXE:03/09/24 01:03 ID:1oDMEKKm
wsfファイルに

<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>
<job id="hoge">
<script language="JScript">
for(i = 0 ; i < 10 ; i++) {
WScript.Echo("hoge");
}
</script>
</job>

これを実行すると「temp.wsf(4, 17) Windows Script Host: 適切な名前を指定してください。」とエラー。
なんでだろ?
ちなみに一行目のxml宣言を消去するとエラーが出ません。

97 名前:名無し~3.EXE:03/09/24 01:06 ID:iFxw9luN
<![CDATA[

]]>

98 名前:名無し~3.EXE:03/09/24 01:10 ID:1oDMEKKm
>>97
即レスサンクス。
; って実体参照に変換されてしまうんでしたっけ。

99 名前: ◆aiko2Ox.8g :03/09/24 03:39 ID:wHaOswjZ
たしか参照実態になると思う。

100 名前:名無し~3.EXE:03/09/24 09:10 ID:1oDMEKKm
あ、< が使えないんだった・・・。
< にすればいいのか。

101 名前:名無し~3.EXE:03/09/24 09:22 ID:1oDMEKKm
>>100 後者は &lt; です。

102 名前:名無し~3.EXE:03/09/24 13:36 ID:ZGxymplv
ドキュメントの嘘ハケーン
InputBoxでキャンセルを押すと""(空文字列)が返ると書いてあるが
返るのは未定義値じゃないか。

103 名前:名無し~3.EXE:03/09/24 22:47 ID:PLBE2AqK
>102
MsgBox TypeName(InputBox(""))
OK      →String
キャンセル→Empty
当方Win2kWSH5.6


104 名前:103:03/09/24 22:58 ID:PLBE2AqK
あ、TypeName(vbNullString)もTypeName("")もStringだった。
疑って失礼。それで桶。


105 名前:102:03/09/24 22:58 ID:1oDMEKKm
>>103
EmptyってJScriptでいうundefinedですよね?
JScript側でその変数を受けるとundefinedになるもんで。

106 名前:教えて君:03/09/24 23:36 ID:t9Wfbtkd
皆様の足元にも及ばない、まるで教えて君で申し訳ないのですが
パスワードの設定に関して妥当性を正規表現で評価する方法を探しています。
もし皆様のなかで優れた方法をご存知でしたら、教えてください。
VBSで評価しようとしています。(お恥ずかしい話です)
条件は色々あると思いますが、私が想定しているのは
-8文字以上
-14文字以下
-アルファベット(大文字小文字)どこにあってもよく各1文字以上
-数字 どこにあってもよく各1文字以上
で作られていることです。

107 名前:名無し~3.EXE:03/09/25 14:32 ID:jtvQuq5F
http://pc2.2ch.net/test/read.cgi/tech/1062152374/130-132


108 名前:名無し~3.EXE:03/10/02 17:26 ID:GMdrafYJ
おい藻舞等!

\Program files\ディレクトリ内にあるアプリを4つほど一定間隔(2,3秒)あけて実行するようなスクリプトってどういう記述なのか教えてください。
おねがいします。

109 名前:名無し~3.EXE:03/10/02 17:48 ID:ydnykN2R
var exeList = ["exe1","exe2","exe3","exe4"];
var path = "略\\Program files\\";
var w = WScript;
var wsh = w.createObject("WScript.Shell");
for(var i = 0; i < exeList.length; i++) {
wsh.run(path + exeList[i]);
w.sleep(2500);
}

110 名前:名無し~3.EXE:03/10/05 00:21 ID:UjFj5wuS
92>>93
ありがとうございます。
WshShell.SendKeys "^e1{TAB}1{ENTER}^vy" として
起動・キャンバスサイズ調整・貼付までを以前より随分楽できるようになりました。

111 名前:名無し~3.EXE:03/10/05 15:04 ID:OL3S5a/m
WSHでメッセージダイアログを常に最前面に表示する方法ってありますか?

112 名前:名無し~3.EXE:03/10/06 23:49 ID:wyQwr0PS
shell = new ActiveXObject('WScript.Shell');
shell.Popup('Message', 0, 'Title', 0x40000);
とか
MsgBox "Message", &H40000, "Title"
とか。

113 名前:111:03/10/10 01:14 ID:XYjFDDZh
>>112
レス遅くなってすみません。

Popupメソッドにそういうのがあったなんて知りませんでした。
出来ました〜ありがとうございます。



114 名前:名無し~3.EXE:03/10/17 08:54 ID:5nmvnQOT
WSHで現在のCPU使用率と
送受信の速度と物理メモリ残量、
アクティブタイトルウィンドウの名前を
テキストファイルに吐き出させるのって
どういう記述なのですか?
教えておながい。
携帯にこれらの情報をメールで送りたいのです。

115 名前:名無し~3.EXE:03/10/17 23:00 ID:NiOh3LHO
>114
上の3つは解説尻侍のページに載ってるけど、タイトルの名前だけはいかんともし難い。APIが使える言語で取得するのがお勧め。

116 名前:名無し~3.EXE:03/10/18 01:43 ID:vXBochA+
Windows のメモ帳が
いつも同じウインドウの位置とサイズで起動するような VBS ください。

117 名前:名無し~3.EXE:03/10/18 05:53 ID:R4zSi0xK
>>114
立ち上げているアプリケーションが決まっていて、その中から選択して確認するので
あれば、AppActivateを工夫して使えば何とか出来そうな気がしますが如何でしょうか?

あと、ActivePerlならWin32APIにアクセスできるけど、どうでしょうか?
参考までにhttp://plaza27.mbn.or.jp/~satomii/jdoc/ActivePerl/lib/Pod/Win32.htmlを読んでみるとよいかも。


118 名前:114:03/10/18 08:57 ID:qyKObo/h
>115
>117
レスサンクス。最近ActivePerl入れたばかりなので
頑張ってみるっす。ありがとうございました。


119 名前:114:03/10/20 22:15 ID:znpZc9CR
dim objWMI, objProcess, strProcessesSize

Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}")
Set objProcess = objWMI.InstancesOf("Win32_process")

For each Process in objProcess
strProcessesSize = strAllProcesses & Process.WorkingSetSize & vbcrlf
Next

Set Fs = WScript.CreateObject("Scripting.FileSystemObject")
Set ts = Fs.OpenTextFile("mem.txt",8,1,0)
ts.Write Date & " " & TIME & vbCrLf & strProcessesSize

これでメモリ使用量を取得できたんだけども
これだとプロセスごとのメモリサイズがByteで表示されてしまう。
プロセスごとではなく合計のメモリ使用量をMB換算で得るには
どう書けばいいんですか?


120 名前:名無し~3.EXE:03/10/21 01:10 ID:2yrhp+1q
>>119
足して割れば?

121 名前:名無し~3.EXE:03/10/21 19:47 ID:3JpVx+Zc
>>119
win2k、xp限定、利用可能な物理メモリ量だけど
Win32_processじゃなくてWin32_PerfRawData_PerfOS_Memoryを使い
AvailableMBytesでMB単位で取得できます。

あとbyte単位だけど、Win32_OperatingSystemで
TotalVisibleMemorySizeからFreePhysicalMemoryというのはどうでしょう。
MBが良ければ割ればいいし。

122 名前:114:03/10/21 20:04 ID:oL/Yjexx
svr = "localhost"
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer (svr, "root/cimv2")
strOSQuery = "Select * from Win32_OperatingSystem"
set objOS = objService.ExecQuery(strOSQuery)
for each machine in objOS
Set Fs = WScript.CreateObject("Scripting.FileSystemObject")
Set ts = Fs.OpenTextFile("memory.txt",8,1,0)
ts.WriteLine FormatNumber(machine.FreePhysicalMemory / 1024,0) & "MB"
next
これで表示することができーたよ
ありがとう。あとは送受信の速度だけだ。
アクティブタイトルウィンドウはもういいや

123 名前:121:03/10/21 20:48 ID:3JpVx+Zc
>122
出来たみたいなので今更だけど>121の修正。
× あとbyte単位だけど、
○ あとkilobyte単位だけど、

× TotalVisibleMemorySizeからFreePhysicalMemoryというのはどうでしょう。
○ TotalVisibleMemorySizeからFreePhysicalMemoryを引くというのはどうでしょう。

124 名前:名無し~3.EXE:03/10/22 00:08 ID:UDOmLW+j
固定長のファイルを開いて特定の位置を参照しに行って
そのフィールドの内容が変わったらその内容をファイル
名として保存。
を出来なくなるまで繰り返すと言う構文を誰か作ってくれませんか?


125 名前:名無し~3.EXE:03/10/22 00:13 ID:Sk6axIvV
データの置き換えをしたいのですが、
バイナリファイルを書き換えるスクリプトの書き方がわかりません。


126 名前:名無し~3.EXE:03/10/22 12:44 ID:GwH1gVPa
>>122
お昼休みに時間が空いたので
WSHからアクティブウィンドウのタイトルを取得できるCOMコンポーネントを作ってみた。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=44&fi=no

ちなみにPerlでやると↓これで終わり。
#!/usr/bin/perl

use Win32::GuiTest qw(
GetForegroundWindow
GetWindowText
);

print GetWindowText(GetForegroundWindow());

127 名前:名無し~3.EXE:03/10/22 12:49 ID:gbJcXGbD
おまいらこの分野で飯くっていけるんじゃね?

128 名前:114:03/10/22 22:11 ID:7N37iGyL
>>126
取得できたー
お昼休みにつくれちゃうんだ。すげぇ
ぐぐってた時間より短いかも。
ありがd
COMコンポーネントっつーのは便利だね
また一歩前進しますた

129 名前:124:03/10/24 00:28 ID:4F38giwl
>>11さん

例えば 

aaa123ffaaabbb
aaa123ffaaabbb
aaa124ffaaabbb
aaa124ffaaabbb
aaa125ffaaabbb

と言うテキストファイルが有った場合、
4バイト目から3バイトと指定すると上から2レコードを[123]
3・4レコードを[124]、5レコード目を[125]と言うファイル名で
分割保存する構文を作って頂けないでしょうか・・・


130 名前:名無し~3.EXE:03/10/24 13:13 ID:aQiPIRxb
>>129
こんな感じか。元ファイルはソートされていると仮定、
且つ「4バイトから3バイト」じゃなくて「4文字目から3文字」だけど。

var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var inFile = fso.OpenTextFile( "inFile.txt", 1 );
var line, oword, nword, outFile; oword = "";
while ( line = inFile.ReadLine() ) {
if ( oword != ( nword = line.substr( 3, 3 )) ) {
if ( oword != "" ) { outFile.Close(); }
outFile = fso.CreateTextFile( nword );
oword = nword;
}
outFile.WriteLine( line );
}
inFile.Close();

131 名前:130:03/10/24 13:29 ID:aQiPIRxb
>>130 ループ失敗。
while ( !inFile.AtEndOfStream ) {
line = inFile.ReadLine();

132 名前:名無し~3.EXE:03/10/24 23:59 ID:R+rlcIk6
http://www.emeditor.com/jp/v4.htm
次期バージョンのEmEditorがマクロ機能にWSHを利用。

少し面白いことになりそうかも?

133 名前:名無し~3.EXE:03/10/25 01:01 ID:HrqsxY5Q
>>132
WSHマクロの記録機能を持ったエディタって他にもあるんですか?

134 名前:名無し~3.EXE:03/10/25 01:40 ID:sXzppNsu
>>133
サクラがそうだったような

135 名前:名無し~3.EXE:03/10/25 21:38 ID:Hw2+CnR3
>>130
ありがとう!神様

136 名前:名無し~3.EXE:03/10/25 22:23 ID:UGZkVwHC
WMIの情報ってまとまってどっかにありますか?
普段見てるところとか。
英語かなーやっぱり。


137 名前:名無し~3.EXE:03/10/25 23:31 ID:W3zYBTM0
>>136
なんだかんだ言ってもMSDNかな。
WMI スクリプト入門
http://www.microsoft.com/japan/msdn/columns/scripting/scripting06112002.asp
このページは1部だけど、2部もある。
ページの下の方にリンクがある他のコラムも役に立つ。

リファレンスとかは英語しかないけど
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_reference.asp?frame=true

138 名前:名無し~3.EXE:03/10/26 00:14 ID:NNG1rQuw
wshって何て読むの?

139 名前:名無し~3.EXE:03/10/26 00:52 ID:DFi2wPBH
うしゅ

140 名前:_:03/10/26 00:53 ID:1w01ydiz
>138
windowsのヘルプに訊いてみれ

141 名前:名無し~3.EXE:03/10/26 05:05 ID:aZPN4Wwk
テキストファイルの最後の行だけ書き出すってどうすればいいんですか?
winampのプラグインに現在演奏中の曲情報をテキスト書き出すやつがあるんですけど、
新しい曲の情報は前の曲の情報が書かれている次の行に書かれてしまうので、
演奏中の曲の情報は常に最後の行にあるのでつ。
Option Explicit
Const ForReading = 1
Dim objFS, objTS
Dim strLine
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
Set objTS = objFS.OpenTextFile("C:\songs.txt", ForReading)
strLine = objTS.ReadLine
Set objTS = objFS.OpenTextFile("playlist.txt",2,1,0)
objTS.Write strLine
これだと最初の行、つまり一番古い情報しかとりだせない。ヽ(`Д´)ノウワァァン
お前ら、教えてつかーさい。おながい。

142 名前:名無し~3.EXE:03/10/26 05:48 ID:V/IhCthU
Do Until objTS.AtEndOfStream = True
strLine = objTS.ReadLine
Loop

143 名前:名無し~3.EXE:03/10/26 06:00 ID:aZPN4Wwk
>>142
なるほど。無事できました。
ありがとうございました。

144 名前:129:03/10/26 21:06 ID:OjBserzL
>>130-131

ちょこっと勉強して、basic言語の方(拡張子.vbsの方)
で作ってみました

dim fs
dim inFile
dim outFile
dim line
dim oword
dim nword
oword=""
set fs=WScript.createobject("scripting.filesystemobject")
set inFile=fs.OpenTextFile("test.txt",1)
do until inFile.AtEndOfStream
line=inFile.ReadLine()
nword=mid(line,4,3)
if oword <> nword then
if oword <> "" then
outFile.Close()
end if
set outFile=fs.CreateTextFile(nword)
oword=nword
end if
outFile.WriteLine(line)
loop
inFile.Close()


145 名前:名無し~3.EXE:03/10/26 21:32 ID:0UDkjOLo
sendkeysメソッドがうまく動かないときがあります。
処理にはsleepで充分待ち時間を持たせていますがダメです。
どうにか安定して動作させられないでしょうか。

146 名前:126:03/10/26 23:11 ID:dxECXyGU
>>128
ごめん。>>126でうpしたヤツはバグってました。差し替えて下さい。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=45&fi=no

もう見てないかなぁ。

147 名前:名無し~3.EXE:03/10/27 14:54 ID:Q3OD8uHQ
あのー、winampのメインウィンドウのクラスであるWinamp v1.x
に次の曲を演奏させるキーコード[40048]を送りwinampを
操作するようなことはWSHで可能なんでしょうか?

148 名前:名無し~3.EXE:03/10/27 21:08 ID:3qtoEVsf
>>147
ttp://www.winamp.com/nsdn/winamp2x/dev/sdk/api.jhtml

149 名前:名無し~3.EXE:03/10/27 23:52 ID:SDkI7BUP
>>147
>>4にある「DynaCall - Win32APIコール」が必要だけど、簡単に出来た。
ただし、ウィンドウクラスが"Winamp v1.x"なのはver 1.x or 2.xなので注意。
ver 3.x は"BaseWindow_RootWnd"かな?

var WM_COMMAND = 0x0111;
var WM_USER = 0x0400;
var UserWrap = WScript.CreateObject("DynamicWrapper");

UserWrap.Register ( "USER32.DLL", "FindWindow", "i=ss", "f=c", "r=h" );
UserWrap.Register ( "USER32.DLL", "SendMessage", "i=huuu", "f=c", "r=l" );
var hWnd = UserWrap.FindWindow( "Winamp v1.x", 0 );
var result = UserWrap.SendMessage( hWnd, WM_COMMAND, 40048, 0 );

150 名前:147:03/10/28 01:04 ID:rFgJP0ul
>>149
148氏による斡旋により、winampのディベロッパーなんちゃらのページを
みてデルファイやコンパイラなどをインストールしましたが、
さっぱり使いこなせず困っておりました。
作っていただきありがとうございます。
これは値を変えればほかのアプリにも利用できそうですね。
しかし、next.jsとして実行するとこんなエラーが出てしまい、処理できないです。
"0x6b71fd81" の命令が "0x000c0000" のメモリを参照しました。メモリが "read" になることはできませんでした。
DynaCallも登録したのになんでだぁー・゚・(ノД`)・゚・。

151 名前:名無し~3.EXE:03/10/28 02:11 ID:cw5TLuZA
>>150
f=c を f=s に変更する。
UserWrap.Register ( "USER32.DLL", "FindWindow", "i=ss", "f=c", "r=h" );
UserWrap.Register ( "USER32.DLL", "SendMessage", "i=huuu", "f=c", "r=l" );
の2行を
UserWrap.Register ( "USER32.DLL", "FindWindow", "i=ss", "f=s", "r=h" );
UserWrap.Register ( "USER32.DLL", "SendMessage", "i=huuu", "f=s", "r=l" );
に変えてみて。

152 名前:147:03/10/28 12:56 ID:rFgJP0ul
できました。
一時停止や前の曲に戻るなども送ることができました。
マウ筋っていうマウスジェスチャソフトに登録して使ってます。
かなり(・∀・)イイ!!
サンクス。

153 名前:名無し~3.EXE:03/10/29 12:44 ID:6qUS970B
自分のサイトを見ているときに、右クリックから呼び出すと
ローカルのファイルをエディタで開き、編集後エディタを閉じると、
自動でFTPアップロードするスクリプトを書いてみた。
>4で紹介されている BASP21 ttp://www.hi-ho.ne.jp/babaq/basp21.html が必要。

ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=46

154 名前:名無し~3.EXE:03/11/01 21:40 ID:jP49QEJc
質問なんですが同じ名前のアプリを同時起動してる場合は
AppActivateの引数で指定するとどちらがアクティブになるんでしょうか?

例えば
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.AppActivate("無題 - メモ帳");

このときメモ帳が2つ開いていた場合です。

155 名前:名無し~3.EXE:03/11/01 21:47 ID:vF/O2HTq
名前が title と一致するアプリケーションのインスタンスがいくつかある場合、アクティブになるインスタンスは不定です。

156 名前:名無し~3.EXE:03/11/04 00:28 ID:Oi7xTTpY
Syrup16g - 明日を落としても 4:58
2003/11/04 0:19:52
っていう文字列を
artist:Syrup16g
title:明日を落としても
time:4:58
date:2003/11/04 0:19:52
このように表記するためのvbスクリプトきぼん

157 名前:名無し~3.EXE:03/11/04 02:31 ID:ieNSu29Z
>>156
msgboxに表示させたいのであれば、ダイアログクリエータ(名前間違ってるかも)というソフトを使えばいいかと。ベクターのジョークソフトカテにある。

158 名前:名無し~3.EXE:03/11/04 12:34 ID:ZPgYCqbJ
>>156
入出力をどうするつもりか知らないけど。

str1 = "Syrup16g - 明日を落としても 4:58"
str2 = "2003/11/04 0:19:52"
Set bobj = WScript.CreateObject("basp21")
out = bobj.Replace("s/(.*) \- (.*) (\d+:\d\d)/artist: \1\ntitle: \2\ntime: \3\n/k", str1)
out = out & "date: " & str2
Set bobj = Nothing

MsgBox out

なんか .* の使い方がいいかげんな気はするけど、いちおう動くな。
で、慣れてるBASP21使っちゃったけど、こういうのってRegExpオブジェクトではどう書くの?
Set re = New RegExp
re.Pattern="(.*) \- (.*) (\d+:\d\d)"
MsgBox re.Replace(str1, "\1 \2 \3")
とか試してみてもうまくいかないし。
ExecuteしてMatches参照するのもなんか違うような。


159 名前:11:03/11/04 14:20 ID:4ZmepCbj
Set re = New RegExp
str1 = "Syrup16g - 明日を落としても 4:58"
str2 = "2003/11/04 0:19:52"
re.Pattern="(.*) \- (.*) (\d+:\d\d)"
out= re.Replace(str1, "artist: $1" & vbCrLf & "title: $2" & _
vbCrLf & "time: $3" &vbCrLf & "date: " & str2)
MsgBox out

160 名前:158:03/11/04 15:39 ID:ZPgYCqbJ
はっ、\1 \2 \3 じゃなくて $1 $2 $3 でしたか。
たしかにMSDNにもそう書いてある。
勘違いはずかしー、どもっす。

161 名前:156:03/11/04 18:13 ID:Oi7xTTpY
レスサンクス。
ホームページに演奏中の曲を表示させてみたかったんッス
(perlだけでできるのかもしれないけど)
無事表示させることができた。
お前等、ありがとう。勉強になったよ


162 名前:名無し~3.EXE:03/11/04 18:23 ID:U/IfMn1D
>>161
文字処理はむしろperlの領分だろ……

163 名前:名無し~3.EXE:03/11/05 01:45 ID:6Leu/nYp
うんざりするほど大量にあるWord Document, Exel Sheetに
テキスト全置換かけることになりました。
とりあえずそれぞれのアプリでVBAマクロとして全置換操作を
記録させ、そのコードを表示させてパクり、WSHとして外から
CScriptで置換してみたのですが、テキストボックス等の図中の
テキストが置換対象になりません。
どうやら、ActiveなDocumentなりWorkSheet上でCtrl-Aによって
選択できる範囲のみが、置換対象となる模様です。

テキストボックスなどの図を含めて、全置換を行うには、
どうしたらよいでしょうか。知恵を貸してください。

164 名前:名無し~3.EXE:03/11/05 17:52 ID:zQfITpr6
>>163
WSH使わないでVBAだけでやった方が良いんじゃない?
あんまりスマートじゃないけど、
予め処理したいファイルのパスを配列に格納しておいて、
順次Documents.Open、置き換え、Closeすれば行けそう。
VBAスレ探して聞いた方が良いかもね。

165 名前:名無し~3.EXE:03/11/05 23:42 ID:kkgOPlFa
それって普通にアプリ上から全置換操作をかけたときには置換対象どうなるの?


166 名前:名無し~3.EXE:03/11/05 23:54 ID:7ofPajCH
>165
手動による置換では、DocumentやWorkSheet中のテキストは全て置換されます。
その操作を記録したマクロを実行してもダメなようですね。同様に、その
マクロをパクッたWSHスクリプトでも、置換残しが発生します。


167 名前:名無し~3.EXE:03/11/06 00:49 ID:8+idPDEE
Excelテキストボックス検索置換ツール なんてもんがあったんで
どんなことしてるのか参考にしてみようと思ったら、
シェアウェアなのでコード見せてくれない。ドケチ。

まあWSHっていうより完全にVBAの問題だけどな。

168 名前:名無し~3.EXE:03/11/06 04:41 ID:gx82oMae
テキストファイルに書いてある先頭の5行だけを表示するには
どうすればよいですか?

169 名前:名無し~3.EXE:03/11/06 07:20 ID:JPvi7d0b
ReadLine() 使って何とかしろ

170 名前:名無し~3.EXE:03/11/07 14:13 ID:m3O/O1XQ
http://pc2.2ch.net/test/read.cgi/software/1067407316/36
すいません、↑こちらから誘導受けてきました
気が向いたらレスください。

171 名前:名無し~3.EXE:03/11/07 16:20 ID:ogbv3E5y
>>170
<!------------------------------ここから------------------------------>
<job id="js">
<script language="JScript">
var WshShell = new ActiveXObject("WScript.Shell");

// 電卓が起動していなければ起動
if(!(WshShell.AppActivate("電卓"))){
WshShell.Exec("calc.exe");
WshShell = null;
WScript.Quit();
}

WshShell.AppActivate("電卓");
WScript.Sleep(100);
WshShell.SendKeys("%{F4}");
WshShell = null;
</script>
</job>
<!------------------------------ここまで------------------------------>
上記のものを適当な名前(例えばCalc.wsf)で保存し、ダブルクリックすれば希望する動作が(一応)可能。
終了はSendkeysを使用しているので、Sleepを長めに変更しないとうまく行かないこともあります。(デフォルトは100ms)
ファイル名は拡張子を『.wsf』で保存しないと動作しないので要注意!

こんなんでどう?

172 名前:名無し~3.EXE:03/11/07 21:16 ID:xqel7PTK
>>168
こんな感じか?

Txtfile = "hoge.txt"
Set WShell = WScript.CreateObject("WScript.Shell")
WShell.Run "notepad """ & Txtfile & """"
WScript.Sleep(1000)
WShell.Sendkeys("{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}+^{END}{DEL}")


173 名前:名無し~3.EXE:03/11/07 21:21 ID:gjOvYTRU
>>172
間違ってCtrl+s押しちゃうと怖いから、
ReadLine()で5行読み込んで新規ファイルに保存してそれを開く方が良いんじゃないかな。

174 名前:名無し~3.EXE:03/11/07 23:08 ID:iJi50Muw
どうやってReadLine()で5行だけを読み込むの?

175 名前:名無し~3.EXE:03/11/07 23:19 ID:H0SLYH01
>>171
終了させる部分だけね。

var prc = GetObject("winmgmts:{impersonationLevel=impersonate}")
.ExecQuery("SELECT * FROM Win32_Process");
for ( var e = new Enumerator(prc); !e.atEnd(); e.moveNext() ) {
var pf = e.item();
if ( pf.Caption == "calc.exe" ) {
pf.Terminate();
}
}

176 名前:名無し~3.EXE:03/11/07 23:38 ID:Rb23YGOW
ReadLine()を5回使う

177 名前:名無し~3.EXE:03/11/07 23:41 ID:u7kPPAAZ
>>174
for ( var i = 0; i < 5 && !file.AtEndOfStream; i++ ) {
str += ( file.ReadLine() + "\n" );
}

178 名前:名無し~3.EXE:03/11/08 14:16 ID:xbhrHbUR
>>170です。
レス頂いた皆様に感謝しながら感謝します。
内容読んでよーく勉強します。ありがd 


179 名前:名無し~3.EXE:03/11/11 23:46 ID:LGBvqsad
vbsでモニターの電源がONかOFFなのかを
みわけることってできる?

180 名前:名無し~3.EXE:03/11/12 09:59 ID:1xe1a8cO
できるよ、たぶん。

 消費電流を測るセンサーをモニタに取り付ける
→その結果をPCで読み出すCOMコンポーネントを作る
→vbsで呼び出す


181 名前:名無し~3.EXE:03/11/12 13:01 ID:fc7BQiUd
ハードがいるのか・・
PCの電源切るとモニタがスタンバイ状態になるので
取得できると思ったが、あれはモニタ側が感知
してるんだった。

182 名前:名無し~3.EXE:03/11/16 02:28 ID:SAcCF5a2
vbsでGetFolderを使うと、フォルダのなかにあるファイルの数を調べたり、
サブフォルダの数を調べたり、フォルダのなかにあるファイルの
オブジェクトを返すことが出来ますが、C言語で同じことをするには
どうしたらいいでしょうか。

183 名前:名無し~3.EXE:03/11/16 04:36 ID:2mli69J5
>>182
Cつっても色々だしな。
unix系なら#include <dirent.h>してopendir、readdir、closedir。
windowsならFindFirstFile、FindNextFile、FindClose。
ボーランドの処理系もdirent.hあるらしいからunix系と同じで可かな。

184 名前:名無し~3.EXE:03/11/17 05:34 ID:lPUeT4sI
>>179
とりあえず、JScriptで作ってみたがこんなのはどう?
//----------------------------------------------------- ここから -------------------------------------------------------
var e= new Enumerator(GetObject("winmgmts:").InstancesOf("Win32_DesktopMonitor"))

var A_state = new Array();
A_state[1] = "Other"; A_state[2] = "Unknown"; A_state[3] = "Running/Full Power";
A_state[4] = "Warning"; A_state[5] = "In Test"; A_state[6] = "Not Applicable";
A_state[7] = "Power Off"; A_state[8] = "Off Line"; A_state[9] = "Off Duty";
A_state[10] = "Degraded"; A_state[11] = "Not Installed"; A_state[12] = "Install Error";
A_state[13] = "Power Save - Unknown"; A_state[14] = "Power Save - Low Power Mode"; A_state[15] = "Power Save - Standby";
A_state[16] = "Power Cycle"; A_state[17] = "Power Save - Warning"; A_state[18] = "Paused";
A_state[19] = "Not Ready"; A_state[20] = "Not Configured"; A_state[21] = "Quiesced";

for (;!e.atEnd();e.moveNext()){
var DesktopMonitor = e.item();
WScript.echo (A_state[DesktopMonitor.Availability]);
}
//----------------------------------------------------- ここまで -------------------------------------------------------
WMIを利用しているのでDefaultで使えるのはWin2k/XPのみだけど、WMI SDKをインストールすれば、Win98とかでも使えるはず。

スクリプトの内容は、WMIのWin32_DesktopMonitor Classをコレクションに入れて、配列に当てはめた文字列を呼び出しているだけなのでVBScriptでも同じことが出来るはず。

Win32_DesktopMonitor Classに関してはhttp://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_desktopmonitor.aspを参照されたし。



185 名前:179:03/11/17 18:51 ID:nRzsi6TW
>>184
こんなクラスがあったとは知らなんだ。
某掲示板過去の記事にも載ってなかったYO。
リンクまで貼ってくれてありがd
リンク先で勉強してきまつ。

186 名前:182:03/11/18 04:30 ID:cKQr6PFc
>>183
ありがとうございます。調べてみます。

187 名前:180:03/11/18 04:33 ID:hrSaSO12
!!!
同じくこんなクラス知らなんだ。
めちゃめちゃ勉強になったです。ありがd

188 名前:179:03/11/18 06:06 ID:Y24V+OlW
モニタの電源をOFFにして実行してもRunning/Full Power
になる。なぜ?

189 名前:名無し~3.EXE:03/11/18 12:16 ID:/OetXwLa
IEオブジェクトを使って、
ttps://trade.hirota-sec.co.jp/inet_trade.html
ここで表示される「ログインID」にデータを入れることはできませんか?

190 名前:名無し~3.EXE:03/11/18 19:34 ID:3baO7seh
>>188
電源状態はグラフィックボードの出力状態であって
実際のモニターの電源状況じゃないんじゃないの?
手動でモニターの電源を切ってもPCは判別出来ないんじゃないの?

191 名前:名無し~3.EXE:03/11/19 01:16 ID:BGGlXLpV
janeで書き込んだ後に、adslモデムを切断して再接続させるwshをください。

192 名前:名無し~3.EXE:03/11/19 02:27 ID:tuh5bMJr
>>189
ここのすなはらさんに対するレスが参考になると思います。
http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list92.shtml

193 名前:名無し~3.EXE:03/11/19 02:44 ID:9YVFNkGB
ttp://page6.auctions.yahoo.co.jp/jp/auction/f11485539
ttp://page6.auctions.yahoo.co.jp/jp/auction/f11603514
http://page6.auctions.yahoo.co.jp/jp/auction/f11748898

z_y_x_3_2_1 (51)←コイツ●紅PC何気に12台出品。

今回の出品で100万越えはほぼ確定。


194 名前:189:03/11/19 10:07 ID:0Vo1qZxr
>>192
ありがとうございます。
しかし、目的のhtmlがフレームとjavascriptでうまく隠蔽されているようで、通常のhtmlを操作することはできますが、このページだけはオブジェクトが取得できないです。。。


195 名前:184:03/11/19 20:54 ID:9g/8/ljW
>>188
たぶんそうです。
>>194
こんなのはどうでしょう?
<!------------------------------ 自動ログイン:廣田証券.html ここから------------------------------>
<script language="JavaScript">
// 任意の値を設定してください。
account_0 = "ユーザID";// アカウント名
password_0 = "パスワード";// パスワード
// 設定ここまで。
hParent = external.menuArguments;
pageURL = "https://trade.hirota-sec.co.jp/HRP02/TRADE/SV";
formNumber = 0; submitTag = "INPUT"; submitNumber = 6;
accountTag_0 = "userID";
passwordTag_0 = "password";
DoLogin(hParent.document);
function DoLogin(objDoc){
var document = objDoc;
try {
document.forms(formNumber).elements(accountTag_0).value = account_0;
document.forms(formNumber).elements(passwordTag_0).value = password_0;
document.all.tags(submitTag).item(submitNumber).click();
return true;
} catch(error){
return false;
}
}
</script>
<!------------------------------ 自動ログイン:廣田証券.html ここまで------------------------------>


196 名前:184:03/11/19 21:05 ID:9g/8/ljW
上記を適当な名前(例えば、廣田証券.html)で保存し、うりゅそふとのIE MenuExtなどで登録すればIEコンテキストメニューから動くはず。
こちらで試した限りでは、IE6.0とSleipnirではOKみたいだったよ。
(ログインIDを持ってないので正確なチェックは不可能)
後は違うページでは動かないように分岐命令でも組み込んでちょうだい。

作成に当たっては、SleipnirのAutoLoginCreatorとうりゅそふとのゆなデュプリケートを参考にしてます。

ちなみに、うりゅそふとの URL は http://www.uryusoft.com/ だよ。

197 名前:184:03/11/19 21:21 ID:9g/8/ljW
>>195

> >>188
> たぶんそうです。

スマン >>190 の間違えだす。

198 名前:189:03/11/20 18:50 ID:wPBUdrDV
>>195-196
ありがとうございます。
こちらも解決しました。
IE.document.frames("viewFrame").document.all("userID").value
で代入できました。
こういうのってヘルプないから困るなぁ・・・。

そちらのやり方も試してみます。

199 名前:名無し~3.EXE:03/11/20 19:34 ID:F2oQzAaC
janeで書き込んだ後に、adslモデムを切断して再接続させるwindowsscriptinghをください。

200 名前:名無し~3.EXE:03/11/20 19:46 ID:9TVnCrzg
>>199
それをやってもID変わらない可能性が大きいんじゃないか?

201 名前:名無し~3.EXE:03/11/20 20:12 ID:F2oQzAaC
>>200
いや、いつもそうやって自分の書き込みを援護している。

202 名前:名無し~3.EXE:03/11/20 20:13 ID:F2oQzAaC
ちなみにこれね。
FLASHWAVE 2040 M1

203 名前:名無し~3.EXE:03/11/21 08:32 ID:rsS5zwFm
>>201
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< オマエモカー
  (    )  \_____
  | | |
  (__)_)



204 名前:名無し~3.EXE:03/11/21 10:30 ID:yyLTac4z
>>203
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< オマエモカー
  (    )  \_____
  | | |
  (__)_)

やっぱり需要高そうだな>199

205 名前:名無し~3.EXE:03/11/22 00:55 ID:57Aaw68x
>>204
つーか、そんなレベルで馴れ合ってどうする(w

                                  しかも、その後レスつかないし(泣

206 名前:名無し~3.EXE:03/11/22 01:31 ID:g6z33+vy
http://jbbs.shitaraba.com/game/bbs/read.cgi?BBS=XXXX&KEY=YYYYYYYYYY

こういうURLから、XXXXとYYYYYYYYYYの部分を抜き出すにはどうすればいいのでしょうか?
split使ってArrayじゃ無理ですよね・・・

207 名前:184:03/11/22 02:42 ID:aFqgt2RD
>>206
正規表現で何とかなるはず。
<!--------------------------------- ここから ---------------------------------->
<job id="main">
<script language="VBScript">
'InputBoxを呼び出す関数
function vbinput(strprompt)
vbinput = InputBox(strprompt)
end function
</script>
<script language="JavaScript">
var InputStr = vbinput("文字を入力して下さい。");

var re;

re = /http:\/\/jbbs.shitaraba.com\/game\/bbs\/read.cgi\?BBS=(.+)&KEY=(.+)/igm;

WScript.Echo(InputStr.replace(re, "$1"));
WScript.Echo(InputStr.replace(re, "$2"));
</script>
</job>
<!--------------------------------- ここまで ---------------------------------->
とりあえずテスト用スクリプトを作ってみた。
上記を『適当な名前.wsf』で保存して試してみて、OKならこの正規表現パターンを流用すればよいかと。

208 名前:名無し~3.EXE:03/11/22 09:30 ID:VQFdfBjl
>>206
var s_url = "http://ime.nu/jbbs.shitaraba.com/game/bbs/read.cgi?BBS=XXXX&KEY=YYYYYYYYYY";
var s_query = s_url.substr( s_url.search(/\?/) +1 );

var a = s_query.split("&");
var re = /(.+)=(.+)/;

for(var i=0, n=a.length ; i<n ; i++){
if( ! re.test(a[i]) ) continue;
WScript.Echo(RegExp.$1 +"\n" + RegExp.$2);

}


209 名前:199:03/11/22 13:27 ID:NWN1IDtl


210 名前:名無し~3.EXE:03/11/22 14:15 ID:WimPXUTS
>209
モデムの操作は、機種固有のコマンドが関わるので汎用スクリプトは無理だよ。

あなたが使っているモデムのメーカーと機種名・切断・再接続のコマンドと引数を晒してみれば
誰かが作ってくれるかもしれない

211 名前:199:03/11/22 14:16 ID:DFwAjyaA
ちなみにこれね。>>202

212 名前:199:03/11/22 14:17 ID:DFwAjyaA
ID変わってるけど、>209,211 同じ人。
という具合に良く使ってる。

213 名前:名無し~3.EXE:03/11/23 00:47 ID:PYgivdQ9
PPPOEとrasphoneで何とかならんか。半自動だけど。

214 名前:名無し~3.EXE:03/11/25 01:49 ID:ieYtyyWw
wshでALT+TABのタスク切替えを表示させたままにしたいと思っています。
そこでSendKeysを使って作ったのですが、一瞬で消えてしまいます。
ALTを押しっぱなしにする必要があると思うのですが、
キー押下時間の指定方法を教えていただけませんか?

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "%{TAB}"

215 名前:名無し~3.EXE:03/11/26 10:49 ID:Y2fg5FZg
win98でwshV5.6をインストールしてみたんですが
どうやったらこれをアンインストールできますか?

216 名前:名無し~3.EXE:03/11/26 11:00 ID:THgOMhcn
>>215
この辺
ttp://www.sophos.co.jp/support/faqs/wsh.html

217 名前:215:03/11/26 11:24 ID:6p/o2oLJ
>>216
ありがとうございます
きれいにアンインストールはできないみたいですね

218 名前:名無し~3.EXE:03/11/27 12:22 ID:h+gT/hjK
XP 上で WSH を使って、画面の設定等を変更してみたいのですが、
どこら辺から手をつけるといいのでしょうか?

219 名前:名無し~3.EXE:03/11/28 23:51 ID:cbanEcf0
http://www.forest.impress.co.jp/article/2003/11/28/gasaire.html
これってwshでもできそうでない?

220 名前:名無し~3.EXE:03/11/29 00:19 ID:h9xBwxGJ
>>219
ある程度間隔をあけながらなら出来そうだね。
短い間隔だとスクリプトでCPU占有しつづけそうな気がする。

221 名前:名無し~3.EXE:03/11/29 03:54 ID:JAJQbviS
質問です。

Set f = Fs.GetFolder(foldername)
Set fn = f.Files
For Each f1 in fn
  list_out.WriteLine f1.name
Next

こんな風にしてフォルダにあるファイルリストを出力してるんですが、
このファイルリストをソートした状態で出す方法ってありますか?
Forが終わってから自分でソートしないとダメですか?

222 名前:名無し~3.EXE:03/11/29 09:01 ID:rPa0TZe3
>>221
NTFSならファイル名順じゃね?

223 名前:名無し~3.EXE:03/11/29 09:13 ID:Tde9ir6h
Option Explicit
Dim buf(9999) ' 本番ではredimできるように改造
Dim Fs, f, fn, f1, j, n
Set Fs = WScript.CreateObject("Scripting.FileSystemObject")
Set f = Fs.GetFolder("C:\") : Set fn = f.Files
n = 0: For Each f1 in fn : buf(n) = f1.name : n = n + 1 : Next
qsort buf, 0, n - 1
For j = 0 to n - 1 : WScript.Echo buf(j) : Next
' クイックソート
Sub qsort(a(), Low, Hi)
Dim m, t, i, j
If (Hi <= Low) Then Exit Sub
m = a((Low + Hi) \ 2) : i = Low : j = Hi

While (i <= j)
If (a(i) >= m And a(j) <= m) Then
t = a(i) : a(i) = a(j) : a(j) = t : i = i + 1 : j = j - 1
Else
If (a(i) < m) Then i = i + 1
If (a(j) > m) Then j = j - 1
End If
Wend
qsort a, Low, j : qsort a, i, Hi
End Sub


224 名前:221:03/11/29 11:46 ID:JAJQbviS
>>222
FATとNTFSの違いがあったんですね。
自分では両方使っていて、実行するとファイル名順に出たりでなかったりして
原因がわからなかったんですがFATだと並ばないということなら納得がいきました。

>>223
やっぱりソートするしかないんですかね…
おとなしく自前ソートすることにします。


ありがとうございました

225 名前:名無し~3.EXE:03/11/29 17:13 ID:QPzxGnN2
HTAを作成の際にHTML部分を自動で作成してくれるソフトを探しております。HP作成支援ソフトをいろいろ試しましたがどうもしっくりきません。
使いやすいソフトを紹介してもらえませんでしょうか

226 名前:名無し~3.EXE:03/11/29 19:57 ID:btijNn70
ttp://www.angelfire.com/tv2/doko/edf.txt
11氏のサイトをザーッと読んで
再帰的に作業フォルダ内の指定ファイルを全て削除して、
空フォルダを削除するスクリプトを書いてみました。(既出ですが;)
ここに既にある余分なフォルダの階層を省略するようにしたいのですが、
うまく移動・削除する方法がありましたらご教授お願いします。(BuildPathを弄っては居るのですが…)

※D:\tempを指定し、一階層のフォルダにファイルを引き上げる。
D:\temp\log_a\user1\user1_hoge.xls -> D:\temp\log_a\user1_hoge.xls
D:\temp\log_a\user2\user2_hoge.xls -> D:\temp\log_a\user2_hoge.xls
D:\temp\log_b\user3\dat\hoge1.dat ->  D:\temp\log_b\hoge1.dat
D:\temp\log_b\user4\dat\hoge2.dat ->  D:\temp\log_b\hoge2.dat

>>225
ttp://www.pololon.com/koby/software.php?id=J-Scriptor
これはどうでしょ。

227 名前:名無し~3.EXE:03/11/29 23:18 ID:8I+vekmN
IEからVBScriptを使って
Set hoge = CreateObject("Excel.Application")
としてExcelを起動してるのですが
起動されたExcelのシートをクリックしても、
フォーカスはExcel側にあるのですが、
起動元のIEが前面に表示された状態になってしまいます。
(タイトルバーをクリックすると切り替わります)
これを回避する方法はありますでしょうか?

228 名前:名無し~3.EXE:03/11/30 00:56 ID:FeHc09+p
hoge.Visible = True
とかはしてみた?

229 名前:名無し~3.EXE:03/11/30 09:28 ID:feJWYsXV
>>228
しました。ってかそれやらないと表示すらされなかったっす。

ただそれをやらないで
Set hoge = CreateObject("Excel.Application")
Set hoge = Nothing
これだけで症状が再現するのですが
もしかしてうちだけ??
OSは2000とXP、Excelは2000です。

230 名前:229:03/11/30 10:22 ID:feJWYsXV
すみません、229の補足です
「これだけで再現する」とは
IE以外の別のアプリケーションのウィンドウが先に表示されてる状態で
229の2行をIEで実行すると、別のアプリをクリックしてもフォーカスはあたるのに
そのアプリが前面に表示されない状態になります。(タイトルバークリックはOK)
つまりIEが最前面に表示されたままになるようです。
ちなみに、その2行のあとにmsgboxで適当なメッセージを表示すると
回避できるのですが、できればそれは使いたくないです。。
IEは6.0です。


231 名前:名無し~3.EXE:03/11/30 11:17 ID:F8fBdH8C
>225
解答ではなく申し訳ないですが、どういうのが使いやすいと思いますか?
スクリプト及びID部分の表記がそのソフトのルールで最適化されてしまうものは論外としても
私見で使いにくさの着目点として、
スクリプトとHTML部の作成するタイミングとの兼ね合いで、後解決が多い→バグが入り込みやすい
というのが考えられるのでこう云うこととかなら、VIDが良いと思うのですが。

>226
再帰部より先に移動しておくのがセオリーだと思いますが、重複の時のルールはどうなっていますか?
DirP┬DirC1─DirG
   └DirC2
でFという名前が
1)PとC1
2)C1とC2
3)C2とG
4)PとG
に存在している場合です。

>227
AppActivateではダメ?

232 名前:名無し~3.EXE:03/11/30 20:37 ID:FeHc09+p
>>231
226です。
重複時は上書きするように考えていましたが、
やはりファイル名末尾に(n)を付け加えて移動させようかと…

233 名前:名無し~3.EXE:03/11/30 23:55 ID:F8fBdH8C
>232
1)各々のファイルをフォルダ一階層分引き上げるなら親→子の再帰が必要だよね
で、2)空のフォルダを削除したいから子→親の再帰が既にあるわけだ。
なら、別のルーチンで1)をやらないと出来ない。

234 名前:名無し~3.EXE:03/12/01 00:46 ID:FZ6o4XMT


235 名前:名無し~3.EXE:03/12/01 15:17 ID:utE3M4fC
>>226
各ファイルを一階層上に移動、ではなくて
全ファイルを指定されたフォルダの一階層下に移動、ということで良いの?
こんな感じ?
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=48

間違って「『231』 のスクリプトの改造版」となってる。ゴメン。

236 名前:名無し~3.EXE:03/12/02 08:59 ID:x8U6qf5b
>>235
ありがとうございます、その通りです。
もっと勉強しないと…

237 名前:名無し~3.EXE:03/12/02 16:45 ID:hIeN8yts
IEのオブジェクトから、[表示] - [文字のサイズ] で
5段階切り替えしたのと同様の効果になる
スクリプト、キボン。
SendKeyは不可の方向で。。。

238 名前:名無し~3.EXE:03/12/03 02:02 ID:Mlf6KLD2
テキストファイルから読み込んだ日本語の文字列を
URLに送りたいんだけどそのまま読み込んで、
送信するとhttp://www.hoge.com/search=繧キ繝」繝シ繝ュ繝
みたいになってしまう。繧キ繝」繝シ繝ュ繝を%83V%83%83%81%5B%83%8D%83b%83g
みたいにエンコードするにはどうすればいい?vbsで。

239 名前:名無し~3.EXE:03/12/03 06:00 ID:68QdJX+r
>>238
encodeURI(URIString)

240 名前:239:03/12/03 07:40 ID:68QdJX+r
>>238
vbsだったか。hoge.wsfとかで↓。

<job id="TestScript">
<script language="JScript">
function func ( str )
{
return encodeURI( str );
}
</script>
<script language="VBScript">
Dim str
str = "あいうえお"
str = func(str)
WScript.Echo( str )
</script>
</job>

241 名前:名無し~3.EXE:03/12/03 08:49 ID:Mlf6KLD2
>>239-240
レスサンクス
wsfってどっちも使えるんだ
手を出したことないので知らなかった。
vbsじゃ無理なのですか?

242 名前:名無し~3.EXE:03/12/03 13:20 ID:kOgwKqx8
>>238
こんな関数は如何?

Function URLEncode (str)
  Dim s, rtnstr
  rtnstr = ""
  For i = 1 To Len(str) Step 1
    s=Mid(str, i, 1)
    If Len(Hex(Asc(s))) = 2 Then
      s = "%" & Left(Hex(Asc(s)), 2)
    Else
      s = "%" & Left(Hex(Asc(s)), 2) & "%" & Right(Hex(Asc(s)), 2)
    End If
    rtnstr = rtnstr + s
  Next
  URLEncode = rtnstr
End Function

>240の場合はUnicodeでのURLエンコード、こちらの関数はShift-JISでのURLエンコードです。
状況に応じて使い分けると良いかも。



243 名前:11:03/12/03 14:40 ID:mV1Soheb
>>238
私が普段使ってるUrlEncode関数、UrlDecode関数をあげておきました。
かなり変な文字を与えても、それなりにエンコードしてくれるようです。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=49
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=50

244 名前:238:03/12/03 18:17 ID:Mlf6KLD2
>>242-243
レスサンクスざます
晒して頂いたスクリプトをコピーし
便利スクリプトフォルダに保存しました。
basp21で妥協しようと思ってたので
とても助かりますた。ありがd。

245 名前:名無し~3.EXE:03/12/03 21:46 ID:+PPo6m4i
スクリプトの実行前にあらかじめ起動されているプロセスの
終了を検出したときのみ、指定したコマンドを実行するには
どうやればいいのでしょうか。

246 名前:名無し~3.EXE:03/12/03 22:03 ID:XtQPYP2R
無理してWSH使わなくても他の言語で作ればいいやん



と思った。

247 名前:名無し~3.EXE:03/12/03 22:29 ID:+PPo6m4i
>>246
やはりスクリプトではできないですか。
プログラムはまったくの素人なもので。

248 名前:名無し~3.EXE:03/12/03 23:47 ID:3QUJEG+M
シェルスクリプトの方がいいんでない?

249 名前:名無し~3.EXE:03/12/04 12:17 ID:KhtQppzY
>>245
WMIを使えば、起動しているプロセスを知ることが出来ますから、
指定したプロセスがあるかないかをif文で判断すれば出来るかと思います。

250 名前:名無し~3.EXE:03/12/04 20:17 ID:0e5lZ1MQ
>>249
その方法だとプロセスが起動していないときにも反応してしまいますよね。
終了時にのみ検出するというのはできないでしょうか。

251 名前:名無し~3.EXE:03/12/04 20:30 ID:q1opIXF3
>>250
スクリプトを常駐させて、その中でプロセスが死んだときに、コマンド実行ってことだよね?
それならスクリプト起動時にプロセスチェックしてフラグたてとけば良いだけの話だけど。

252 名前:名無し~3.EXE:03/12/04 20:50 ID:0e5lZ1MQ
予約録画後の休止移行に使いたいので
常にプロセス(録画ソフト)が動いてるとは限らないんですよ。

253 名前:名無し~3.EXE:03/12/04 21:11 ID:q1opIXF3
>>252
いやだからさ、プロセスを検知したらフラグ立てて、
フラグが立ってるときにプロセスが消えたらコマンド実行&フラグ降ろす、でいいんじゃないの?

254 名前:名無し~3.EXE:03/12/04 21:13 ID:ZKuyqMOt
>>252
情報を小出しにしないで
最初から何のために何がしたいのかちゃんと書いたほうがいいと思う

255 名前:名無し~3.EXE:03/12/04 21:49 ID:wHMzSM3w
1) スクリプトはパソコン起動時に実行&常駐
  この時点では検出したいプロセスは起動していない

2) 検出したいプロセスが起動

3) 2)のプロセスが終了
  これを1)で実行&常駐しているスクリプトで検出する

と、こういうことか?>253の言う通り
一定時間毎に起動しているプロセスをチェック、
検出したいプロセスを見つけたらフラグをたてる。
フラグをたてた後、そのプロセスが消えていればコマンド実行。
でいいんじゃない?

256 名前:名無し~3.EXE:03/12/06 01:07 ID:LcFhFxHE
ZenToHanはあるけどHanToZenってないね。
ぐぐったがvbsではなかった。誰かもってませんか?

257 名前:名無し~3.EXE:03/12/06 10:22 ID:ImaVfKFa
>256
キリ番getおめ
http://www.alles.or.jp/~sfujita/jpn/tools.htm
のhkzhkvbs参照のこと。


258 名前:名無し~3.EXE:03/12/06 18:42 ID:LcFhFxHE
>>257
thx

259 名前:名無し~3.EXE:03/12/07 02:02 ID:Hk+1MgZq
質問です。
起動時にMapNetworkDriveでネットワークドライブの割り当てをしているのですが、
接続先のパスが見つからない場合に実行エラーが表示されてしまいます。

回避する方法はありませんか?

260 名前:名無し~3.EXE:03/12/07 02:24 ID:MxjL0rhk
漏れも文字列操作する便利関数ほしいんだけど、
str="1行が50字とか10字とかで1行の字数が定まっていない文字列"
を1行が20字超えてたら改行して、20字以下ならそのままの字数にしたい。
leftやmid使って何とかしようとしたけど、できなかった。
hoge (str,20)でできるようなやつ創ってみてよ


261 名前:名無し~3.EXE:03/12/07 02:28 ID:71+/YDP/
var p = 0;
do {
 Out = Out + Str.substr(p, 20) + "\n";
 p += 20;
} while (p <= Str.length);

でどうよ

262 名前:名無し~3.EXE:03/12/07 02:31 ID:71+/YDP/
すまんJSで書いてもうた

263 名前:名無し~3.EXE:03/12/07 03:27 ID:G6B626hZ
>>259
On Error とかtry catch とか。

264 名前:名無し~3.EXE:03/12/07 11:28 ID:MxjL0rhk
VBSに変換できない。・・・_| ̄|○・・・_| ̄|○

265 名前:名無し~3.EXE:03/12/07 12:11 ID:AK4jo3u+
>>264
Function FillColumn(str, count)
   dim p, result
   p = 1
   Do
      result = result + Mid(Text, p, count) & vbNewLine
      p = p + count
   Loop While (p <= Len(Text))
   FillColumn = result
End Function

みたいな。……vbsは書きづらいなぁ。
厳密には最後、値を返す前に一番後ろの改行を消さなきゃいけないけど。

266 名前:名無し~3.EXE:03/12/07 12:14 ID:AK4jo3u+
>>265
ああもうメタメタ。

Function FillColumn(str, count)
   dim p, result
   p = 1
   Do
      result = result & Mid(str, p, count) & vbNewLine
      p = p + count
   Loop While (p <= Len(str))
   FillColumn = result
End Function


267 名前:名無し~3.EXE:03/12/07 14:39 ID:MxjL0rhk
dクス
やっぱmid使うんだ。俺も使ったのにちっともできんかった・・・
これだと改行してできた行とその次の行があわせて20字になるYO。
難しいなぁ。

268 名前:名無し~3.EXE:03/12/07 14:47 ID:R4Dl9SOH
ジオシティーズでホームページつくってます。
ローカルPCのあるフォルダに入ってるファイルすべてを
アップロードするようなスクリプトは書けますでしょうか?

http://www.geocities.co.jp/help/ftp/ftpexe.html
↑ここにftpを使った手動でのうp方法があります。なんとなく
これをスクリプト化すればいいのかなと
思うのですが、具体的なやり方が分からない状態です。

269 名前:名無し~3.EXE:03/12/07 16:27 ID:kH12v1LY
>267
こう云うことかい? 改行はvbNewLine固定としてます。

Function FillColumn(str, count)
   dim p, result, i, asTemp
   asTemp = Split(str, vbNewLine)
   For i = 0 To UBound(asTemp)
      p = 1
      Do
         result = result & Mid(asTemp(i), p, count) & vbNewLine
         p = p + count
      Loop While (p <= Len(asTemp(i)))
   Next
   FillColumn = result
End Function


270 名前:名無し~3.EXE:03/12/07 17:22 ID:MxjL0rhk
キタ━━━━━(゚∀゚)━━━━━!!!!
そうそう、これです。
早速保存しますた。ありがとう

271 名前:名無し~3.EXE:03/12/07 18:54 ID:AK4jo3u+
>>268
こんな手法とか。
ttp://member.nifty.ne.jp/aya/wsh/wsh25.htm#ftp

272 名前:名無し~3.EXE:03/12/10 10:39 ID:vM0T1jl0
文字列の中に半角英数と記号以外の文字が含まれていたら
Trueを返すような関数きぼん

273 名前:名無し~3.EXE:03/12/10 12:26 ID:fgTy1rnP
>>272
//ASCIIコード0x21(!)から0x7E(~)以外が含まれてたらtrue
//初めにパターンを作っておく。初めから展開しておいて直接関数内に置いたほうがスマートだけど
var p = "[^";
for (var i = 0x21; i < 0x7f; i++) p += "\\x" + i.toString(16);
p += "]";
//関数本体
function CheckExceptASCII(checking) {
   return  (checking.match(p) != null);
}

//VBSバージョン。やってることは同じ。
Dim pattern, i
pattern = "[^"
For i = 33 To 126
   pattern = pattern & "\x" & Hex(i)
Next
pattern = pattern & "]"

//vbsだとオブジェクト作らないと正規表現使えないのか……。
Function CheckExceptASCII(checking)
   Dim regex
   Set regex = New RegExp
   regex.Pattern = pattern
   CheckExceptASCII = regex.Test(checking)
End Function

274 名前:名無し~3.EXE:03/12/10 14:34 ID:Qyuu4yD0
まあ、JScriptでもオブジェクトですがそれはさておき。

275 名前:名無し~3.EXE:03/12/10 22:10 ID:oCxW7xiP
何故 わざわざ否定の否定で肯定を判定したり、
何故 連続した範囲の文字なのに 全部の文字をいちいち並べるのか
説明キボン。

「半角英数と記号」=「0x21(!)から0x7E(~)」でいいなら、
/[^\x21-\x7f]/.test(string)
でいいだろ。(stringに調べたい文字列をいれる)
272の文章そのままを書くだけじゃん。

あ、スペースは「半角英数と記号」に入るのか? だったら \x21 は \x20 だな。

276 名前:とにかく:03/12/13 05:20 ID:3hwI2vph
273は深く傷ついたよ。

277 名前:名無し~3.EXE:03/12/13 13:33 ID:+MhJ6dGM
何がとにかくなのか分かりませんよ。
言いたいことははっきり言わないと。

278 名前:名無し~3.EXE:03/12/13 18:32 ID:V9nirUNI
    ,. -- 、
  ,:',ィ;ノ、!;::':,
  i::l'-  -i::i  でも、はっきり ボンクラ なんてゆーたら
  l::ト、.ヮ,.ノ::!   >>273も傷ついてしまうやん?

279 名前:名無し~3.EXE:03/12/14 00:24 ID:BywyIZrR
こんにちは。

会社で「Windows起動時にごみ箱を自動的に空にするような仕組みを作れ」
と言われまして、困っていたところ、WSHなるものを知りまして、参考サイト
で見たところ、以下のようなコードを見つけました。

Set Win=Wscript.CreateObject("Shell.Application")
Set fol=Win.NameSpace("::{645FF040-5081-101B-9F08-00AA002F954E}")
Set f=fol.Items.Item
f.InvokeVerb "ごみ箱を空にする(&B)"


特殊フォルダであるごみ箱の右クリックメニューをキックしてるのですが、
これを実行すると、「消しますか??? Yes or No?」と聞かれてしまい
作業が自動化できません。

どのようにすれば、岡島部長の念願をかなえてあげることができるでしょうか。


280 名前:名無し~3.EXE:03/12/14 01:19 ID:Zp5Wksm2
>279
この関数をつかうといいんじゃない?
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=36&fi=no
別プロセスを起動しといて該当するタイトルを見つけるとSendKeysする。
文中には別スレッドとか書いてあるけど、それをファイアホースで使うのと働きを似せているってことで。

あと、岡島部長のパソコンの速さを考えて待ち時間を決めてあげてね。特にスタートアップ時はタスクが重なるから。

281 名前:名無し~3.EXE:03/12/14 11:58 ID:BywyIZrR
>279さん

早速のレスありがとうございます!!!
今日は出勤日なので、さっそく会社で試してみます。

今日帰ったらこのスレに結果報告させていただきます。

282 名前:279:03/12/14 11:59 ID:BywyIZrR


×  >279さん

○  >280さん

すみません。。。。。。。

283 名前:名無し~3.EXE:03/12/14 12:32 ID:AqIFfZCI
>>279
ゴミ箱の設定で「削除の確認メッセージを表示」のチェックをはずせばいいのでは?

284 名前:いなむらきよし:03/12/14 15:31 ID:Gr+gcZZZ
キケー!

285 名前:名無し~3.EXE:03/12/14 16:09 ID:ZgkBR/Fd
>>283
それはずしても右メニュから呼ぶと確認取らされるよ

286 名前:名無し~3.EXE:03/12/14 22:03 ID:kYj0AQKk
>>279
遅く、且つスレ違いだけど、

CSpace
http://cspace.s2.xrea.com/

のdeletedustをコマンドラインオプション付きでスタートアップに入れておけば
望みどおりの事はできるんじゃないかな。

287 名前:279:03/12/14 22:46 ID:BywyIZrR
>>280さん

今日さっそく会社で試してみました。見事にごみ箱を空にすることができました。
タイムアウト値はこれから試行錯誤して決めていきたいと思います。

今回のことでWSHの勉強をはじめる良いきっかけになりました。これからが
とても楽しみです。ありがとうございました。

>>283さん

レスありがとうございます。
285さんの仰るとおり、確認されてインタラクティブになってしまいます。

>>286さん

レスありがとございます。すいません。僕の説明が不十分でしたが、ツール類
を使うなとの条件がついていました。僕みたいな素人が作るスクリプトを使うより
deletedustを使う方がいいような気がするんですけどね(w  このツールは
存在を知らなかったので大変勉強になりました。本当にありがとうございます。

288 名前:名無し~3.EXE:03/12/15 15:05 ID:7A4E3zxz
実行しているスクリプト自身のファイルパスを取得するには、どうしたらいいんですか?
環境はwin2000, WSH5.6, JScriptです。

289 名前:名無し~3.EXE:03/12/15 15:10 ID:d9aPZJJr
>>288
WScript.ScriptFullName

290 名前:名無し~3.EXE:03/12/15 15:14 ID:7A4E3zxz
>>289
即レスありがとうございます!
できました。ありがとうございました!!

291 名前:名無し~3.EXE:03/12/16 21:48 ID:TdJSUna/
ExcelのスクリプトをWSHから起動させることって出来ないでしょうか?

292 名前:名無し~3.EXE:03/12/16 22:56 ID:CGl8cDrM
>>291
前スレ 430

http://pc2.2ch.net/win/kako/1022/test/read.cgi/win/1022248379/430


293 名前:名無し~3.EXE:03/12/17 00:40 ID:Ekl2+zKD
>>292
スレ消えていて見えません( ;´Д`)

294 名前:名無し~3.EXE:03/12/17 01:20 ID:HYgHgoM6
>>293
>>1

295 名前:名無し~3.EXE:03/12/17 03:24 ID:Ekl2+zKD
>>292 >>294
ありがとうございました(__)

296 名前:名無し~3.EXE:03/12/18 02:58 ID:y9nSM6n2
269たんのFillColumnが激しく便利なんだが、
全角と半角が混ざった文章だと、改行がそろわん。
半角は2文字で1文字としてカウントさせることは
できんのでしょうか?

297 名前:名無し~3.EXE:03/12/18 09:20 ID:nSFmSSLQ
どっちかというと全角は2文字としてカウントすべき。

半角2文字で1文字としてカウント? キモーイ

298 名前:名無し~3.EXE:03/12/18 09:36 ID:J8hVa0QE
2バイト

299 名前:名無し~3.EXE:03/12/18 22:00 ID:/9AbAiwm
win2k、XPではvbsもUnicodeを使ってると思うから全部2バイトちゃうかな。
98はしらん。

300 名前:名無し~3.EXE:03/12/18 23:00 ID:y9nSM6n2
結局そんな都合のいいことはできないってことでつか?

301 名前:名無し~3.EXE:03/12/18 23:48 ID:/9AbAiwm
>>300
出来るだろ。
ただ面倒くさくて誰もコードを書いてくれていないだけ。

>269がvbsな時点で読むのを止めたんで何だけど
改行毎にsplitして、
指定文字数に達するまで変数に突っ込んで改行追加、
って感じの処理だろ、多分。

文字列の長さをカウントする前に正規表現なり何なりで
文字種をチェックして、カウント量を変えれば良いんじゃない?
スマートじゃないけど。

302 名前:名無し~3.EXE:03/12/18 23:59 ID:y9nSM6n2
やってみまつ。

303 名前:名無し~3.EXE:03/12/19 02:02 ID:Lmao0L9B
vbNewLineとvbCrLfって完全に同じなんだっけ? 違う場合もある?

304 名前:名無し~3.EXE:03/12/19 11:48 ID:W02neB2/
WSHでエクスプローラのファイル検索を実行することはできますか?
win2k JScript/WSH5.6で作業しています。

305 名前:304:03/12/19 15:41 ID:W02neB2/
エクスプローラ開いてF3することでできました。
var Shell = WScript.CreateObject("WScript.Shell");
Shell.Run("explorer");
WScript.Sleep(3000);
Shell.Sendkeys("{F3}");

失礼しました。

306 名前:名無し~3.EXE:03/12/19 15:47 ID:kQdVfnCG
>>305
var shell = WScript.CreateObject("Shell.Application");
shell.FindComputer();

……手遅れ?

307 名前:名無し~3.EXE:03/12/19 15:48 ID:v/SeE9Gp
そんなんでいいならWin+Fで十分じゃないのか?

308 名前:名無し~3.EXE:03/12/19 15:49 ID:v/SeE9Gp
307は>>305宛て

309 名前:名無し~3.EXE:03/12/20 16:43 ID:jzTgP79+
>>303
もう遅いかもしれないけど
http://activex.adsp.or.jp/public/iasdocs/aspdocs/ref/vbs/vbscript/23.htm

310 名前:名無し~3.EXE:03/12/21 02:37 ID:qjcUmfTK
質問させてください。

ScanDisk を WSHから起動するにはどうしたらよいでしょうか?


311 名前:310:03/12/21 02:54 ID:qjcUmfTK
↑すみません。

chkdskを発行すればいいんですよね。お馬鹿なことを聞いて申し訳ありません。

312 名前:名無し~3.EXE:03/12/22 01:30 ID:+I9tORjp
>>309
めちゃめちゃ基本的な質問ですが、
「Microsoft Windows では使用できません」っていうのは、
何で使用できるのでしょうか?
プラットフォームでの指定ってあるけど、Windows以外のプラットフォームってどんなの?

313 名前:名無し~3.EXE:03/12/22 01:42 ID:lk7eC7+8
>312
ただ標準としてそういうエスケープシーケンスを使えるってだけ。
エスケープシーケンスを出力しなくても解析したい場合もあるだろ。
「Microsoft Windowsでは使用できません」ってのはもしろ、
Windowsでは使用しても意味ありませんってぐらいの意味。

314 名前:名無し~3.EXE:03/12/22 22:25 ID:mtDgELRn
ウィンドウを常に最前面に表示ってWSHでできますか?

315 名前:名無し~3.EXE:03/12/24 16:20 ID:YnxjQ2Jl
Shell.Execで実行したEXEファイルのリザルトコードが欲しい場合は
どうしたらよいのでしょうか?


316 名前:名無し~3.EXE:03/12/24 17:39 ID:GjeoXMNr
ExitCodeかな

317 名前:315:03/12/25 10:32 ID:J3kWnMpY
>ExitCodeかな
取れましたありがとう


318 名前:名無し~3.EXE:03/12/25 22:58 ID:qi2v5GZf
.wsc(Windows Script Component)
で別のタイプライブラリのインターフェースを継承して
COMを作成するにはどうすればいいですか?
implementsの使い方がよくわからん。

319 名前:名無し~3.EXE:03/12/26 21:22 ID:CDpFdU/g
BASP21使わないでVBSでStrConvをするにはどう書けばいいんですか?


320 名前:名無し~3.EXE:03/12/27 11:03 ID:iN6WHs5c
VBWRAP http://tel.tics.net/hayashi/soft/vbwrap.asp

これで1000円…… _| ̄|○

321 名前:名無し~3.EXE:03/12/27 14:10 ID:RyHCqBY3
>319
See→>257
文字列エンコードするにはファイル化の際にADODB.Streamで。

322 名前:319:03/12/27 14:22 ID:yWGmXC1j
>>320-321
情報有賀とう
>321
わけわかめだがそれを使ってみることにする。



323 名前:あぼーん:あぼーん
あぼーん

324 名前:名無し~3.EXE:04/01/01 11:14 ID:tXeNmX5l
10秒間のWaitをいれたいのですが、何か方法はありますか?

325 名前:名無し~3.EXE:04/01/01 11:29 ID:ST+07Rj7
Sleep使えばいいんじゃないの?

326 名前:名無し~3.EXE:04/01/01 16:50 ID:Xq0cdIBn
WScript.Sleep(10000); // 10秒スリープ

327 名前:324:04/01/01 20:05 ID:dncn+wHr
>>326
thx

328 名前:名無し~3.EXE:04/01/02 00:33 ID:SXcIFprT
basp21使わないでmp3のID3v2タグを読みとる
にはどうしたらいいですか?

329 名前:名無し~3.EXE:04/01/02 20:19 ID:NaBufqTi
DynaCall + mp3infp(SDK) でDLL呼び出せばできると思うけど、詳しくはわかんないから
成功したら報告きぼん。

330 名前:名無し~3.EXE:04/01/02 21:43 ID:SXcIFprT
thx。やってみる

331 名前:名無し~3.EXE:04/01/02 22:13 ID:SXcIFprT
さっぱりわからん(;´д`)ダメぽ

332 名前:名無し~3.EXE:04/01/02 23:13 ID:uzt/qs8R
さっきここで何か聞こうと思っていたんだけどなんだったか忘れてしまった_| ̄|○

333 名前:名無し~3.EXE:04/01/03 00:08 ID:dREILg5u
>>332
何を忘れたか聞こうとしたのでは? (w

334 名前:名無し~3.EXE:04/01/04 05:40 ID:zLk7YEXo
タイプライブラリってどうすれば見れますか?

335 名前:名無し~3.EXE:04/01/04 11:32 ID:Fx19U8ex
>>334
oleview.exe


336 名前:名無し~3.EXE:04/01/04 12:57 ID:zLk7YEXo
>>335
みれますた。サンクスコ

337 名前:名無し~3.EXE:04/01/04 14:13 ID:FtefBxtn
>>328
mp3infp使えば普通にGetDetailsOfで見れなかったっけ?


338 名前:名無し~3.EXE:04/01/06 23:05 ID://8fXjL0
***すれ立てるまでもない質問はここで 第48刷***
http://pc2.2ch.net/test/read.cgi/tech/1071506396/

↑のスレで質問したんですが、誘導されたのでこちらのスレにやってまいりました。
質問は「vbscriptでレジストリキーを消したいのだが、キーの中に小項目があると、消すことができない」
というものだったのですが、答えは「9X系ではまとめて消せるが、2000,XPではできない」
ということでした。

となると、2000,XPでキーを一度に消去する場合には、他にやり方があるんでしょうか?
再帰的にキー構造を調べて、一つ一つ消していくとか・・・
あまりVBには詳しくないのですが、Jscriptとか、他のスクリプト言語ならできるんでしょうか?

339 名前:名無し~3.EXE:04/01/08 19:36 ID:337kcD1j
WSHでローカルポリシーを変更する方法ってありますか?
MSDNなどなど調べたんですがどうにも見つからないもので・・・
ご存知の方がいればお願いします。(環境はWin2Kです)

340 名前:名無し~3.EXE:04/01/08 23:18 ID:sB2rIAQS
>>339
SendKeysで操作を自動化するより他に手がなさそうです。
レジストリの価を書き換える事で一応は実現できるのですが
それやるとサポート対象外になるとMSプレミアより回答ありましたから。

あの、ひょっとして同じ職場の方でつか?

341 名前:339:04/01/09 14:07 ID:iML9hd7I
>>340
サンクスです。うーんめんどそうですな(;´д`)
職場名を晒す勇気は無いですが、某化学企業の工場勤務です。
サポート対象外など無視してレジストリ書き換えまくりなので違う職場だと思われ


342 名前:名無し~3.EXE:04/01/09 17:43 ID:OEl6q9YS
エクスプローラーでファイルやフォルダを選択してそれらのファイルオブジェクトを
WSHで取得することってできますか?

フォルダのカスタマイズからなら取得出来るのは知ったんですけど出来れば単体のスクリプトファイルから操作したいんですが。
いろいろ調べたんですけどエクスプローラーの操作関連はあまりのってなくて、、


343 名前:342:04/01/09 17:49 ID:OEl6q9YS
あっ、すみません、付け加えですw

上の書き方だとWScript.Argumentsで送れる方法もありますが、
やりたい事というのはWSHで任意のフォルダ内のファイルを選択状態にしたいんです。
そういうことって出来ますでしょうか?

344 名前:名無し~3.EXE:04/01/10 01:00 ID:24MiGHSB
テキスト検索の結果など、行数の多いテキストを
ユーザーに返したいのですが、結果を result として、
WScript.Echo( result ) してダイアログに表示させると、
画面より大きい結果をスクロールさせることができないですし、
選択してコピーもできません。

いちばん良いのは、スクロールバーがついてて
編集できないエディットボックスに result を表示できればよいのですが、
それに近いことでも、なにかいい方法があれば教えてください。

345 名前:名無し~3.EXE:04/01/10 01:18 ID:8sKyXq1S
>>344
IEのウィンドウに表示するとか

346 名前:名無し~3.EXE:04/01/10 09:35 ID:zt4e6ZHL
>>343
できる


347 名前:名無し~3.EXE:04/01/10 13:03 ID:xVi0VBEM
WSHから使用できるDLLを開発したいんですが、あれってActiveXですか?それともただのCOMですか?

348 名前:名無し~3.EXE:04/01/10 13:06 ID:Hfvvr/8G
パソコンが安く買えるよ。

http://michellebranch.jp.mybpmall.com


349 名前:名無し~3.EXE:04/01/10 17:58 ID:R080zmgB
>338
2000以降ならWMIで再帰使ってやるのがいいんじゃないのカナ?
Const target = "giffile\shell\Edit"
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_USER = &H80000001
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
HKEY_CURRENT_CONFIG = &H80000005
HKEY_DYN_DATA = &H80000006
strComputer = "."

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
DelRegTree oReg, HKEY_CLASSES_ROOT, target

Sub DelRegTree(StdRegProv, hDefKey, sSubKeyName)
Dim subkey, arrSubKeys

StdRegProv.EnumKey hDefKey, sSubKeyName, arrSubKeys
If Not IsNull(arrSubKeys) Then
For Each subkey In arrSubKeys
DelRegTree StdRegProv, hDefKey, Replace(sSubKeyName & "\" & subkey, "\\", "\")
Next
End If
StdRegProv.DeleteKey hDefKey, sSubKeyName
End Sub


350 名前:名無し~3.EXE:04/01/10 18:47 ID:En3/ud5f
WSHで外部プログラムを使わずに SHIFT-JIS → UTF-8 変換することはできますか?
VBSで使用したいのですが方法がわかりません。

351 名前:名無し~3.EXE:04/01/10 19:18 ID:Dt8cpYp+
>>350
さてどの辺りまでが外部プログラムなのだろう?
取り敢えずADO(2.5以降らしい)を使ったサンプルとか。
ttp://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list74.shtml

352 名前:名無し~3.EXE:04/01/10 19:24 ID:z/4XaDjm

現在開いている IE のウィンドウから、ページのタイトルと URL を得て、
クリップボードにコピーしようと試みてます。

で、IE のウィンドウが一つのときは、とりあえずできたんですが、
複数の IE ウィンドウがあるときに、一番上にあるものを選び出す方法が
分からず困ってます。

// 現在開いている IE のウィンドウ(?)を得る。
var Shell = WScript.CreateObject("Shell.Application");
var WindowsShell = Shell.Windows();
for (var i = 0; i < WindowsShell.Count; i++) {
if (WindowsShell.item(i).FullName.match(/iexplore.exe$/i)) {
var ie = WindowsShell.item(i);
break;
}
}

こうすると、一番最初に開いたウィンドウが得られてしまい、目的がかないません。

どうすればいいのか分かる方、助言をください。


353 名前:343:04/01/11 01:41 ID:Slh+hzA9
>>346
よければ教えて貰えませんか?

354 名前:名無し~3.EXE:04/01/11 01:49 ID:U+Y3XC2H
粘着ウザイ

355 名前:名無し~3.EXE:04/01/11 02:11 ID:4pepaZVN
>>347
ActiveX = COM です。WSHから使うには IDispatchを実装します。

356 名前:名無し~3.EXE:04/01/11 07:45 ID:p7wwCAgJ
Javascript Windowsってすごいですね。
ttp://www.bitesizeinc.net/jWindows/

WSHで、ここまで出来るものなんですね。

357 名前:名無し~3.EXE:04/01/11 10:24 ID:S13q4guY
>>355
thanksです。VBA + APIで作ったモジュールを移植したいのでVB6で適当に作ってみることにします。


358 名前:名無し~3.EXE:04/01/11 11:56 ID:DGOTnMWp
>>353
wshファイルは当該フォルダにおけないから(ダブルクリックしたら選択が変わる)
パスを渡すUI作るの面倒くさそう

359 名前:名無し~3.EXE:04/01/11 14:37 ID:2GDqtyeO
例えばwindows2000サーバ上で夜間バッチを走らせるとして

1.DBからデータをテキストファイルに抽出
2.ファイル転送ソフトで他企業に転送
3.転送ログチェック

みたいなことを皆さんはどうされてるんですか
wshをベースにして作ってますか?

360 名前:名無し~3.EXE:04/01/11 17:19 ID:FhBPAUL2
>>359
C#.Net, JScript.Netを使ったり,WSHで作ったり,
やりやすいので作ってます。

361 名前:名無し~3.EXE:04/01/11 23:59 ID:Bg8Oyp5w
>>356のところに行っても何もおきないんだが・・・

362 名前:名無し~3.EXE:04/01/12 01:55 ID:/jUWesP+
SIDはどうすれば取得できるでしょうか・・・

363 名前:359:04/01/13 13:53 ID:jVkrhHWb
>360
ありがとうございました。

364 名前:名無し~3.EXE:04/01/15 15:56 ID:6AcG8WGY
質問です。
IEブラウザで改行がない右端折り返しされてる文字列を
改行を挿入して取得するにはどうすればいいのでしょうか?

例:
ああああああああああああああああ|←ブラウザの端で折り返し
ああああ

↓このようにしたいんです。

ああああああああああああああああ(改行)|←ブラウザの端で折り返し
ああああ(改行)

365 名前:名無し~3.EXE:04/01/21 06:12 ID:oeBS6s6x
243とかで、でてきた
UrlEncode関数、UrlDecode関数のJScript版、きぼーん。
簡易版でも、いいです。

366 名前:名無し~3.EXE:04/01/21 07:31 ID:1pmV8AwW
>>365
JScriptだと、実はGlobalオブジェクトにencodeURI/decodeURIメソッドがある。

367 名前:名無し~3.EXE:04/01/22 15:08 ID:qSdsWMac
inputboxから入力されたレジストリ値を入れ替えたいんだけど
変数を経由した値への変更ってできないんですか?

RegWrite使用とすると「引数の数が一致していないか不正なプロパティ」で落ちてしまう(´・ω・`)

例えば、↓のAutoShareServerの”0”の値を、
画面から応答入力された”1”や”2”に変更するってのをやりたいんだけど
objWshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\AutoShareServer",0,"REG_DWORD"

詳しいひと教えてぷりーず(´・ω・`)

368 名前:名無し~3.EXE:04/01/22 19:45 ID:iIV+XSm9
>>367
CLngとかした?

369 名前:名無し~3.EXE:04/01/23 18:31 ID:NweawgIP
JScript による Windows Script Host で、複数のスクリプトの排他制御を
行うには、どのように実装するのが一番簡明でしょうか?

Perl や C なら flock や bind、java なら synchronized() 等を使う所
ですが、JScript ではどうするべきでしょう? 無理に外部プログラムを
使ったりするのではなく、もっと簡単な方法がありそうなのですが。


370 名前:名無し~3.EXE:04/01/23 21:22 ID:jnQWcq2j
そんなもんスクリプトでやることかい

371 名前:名無し~3.EXE:04/01/24 11:01 ID:KLM0u7IA
>>368
サンクス

やったことなかったです。
C〜って命令は今まで一度も使ったことなかったので
それを使うことにさえ考えつかなかったというか...

早速やってみますです。

372 名前:名無し~3.EXE:04/01/24 16:06 ID:ztDTRir/
VBScript, JScript, Perl, Ruby
以外にWSHで使える言語があったら教えてください

373 名前:名無し~3.EXE:04/01/24 16:24 ID:0vAeX5q9
>>372
Pythonとか。
もはや「何故それでWSH?」って気しか起きないが。

374 名前:名無し~3.EXE:04/01/24 17:44 ID:ZFYOcAnl
MSによると、「利用可能なスクリプトエンジン」の中にREXXっていう
名前があるんだが、何これ?

375 名前:374:04/01/24 17:49 ID:ZFYOcAnl
ググってみたら、元々はIBMの汎用機で動くバッチとかシェルスクリプト
みたいな言語だとさ。

376 名前:名無し~3.EXE:04/01/24 18:59 ID:ztDTRir/
Python、REXXですかなるほど
Script Engineで具具って見たところTCLやLISPもつかるようです。


377 名前:名無し~3.EXE:04/01/24 19:13 ID:ztDTRir/
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, Lispは見つからず

378 名前:名無し~3.EXE:04/01/24 20:29 ID:ZFYOcAnl
rexx windowsでググったら何かあったよ。
REXX Software for Windows 95/98/ME/NT/2000
ttp://www.borg.com/~jglatt/rexx/win32/rxusrw32.htm

WSHで使いたいっていう需要なんてあるのかなー?

379 名前:名無し~3.EXE:04/01/24 23:26 ID:l1UYiQf+
PerlScriptは、sprintfとか、utimeとか使えて、便利だと思いますた。
JScript、なんでsprintf使えないんだろー!?

VBのDate構造体ってやつが、FSOから返されるんだけど、これがPerlScriptでは
どう扱ったら言いか判らず、変換部分だけJScriptにしたりして…(w
(utimeは、UNIX-timeを要求する)

# Lispかぁ…。どこにそういうWSH処理系があるんだろう?

380 名前:nil:04/01/25 09:27 ID:U5CJ/2hs
Lisp ActiveXとかでググったら、Visual Lispとか言うのが引っかかりますた。
Visual Lisp ActiveXでググると、なんか、CADソフトの機能拡張だか、プラグイン
だかみたいなものらすぃ。

ttp://www1.harenet.ne.jp/~hanafusa/visual/

381 名前:名無し~3.EXE:04/01/25 19:56 ID:uupLYtfv
Windows Scripting Hostって、UNIXのシェルスクリプトに比べると
たいしたこと出来ないで

382 名前:名無し~3.EXE:04/01/25 20:10 ID:L9qMlL7X
Active Bourne Again Shell きぼんぬ

383 名前:名無し~3.EXE:04/01/25 20:15 ID:L9qMlL7X
PHPはどうなんだろう?

384 名前:名無し~3.EXE:04/01/26 01:16 ID:WIUNIktU
野村バーチャル株式投資倶楽部
http://www2.nomura.co.jp/vstock/VirtualServlet?
に自動ログインできるWSHを書きたいと思っています。
ページを開くところまではできますが、ニックネーム、パスワード、ログインボタン
を押す方法がわかりません。
どなたかご教授いただけないでしょうか?

385 名前:名無し~3.EXE:04/01/26 01:22 ID:wLiU03yT
Sleipnirってタブブラウザのオートログインクリエイターが生成するコードを見るとよい

386 名前:384:04/01/26 01:39 ID:WIUNIktU
ありがとうございます。
やってみます!


387 名前:384:04/01/26 02:55 ID:WIUNIktU
たびたび、すみません。
Sleipnirでは自動ログインできました。
しかし、ソースを見ても、
Sleipnir.APIを使っている部分を普通のjavascriptにできません。
お教えいただけないでしょうか?

388 名前:名無し~3.EXE:04/01/26 13:44 ID:MjTQor71
>>387
コントロールのプロパティとメソッド使えば簡単ですよ。

たとえば、VBScriptですが、Googleにテキストを設定して検索かけるには

Ie.Document.f.q.Value = ”検索する文字列”
Call Ie.Document.f.btng.Click

ってやればOK。

389 名前:名無し~3.EXE:04/01/26 14:04 ID:nksZBiMY
>>388
GETメソッドでわざわざそんなのする必要があるのか……?

390 名前:名無し~3.EXE:04/01/26 23:06 ID:wLiU03yT
>387
SleipnirAPIを使っているのは「SleipnirでアクティブなタブのDocumentオブジェクトを取得する」
部分だと思ったけど。
あーでもそのへん自作オブジェクトでラッピングしてるんだっけか。

391 名前:名無し~3.EXE:04/01/27 01:06 ID:uHBZdLXc
>>389
IEオブジェクトのDocumentCompleteイベントで実行。

392 名前:384:04/01/27 01:45 ID:nS9w5VWf
自分で書いた分は、時間待ちしてなかったのでobjectが取得できなかった
みたいです。
function WaitLoad() {
var stat, dstart;
stat = 0;
while(true)
if(stat == 0) {
if(!IE.Busy)
if(IE.Document.readyState == "complete") {
dstart = (new Date()).getTime();
stat = 1;
}
}
else {
if(!IE.Busy &&
IE.Document.readyState == "complete") {
if((new Date()).getTime() >= dstart)
break;
}
else
stat = 0;
}
}
こんな関数拾って実行したら解決しました。
みなさん、ご親切にありがとうございました。
本当に勉強になります。

393 名前:saku:04/01/30 18:22 ID:QNZCNACG
教えてください。
ヤフーチャットのいつも行く部屋に、HTMLでWindowsScriptingを使い、
簡単に入室するにはどう書けばいいか教えてください。
手動では、最初にHNを選んで、次にjabaか、htmlか選択して、目的の部屋のカテゴリーを選んで、
Yahoo!ルームか、ユーザールームか選んで、部屋名があるページを探して入室。
来れを、HNと部屋名とHTMLか、JAVAかを指定するだけで、入室できないでしょうか?

394 名前:名無し~3.EXE:04/01/30 18:37 ID:Tw29e2MT
試行錯誤する前に来るなよ。

395 名前:saku:04/01/31 00:28 ID:8l/JEfc0
すいません
まったくの初心者なんですが、WindowsScriptingでこれは、作れますか?
初心者には、難しい物でしょうか?


396 名前:名無し~3.EXE:04/01/31 00:48 ID:aUAxJze+
クズだな

397 名前:名無し~3.EXE:04/01/31 01:14 ID:2HIc0w+5
>>395
詳しいことはヤフーチャットを見たことないからわからんが、初心者がやるとなると難しいと思う。
同じようなことを考えた人間から助言させてもらうと、スクリプトだけでなくHTMLも勉強する必要がある

398 名前:名無し~3.EXE:04/01/31 04:08 ID:iozLAQ/u
>>393
できるよ。
でも、教えたくない。

399 名前:名無し~3.EXE:04/01/31 19:26 ID:4VVlodk6
>>393
HTMLごときで「勉強」とか言うなよ…
いくら初心者でもみりゃわかるだろうが。

400 名前:名無し~3.EXE:04/02/01 11:07 ID:4z9zbGpV
>>393 >>395
java版でログインするとさ、データロード中に画面下の方に
「アプレットの起動に失敗しウインドウが立ち上がらない場合は、ここをクリックしてリロードしてください。」
って書いてあるだろ?

で、「ここをクリック」の「ここ」の部分にリンクが張ってあるから、
そこをクリックしてそのままデスクトップまでドラッグ。
これでその部屋へのショートカットのできあがり。

部屋を選ぶ所でやってもいいけど、これだとjavaアプレットのロードに失敗するっぽい。

というわけで、ぜんぜんWSHとは関係のない方法で解決。

401 名前:saku:04/02/01 20:25 ID:mtY0Qktz
>>400
そういう手もあったんですね、自分の環境でそのやり方だと、ボイスが使えないんですが、普通は使えるんでしょうか?
>>397
HTMLの基本は分ります。
>>398
WindowsScriptingできる事はできるんですね。
HNを選んだりjavaか、htmlかを選ぶなんてこともでできるんなら、便利ですね〜。

402 名前:名無し~3.EXE:04/02/02 18:38 ID:cV3P0F18
回線切る→シャットダウン
これ作ってください。おねがいします。

403 名前:名無し~3.EXE:04/02/02 18:47 ID:PlfVAIN4
>>402
どうせシャットダウンするのに回線を切る意味が分からない。

404 名前:名無し~3.EXE:04/02/02 19:26 ID:g5p6RLsV
>>403
USBのモデム子機を導入したところ、先に
回線を切らないとシステムの電源が落ちなくなったので。

405 名前:名無し~3.EXE:04/02/02 20:36 ID:YJaV986A
普段はどーやって回線切ってるの?

406 名前:さな:04/02/02 20:57 ID:+vEjljGX
WSHで、
<html>
<head>
<script language=VBScript>
<!--
set WSHShell = WScript.CreateObject("WScript.Shell")

と記述するとプログラム全体が動かなくなってしまいます。
しかし、HTMLに組み込まず、ただのVBScriptにするとWScriptを書いていても
動き、HTMLに組み込むときはWScriptをなくすだけでプログラム全体が
動きます。
ただ、どうしてもsleepが使いたいのでどうしたらよいか教えてください。
よろしくお願いします。


407 名前:名無し~3.EXE:04/02/02 21:15 ID:YJaV986A
>>406
sleep.vbsを作って
それをrunさせればいいんでないの?

408 名前:名無し~3.EXE:04/02/02 21:16 ID:eduYQaw5
age

409 名前:名無し~3.EXE:04/02/02 23:59 ID:4Xp8p17t
>>405
タスクトレーの普通のダイヤルアップ接続のアイコンから切ってます。

410 名前:名無し~3.EXE:04/02/03 00:55 ID:Wv1aCGuQ
>>409
なるほど。
それと同じことをさせればイージャンと指摘しようと
思ったが、わからんね。スマソ
ベクターでもいってソフト探してきな。

411 名前:名無し~3.EXE:04/02/03 19:18 ID:YhhjYhV/
Iria(ダウンローダー)のIriaAPIにDialup、Hangupといったメソッドが
あるのでそういうソフトを導入してみるのも手かも。

412 名前:名無し~3.EXE:04/02/03 19:23 ID:HfVvWHFy
青風の作者の単機能ツールに回線切断がある

413 名前:名無し~3.EXE:04/02/03 21:29 ID:U6oiLH0/
rasdial コマンドはXPからだっけ?

414 名前:名無し~3.EXE:04/02/03 22:21 ID:znDjgcvD
今見たら2000にもあった

415 名前:名無し~3.EXE:04/02/04 00:14 ID:oO9Nrf2u
まえにどっかでソースの見られないHTAがあった気がするんだけど、方法がわかりません。
どなたかご存知ないでしょうか?

416 名前:名無し~3.EXE:04/02/04 11:44 ID:aWsd/X/2
すれ違い

417 名前:名無し~3.EXE:04/02/04 12:33 ID:q0FeCKEH
>>415
Script Encoder で暗号化できるんじゃない?

418 名前:名無し~3.EXE:04/02/05 23:26 ID:8i5LyG+H
>>136

やっぱりWMIの日本語情報ってないっすかね
英語わからんし、きついっす

419 名前:名無し~3.EXE:04/02/06 00:02 ID:On4WpJL8
>>136 >>418
http://wmifun.atinfinity.net/

420 名前:名無し~3.EXE:04/02/14 17:59 ID:rpTCRkF9
vbsでMSXMLを使いxmlのファイルをクライアントに作りたいのですが
vbsから呼び出すと正しく動作するのに
ブラウザから呼び出すとうまくいきません。
xmlを保存するときにsaveメソッドで止まっているので
権限か何かかと思うのですが、どうやったらうまくいくでしょうか?
環境
OS:WindowsXP pro
ブラウザ:IE

421 名前:名無し~3.EXE:04/02/15 02:01 ID:FOO6YdWP
EmEditorのようにJScriptやVBScriptを自前アプリケーション上で走らせて
パラメータとかを渡したいのですが,どのようにやればよいのでしょうか?
あるいはどのAPIを使えばよいのでしょうか?
ご教示願います.

環境
Win2K
VC++6.0

422 名前:名無し~3.EXE:04/02/15 09:00 ID:+mfHVX45
>>421
IActiveScriptSite で調べてみ
スレッドがからまないなら簡単だよ


423 名前:421:04/02/15 12:36 ID:FOO6YdWP
>>442
ありがとうございました.

424 名前:名無し~3.EXE:04/02/15 21:22 ID:NauJSgdn
アクティブX対応スクリプト言語エンジンのProgIDと
.wsfでlanguage=""のところで何を書くか
はどうやったら分かりますか?

425 名前:名無し~3.EXE:04/02/16 01:09 ID:nnfj2eSM
ScriptControlのLanguage
に渡せる文字列を列挙する方法はありますか?

426 名前:名無し~3.EXE:04/02/16 01:17 ID:nnfj2eSM
Ageてみます

427 名前:KingMathematician ◆5lHaaEvFNc :04/02/16 10:48 ID:+Nls/Qip
ちょっと質問。
VBSの動くソフトはIE,WSHの他にメジャーなものはありますか?
VBSが動かず、JavaScriptが動くソフトはNN以外にメジャーなものはありますか?

428 名前:名無し~3.EXE:04/02/16 13:28 ID:wI4XgN6o
>>427 VBSの動くソフトはIE,WSHの他にメジャーなものはありますか?
ほかには hta くらいかな?

429 名前:KingMathematician ◆5lHaaEvFNc :04/02/16 16:46 ID:4U4oPZj8
Re:>>428 どうもありがとうございます。htaってソフトですか?

430 名前:名無し~3.EXE:04/02/16 17:28 ID:xoPsuk1f
久しぶりのウィッシュスレパピコ。
皆さんがんばってください。

431 名前:名無し~3.EXE:04/02/16 17:31 ID:HRD2V/Tb
>>429
hta は ie5.0 から一緒にある mshta.exe のこと

432 名前:名無し~3.EXE:04/02/16 17:35 ID:HRD2V/Tb
>>424
ProgID は Active Script Engine の CATID を含んでる clsid を調べれば
わかると思う

433 名前:名無し~3.EXE:04/02/17 09:33 ID:xdOBiezt
VBSまたはJSで「c:\hoge\hage\nantoka.exe」を渡したら「c:\hoge\hage\」
が帰ってくるように、フォルダのパスを取得するにはどうすればいいでしょうか。

434 名前:名無し~3.EXE:04/02/17 10:51 ID:YeRceIk6
Left(path, InStrRev( path, "\")

435 名前:名無し~3.EXE:04/02/17 10:52 ID:YeRceIk6
)

436 名前:名無し~3.EXE:04/02/17 11:07 ID:L1/6wC/5
>>435
ワラタ(´-`)

437 名前:名無し~3.EXE:04/02/17 12:55 ID:kUOOlSS7
>>433
strPath = c:\hoge\hage\nantoka.exe
Set objFS = CreateObject("Scripting.FileSystemObject")
strFolder = objFS.GetParentFolderName(strPath) & "\"


438 名前:437:04/02/17 12:55 ID:kUOOlSS7
strPath = "c:\hoge\hage\nantoka.exe"
ですた。

439 名前:名無し~3.EXE:04/02/18 00:48 ID:HFtJxkpY
チョット話しずれるけど、みんな何のエディタで普段スクリプト書いてるの?

440 名前:名無し~3.EXE:04/02/18 01:19 ID:CnCGg5gP
sakura

441 名前:名無し~3.EXE:04/02/18 01:43 ID:fjRGLqwf
VxEditor with 補完クン

442 名前:KingMathematician ◆5lHaaEvFNc :04/02/18 05:35 ID:vMC64SR+
Re:>>439 NOTEPAD

443 名前:名無し~3.EXE:04/02/18 07:50 ID:KDZLPUgf
      ヽ(・ω・)/   ズコー
      \(.\ ノ


444 名前:名無し~3.EXE:04/02/18 12:12 ID:PFaGnrjP
>>439
秀丸でVBSのキーワードを色定義して書いてる

445 名前:名無し~3.EXE:04/02/18 16:39 ID:ltM8/cbP
漏れも秀丸

446 名前:名無し~3.EXE:04/02/18 16:51 ID:qzvQiHQC
つかあんまり意味無い質問じゃね?
ほぼ全員「普段から使ってるエディタ」になるんだろうから。


かくいう私はxyzzyのjscript-mode。

447 名前:名無し~3.EXE:04/02/18 17:25 ID:SzjVcaSd
              。       
                う     
          r           
       で    o     ょ   
    す         t       
         E         し  
   。          i       
        m          ま  
   ス      E  d        
                  め   
     レ          や     
       違  い  は        


448 名前:名無し~3.EXE:04/02/18 21:11 ID:VyFK/FyF
>>447
>>447

449 名前:名無し~3.EXE:04/02/19 02:13 ID:/3r1Lcfx
よさそうなソフトハケーン
WSHAssistant
ttp://hp.vector.co.jp/authors/VA036013/
関数・定数を補完
自分で生成したインスタンスのメソッド・プロパティも補完
クラスのメソッド・プロパティには説明文も出る
引数も表示
「WScript.Argument.Name」みたいなのも補完
補完候補の単語は自分で設定することが可能
すれ違いスマソ次の話題ドゾー

450 名前:名無し~3.EXE:04/02/19 02:31 ID:ynL9ig8U
はっきり言って、ぬる度で間に合ってます。

451 名前:名無し~3.EXE:04/02/19 05:46 ID:Vvnxa5Dy
新しいソフトを公開するのは勝手かもしれないけど
既存のソフトを越えないものは何の意味もないよ。
需要も無いのに供給を渡すのはキチガイとやってることは変わらない。

452 名前:名無し~3.EXE:04/02/19 06:01 ID:fEh5tV2J
ソフト単位で超える超えないしか基準がない奴に
偉そうなこと言われる作者とかやってらんねぇだろうなw

453 名前:名無し~3.EXE:04/02/19 06:07 ID:GWbC1+aZ
キチガイはこの世からきえてほしいよ。




454 名前:名無し~3.EXE:04/02/19 09:13 ID:JTZpcGuL
VBSでフォルダの有無を確認して、無ければ作成する処理を作っているのですが
現状だと一つの階層毎に「オブジェクト.CreateFolder」をしています。
これを一行で途中のフォルダも作ってくれるようにできないでしょうか?

・駄目例(C:\以下に「1st」フォルダが無い状態から「c:\1st\2nd\3rd\」を作る場合)
If (FileOBJ.FolderExists("c:\1st\2nd\3rd\")) = false Then
FileOBJ.CreateFolder("c:\1st\")
FileOBJ.CreateFolder("c:\2st\")
FileOBJ.CreateFolder("c:\3st\")
End If

455 名前:名無し~3.EXE:04/02/19 13:08 ID:YvdhZnbf
>>451
で、その頂点にいるソフトを作ってるんですね?

456 名前:名無し~3.EXE:04/02/19 17:55 ID:HIZpNAaD
個人単位でも企業単位でもソフトなんて何時開発止まるか分からんからなー。
今はちょっとイマイチなソフトでも未来の代替品になる可能性もあるわけで。
選択肢が多い方が楽しいし、ひとつのソフトで万人の要望に適うような事なんてあり得んし。
よほどショボいブツでなければ、何の意味も無いようなソフトにはならないでしょ。

457 名前:名無し~3.EXE:04/02/19 20:59 ID:tlZfPMmu
>>454
1行にしたいと思う前に、目的を果たすスクリプトを作れるようになれ。

本題だが、1コマンドでは無理。
良く使うものなのでFUNCTIONかSUBで再帰的に処理させるものを作った方が良いと思う。

どうしても1行で書きたいのなら以下の様にコロンで繋ぐことでできないこともないが、
見にくいだけなので止めた方が良い。

IF 1 THEN MSGBOX "1" END IF:IF 1 THEN MSGBOX "2" END IF:IF 1 THEN MSGBOX "3" END IF


458 名前:名無し~3.EXE:04/02/19 21:59 ID:c2AXtHTq
ぐぐったらこんなんでてきた。
http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list29.shtml のいちばん上。
使えるならおれも使って楽したいんで動作確認よろ。

459 名前:名無し~3.EXE:04/02/19 22:46 ID:kg6dFXFa
>>449
使ってみたけどかなり気持ち悪い動作をするね。
大文字小文字の扱いとかクリップボードを使ってたりするのも減点かな。

>>451
既存のソフトでそんなすごいソフトってあったっけ?

460 名前:名無し~3.EXE:04/02/19 23:25 ID:kg6dFXFa
つーか>>449ってどうやって見つけたの?
ググっても出てこないし、更新された直後っぽいし。

ただの宣伝だったのか・・・_Πo

461 名前:名無し~3.EXE:04/02/19 23:47 ID:uIch0qMr
>>460
漏れは>>449じゃないけど
OnlineSoft VersionUp.infoで見たよ

462 名前:449:04/02/19 23:50 ID:/3r1Lcfx
宣伝じゃないよ
http://www2s.biglobe.ne.jp/~takao777/versionupinfo/
漏れここブックマークしてるから見たらのってたし、このスレでエディタ
話題になってたからさらっとコピペしただけ。
>>459
そうなんだ・・
正直使わずに書いた。DLはしたけど

463 名前:459:04/02/20 00:19 ID:M7qafsZ0
>>461
>>462
そでしたか、スマソ。

WSH関連ならツール紹介でもよろしいかと。
これからも良さげなモノを見つけたら紹介してください。

464 名前:名無し~3.EXE:04/02/20 03:14 ID:GlxOOnD4
>>454
JScriptだけど、同じような質問があった。
ttp://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list96.shtml

465 名前:名無し~3.EXE:04/02/20 06:44 ID:OvsQMPQk
dmonkeyならForceDirectoriesしてるから1発で作られる



466 名前:454:04/02/20 16:42 ID:gwQAW54i
>457、464
ありがとうございました。
「CreateFolder」の再帰版メソッドを期待してたのですが
やっぱり無いんですね。

前のソース急いで書いたんで思いっきり間違ってますねw
いちおう、実際は以下です。
Set FileOBJ = CreateObject("Scripting.FileSystemObject")
If (FileOBJ.FolderExists("e:\1st\2nd\3rd\")) = false Then
FileOBJ.CreateFolder("e:\1st\")
FileOBJ.CreateFolder("e:\1st\2st\")
FileOBJ.CreateFolder("e:\1st\2st\3st\")
End If


467 名前:名無し~3.EXE:04/02/21 00:58 ID:vJzHNL98
>>458は無視かよ。再帰はしてないけど。

まあ、Sub MyCreaetFolder() なんていうプロシージャ名を敬遠するのもわかるが。


468 名前:名無し~3.EXE:04/02/21 02:18 ID:AkcacTgE
JScriptで未知のCOMオブジェクトのメソッド、プロパティを列挙したいのですが
どうしたらよいですか?

469 名前:名無し~3.EXE:04/02/21 02:46 ID:vvh0PRJt
>>468
CreateObjectしてからオブジェクト自体をprint?

470 名前:464:04/02/21 04:31 ID:BPVjpF0f
>>466
関数に目覚めた方がいいんじゃない?
関数を放り込んでおけば、後は1行でかけるし。

JScriptのcreateFolder関数はサクサク動いてます。

そろそろ、CLASSに目覚めようかな?

471 名前:454:04/02/21 08:45 ID:IGzrcCBG
>458
上司に隠れて見てるので見落としてた・・・スマソ
で、動作OKでした。
俺もこれでほぼ解決です。

>470
実際に使うときはcallで呼ぶようにしてますよw
不要な部分は書き込まないほうがいいと思ってるんだけど


472 名前:名無し~3.EXE:04/02/21 17:04 ID:ucQkMUPK
Scripting.Dictionaryオブジェクトのキーってオブジェクト入れられるんだ。
リテラルしか入れられないものとばっか思っていて既定のプロパティ省略したらハマったよ。

473 名前:名無し~3.EXE:04/02/25 23:36 ID:5b+XA8FR
WSHでPCをスタンバイ状態にできないでしょうか?

タスクで実行→スタンバイで終了 という感じで毎日決まった
操作をさせたいと思っています。


474 名前:名無し~3.EXE:04/02/25 23:53 ID:bTkcEHve
>>473
ぐぐれ

475 名前:名無し~3.EXE:04/02/26 13:55 ID:D7i7hkKh
ダイヤルアップルータを使っているのですが、接続要求をPOSTで、
切断要求をGETメソッドで送る仕組みになっています。
GETはショートカットを作って切断していますが、
一々ブラウザが立ち上がってしまいます。
このやり方ではPOSTはフォーム画面からの操作になり面倒です。
これらをブラウザを立ち上げないで実現したいのですが、
いい方法はありませんか?

476 名前:名無し~3.EXE:04/02/26 14:01 ID:hzXs2lwE
>>475
DMonkeyなら楽に出来る

477 名前:名無し~3.EXE:04/02/27 00:27 ID:10E93ZVO
>475
WScriptからIE呼び出していじるときって、IEのvisibleをfalseにすれば
IEのウィンドウを表示することなく操作できなかったっけ?

478 名前:名無し~3.EXE:04/02/27 09:08 ID:3VWvEF7i
>>475
XMLHTTP

479 名前:名無し~3.EXE:04/03/01 23:59 ID:6Q8ucKtL
特定のディレクトリに存在する全ての画像ファイル(bmp)の、
任意の色を、指定した色へ一括置換することはウィッシュで可能ですか?

480 名前:名無し~3.EXE:04/03/02 01:55 ID:HZulEPaY
>>479
TOYOTAに聞け。

481 名前:名無し~3.EXE:04/03/03 01:14 ID:skgKAP4d
>>475
もう見てないかな。JScriptだとこんな感じ。

var IE = new ActiveXObject("InternetExplorer.Application");
var uri = "http://192.168.0.1/";

// GETの時
IE.Navigate( uri + "?hoge=fuga&foo=bar" );

// POSTの時
IE.Navigate( uri );

while( IE.busy );
while( IE.Document.readyState != "complete" );

// フォームが複数ある時は幾つ目なのか数えて変更する。nameがあればそれでもokかも
var formItems = IE.Document.forms[0];

// postしなきゃいけないフィールドがあったら値をセットしておける。
formItems.elements[ "hoge" ].value = "fuga";
formItems.elements[ "foo" ].value = "bar";

formItems.elements[ "button1" ].click(); // 送信ボタンのname

482 名前:名無し~3.EXE:04/03/03 21:30 ID:uSM/poUa
On Error Resume Nextを使っていて
下のようにエラーが重なった場合、一つ目のエラーのDescriptionを
保持しているのですが、ErrオブジェクトはErr.clearしない限りは
エラーが複数発生しても一つ目のエラー情報を保持するのでしょうか?


「Windows Script v5.6 ドキュメント」より。ちょっと変更

On Error Resume Next
Err.Raise 6
MsgBox (Err.Description)
Err.Raise 7
MsgBox (Err.Description)

483 名前:名無し~3.EXE:04/03/03 22:54 ID:0Zs+sDJ2
Explorer のアイコン表示をwshから設定することはできるでしょうか?
大きいアイコンとか、詳細とかです

484 名前:名無し~3.EXE:04/03/03 23:01 ID:skgKAP4d
>>482
違うと思う。
Err.Raise number だけで生成したエラーがDescriptionを書き換えないだけっぽい。
Err.Raise number, source, description まで指定すれば書き換えられてる。

On Error Resume Next
Err.Raise 6
MsgBox (Err.Description)
Err.Raise 65535, "test", "error test"
MsgBox (Err.Description)

また、Raiseを使わずに発生したエラーでも書き換えられる。
On Error Resume Next
Err.Raise 6
MsgBox (Err.Description)
Err.Description
MsgBox (Err.Description)


485 名前:482:04/03/04 12:49 ID:QUPFlspw
>484
なるほど、Descriptionはそのままでも
numberは変わってますね。
これで、納得して先に勧めそうです。有難うございました

486 名前:名無し~3.EXE:04/03/04 16:58 ID:HVI4Uo3E
WshShellオブジェクトのRunメソッドを用いて
半角スペースを含むフォルダの配下にあるファイルをコマンドライン引数付きで実行する際、
コマンドライン引数がファイルにきちんと渡されないことがあるみたい。

具体的には次の場合が:
NALT (時刻修正ソフト、軽量・レジストリ非使用)
ttp://akky.cjb.net/download/nalt.html
は-aオプションをつけて実行すると非表示で起動して終了する。
nalt.exeをC:/tempフォルダに置いて以下のコード:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:/temp/nalt.exe -a"
を実行すると、確かに非表示で起動して終了するけど、
C:/temp/test testフォルダに置いて以下のコード:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """C:/temp/test test/nalt.exe"" -a"
を実行すると非表示で起動しない。
ちなみに、前者の場合では
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """C:/temp/nalt.exe"" -a"
でもきちんと-aオプションが渡されるはずなのに渡されない。

スタートアップスクリプトにこのソフトを組み込みたいんだけど、
このせいでうまくいかない…
コマンドライン引数の渡し方が良くないのかなぁ。
ソフト側の不具合なのかな?

487 名前:486:04/03/04 17:28 ID:S4NPQ77U
>>486
自己レス
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.CurrentDirectory = "C:/temp/test test/"
WshShell.Run "nalt.exe -a"
でとりあえずうまく行ったけど、Runメソッドを使う場合は
必ず作業ディレクトリを変えるべきなのか…

488 名前:名無し~3.EXE:04/03/04 23:47 ID:jbovg0C6
>>487
RunじゃなくてExec使え。
↓これでお望みの動作だと思う。

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Exec( """C:/temp/test test/nalt.exe"" -a" )

489 名前:st:04/03/05 01:06 ID:xFU9jTte
質問させてください。
WSHを使ってアプリケーションの印刷を実行したいのです。
具体的には、印刷ページ「ファイルに保存」にチェックを
つけて、出力先ファイル名も、ダイヤログを開かせて
入力するのではなく、あらかじめ決めうちのファイルに
出力させたい。

普通に印刷させるだけなら下記のようになると
思うのですが(MS-Wordの例)、それ以上の応用となると
さっぱりです(資料が……)。

// 印刷するファイル名
doc = "c:\\test.doc";

// アプリオブジェクト作って読み込み
word = WScript.CreateObject("Word.Application");
word.Documents.Open(doc);
word.visible = false;

// オプション設定して印刷
word.Options.UpdateFieldsAtPrint = true;
word.Options.PrintBackground = false;
word.ActiveDocument.PrintOut();

//終了処理
word.ActiveDocument.Close();
word.quit();


490 名前:名無し~3.EXE:04/03/06 10:58 ID:GBV4lnOj
スクリプトにD&Dした各フォルダの全部の中身をまとめてEasy圧縮に渡して
その各々のフォルダの中に、できた圧縮ファイルを置けるようなスクリプトって作れますか?
無圧縮zip.mp3をリネームするときにバラのファイル名を流用することが多いもので……。
最初バッチファイルでやろうとしたんですが、Easy圧縮がワイルドカードを受けつけてくれずできなかったです。。

491 名前:名無し~3.EXE:04/03/06 18:12 ID:BBFbPGA+
>>489
ここ参考のこと。
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/dv_wrcore/html/wrtskhowtosenddocumentstoprinter.asp

ちなみに第3引数Rangeで指定する列挙体はそれぞれ以下の通り。
jsやvbsでは対応する数字で指定すればいいかな。

wdPrintAllDocument = 0
wdPrintSelection = 1
wdPrintCurrentPage = 2
wdPrintFromTo = 3
wdPrintRangeOfPages = 4


↓プリントアウトの部分だけ。

// オプション設定して印刷
word.Options.UpdateFieldsAtPrint = true;
word.Options.PrintBackground = false;
word.ActiveDocument.PrintOut( true, false, 0, "c:\\printtest.pm" );


492 名前:名無し~3.EXE:04/03/06 18:40 ID:BBFbPGA+
>>490
あんまりスマートじゃないけどこんなでどうよ。
Easy圧縮の設定で「圧縮元ファイルと同じ場所(I)」と「圧縮完了を通知しない」を選択のこと。

var WShell = WScript.CreateObject( "WScript.Shell" );
var fso = new ActiveXObject("Scripting.FileSystemObject");
var Argu = WScript.Arguments;
var fList = new Array();
var i, target, fld, fc, fn, count = 0;

for ( i = 0; i < Argu.length; i++ ) {
target = Argu.Item(i);
if ( fso.FolderExists( target ) ) {
fld = fso.GetFolder( target );
fc = new Enumerator( fld.files );
for ( ; !fc.atEnd(); fc.moveNext() ) {
fList.push( fc.item().Path );
}
} else {
fList.push( target );
}
}

while ( fn = fList.pop() ) {
WShell.Exec( "C:\\ezc12\\EASYLZH.EXE " + fn );
}

493 名前:名無し~3.EXE:04/03/06 18:42 ID:BBFbPGA+
>>492
count = 0 はいらんかった。

494 名前:名無し~3.EXE:04/03/06 18:59 ID:nBDP2t/Y
こないだのセキュリティうpデートで
user@password:url 形式のURLがそのままじゃ使えなくなりましたよね
.Navigate2とかで認証付きのページを何とか利用したく思い、
レジストリ変更でとりあえず現在ログインしているアカウントでは利用可能でしたが、
Win2kでの「タスク」によるスケジュール実行の場合、正しく起動アカウント設定しても
なぜか動作してくれませんでした。

別の方法があれば教えてください

495 名前:名無し~3.EXE:04/03/06 23:59 ID:GBV4lnOj
>>492
ありがとうございます!
早速拡張子jsで保存しMP3の入っているフォルダをD&Dしてみました。
ところが、MP3ファイルのそれぞれを(一斉に)個別圧縮してしまい、うまく動かないようです……。
album1\
 1-1.mp3, 1-2.mp3
album2\
 2-1.mp3, 2-2.mp3, 2-3.mp3
↑このフォルダalbum1&2をスクリプトにD&Dすると、圧縮経過を示す
ダイアログが一気に5つ開き、各々のファイルの個別圧縮が始まって
album1\
 1-1.mp3, 1-2.mp3, 1-1.zip, 1-2.zip
album2\
 2-1.mp3, 2-2.mp3, 2-3.mp3, 2-1.zip, 2-2.zip, 2-3.zip
↑こんな感じに圧縮ファイルが出来上がってしまいます。
圧縮経過ダイアログを一つずつ順繰りに出していって、各々のフォルダ中身全部を
そのフォルダの中に圧縮したものを出すようにしていただけると助かりますです。。
album1\
 1-1.mp3, 1-2.mp3, NEW1.ZIP (←1-1.mp3 + 1-2.mp3が圧縮されたもの)
album2\
 2-1.mp3, 2-2.mp3, 2-3.mp3, NEW1.ZIP (←2-1.mp3 + 2-2.mp3 + 2-3.mp3が圧縮されたもの)
こんな具合に。
お手数かけてすみません。お願いします……。
もしこちらの勘違いでしたらすみません。

496 名前:名無し~3.EXE:04/03/07 00:27 ID:XFSZdfk5
ここは何屋さんですか?

497 名前:名無し~3.EXE:04/03/07 00:42 ID:20mtoeBO
>>495
>492 のスクリプトの動作はそれで正常。だってそうなるようにしたんだもん。
フォルダは丸ごと圧縮だったのな。

圧縮ファイルの保存先は「c:\temp」、ファイル名は「NEW1.lzh」で決めうち。
連番機能で「NEW2.lzh」とかなった時のことはしらん。
D&Dされるのもフォルダに決めうち。ファイルがあった場合はしらん。

var WShell = WScript.CreateObject( "WScript.Shell" );
var fso = new ActiveXObject("Scripting.FileSystemObject");
var Argu = WScript.Arguments;
var i, folder;

for ( i = 0; i < Argu.length; i++ ) {
folder = Argu.Item(i);
var oExec = WShell.Exec( "C:\\ezc12\\EASYLZH.EXE " + folder );
while (oExec.Status == 0) {
WScript.Sleep(100);
}
fso.MoveFile( "c:\\temp\\NEW1.lzh", folder+"\\" );
}


498 名前:495:04/03/07 03:47 ID:A2fo+AfB
>>497
バッチリ動きました、ありがとうございます!
497さんのスクリプトをパクらせていただいて、解凍レンジの個別(順次)解凍のスクリプトもできました。
これでかなり快適になるです。ありがとうございました。

// [解凍レンジで個別解凍] EasyExtract.js
var WShell = WScript.CreateObject( "WScript.Shell" );
var fso = new ActiveXObject("Scripting.FileSystemObject");
var Argu = WScript.Arguments;
var i, fn;

for ( i = 0; i < Argu.length; i++ ) {
folder = Argu.Item(i);
// 解凍レンジへのフルパス+コマンドラインオプション
var oExec = WShell.Exec( "D:\\PROGRAM\\EASYRANGE\\ERANGE.EXE " + "+m -o -v -s +w -a -t +c +j " + folder );
while (oExec.Status == 0) {
WScript.Sleep(100);
}
}

499 名前:486:04/03/07 09:38 ID:QROk9kvq
>>488
本当だ。ありがとうございますた。

500 名前:st:04/03/09 00:44 ID:5rJiLJqT
>>491
なるほどサンクス。
WordのVBAでマクロ記録したら
それっぽい引数名に空文字列を
渡していたんで、もうちょっとがんばれば
良かったわけだな。

ともあれ感謝。



501 名前:名無し~3.EXE:04/03/15 17:42 ID:O2W+E1EN
>>16 (11)

参考にしてやってみたんだが、
確かにCABファイルはできるが
XPで、エクスプローラで解凍しようと
すると

この操作を完了するのに十分な記憶域がありません。

とでるのは、漏れだけですか。

Set cab=CreateObject("MakeCab.MakeCab.1")
cab.CreateCab "Test.cab",False,False,False
cab.AddFile "test1.txt","test1.txt"
cab.AddFile "test2.txt","test2.txt"
cab.CloseCab
Set cab=Nothing

502 名前:エタ:04/03/16 21:44 ID:wKnbkTxS
おい、超偉い人教えてくださいませ!
_______________________________
■NTドメイン上のコンピュータアカウントのSIDを得る方法■
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
まじで、お願いします。偉い人。期待してます。

503 名前:名無し~3.EXE:04/03/16 21:58 ID:AYGU/2SB
>>502
前に同じ事尋ねたけど反応なかったよ

504 名前:エタ:04/03/16 23:17 ID:wKnbkTxS
だからって埋もれさせる理由は無いさ

505 名前:名無し~3.EXE:04/03/17 00:55 ID:LeyNMhTJ
>>502
こういうこと?

var acs = GetObject("winmgmts:{impersonationLevel=impersonate}")
.ExecQuery("SELECT * FROM Win32_AccountSID");

for ( var e = new Enumerator(acs); !e.atEnd(); e.moveNext() ) {
var ac = e.item();
WScript.Echo( ac.Element + "\t" + ac.Setting );
}

506 名前:エタ:04/03/17 08:42 ID:m3t8glGg
それはローカルPCまたはその時直接アクセスできるリモートが対象ではないかい?
欲するは、ドメインDBからコンピュータアカウントのSIDを引き出すこと。

507 名前:名無し~3.EXE:04/03/20 01:20 ID:GkkE6i7l
wshからのExcelのソートの仕方がわかりません
誰かおせーてください


508 名前:名無し~3.EXE:04/03/20 11:12 ID:RX1LdlGi
Set obj = CreateObject( "Excel.Application" )
で、Applicationオブジェクト作ってソートしたいRangeを設定してSortメソッドでできるんじゃないかな


509 名前:名無し~3.EXE:04/03/21 03:38 ID:AKEZeoyl
nbtscan.exe

510 名前:名無し~3.EXE:04/03/22 22:53 ID:KF7Gwk9O
文字置換スクリプトにおいて、SJISコードで下二桁が9Dの時、
そいつを元の文字+@(任意の文字)にしたいのですがうまくいきません。

replStr = "A"
setStr = "BG"

現状でAという文字がBGと置換はされるのですが、
文字コードの指定方法がいまいちわかりません。
どなたかアドバイスをくれませんか?

511 名前:名無し~3.EXE:04/03/23 03:22 ID:LS/IG5LA
>>510
文字置換スクリプト
ってなに?

512 名前:名無し~3.EXE:04/03/23 05:41 ID:nmp7FxJM
秀丸マクロ

513 名前:名無し~3.EXE:04/03/24 21:51 ID:OiCQBoKe
Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate("url")
ie.Visible = True

ってやると、すでにIEが起動している場合、同一プロセスに
相乗りして起動しまいます(別ウィンドウであがりますが・・・)。

これを別プロセスで起動させる方法ってあるのでしょうか?

514 名前:名無し~3.EXE:04/03/29 21:11 ID:v8sAD3G9
復帰

515 名前:名無し~3.EXE:04/03/31 03:25 ID:9sNece1r
IEのお気に入りの中の、URLの特定部分を一括置き換えするスクリプトってありませんか?
pc2.2ch.netからpc5.2ch.netへの鯖変更で、URL書き換えがたまらなくマンドクセー

516 名前:名無し~3.EXE:04/03/31 10:10 ID:UnGL88Qs
置換すればいいじゃん

517 名前:名無し~3.EXE:04/04/02 02:42 ID:l2IlQlXC
ファイル選択が出来るコモンダイアログボックスっぽいの無いでしょうか?
フォルダを選択するダイアログボックスは簡単に出来たんスけど。

518 名前:名無し~3.EXE:04/04/04 06:40 ID:O4OyPESs
すみません
↓こちら>>3にあった個人サイトさまのところにあったJavaScriptなのですが
 これをWordでなくOutlookExpressに変えることってできますでしょうか?
 こういう風にイベントを拾うことができるのってWordやExcel,IEなどの特殊な
 アプリケーションだけなんですかね?(´Д`;)

//Wordを立ち上げる
var objWD = WScript.CreateObject("Word.Application", "WD_");
objWD.Visible = true; //Wordを可視にする

//イベントを待つためのループ
while(true) {
WScript.Sleep(1000); //WSH2.0以上で使える
//不慮の事故でイベントが発生しなかったときのため
if(!objWD.Visible)
WScript.Quit();
}

//終了イベントが発生したときに実行される
function WD_Quit() {
WScript.Echo("Word を終了します");
WScript.Quit();
}


519 名前:名無し~3.EXE:04/04/04 14:01 ID:zqvZzeQo
>>518
できない。


520 名前:518:04/04/04 16:08 ID:O4OyPESs
どーもありがとー^^
助かりましたー

521 名前:518:04/04/04 23:12 ID:O4OyPESs
一応↓みたいにやれば閉じたときに何かするってできるみたいですねー^^
WSHShell.Run "msimn.exe",,true

ただタスクトレイって言うんでしたっけ、右下に常駐させてあるアプリを
アウトルック閉じるのと同時に閉じようと思ったんですけどそれはできませんでしたが(´Д`;)
WSHってソフト起動はできても終了は難しいんですね(´Д`;)


522 名前:名無し~3.EXE:04/04/05 00:05 ID:UY/yow8q
指定のテキストファイルの最後に
D&Dされたファイル名を追加するスクリプトキボンチュ!

523 名前:名無し~3.EXE:04/04/05 01:12 ID:LLPARLtR
echo %1>>abc.txt

524 名前:名無し~3.EXE:04/04/05 11:48 ID:bQTMet0d
ど素人でスイマセン。
WSHとはまったく関係ないのですが、Windowsのコマンドプロンプトでfor文を使って、
繰り返し処理を検討しているのですが、現時点で、for文が何回実行されているか
を表示する環境変数や方法ってないですか?
たとえば、

C:\.arg_test.bat 30000

<内容>
for /L %%I IN (1,1,%1) do echo "Counter ?"

とした場合、?に、for文の実行回数を表示したいのですが・・・・・・・


525 名前:名無し~3.EXE:04/04/05 14:44 ID:E/hieQNn
for /L %%I IN (1,1,%1) do echo "Counter %%I"
でいいんじゃねーの?

526 名前:名無し~3.EXE:04/04/05 20:04 ID:UY/yow8q
>>523
スマン。よくわ

527 名前:名無し~3.EXE:04/04/05 22:32 ID:aRz2BInQ
>>526
523の書いた一行を、テキストファイル test.bat にコピペして保存。
この test.batをデスクトップとかに置いて、そのアイコン上に任意の
ファイルを D&D すれば目的達成。

528 名前:名無し~3.EXE:04/04/05 23:45 ID:UY/yow8q
>>527
さっきやったら「ECHO は <ON> です。」とか謎のtxtが出てきたけど
ショートカットからやったら出来た。ありがとう

529 名前:名無し~3.EXE:04/04/06 14:38 ID:pR0ckaDO
>>525

ありがとごぜーますた。複雑にかんがえておりますた・・・・・・・

530 名前:名無し~3.EXE:04/04/06 14:39 ID:qc9cIEIF
複数のファイルでもD&Dされたファイル名のリストが出来る
大丈夫な高度なバージョンキボン

531 名前:名無し~3.EXE:04/04/06 15:00 ID:Gk3Vkbm+
>>530
バッチには詳しくないからそこらで拾った奴。
因みにWindowsの制限で、ある程度以上の数をまとめてD&Dするとエラーがでる。

@echo off
:start
if %1.==. goto quit
echo %1>>c:\documents\a.txt
shift
goto start
:quit

532 名前:名無し~3.EXE:04/04/06 22:26 ID:J0u9Q4UJ
バッチはコッチで
http://pc5.2ch.net/test/read.cgi/win/1062775949/


533 名前:名無し~3.EXE:04/04/06 23:03 ID:w9Ppv/Tz
>>521
RunよりExecの方が良くないかな。
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/wslrfexecmethod.asp

プロセスの終了方法は>175

534 名前:518:04/04/07 00:27 ID:YFo0E4OW
おおおおおおおおおお!!
有意義な情報ありがとうございます!!

ちなみにプロセスって閉じても問題ないんでしょうかね?(´Д`;)
いえ、それしか右下に入ってるの止める方法ないとは思うんですが、
タスクマネージャーでプロセス止めようとするとけっこうな脅し文句(警告)が出るのでちょっと気になりまして・・(´Д`;)


535 名前:名無し~3.EXE:04/04/07 14:13 ID:r3TGZg1x
>>534
問題ある

536 名前:518:04/04/07 15:16 ID:YFo0E4OW
うほっ!
おとなしく手動で閉じときますw

537 名前:名無し~3.EXE:04/04/07 21:01 ID:D1Ek8BVS
プロセスの起動、終了イベント取得方法としてはこんなのもある。

// プロセスの起動を検出
var pros = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecNotificationQuery( "SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'" );
while ( 1 ) {
var pro = pros.NextEvent();
if ( pro.TargetInstance.Name == "notepad.exe" ) {
// やりたいこと
break;
}
}

__InstanceCreationEvent を __InstanceDeletionEvent に変えると終了を検出。


538 名前:名無し~3.EXE:04/04/07 22:41 ID:HmaTY8KC
すんません
アルファベットを数字に対応させるスクリプトを作りたいです。
functionに数字を与えると、アルファベットが返ってくるものです。
対応は以下のような感じです。(26進数とでも言いましょうか)

1=a , 2=b , ... , 26=z , 27=aa , 28=ab , ... , 52=az , 53=ba , ...

どなたか偉い人、助けてください。お願いします

539 名前:名無し~3.EXE:04/04/07 23:12 ID:I1bu5S7C
>>538
とりあえずJScriptで。
もうちょいエレガントにできるような気もするけど……。

function GetRadix26(number) {
   if (number < 1) return "";
   var integer = number, str = "";
   do {
      str = String.fromCharCode((--integer % 26) + 97) + str;
   } while ((integer = Math.floor(integer / 26)) > 0);
   return str;
}

540 名前:名無し~3.EXE:04/04/07 23:23 ID:L7oaWI5s
目的には合わないけど、純粋に26進数をやるなら
var num = 10;
WScript.echo(num.toString(26));

541 名前:538:04/04/08 00:48 ID:zPdfZKvB
>539
すごいですね。確認しました。
実は私、VBSしか扱えないのですが、このスクリプトはVBSにすることは難しいでしょうか。

542 名前:名無し~3.EXE:04/04/08 01:25 ID:ZT9aFhyj
VBSは嫌いなり。

Function GetRadix26(number)
  Dim ret : ret = ""
  Dim integ : integ = number
  While integ > 0
    integ = integ - 1
    ret = String(1, (integ Mod 26) + 97) & ret
    integ = integ \ 26
  Wend
  GetRadix26 = ret
End Function

543 名前:538:04/04/08 08:05 ID:zPdfZKvB
すげえ。。。。。しかもこんな夜中に。。。
あんた神様だ。

544 名前:名無し~3.EXE:04/04/08 10:32 ID:VtzQSxeq
>>542
話は全然変わるけど、なんで >>539 とか >>542
きれいにインデントされて表示されてるの?
>>537 みたくいつも行頭のスペースは削除されてしまって
インデントつかないんだが。

542 からコピペ
While integ > 0
integ = integ - 1
ret = String(1, (integ Mod 26) + 97) & ret
integ = integ \ 26
Wend

新規に入力
for(i=0; i<10; i++) {
if(i != 5) {
WScript.Echo(i);
}
}

545 名前:名無し~3.EXE:04/04/08 11:36 ID:Vf0kwziJ
& で出来る

546 名前:名無し~3.EXE:04/04/08 11:37 ID:Vf0kwziJ
ごめ、&nbsp;

547 名前:名無し~3.EXE:04/04/08 12:47 ID:VtzQSxeq
>>546
へぇー、なるほど。
  そうやってスペースが入力できるんですね。
    30年来の謎が解けたよ。
      サンキューでした。

548 名前:名無し~3.EXE:04/04/08 13:04 ID:TYuC7y8o
下のUWSCのスクリプトなんですけど

ID = GETID("Adobe Illustrator")
DEF_DLL PostMessageA(HWND,Long,Long,DWORD):Bool:user32.DLL
WM_COMMAND = $111
PostMessageA(IDtoHND(ID), WM_COMMAND, 12800, 0)

同じことがやりたくてdynacallを登録し>>149を真似ようとしたのですが
PostMessageAのiとかrをどう記述すればいいのかわかりません。

var WM_COMMAND = 0x0111;
var UserWrap = WScript.CreateObject("DynamicWrapper");
UserWrap.Register ( "USER32.DLL", "FindWindow", "i=ss", "f=s", "r=h" );
UserWrap.Register ( "USER32.DLL", "PostMessageA", "i=huuu", "f=s", "r=l" );
var hWnd = UserWrap.FindWindow( "Adobe Illustrator", 0 );
var result = UserWrap.PostMessageA( hWnd, WM_COMMAND, 12800, 0 );

上のスクリプトはresultが1を返してるけど何の反応もありません。


549 名前:名無し~3.EXE:04/04/08 19:15 ID:WK9UFKkL
>>548
FindWindowの引数が違う。

550 名前:名無し~3.EXE:04/04/08 23:39 ID:E2Tvfxnm
>>548
FindWindowの第一引数はウィンドウキャプションではなく、ウィンドウクラス。
Illustrator10のウィンドウクラスは"Illustrator9"。

var hWnd = UserWrap.FindWindow( "Illustrator9", 0 );

ウィンドウクラスを調べるには持ってればSpy++を使うんだけど
ないなら ttp://www.vector.co.jp/soft/dl/win95/prog/se291933.html で十分。


551 名前:名無し~3.EXE:04/04/08 23:45 ID:DGOgV8UZ
WSHでどうにかしてDLLを呼び出すことできないですか?

552 名前:名無し~3.EXE:04/04/09 00:12 ID:zjNLtzhA
>>551
ググれ。

553 名前:548:04/04/09 10:38 ID:knDZVkYP
成功しました。本当に感謝しております。

ちょっとググって見た限りだと自動化には
SendMessageのほうが向いてそうなので、
PostMessageAをSendMessageに代えても
問題なく動いてくれました。

参考ついでに、も一つ質問なんですが
12800などのコマンドの番号を調べるには
どんな方法があるのでしょうか?

現状では、UWSCのスクリプトを使って
選択したメニューの番号を調べてます。

554 名前:名無し~3.EXE:04/04/14 18:17 ID:PHFgj4Kh
VBスクリプトで、シェル内で、Cのヘッダファイルincludeみたいに
他のシェルのソースも呼び込む事って出来ないんでしょうか?

いくつかバッチ風のファイル作ったのですが、共通で使うConstの変数とか
結構あるので、それ1ファイルにまとめて最初に呼び込んで、
全部宣言しちゃいたいんですが。

555 名前:名無し~3.EXE:04/04/14 19:42 ID:9mwW3+/E
>>554
wsfファイルを使って各vbsをインクルード。
この方法を使うと他の色々なエンジンを組み合わすことが出来て便利。
vbsとPrelとか。

詳しくはMSDNを。

556 名前:名無し~3.EXE:04/04/16 09:14 ID:w9KoHQ4e
>>554,555

wsf ファイルでもいいけど、こういう方法もある。
さらに、Include 内で読み出す文字列をいじってから
ExecuteGlobalするようにすれば面白いことができる。

Include("test.vbs")

' test.vbs の関数
func()

Sub Include(ByVal file)
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(file)
ExecuteGlobal( f.ReadAll() )
End Sub



557 名前:名無し~3.EXE:04/04/18 00:37 ID:0Nm6I2Oe
openjaneについてるIEの「対象をファイルに保存」をDmonkeyやwshからでも同じようなこと出来ますか?
shdocvw.dllのDoFileDownloadを使ってるらしいのですが。

Delphiのルーチンはこんな感じです。
ttp://jane2.cun.jp/test/read.cgi/morningcoffee/1042515970/236-237

558 名前:名無し~3.EXE:04/04/19 00:58 ID:LAXtuuX0
>>557
「対象をファイルに保存」ってアドレスを右クリックしたときのでしょ。
どこに表示されたアドレスに対してそのメニューを出したいの?

単にIEオブジェクトを使って「ファイルのダウンロード」画面を出したいのなら
Navigateでいけそう。エラーが出るからtry...catchするとかして。

559 名前:557:04/04/19 02:10 ID:nNQBcXcZ
>>558
おぉレスサンクスです。!
どういう状況で出したいのかといいますと、、、
自分が使ってるエディタはEmEditorなんですが、それには他のアプリにコマンドライン付きで
起動させる機能がついているのでエディタで表示しているURLをWSHとかに渡して
ブラウザのようにダウンロードしたいんです。

出来そうっすか?

560 名前:名無し~3.EXE:04/04/19 12:39 ID:cKMLtum3
ダウンロードするだけならDMonkeyで(new HTTP).getFile('url','localfile');でいける

561 名前:名無し~3.EXE:04/04/19 20:54 ID:bZTbuDtK
>>560
確かにgetFileで落とせることも出来るのですが、
途中でキャンセルしたい場合とか接続が繋がってるかどうかGUIで分かるから便利なんですが。
まぁDmonkeyでも出来そうだがスキルない・・・


562 名前:名無し~3.EXE:04/04/20 22:17 ID:L5+/m7Z5
>>561
EmEditorで、カーソル位置のアドレスをIEでダウンロードorファイルに保存。
かなーり適当。IEよりダウンローダーに渡した方が良いと思うけどね。

var IE = new ActiveXObject("InternetExplorer.Application");
document.selection.CopyLink();
IE.Navigate("about:blank");
var clp = IE.Document.frames.clipboardData;

IE.Navigate( clp.getData('Text'), 0 );

while ( IE.Busy );
while ( IE.Document.readyState != "complete" );
if ( IE.document.URL != "about:blank" ) IE.ExecWB( 4, 0 );

563 名前:557,561:04/04/22 02:07 ID:ZbN1pQYP
>>562
遅レスすいません。
おぉすごい!これいいっすね。
マクロに登録して使い倒します( ;´Д`)

564 名前:名無し~3.EXE:04/04/25 13:46 ID:4PZE/4vI
Dim oFS, sTarget
Set oFS = WScript.CreateObject("Scripting.FileSystemObject")
For Each sTarget In WScript.Arguments.Unnamed
If oFS.FileExists(sTarget)Then
oFS.MoveFile sTarget, oFS.GetParentFolderName(sTarget) & "/../"
End If
Next

1つ上の階層へファイルを送るってやつですが、
ファイルのみではなくフォルダであろうが同様の操作をさせるにはどうすればいいですか?

565 名前:名無し~3.EXE:04/04/25 14:28 ID:IZhLKFOY
>>564
Windows Scripting Host Laboratoryの
ダウンロードにある
フォルダ内のアイテムを上位フォルダに移動する
スクリプトを使えばいいのでは?

566 名前:名無し~3.EXE:04/04/25 23:36 ID:L/G2A73Q
FolderExists のときは MoveFolder すればいいんじゃね?

567 名前:名無し~3.EXE:04/04/27 09:47 ID:61+TBcbw
多重起動を抑制するには、どうすればいいのでしょうか?
「ロックファイルにPIDを出力して…」みたいな、定石があれば御紹介ください。

568 名前:名無し~3.EXE:04/04/29 08:42 ID:m8J/+GsI
>567
起動を監査する対象がEXEならWMIでいけると。

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'Database.exe'")
If colProcesses.Count = 0 Then
Wscript.Echo "Database.exe is not running."
Else
Wscript.Echo "Database.exe is running."
End If


569 名前:名無し~3.EXE:04/04/29 10:34 ID:ZuH74Xba
実は今、PC初期設定コンプリートの為のスクリプトを書くことを
検討中なのです。

会社に新規に導入したPC100台に対して、一括して
1.IEのプロキシ設定のかき込み
2.あるテキストに1行ごとに登録したIPを各PCに設定
3.おなじくWinsの設定やDNSのかき込み
4.OEのアドレス帳のインポート
5.OEのメールアドレス、パスワードの自動設定>あるテキストから持ってくる

とりあえず、これを機械的にばばっとやれるスクリプトを書きたいのですが、これ
は物理的にできるのでしょうか?

570 名前:名無し~3.EXE:04/04/29 12:22 ID:ATiBnBtm
物理的って??

571 名前:名無し~3.EXE:04/04/29 21:07 ID:m8J/+GsI
たしかに物理的って意味がわからん。パソコンの設定に物理が関係あるのか?
カッコ良さそうだから使って見たのかい?ぼうや。

だいたいOSは何なんだ?
IP設定してないってことは、通信できない状態だろ。
同じ状態のツールをあらかじめ配っておくつもりか?
IPが沢山書いてあるテキストから重複なしにどうやって割り振るんだ?
ホスト名:IP:MACアドレス の対比表ならできるか・・・
NT系の場合、IEの風呂敷はユーザ単位だぞ。同一ユーザでログオンしたら駄目だぞ。

ADでグル−プポリシー、DHCPサーバを使えばスクリプトなんか要らずに4.5.以外は解決するよな。
会社でOE使ってんのか?まじで?
普通ExchangeServerだろーーーーーーーーー? Outlook2000ならSendkeyメソッドで自動化したことがあるな。

あーつかれた。

572 名前:名無し~3.EXE:04/04/30 03:10 ID:WFvQYMh6
ageた上に妙に興奮しているヤツがいるな w


573 名前:名無し~3.EXE:04/04/30 15:49 ID:UN+bzQ53
>>569
XPか2000ならスクリプトなんか書かずにできる。

574 名前:名無し~3.EXE:04/04/30 19:09 ID:W5RdsvGh
>573
NETSHのことだとしたら、あれも一種のスクリプトだと思うが。

575 名前:名無し~3.EXE:04/04/30 19:55 ID:ItAiNq99
すいません、今VBScriptの本を読みながら、
いろいろ作ってみているところなんですが、
お薦めの書籍とかってありますか?
出来るだけ幅広く、詳しく出ているのが欲しいんですが、
図書館や本屋で探しても、いまいちどれがいいのか・・・

576 名前:名無し~3.EXE:04/04/30 22:16 ID:W5RdsvGh
専門書に幅広さを求めるなよ(笑)
オライリー系の本なら外れは少ないと思う。
ttp://www.oreilly.co.jp/index/quick/

577 名前:名無し~3.EXE:04/05/01 00:58 ID:JqDd2F1V
>>575
VBScriptの本を読みながらとあるが、どんな本を(例えば書名とか)読んでいるのかな?
それによってアドナイスも変わってくると思う。
まぁ、WSHの本自体が少ないんだけど。

オライリーのWSHクイックリファレンスは悪い本じゃないと思うが、文字通りリファレンスだから
君の希望に合致するかどうかは疑問。(オブジェクトのリファレンスで関数ははしょってある)


578 名前:名無し~3.EXE:04/05/01 07:23 ID:m+FvtCtI
>>576
dクス
オライリーはいいところなんですか。
とりあえず、書店で見てきまつ。

>>577
「VBScriptハッカーズプログラミング」
「VBScriptクイックリファレンス」
書名は怪しいけど、とりあえずマトモな本です。
学校の図書館にはこれ以外はHTMLに埋め込むための本しかなくて・・・
リファレンスブックでいいんですが、関数とかハショらないで
出来るだけ仕様とか詳しく書いてある本がホスィです。
上に書いた本だと、WSHとか、IE・Excelの動かし方とかはちゃんと出てないのです(´・ω・`)

579 名前:名無し~3.EXE:04/05/01 07:38 ID:Q53XKgW+
リファレンスそのものはMSDNにあるしなぁ。

580 名前:名無し~3.EXE:04/05/01 07:38 ID:5JvoJ6r3
ヘルプみれや

581 名前:名無し~3.EXE:04/05/03 14:02 ID:svr2IVqb
>>578
>>579-580でも言われてるけど、
VBSやJScriptの関数、WSHのオブジェクトなどに関してはMSDNが一番。
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/vtoriMicrosoftWindowsScriptTechnologies.asp?frame=true

IEオブジェクトに関してはMSDNに日本語ドキュメントは無いっぽい。
VB用だけどVBSと大して変わらないでしょ。
ttp://msdn.microsoft.com/workshop/browser/webbrowser/reflist_vb.asp?frame=true

エクセルやワードに関しては、
Officeをインストールしたディレクトリ下のどこかに
ヘルプファイルが沢山あるフォルダがあると思うので
その中からファイル名に「VBA」が含まれてるヤツを見ていくといい。
エクセルなら VBAXL〜.CHM、ワードならVBAWRD〜.CHMとか。"〜"は数字(多分バージョン)。
VBA用だけど問題ないはず。

582 名前:名無し~3.EXE:04/05/06 09:12 ID:X4PfDImF
VBScriptでの Dir 関数の使い方を教えてください。
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vblr7/html/vafctdir.asp
のサンプルから

Dim MyFile, MyPath, MyName
' Returns "WIN.INI" if it exists.
MyFile = Dir("C:\WINDOWS\WIN.INI")

の3行をコピペして拡張子 vbs のファイルにテキストエディタで保存したところ、

エラー: 型が一致しません。: 'Dir'
コード: 800A000D
ソース: Microsoft VBScript 実行時エラー

というエラーが出てしまいました。Dim に As String と加えてもエラーになり

エラー: ステートメントの末尾が不正です。
コード: 800A0401
ソース: Microsoft VBScript コンパイルエラー

と出ます。いったいどうしたらいいのでしょうか?

583 名前:名無し~3.EXE:04/05/06 09:14 ID:X4PfDImF
なお、OS は Windows XP SP1 で、WSH 自体のバージョンは調べ方が分からない状態です。

584 名前:名無し~3.EXE:04/05/06 09:20 ID:PFoUlqJY
VBScriptにDir関数なんてない
ttp://activex.adsp.or.jp/public/iasdocs/aspdocs/ref/vbs/vbscript/Function.htm

585 名前:名無し~3.EXE:04/05/06 10:07 ID:X4PfDImF
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/FSOoriFileSystemObject.asp
で自己解決しました。

586 名前:名無し~3.EXE:04/05/06 13:30 ID:PFoUlqJY
(´・ω・`)

587 名前:名無し~3.EXE:04/05/07 00:36 ID:vYytL1K5
sage

588 名前:名無し~3.EXE:04/05/07 16:19 ID:O+Dx19KU
WSHでプログレスバーを表示する方法はありますか?
たとえば、3000個のフォルダに対して操作するときに
「x個中y個完了」とかいう表示を随時見せるような感じに
できればいいんですけど…。


589 名前:名無し~3.EXE:04/05/07 18:55 ID:mF336620
Windows標準の奴は難しいんじゃない?
IEのウィンドウに表示するとかならできるかな

590 名前:名無し~3.EXE:04/05/07 19:23 ID:uKaqLE9J
コマンドラインに表示してやればいいじゃん、と思ってしまう。

591 名前:名無し~3.EXE:04/05/07 19:24 ID:RpZtUoso
>>588
>>589のいうとおりだし。
つまりそういうことは、HTAでやれば。

592 名前:名無し~3.EXE:04/05/07 20:49 ID:dLjAemXD
そういえば、HTAのスレって見ないな。
あったっけ?

593 名前:名無し~3.EXE:04/05/07 20:59 ID:K9ZxSVbq
>>592 ない
http://pc5.2ch.net/test/read.cgi/hp/1068286485/


594 名前:名無し~3.EXE:04/05/10 16:31 ID:HmTvgj3I
Byte型のデータをInteger型に変換する方法はあるでしょうか?
ぐぐったのですがVBや.NETでのやり方しか見つけることが出来ず難渋しています。

595 名前:名無し~3.EXE:04/05/10 16:39 ID:jeFroQHt
>>594
まずMSDNを見ような、と。
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/vsidxconversion.asp

596 名前:594:04/05/10 17:25 ID:HmTvgj3I
>595
すみませんでした。
CIntでエラーが出るので、出来ないと思いこんでいたのですが原因は別のようです。

あらためて質問なのですが、次のスクリプトでCIntがエラーになるのですが原因は何でしょうか?

Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
set objFileSystem = CreateObject("Scripting.FileSystemObject")
strRoot = objFileSystem.GetParentFolderName(WScript.ScriptFullName)
strFileName = strRoot & "\tmp.dat"
Set objStream = CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFileName
l = objStream.Size
ReDim a(l)
objStream.Position = 0
For i = 0 To 5'l
byteBuf = objStream.Read(1)
a(i) = CInt(byteBuf)
Next
objStream.Close
set objStream = nothing
set objFileSystem = nothing

597 名前:名無し~3.EXE:04/05/10 18:15 ID:jeFroQHt
>>596
>      byteBuf = objStream.Read(1)
で返ってくるのは特殊な配列なので、AscB(byteBuf)で変換。

598 名前:名無し~3.EXE:04/05/10 19:11 ID:HmTvgj3I
>597
ありがとうございます。解決しました。

599 名前:名無し~3.EXE:04/05/12 02:01 ID:CJrPizfp
質問させてください。
Wshで
ttp://hp.vector.co.jp/authors/VA036013/htmlassistant/screenshot.html
みたいなボックス(?)を使うことはできますか?
あと、このボックスの名前はなんていうんでしょうか?
名前が分からないので検索さえできません。
よろしくお願いします。

600 名前:名無し~3.EXE:04/05/12 02:14 ID:/pChCsez
多分リストボックス
そして無理

601 名前:名無し~3.EXE:04/05/12 02:24 ID:WQMUTPeO
HTAならいけるけどな。

602 名前:名無し~3.EXE:04/05/12 17:42 ID:HjS9eetm
VBScriptの正規表現で、以下のようなテキストから<TR>〜</TR>毎に
マッチさせたいのだがうまくいかない。
例のように<TR>〜</TR>の間に2行挟まっているような定型的なものだと
"<TR.*(\n.*){3}" とすればいいのだが、不定型なものだとうまくいかない。
正規表現で表すことは無理なのかな?
だれか分かる人がいれば教えて欲しい。

【例】
---------------------------------------------
<TABLE>
  <TR>
    <TD>タイトル</TD>
    <TD>WSH クィックリファレンス</TD>
  </TR>
  <TR>
    <TD>著者</TD>
    <TD>羽山博</TD>
  </TR>
</TABLE>
---------------------------------------------


603 名前:名無し~3.EXE:04/05/12 19:01 ID:GjeYWnZT
>602
"<TR>.*</TR>"じゃ駄目なの?
俺が質問の意図をくみ取れてないのかな。

604 名前:名無し~3.EXE:04/05/12 19:05 ID:GjeYWnZT
あ、ごめん勘違いしてた。

605 名前:名無し~3.EXE:04/05/12 19:07 ID:KBK4sKwo
msgboxとかにあるシステムモーダルってどんなときに使うの?
説明には「システム モーダルに設定します。メッセージ ボックスに応答するまで、すべてのアプリケーションが中断されます。」
とかなってたんで試しに
-----------------------
MsgBox "test",4116
MsgBox "test1",4096
MsgBox "aaaa",vbSystemModal
-----------------------
とか書いて走らせてみても、メッセージ ボックスに応答せず放置してても
何も中断されているようなモノがないような気がするんだけど???

606 名前:名無し~3.EXE:04/05/12 19:33 ID:GjeYWnZT
>602
"<TR>(.|\n)*</TR>"でいけるはず。

607 名前:名無し~3.EXE:04/05/12 20:02 ID:HjS9eetm
>>606
それだと *</TR> があるので、最後の</TR>までマッチしてしまう。
そこのところで悩んでいる。
なかなか難しいね。


608 名前:名無し~3.EXE:04/05/12 20:19 ID:GjeYWnZT
>607
</TR>までマッチさせてから、Left使って取り除いくのじゃ駄目?

609 名前:名無し~3.EXE:04/05/12 20:46 ID:WQMUTPeO
グループ化しちゃ駄目なの?

Dim reg, matches, i, text
'textにファイルから文字列読込
Set reg = new RegExp
reg.Pattern = "<tr>((?:.*\n)+?.*)</tr>"
reg.IgnoreCase = True
reg.Global = True
Set matches = reg.Execute(text)
For Each i In matches
   WScript.Echo(i.SubMatches(0))
Next

610 名前:名無し~3.EXE:04/05/12 20:50 ID:nA9R8B5Z
>>605
そういえば、Win3.1のときは全員とまってくれてたな〜

611 名前:名無し~3.EXE:04/05/13 00:58 ID:wCgJKQju
>>607
<TR>(.|\n)*?(?=<\/TR>)

612 名前:611:04/05/13 01:00 ID:wCgJKQju
?:があった方が良いかも。
<TR>(?:.|\n)*?(?=<\/TR>)

613 名前:名無し~3.EXE:04/05/13 01:43 ID:u0plldlJ
602 です。
レスしてくれた方、どうもありがとう。
怪しい書き方だけど、とりあえず解決した。
かなりいい加減な書き方をしているものでも、対応できるようになった。

"(.*<tr.*/tr>)|(.*<tr.*/tr>.*)|(.*<tr((?:.*\n)+?.*)/tr>)"



614 名前:名無し~3.EXE:04/05/13 03:03 ID:wCgJKQju
>>613
なんだよ。最短マッチじゃんかよ。
ウダウダ言ってるからもっとややこしいのかと思った。

"<(?:TR|tr)>(?:\n|.)*?<\/(?:TR|tr)>"
で終わりじゃん。

?:と大文字無くしてスッキリ書いたら
"<tr>(\n|.)*?<\/tr>" これだけだ。

615 名前:名無し~3.EXE:04/05/13 09:15 ID:+fb/FC9/
dynacallで、引数なしのAPI(GetForegroundWindowなど)を使う場合、
引数はどう設定すればよいでしょうか?

616 名前:615:04/05/13 09:42 ID:+fb/FC9/
自己解決できました、すいません(._.;)

617 名前:名無し~3.EXE:04/05/13 18:03 ID:5U7sysQr
>>614
"<(tr)(\n|.)*?/\1>" の方がいいと思うが。
それと嫌味な表現をしない方がいいと思うけどな。




618 名前:名無し~3.EXE:04/05/15 04:01 ID:t6oROyjp
WSHやらなんやらで、音楽ファイル(wavやmp3)の曲の長さを得るにはどうすればいいでつか?
何を調べればよろし?

619 名前:名無し~3.EXE:04/05/15 05:18 ID:t6oROyjp
なんだMPEG Audioって簡単には正確に曲の長さ出せないのか;;
計算で大体の値求めるしかないんでつか?
教えてエロい人。

620 名前:名無し~3.EXE:04/05/15 06:23 ID:8m9lza4r
メディアプレーヤ使うか?
var player = new ActiveXObject("WMPlayer.OCX.7");
とかして、
player.URL="x.mp3";
とか言う感じで。
で、あとはどうすれば?

621 名前:名無し~3.EXE:04/05/15 11:10 ID:t6oROyjp
ttp://www.geocities.jp/bywnn498/mp3/
Contentsの「再生時間の計算」を読んで619を得ました。

Σ(1152÷サンプリング周波数(Hz))
で出せるはずだけれども、時間かかって実用性無いそうで。
ついでに言えば、その周波数をドコからどうやって取得すればいいんだか...不明。
音楽ファイルの構造についてはサッパリなんで非常に困っとります。

MP3をテキストとして開いたら、再生時間が書き込まれていた!なんてこともないよねぇ。
ファイルのプロパティを一発取得!みたいに簡単な方法ありません?


622 名前:名無し~3.EXE:04/05/15 12:34 ID:pcpOTzoU
>>621
XPならエクスプローラーの詳細表示で表示できるから
GetDetailsOf とか使ってそれを取得すればいいんじゃない?
XP以外なら mp3infp 入れれば表示できるし。


623 名前:名無し~3.EXE:04/05/15 17:59 ID:0JT/Xed9
今日始めてこのスレ見たので今更ですが、>>454さんのやりたかった
ことを関数にしてみました。


Const strPath = "c:\1st\2nd\3rd"

Set FS = CreateObject("Scripting.FileSystemObject")

Call ForceDirectories(strPath) 'フォルダ作成関数呼び出し

Set FS = Nothing

'== フォルダ作成関数(親フォルダが無ければ再起呼び出し) ====
Function ForceDirectories(CreatePath)
  Dim ParentFolder
  ParentFolder = FS.GetParentFolderName(CreatePath)
  If Not FS.FolderExists(ParentFolder) Then Call ForceDirectories(ParentFolder)
  If Not FS.FolderExists(CreatePath) Then Fs.CreateFolder(CreatePath)
End Function


もう需要ないですかそうですか・・・_| ̄|○

624 名前:名無し~3.EXE:04/05/15 18:22 ID:0JT/Xed9
ところで、下のコードで生成したフォームを表示するには
どうしたらいいんでしょうか。

Dim UserForm
Set UserForm=CreateObject("Forms.Form.1")
UserForm.Caption = "hogehoge"
UserForm.Visible = True '←ここでエラー
Wscript.Sleep 3000
SetUserForml =Nothing


625 名前:名無し~3.EXE:04/05/15 21:04 ID:jyoKni2b
>>620
var wmp = new ActiveXObject("WMPlayer.OCX.7");
var media = wmp.newMedia( "c:\\hoge.mp3" );
WScript.Echo( media.getItemInfo( "Duration" ) );

これで秒をgetできる。

626 名前:名無し~3.EXE:04/05/16 01:01 ID:sgE2PxmI
>>624
そりゃコントロールは無理だろ

627 名前:名無し~3.EXE:04/05/16 01:17 ID:X785STks
>>624
.Visibleプロパティがないからエラーになってる

628 名前:名無し~3.EXE:04/05/16 12:01 ID:R+sqK+x3
>>626-627
やっぱりダメっぽいようですね。HTAでがんばってみます。

再描画ってどうやるんだろう・・・。

629 名前:名無し~3.EXE:04/05/17 22:37 ID:KlgCFm1n
>>628
GUIが必要なら、変にWSHに拘らず
JScript .NETとかC#でやった方が良いと思う。

JScript .NETならスクリプトっぽさはそのままで
.NET クラスライブラリが使えるから簡単に色々なことが出来る。

630 名前:名無し~3.EXE:04/05/18 00:09 ID:sKgLJGgE
>>629
レスサンクス

>>588みたいなことをやろうとしたんですが、会社で使うんで、
勝手にソフト入れられないんですよ。

仕方が無いんで、Excelのユーザーフォームで作っちゃいました・・・。

631 名前:名無し~3.EXE:04/05/25 00:44 ID:W+hpR351
微妙にスレ違いかも知れない質問ですが、IEの右クリックメニュー用のスクリプト
(形式上は *.htm)では WScript オブジェクトは使えないのでしょうか?
たとえば

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<script type="text/javascript">
    WScript.Echo("OK");
</script>
</head>
</html>

と書いて実行すると「'WScript' は宣言されていません」となります。

単に WScript.Sleep を使いたいだけなので別の解決策があれば
それでいいのですが・・・。

632 名前:名無し~3.EXE:04/05/25 21:11 ID:9IZ8mgVi
>>631
Settimeoutはどうでしょう。

633 名前:名無し~3.EXE:04/05/26 23:03 ID:PYqWo2Ks
ドメインのログオンスクリプトを作成しています。
空いているドライブを検索してマウントまではできたのですが、
既にネットワークがマウントされているかを判別するのに悩んでいます。
例えば"\\Server\Share"がどこかのドライブにマウントされているかを
判別するスクリプトを教えて下さい。
よろしくお願いします。

634 名前:名無し~3.EXE:04/05/26 23:11 ID:c9/0qWJY
>>633
EnumNetworkDrives

635 名前:名無し~3.EXE:04/05/27 02:58 ID:OYEe7nTT
>>632
うーん、確かに Settimeout は指定時間遅らせて関数を実行
できますが、やりたいのはスクリプト自体の停止なのです。

具体的には、document 中のあるプロパティを見張って
そのプロパティがある値になったら処理を行いたいと。
そこで WSH なら

while(the_value != 3){
    WScript.Sleep(1000);
    the_value = document......
}

というようにできるのですが、右クリックメニュー用スクリプト
だと今のところ実現できてません。

どなたかお知恵を!

636 名前:名無し~3.EXE:04/05/27 04:30 ID:jksQfLJE
>>635
外部 COM を使ってみてはどうでしょうか。
ttp://www.autoitscript.com/cgi-bin/countdown.pl?AutoIt/AutoItX.zip
------------------------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<script type="text/javascript">
WshShell = new ActiveXObject("WScript.Shell");
Ait = new ActiveXObject("AutoItX.Control"); // AutoIt
Ait.Sleep(5000);
WshShell.Run("notepad.exe");
</script>
</head>
</html>


637 名前:名無し~3.EXE:04/05/30 22:32 ID:xWmPQNyz
私の使っているタブブラウザ(Moon Browser)に、お気に入りを訪問回数でソートする機能がないので、
IEの履歴から訪問回数を取得しようと思い、以下のような履歴フォルダを走査するコードを書いたのですが、
一応動いてはいるようなのですが、20日分の履歴を処理するのに5分ぐらいかかってしまいます。
もうちょっと速くする方法はないでしょうか?
WindowsXP Pro、IE6.0です。

var HistoryFolder = 0x22;
var objShell = WScript.CreateObject("Shell.Application");
var objHistoryFolder = objShell.Namespace(HistoryFolder);
var cnt = new Array();

function count(folder) {
var i, item, url;
for (i = 0; i < folder.Items().Count; i++) {
item = folder.Items().Item(i);
if (item.IsFolder) {
count(item.GetFolder);
} else {
url = folder.GetDetailsOf(item, 0);
if (typeof(cnt[url]) == "undefined") {
cnt[url] = 1;
} else {
cnt[url]++;
}
}
}
}

count(objHistoryFolder);

638 名前:名無し~3.EXE:04/05/31 23:48 ID:5iJjVD1D
>>637
履歴は実際にはショートカットファイル群ではなく
c:/Documents and Settings/UserName/Local Settings/History/History.IE5/index.dat
みたいたなindex.datに格納されてるから、
これを直に読み込んで正規表現で抜き出せば速いかも。

perlでやってみたら速かった。
問題はファイル名の取得と抜き出し方法かな。

639 名前:名無し~3.EXE:04/06/04 12:38 ID:mIDRkQlB
初心者なのでよくわからないのですが、
aspのwebページをIEで開いて自動でパスワードとか
ボタンをクリックしたりできますか?


640 名前:名無し~3.EXE:04/06/04 18:50 ID:5fWUoTtC
初心者だったら PM12:38 に書き込んで質問して、答えてもらえるとでも?

641 名前:名無し~3.EXE:04/06/04 22:17 ID:aErqCyE2
>>639
上の方にIEオブジェクトを使って
フォームの項目に値を入れたりボタンをクリックする例がある。

642 名前:名無し~3.EXE:04/06/07 23:39 ID:xSMrBd0j
WSHでPCIバスにささっているボードの一覧を取得するにはどうしたらいいですか?

Win32_BusクラスからPCIバスの一覧を取得してWin32_PnPEntityクラスから
PCIのデバイスを取得しているんだけど、どのスロットに何のボードがささって
いるのかを上手く表せません

643 名前:名無し~3.EXE:04/06/08 01:59 ID:HMjv3nxA
>>636
遅ればせながら、レスありがとうございます。
残念ながら他のソフトをインストールすることは
できない環境なのです。
ということで諦めモードでフェードアウト。

644 名前:名無し~3.EXE:04/06/09 02:33 ID:PXKTCz31
引数をYahoo検索するスクリプトきぼん

yとなづけてパスをとおして
ファイル名を指定して実行したいのです


645 名前:名無し~3.EXE:04/06/09 15:58 ID:2gWDJhZD
>>644
y.bat
rundll32.exe url,FileProtocolHandler http://search.yahoo.co.jp/bin/search?p=%1

646 名前:名無し~3.EXE:04/06/09 17:22 ID:mUQxpbDk
VBScriptでInputBoxにパスワードを入力させたいんですが、普通に使うと入力した値が見えてしまい(当たり前ですが・・・)困っています。WSHと組み合わせてうまくできないでしょうか?
教えて下さいエロい人・・・。2000とXPで動くようにお願いします。

647 名前:名無し~3.EXE:04/06/09 17:51 ID:DJ3dBTQW
できますね

648 名前:名無し~3.EXE:04/06/09 17:55 ID:mUQxpbDk
どんなかんじにやればいいですか?

649 名前:名無し~3.EXE:04/06/09 18:00 ID:0uyHH9mW
スクリプトでそんなことやって大丈夫か?
入力パスワードの内容ログに出力とか変更されそう。

650 名前:名無し~3.EXE:04/06/09 18:16 ID:mUQxpbDk
スクリプト書き換えられなきゃ平気ですか?

651 名前:名無し~3.EXE:04/06/09 18:45 ID:mUQxpbDk
具体的にはノートパソコンをローカルネットワークに参加させる処理を自動化させたいんです。途中何回かユーザ名とパスワードを入力しなきゃいけないんで最初にInputBoxに入力して後は自動でやらせようとしてるんですが・・・。

652 名前:名無し~3.EXE:04/06/09 21:25 ID:A5QYHs4X
>>651
IE使ってHTMLはさんだら?

653 名前:名無し~3.EXE:04/06/09 21:50 ID:mUQxpbDk
↑どうもうまくいきません・・・。HTML使うと書き方かわるとかないですよね?

654 名前:名無し~3.EXE:04/06/10 00:35 ID:+yY3g5tK
>653
vbsとhtmlでは微妙に違うのでめんどくさい。
htaにしてpasswordだけ取得すると楽かも?
気休めとしてhtaを外部スクリプトにしてScript Encoderで暗号化とか?

ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=51&fi=no
↑これをpass.htaの名前で保存
↓これをpass.vbsの名前で同じフォルダに保存

Dim objArgs, i
set objArgs = Wscript.Arguments
if objArgs.Count=0 then
else
for each i in objArgs
msgbox i
next
end if
set objArgs = nothing


655 名前:名無し~3.EXE:04/06/10 01:40 ID:9fUFeFIK
ありがとうございます!今携帯からなんで明日やってみます!

656 名前:655:04/06/10 17:23 ID:9fUFeFIK
ありがとうございました。うまくいきました!

657 名前:名無し~3.EXE:04/06/11 23:53 ID:hipzp3Lx
フォント名の列挙と日本語と欧文の判別って出来ますか?

658 名前:名無し~3.EXE:04/06/12 00:13 ID:RfD/NbaQ
VBS、HTAに疲れました
GUIをバリバリ使える言語も勉強したいのですが、どんな言語がスムーズに乗り換えられますか

659 名前:名無し~3.EXE:04/06/12 00:16 ID:/KkjJHoG
GUIといえばDelphiでしょう。
http://www.borland.co.jp/delphi/personal/

660 名前:名無し~3.EXE:04/06/12 01:51 ID:sIRX+mYo
VB.NETって手もある。

661 名前:名無し~3.EXE:04/06/12 15:42 ID:J+mYYY21
Windows Scriptingだけでメールソフトを作りたい。

662 名前:名無し~3.EXE:04/06/12 15:48 ID:sIRX+mYo
>>661
スクリプトで書く意義が見当たらない。

663 名前:名無し~3.EXE:04/06/12 16:20 ID:H/hvXVT3
Windows ScriptingだけでWindowsを作りたい。

664 名前:名無し~3.EXE:04/06/12 16:23 ID:i/FyY4HA
>>663
ちょいと待ちな。暇だから(ry

665 名前:名無し~3.EXE:04/06/12 17:31 ID:VcdhcG1M
664氏光臨の予感!




そしてゲイツに訴えられてタイーホの予感

666 名前:名無し~3.EXE:04/06/12 20:46 ID:/N+TSOtH
WScript.Echo "Windows"

667 名前:KingMathematician ◆5lHaaEvFNc :04/06/12 20:51 ID:mEdTQaHW
Re:>>666
それは"Windows"と書いているだけでは?

まぁ、インタプリタ言語だけでOSを作るという発想はあまり自然でない気がするが。

668 名前:名無し~3.EXE:04/06/12 21:23 ID:ZLUukdiE
あぼーん

669 名前:名無し~3.EXE:04/06/13 03:44 ID:g6HYmXUj
>667
ちょっとまえにJAVAScriptで作ったウィンドウシステムのデモをどこかで見た気が。
まぁ、OSじゃないよな。

670 名前:名無し~3.EXE:04/06/15 22:00 ID:pC+zyqLp
お知恵拝借させてください。
たとえばメインプロシージャの中で2つのサブプロシージャ(AとB)があるとする。
それぞれのサブプロシージャをメインプロシージャから実行したいが、
Aの処理が終わってからBの処理をする必要がある。Aの実行には1分程度かかる可能性がある。
Aの中からBを呼ぶ以外の方法で、美しい方法はありますでしょうか。

文ではなくてコードっぽくすると
Sub Main()
Call A()
Call B()
End Sub
これを、A,B順番にやりたいということ。
現状では、Aの実行中にBが実行されてしまいます。
初心者ですみません。

671 名前:名無し~3.EXE:04/06/16 00:12 ID:I7NnHVWJ
>670
基本的には必ずA()の終了後にB()が実行される。
だから、たぶんA()が処理の途中で終了してるんでは。

672 名前:名無し~3.EXE:04/06/16 01:20 ID:hkrxfp+H
>>670
想像だけど、A()の中で何かのオブジェクト作ってメソッド実行してるなら、
別のスレッドが生成されてメソッドの完了前に戻ってきてしまい、B()が動いてしまう鴨。

A()の最後で処理の完了を待つようにループを作るのが定石かな。
A()の中身を書いてみて。

673 名前:名無し~3.EXE:04/06/16 08:06 ID:o/ReHgQy
>>672 別のスレッドが生成されてメソッドの完了前に戻ってきてしまい、B()が動いてしまう鴨。
これはありません

674 名前:名無し~3.EXE:04/06/16 08:15 ID:MEkw4gYO
670です。
Aの中身としては、以下のようなことをしています。ソース版に上げました。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=52&fi=no




675 名前:670:04/06/16 08:20 ID:MEkw4gYO
訂正すんません


Set oTsStdOut = oFS.oPaenTextFile(strTargetFilePath)

Set oTsStdOut = oFS.OpenTextFile(strTargetFilePath)

676 名前:670:04/06/16 08:40 ID:MEkw4gYO
訂正済みソース再アップ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=53

677 名前:名無し~3.EXE:04/06/16 08:41 ID:LwCQTJvX
>>674
>>672
だろね。
グローバルな変数completedを作って、A()が終わる時にTRUEにする。
A()とB()の間でcompletedがFALSEの間ループを回す。
//WScript.Sleepって使えたっけ……。setTimeoutで代用が効くか。

678 名前:名無し~3.EXE:04/06/16 13:02 ID:hkrxfp+H
>>670
pingはコマンドだから、cmd.exeは不要では?
×:oShell.Run "CMD.EXE /C PING -n 1 " & Destination & " >" & FilePath , 0, TRUE
◎:oShell.Run "PING -n 1 " & Destination & " >" & FilePath , 0, TRUE

679 名前:(゜Jし゜):04/06/16 16:34 ID:zOKS3COs
WshShell.Runメソッドは新しいプロセスを実行するから、じゃないかな。
WshShell.Execメソッドなら子プロセスで実行できるから問題ないような気がする。
但しExecメソッドで実行できるのはコマンドラインのみという制限はあるけど。

680 名前:名無し~3.EXE:04/06/16 16:43 ID:LwCQTJvX
>>679
Runは作ったプロセスを同期的に実行できる。
で、それが第三引数のTRUE。
この場合は新しくスレッドを作るsetIntervalが原因。

681 名前:名無し~3.EXE:04/06/16 23:39 ID:/srAGG2w
>>676
質問の答えではないけど、pingの結果をファイルに書き出さなくても

Dim WshShell, oExec, result
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("ping 192.168.0.1")

result = oExec.StdOut.ReadAll()
WScript.Echo( result )

こんな感じで標準出力を取得できる。

682 名前:670:04/06/17 00:24 ID:EJTY6clQ
一応完成をみたということで。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=54&fi=no

>677 おまえさんの言うやり方でやったよ。サンクス。
>681 サンクス。そのうち改善するわ。

683 名前:名無し~3.EXE:04/06/17 00:44 ID:9JrefVpH
☆ C:\foo\20040617.txt を移動して、E:\foo\20040617.txt にする。
☆ ****.txt は常に同じ名前ではない。
☆ 日付を示してはいるけれど、必ずしも本日ではない。
☆ C:\fooフォルダには、常にたったひとつの txtファイルしかない(E:\foo にコピーが済んだら削除)

何かやり方ありますか?

684 名前:683:04/06/17 00:51 ID:9JrefVpH
何か質問の仕方が変でしたね

常にC:\foo フォルダにたった一つだけある、名前の決まっていないtxtファイルを、そのまんまの
名前でE:\foo にコピーしたい、と。

685 名前:名無し~3.EXE:04/06/17 00:54 ID:SvrCengr
>>683
move c:\foo\*.txt d:\foo\

686 名前:683:04/06/17 00:58 ID:9JrefVpH
わ、驚即答
ありがとうございます
いまからためします

687 名前:670:04/06/17 01:02 ID:EJTY6clQ
>678
遅レスだけども、CMD.EXE は PING のために使ってるんじゃなくて、リダイレクトのためだよ。
>680
実際そのとおりなんだけど、setintervalの2個使いでなんとかしまそた。
>681
子ウインドウがパカパカ開いてうざいっすね。これがナントカなるなら使えそう。

688 名前:名無し~3.EXE:04/06/17 20:55 ID:EJTY6clQ
VBS書いていたら1000行を超えてしまいました。
スクリプトは多数のサブプロシージャで出来ているのですが
機能ごとにスクリプトを分けてファイルに小分けにしておいて
子ファイルをインクルードして実行するってできるんでしょうか。
できるとしたらどっかに資料はありませんか?

689 名前:名無し~3.EXE:04/06/17 21:01 ID:n5EYOK3M
>>688
出来る

資料なら >>3

690 名前:名無し~3.EXE:04/06/17 21:01 ID:4DON080k
>>688
wsfで書けばファイルをインクルードできる。
他に、>>556みたいな手法もある。

691 名前:名無し~3.EXE:04/06/17 21:14 ID:EHycBKuT
>>688
たぶん別の言語や開発環境使ったほうが幸せになれるよ

692 名前:名無し~3.EXE:04/06/17 22:48 ID:SvrCengr
>>688
現行スレ内の検索ぐらいしようや。

693 名前:名無し~3.EXE:04/06/19 10:24 ID:tyuJ8j5q
JScriptでバイナリデータを扱おうとしています。
データはファイルから読み、そのデータを
COMに渡したいのですが、BSTRで渡すのは
よろしくない様子。実際、COM側でSysStringByteLenで
見てみると、長さが2倍になっていました。Unicode扱い
にされているらしいですね、これ。
バイナリデータをCOM側で受け取って、加工するには
どのような工夫が必要なのでしょうか。



694 名前:名無し~3.EXE:04/06/19 11:07 ID:WymACrda
>Linuxはそれとは違う。
違ってもいるし違ってないともいえる。
Linuxで自分の選択した目的や可能性以外を否定することは間違い。
それこそWindowsやBSDにカエレ!!といいたい。

695 名前:名無し~3.EXE:04/06/19 11:14 ID:pcDRrgIz
wshでGDIかD3Dを利用できるような方法ありますか?
そもそもブランクのウインドウを表示するような手段ってありますか?
ゲームつくるのによさそうなので、どうでしょうか?

バリアント型の変数って扱いやすいですよね〜。

696 名前:名無し~3.EXE:04/06/19 11:36 ID:8t4SJREB
>>695
JScript.NETかHSPでも使うが吉。

697 名前:名無し~3.EXE:04/06/19 12:05 ID:t9eEuAgp
>>693
WSHのFileオブジェクトはファイルをテキストとしてしか
OPEN出来なかったと思うのですが、その為では?

BASP21 DLLを使うとバイナリデータを扱えたと思います。
またはJScript.NETを使うという手も。

698 名前:名無し~3.EXE:04/06/19 13:00 ID:C7lQNJpQ
バイナリストリームオブジェクトあるよ。
>596で使ってるADODB.Streamってやつ。


699 名前:名無し~3.EXE:04/06/19 13:07 ID:8t4SJREB
あるんだけどJScriptじゃデータに手出しできない。右から左ならいいんだけど。
VBScriptなら手出しもできたかな。

700 名前:名無し~3.EXE:04/06/19 13:26 ID:C7lQNJpQ
>699
そうなの?vbsなら"Stream.Write"で一発なんだが・・・。


701 名前:名無し~3.EXE:04/06/19 18:40 ID:uEmBR4wB
当然だがJSでも普通に使える。

702 名前:名無し~3.EXE:04/06/19 18:58 ID:8t4SJREB
>>701
>  当然だがJSでも普通に使える。
え、そうなの?
Writeになにを入れればいいのかさっぱり解らないんだけど。
バイト配列型なんてないし。

703 名前:名無し~3.EXE:04/06/19 21:44 ID:0ZgA5m7C
>>696
さんきゅー。
.NETフレームワークか。
新しく覚えなきゃ・・・。

704 名前:名無し~3.EXE:04/06/20 03:02 ID:iDLB2zPs
>702
バイト型じゃないの?

705 名前:693:04/06/20 19:28 ID:NDy4ZpHZ
JScriptでバイナリデータをCOMに渡したい、との
質問をしましたが、よく考えたらこれはScriptの
問題ではなくて、COMの方をどう作るかって
問題ですね。スレ違いな質問、失礼しました。


706 名前:名無し~3.EXE:04/06/20 20:29 ID:1LNWSiE+
ファイルシステムオブジェクトを使ってフォルダの中にあるファイルと
ディレクトリの一覧を取得することってできるんですか?
知っている方がいたら教えてくださいませ。


707 名前:名無し~3.EXE:04/06/20 20:35 ID:L49dgts9
>>706
説明書ぐらい嫁
ttp://www.microsoft.com/japan/msdn/library/ja/script56/html/jscolFiles.asp


708 名前:706:04/06/20 20:57 ID:1LNWSiE+
>>707
ぁぁ、読んでませんでした。。。
サンクス。


709 名前:名無し~3.EXE:04/06/21 21:29 ID:4lSmb6Oy
>>707
俺にもMSXML、XML Parserのリファレンスクレクレ

710 名前:名無し~3.EXE:04/06/27 02:56 ID:UL/Fknh9
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=55&fi=no
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=56&fi=no

番組表から見ない局や番組を削除。

711 名前:名無し~3.EXE:04/07/01 07:29 ID:yY/djU9C
Win2000,XP で、ネットワーク接続の接続名 (ローカル エリア接続など)を
取得するメソッゾきぼんむ

712 名前:名無し~3.EXE:04/07/02 00:23 ID:ACr6NUUQ
>>711
NetConnectionIDがXP出しか使えないのでXP専用。

var nadp = GetObject("winmgmts:{impersonationLevel=impersonate}").
ExecQuery( "SELECT * FROM Win32_NetworkAdapter" );

for ( var e = new Enumerator(nadp); !e.atEnd(); e.moveNext() ) {
var ad = e.item();
WScript.Echo( ad.NetConnectionID );
}

713 名前:名無し~3.EXE:04/07/02 23:25 ID:ACr6NUUQ
>>711
やっぱりXP専用だけど>712よりこっちの方が良いかも。
ttp://www.microsoft.com/technet/community/scriptcenter/network/scrnet29.mspx

714 名前:名無し~3.EXE:04/07/03 15:02 ID:Kgo/Au2M
Windowsupdateに
"Critical Update for ADODB.stream (KB870669)"
がきてた。
これを適用するとIEでADODB.Streamが使えなくなる。
いいかげんにしろMS

715 名前:名無し~3.EXE:04/07/05 20:05 ID:+68NVos/
http://internet.watch.impress.co.jp/cda/news/2004/07/05/3758.html

716 名前:名無し~3.EXE:04/07/05 20:47 ID:tlGTelo1
脆弱性攻撃幇助容疑で逮捕

717 名前:名無し~3.EXE:04/07/07 07:05 ID:apFDlwWS
質問です。
VBScript JScriptでc/c++の#Includeみたいなのはどうやればできるのでしょうか?

718 名前:名無し~3.EXE:04/07/07 07:07 ID:pxu1EuPb

  ま た こ の 質 問 か

719 名前:名無し~3.EXE:04/07/07 07:26 ID:QVSzmKOy
>714
HTAだと影響うけなかったっす

720 名前:名無し~3.EXE:04/07/07 07:44 ID:apFDlwWS
>>718
申し訳ありません(´Д`;)
過去ログ呼んだらありました

721 名前:名無し~3.EXE:04/07/07 07:51 ID:QVSzmKOy
■■■ 危険 閲覧は自己責任で ■■■
HTMLで、不正なEXEをDLさせるWEBページ発見。
ADODBの脆弱性を対策していないとヤヴァイ。
tp://82.196.67.62/f.html
さらに、ms-its(chm)の脆弱性をつくコード
tp://lily.only18plus.com/den/a.html
■■■■■■■■■■■■■■■■■■■
※不正コード作成を助長するもんではないです。
意図せずにリダイレクトされないように
IEの制限つきサイトへ登録することをお勧めします。


722 名前:名無し~3.EXE:04/07/07 20:12 ID:QVSzmKOy
すみません
DOMのonkeyupですが、どうすれば上下左右の矢印キーの動作を検知することが出来ますか?

723 名前:名無し~3.EXE:04/07/07 20:56 ID:sfBSTKGs
>>722
event.keyCode

724 名前:名無し~3.EXE:04/07/07 23:45 ID:QVSzmKOy
すみません
そこまでは解っているんですが、具体的なコード例はありませんか?


725 名前:名無し~3.EXE:04/07/08 00:26 ID:U5TpydcK
>>724
ttp://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=event.keyCode&num=50

726 名前:名無し~3.EXE:04/07/08 22:59 ID:AVhHBG4o
>>725
神。とりあえずあなた様に大感謝です。
http://member.nifty.ne.jp/aya/dom/dom06.htm

727 名前:名無し~3.EXE:04/07/14 16:05 ID:3+77OThz
すみません。教えてください。
IEコンテキストメニューで「引用符付き貼り付け」をしたいんですが

過去ログの
http://pc.2ch.net/win/kako/1009/10091/1009175619.html
の151-156を要約して使えるようにするにはどうしたら良いのでしょうか?



728 名前:名無し~3.EXE:04/07/14 17:11 ID:W77r+dVl
VBSが嫌いなのでJScriptに移植。保存する名前は過去ログに従ってaddgt.htmとでも。何でもいいけど。
インストールはインストーラスクリプト使うよりIE MenuExt使った方がいいと思うよ。

<script language="jscript">
var menu = external.menuArguments;
var range = menu.document.selection.createRange();
var element = menu.event.srcElement;
var data = clipboardData.getData("text"), ret = "";
if (!data) {data == "";}
var datas = data.split("\n");
if (element.tagName == "TEXTAREA" || (element.tagName == "INPUT" && element.type == "text")) {
   for (var i = 0; i < datas.length - 1; i++)
      ret += "> " + datas[i] + "\n";
   if (datas[datas.length - 1] != "")
      ret += "> " + datas[datas.length - 1];
}
range.text = ret;
</script>

729 名前:名無し~3.EXE:04/07/14 17:48 ID:3+77OThz
席を離れていて今確認しました。
ありがとうございます。早速試してみます。


730 名前:名無し~3.EXE:04/07/14 21:45 ID:3+77OThz
>>728
ありがとうございました。バッチリでした。

731 名前:名無し~3.EXE:04/07/23 11:17 ID:q13229cu
微妙にスレ違いかもしれないですがご容赦をば。
ブラウザの右クリックに登録するスクリプトなんですが、
以下のことを行おうとしてます。

画像上で右クリック

画像を特定のアプリで開く

ですが、ブラウザから取得できるのは、その画像のURLのみで、キャッシュの取得ができません。
クリップボード経由で開こうとも考えたのですが、その手のメソッドも無いようです。
仕方なく、画像の位置をスクリーン座標で取得して、D&Dのエミュレートでアプリにドロップする
力技を考えたのですが、もっとスマートな方法って無いでしょうか?

732 名前:名無し~3.EXE:04/07/23 12:40 ID:EOlktQEU
取得したURLからローカルの%temp%にダウンロードして
それをアプリで開くのがまっとうな方法じゃないの。
スマートではないけど。

733 名前:名無し~3.EXE:04/07/23 16:26 ID:7v/exN2o
IE CacheR
http://www.vector.co.jp/soft/win95/net/se238516.html

734 名前:名無し~3.EXE:04/07/24 03:25 ID:No2TTay6
>>732
>>733
レスどもです。
>>733のコンポーネントを使ったらすんなり出来ました。
感謝!

735 名前:名無し~3.EXE:04/07/24 04:41 ID:zlT9n13Q
HTAで開かれたウインドウに、エクスプローラからファイルをドラッグアンドドロップできるようにして
そのファイル名を取得する方法はありますでしょうか。
起動時のD&Dに関してはweb上にTIPSがありましたが、起動後に関しては
見当たりませんでした。よろしくお願いいたします。

736 名前:名無し~3.EXE:04/07/25 16:51 ID:mkh0oIjL
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/443wshenc/wshenc.html
PerlでWSH書いた場合で↑のリンク先のVBSやJSみたいに暗号化することって出来ないですか?


737 名前:名無し~3.EXE:04/07/25 18:51 ID:sIdk1SDU
>>736
Perl2exeでコンパイルするといい

738 名前:名無し~3.EXE:04/07/26 22:54 ID:++VwYYZC
指定したテキストデータの文字列を文字コード単位で置換えをしたいです。

F040,8D82
F041,92CB
F042,91E5

というようなデータをソースにして、テキストデータに含まれる
F040と言う文字コードを8D82と言う文字コード(高)に置き換えるというような
感じなんですが・・・

739 名前:名無し~3.EXE:04/07/26 23:35 ID:aOUtYoMD
>>738
VBSだったら普通にできそうだけど?
何が問題?

//JScriptだとShift_jisをまともに扱えない……

740 名前:名無し~3.EXE:04/07/27 00:28 ID:2SoFuNFN
>738
intFindWhat = Cint("&h" & "F040") '検索文字コード
intReplaceWith = Cint("&h" & "8D82") '置換文字コード
strGetFilePath = "c:\xxxx1.txt" '読み込みファイルパス
strPutFilePath = "c:\xxxx2.txt" '保存ファイルパス

set objFileSystem = CreateObject("Scripting.FileSystemObject")
set objGetFile = objFileSystem.OpenTextFile(strGetFilePath, 1, false)
set objPutFile = objFileSystem.OpenTextFile(strPutFilePath, 8, true)
strBuf = objGetFile.ReadALL
strFindWhat = Chr(intFindWhat)
strReplaceWith= Chr(intReplaceWith)
strBuf = Replace(strBuf, strFindWhat, strReplaceWith)
call objPutFile.Write(strBuf)
objGetFile.close
objPutFile.close
set objFileSystem = nothing

こんな感じ?ソースとなるデータの形式がわからんと読み込み部分は作れないけど。
(外部から読み込むよりスクリプトに記述する方が楽だし)

741 名前:名無し~3.EXE:04/07/27 00:45 ID:i/v0dfmL
>735
ドロップされるのがフォルダだとonLoad()が発生しないため、
ドロップ状況を調べるのにonReadyStateChange()イベントを使う。
ドロップされるのがファイルだけならonLoad()イベントだけでも良い。

(フレームのオブジェクト.)location.href
(フレームのオブジェクト.)document.location.href
(フレームのオブジェクト.)document.URL
等の値を参照すればファイル名も取得できるはず。


742 名前:名無し~3.EXE:04/07/27 23:47 ID:R7D1K+NF
>>740
ありがとうございました!
ファイルから変換文字コードを呼び出す場合は、
F040,8D82
F041,92CB
F042,91E5
というcsvファイルをもう一つOpenTextFileで呼び出して、

readLineをlineと言う変数に代入して、
strBuf = Replace(strBuf, strFindWhat, strReplaceWith)
の構文のstrFindWhatをCint("&h" & mid(line,1,4))にして
strReplaceWithをCint("&h" & mid(line,6,4))にして、
endに到達するまで続ければOKですかね??

743 名前:名無し~3.EXE:04/07/28 19:19 ID:HWOpue20
>>742
「ですかね??」って、おまいのPCに聞けよ。

744 名前:名無し~3.EXE:04/07/28 23:09 ID:vjgxRGHE
>742
いいんじゃね?やってみて動くまで考えるべし。

745 名前:名無し~3.EXE:04/07/31 21:41 ID:9ibP/+kO
>>737
遅ればせながらレスありがとうございます。
しかし、Perl2exeで生成されたexeファイル、WSHの部分だけ実行されないっぽいです。


746 名前:名無し~3.EXE:04/08/05 20:54 ID:4Sj3nBcL
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/wslrfcontrollerobject.aspのサンプルなのですが

[test.vbs]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("remote1.vbs")
RemoteScript.Execute

Do While RemoteScript.Status <> 2
WScript.Sleep 100
Loop

これを実行しても、remote1.vbsが実行されません。Set RemoteScript のところで実行時エラーとなります。
ActiveXコンポーネントはオブジェクトを作成できません。(コード:800A01AD)
remote1.vbsは、test.vbsと同じフォルダに置いています。

どうすればエラーが出ずにremote1.vbsを実行できるのでしょう。。

747 名前:746:04/08/05 21:32 ID:4Sj3nBcL
多分自己解決…
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/wstskSetupOfRemoteWSH.asp
これやってませんですたorz

748 名前:746:04/08/07 16:22 ID:53jiu524
>>747
これもウソぽぃ
英語サイトに書いてあったレジストリ修正やったらいけました
なぜ日本語訳した時に内容変えたんだろう…謎

んで、今度は3行目を
Set RemoteScript = Controller.CreateScript("remote1.vbs", "リモートマシン")
でやってみたんですが、同ドメインでないと使えないっぽい感じでした。

ワークグループ環境で使いたいのですが、ムリなのかなぁ、、
どなたか挑戦/成功された方いれば教えてほしいです。

749 名前:名無し~3.EXE:04/08/09 04:07 ID:hr5rwgA0
()[]このような括弧でくくられたファイル名の文字列を
括弧の部分だけ削除したいです。
こういうスクリプトはどうやって作ればいいですか?

750 名前:名無し~3.EXE:04/08/09 05:24 ID:EALI9mHL
>749
strFilePath = "c:\xxxx1.txt" 'リネームするファイルのフルパス

set objFileSystem = CreateObject("Scripting.FileSystemObject")
set objFile = objFileSystem.GetFile(strFilePath)
strBuf = objFile.Name
strBuf = Replace(strBuf, "(", "")
strBuf = Replace(strBuf, ")", "")
strBuf = Replace(strBuf, "[", "")
strBuf = Replace(strBuf, "]", "")
objFile.Name = strBuf
set objFile = nothing
set objFileSystem = nothing

こんな感じか?()の中全部を削除したいならRegExpを使うと思うけど。

751 名前:名無し~3.EXE:04/08/09 06:16 ID:hr5rwgA0
すいません、言葉足らずでした。
フォルダを指定してその中のすべてのファイル名から
カッコも含めてカッコ内の文字列を消去したいです。

(???)a.avi
(???)b[***].mpg
[??]c(**).mp3

a.avi
b.mpg
c.mp3

こんな感じです。

752 名前:名無し~3.EXE:04/08/09 06:55 ID:EALI9mHL
>751
なんか、何に使うのか疑問だなぁ・・・。
まぁ、予想はしてたんだけど。

>750のReplace使ってる行を↓に置き換え。

Set objRegExp = New RegExp
objRegExp.Global = true
objRegExp.Pattern = "(\(.*\))|(\[.*\])"
strBuf = objRegExp.Replace(strBuf, "")
Set objRegExp = nothing


753 名前:名無し~3.EXE:04/08/09 09:14 ID:hr5rwgA0
>>752
どうもありがとうございます!
なんとかいじくって自分の思い通りの動作になりました。

754 名前:名無し~3.EXE:04/08/09 09:26 ID:cJnL59Ru
あれだな、素直にリネームソフト使えってことだな。

755 名前:名無し~3.EXE:04/08/09 16:10 ID:i7AHaDh6
>>754
激しく同意

>>749は正規表現覚えてFlexible Renamerでも使ってろ

756 名前:名無し~3.EXE:04/08/09 22:54 ID:1UcAXWSP
Sleipnir
多段タブ キタキタキタキタ━━━(゚∀゚≡(゚∀゚≡゚∀゚)≡゚∀゚)━━━━!!!!!!!!!!


757 名前:名無し~3.EXE:04/08/10 14:36 ID:5ApRGg9a
何でこのスレに(w

758 名前:WSHデビュー:04/08/11 11:01 ID:SgisAmoZ
昨日からWSHはじめました。
日々の繰り返す操作(仕事)をどうにかならないものかと思いたちまして。
取り合えず場当たり的ですがSendkey使っいまくって実現できました(w
このスレ一日で読破しました。スゲー勉強になりました。
WSHLab.で基礎から勉強してきます(゚Д゚;)



759 名前:名無し~3.EXE:04/08/11 11:11 ID:qcDcGG08
せっかくがんばって覚えても.NETでリセットかかっちゃうんだけどなw

760 名前:名無し~3.EXE:04/08/11 12:16 ID:LjXF71ku
Jscript.NETって難しい?

761 名前:名無し~3.EXE:04/08/11 18:05 ID:pY9nmR4o
今がんばってれば
応用は利くでしょ。
もっとも、今から.NETに行っとく方が利口ではあるけど。

762 名前:WSHデビュー:04/08/12 13:03 ID:gv6dBU+e
早速頓挫orz
CreateObject関数でOutlookExpressは動かせないのですか?
IEやExcelはうまく動かせるのだが・・・
("Outlook.Application")では駄目みたいなんで。
Outlookじゃないと駄目とかってあるんですかね^^;
「任意Dirで数個のtextからdataひぱってメールで自動配信」
という流れのものを書こうとしています。

763 名前:名無し~3.EXE:04/08/12 13:19 ID:rM1GHaTB
OEはActiveXに対応してない。

764 名前:名無し~3.EXE:04/08/12 16:02 ID:dFf5qhzU
こういうの使ってみたら。標準でもいかにもありそうな機能ではあるけど
http://www.ctb.ne.jp/~takasaki/t2_winmailcmd.html

765 名前:名無し~3.EXE:04/08/12 16:13 ID:Us/fBpKw
MAPI使え。
http://support.microsoft.com/default.aspx?scid=kb;JA;178077

766 名前:名無し~3.EXE:04/08/14 21:33 ID:KxhB05Da
>せっかくがんばって覚えても.NETでリセットかかっちゃうんだけどなw
えぇぇぇぇっ!! どういうことなんですか?
僕も最近WSHの勉強を始めたばかりなんですが、
WSHどうなっちゃうんですか?


767 名前:名無し~3.EXE:04/08/15 09:57 ID:8zzPsMl1
>>766
なんで.NETにしなかったの?
そっちのほうが興味ある

768 名前:WSHデビュー:04/08/15 15:11 ID:kYvJVBXN
>>764
>>765
結局いまだにどちらも実現できずにいます・・・


769 名前:名無し~3.EXE:04/08/15 15:21 ID:Ns4tjVOu
>>768
ここは独り言を言うところではないんだが?

770 名前:名無し~3.EXE:04/08/15 17:39 ID:eYukZ2EH
バカは完全放置で頼むぜ

771 名前:名無し~3.EXE:04/08/16 16:11 ID:GsTf4/CA
JScript .NET ってコンパイルせにゃいけんのかい

JScript .NET Scripting Edition の発表まで待つか〜

772 名前:名無し~3.EXE:04/08/16 17:24 ID:1h4lt/Gz
次世代コマンドシェルと融合したC#風スクリプトならたぶん出る

773 名前:名無し~3.EXE:04/08/16 19:50 ID:LFIcaSJk
いい加減雑談やめろ。N速に晒される前はマターリとしたスレだったのに、お前等帰れや

774 名前:お前等:04/08/16 20:01 ID:hGz0+yVS
>>773
どこに晒されてんの?おしえてちょっ!

775 名前:名無し~3.EXE:04/08/20 13:58 ID:xn318h+O
PCのドライブ一覧を取得するのに
Set objDriveSet = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_LogicalDisk")
For Each objDrive In objDriveSet
objDrive.Name
Next
を使っていますが、NTだとこれでドライブ一覧を取得できません。Queryの結果が0件になっているようです。(2000/XPでは問題ないです)

NTでPCのドライブ一覧を取得するには、どんな方法があるでしょうか。(上記の改良が不可なら別の手段でも)

776 名前:名無し~3.EXE:04/08/20 14:30 ID:CEcfezTl
>>775
FileSystemObjectのDrivesプロパティは?

777 名前:775:04/08/20 16:31 ID:xn318h+O
>>776
ありがとうございます。

>>775自体は、全然別の場所に問題がありました…
ソースのケアレスミスを修正したらNTでも問題なく取得できました。すみませんっっ

778 名前:名無し~3.EXE:04/08/21 11:25 ID:9qZ8y4JO
AD参加のスクリプときぼんぬ。
もちろん、参加失敗時のエラー処理してないと使いもんにならないでし

779 名前:名無し~3.EXE:04/08/21 15:15 ID:IuHfvwn0
>>778
ttp://wmifun.atinfinity.net/wmisample/win32_computersysteme.html

気にくわなかったら適当に改造すれ。

780 名前:名無し~3.EXE:04/08/21 20:49 ID:mks0jesO
HTAのウィンドウにドラッグアンドドロップしようとしても禁止マークみたいのが出て、できないんですが、何か定義をしないといけないんでしょうか?

781 名前:名無し~3.EXE:04/08/22 03:00 ID:arGKfJ8s
>>780
フレーム作ってごにょごにょするべし。

ttp://plutonium.hp.infoseek.co.jp/futaba/imgsv0.html#trableshooting

782 名前:怒死露鵜徒:04/08/24 13:20 ID:4Rt6IQz3
MSDNでIEをフルスクリーンにするコードのSyntaxを見つけたのですが、
どうやってコーディングするのか分かりません。どうかお助けください。
見つけたSyntaxは
InternetExplorer.FullScreen(bFullScreen)[=bFullScreen]
です。Windowsを起動した時にIEが勝手に開いてしかもそれをフルスクリーン
にする方法も教えてくれたらとてもうれしいです。

783 名前:名無し~3.EXE:04/08/24 13:27 ID:SabZjm/o
>>782
F11
Alt+F4

準備完了。あとは開くだけ。

784 名前:怒死露鵜徒:04/08/24 13:34 ID:4Rt6IQz3
>>783
やってみたけど上にバーが残りますね。
スクリプトからフルスクリーンにしても結局同じですか?

785 名前:名無し~3.EXE:04/08/24 13:39 ID:THJ8Etjv
キオスクモードで起動するとか

786 名前:名無し~3.EXE:04/08/24 17:53 ID:qRk0rdED
>>782

var oIE = new ActiveXObject("InternetExplorer.Application");
oIE.FullScreen=true;
oIE.Navigate("http://pc5.2ch.net/test/read.cgi/win/1058829737/");
oIE.Visible = true;

これを FullScreen.js かなんかいうファイル名で作成。
URLは好きに変えろ。
Windows起動時に実行するなら スタート → プログラム → スタートアップ にでも
ショートカットを貼り付けておけ。

787 名前:名無し~3.EXE:04/08/24 18:05 ID:Ay1k3VaR
iexplore.exe に -k オプションと url を引数とするショートカット作ればオッケー

788 名前:怒死露鵜徒:04/08/25 08:52 ID:RkWbFlPn
>>786
ありがとうございます。大変助かりました。お礼に穴を貸してあげたいです。

789 名前:名無し~3.EXE:04/08/25 13:02 ID:ouimUyjL
>>787も書いてるけど、
iexplore -k [Enterキー]でおしまい。
スクリプト使うまでもないよん

790 名前:名無し~3.EXE:04/08/27 09:14 ID:nCzyr3jP
スミマセン素人です。
MSアクセスのファイルを開きたいのですが
フォルダの階層が深い所に有るファイルで

var WShell = WScript.CreateObject("WScript.Shell");
WShell.Run ("msaccess C:\Program Files\xxxx\xxxx\xxxx\xx\db.mdb");

これだとファイルを開けないですがどうしたらよいでしょう?




791 名前:名無し~3.EXE:04/08/27 09:21 ID:+89Jjeuy
>>790
引数は半角スペースで区切るわけだから、c:\programが第一引数と取られたわけだ。
半角スペースを引数の中に入れたい場合、ダブルクォーテーションでくくる。
で、JScriptで文字列中にダブルクォーテーションを入れる場合は\でエスケープする必要がある。

ということをまとめると……
って\もそのままか。
\はエスケープ文字という奴で、この直後にくるのは普通の文字じゃなくて制御用の文字と認識される。
文字列中に\という文字を含めたい場合は\\という風に\そのものをエスケープする。

以上をまとめると、

WShell.Run ("msaccess \"C:\\Program Files\\xxxx\\xxxx\\xxxx\\xx\\db.mdb\"");

792 名前:名無し~3.EXE:04/08/27 09:36 ID:nCzyr3jP
>>791

有り難うございました、うまくいきました。

793 名前:コピペ推奨:04/08/27 11:02 ID:K+xgnO3X
ひろゆき=創価であることを報じないマスコミ

1 :文責・名無しさん :02/10/24 18:37 ID:ajNeHEw8
なぜマスコミはひろゆき=創価であることを報じないのか!!

http://ex5.2ch.net/test/read.cgi/mass/1035452245/l50


794 名前:名無し~3.EXE:04/08/27 12:08 ID:nCzyr3jP
超初心者です。
下記をjscprtにしたいのですが誰か教えてください。

Dim fs, MyFileName, objWS
Set fs = CreateObject("Scripting.FileSystemObject")
Set objWS = CreateObject("WScript.Shell")
If fs.FileExists("C:\xxx\xxx\xxx\xxx\xx\db.ldb") = False Then
MyFileName = """C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE"" ""C:\xxx\xxx\xxx\xxx\xx\db.mdb"""
objWS.Run MyFileName
else
msgbox ("ACCESSを終了させてください。")
End If


795 名前:名無し~3.EXE:04/08/27 12:12 ID:+89Jjeuy
>>794
うん、で何がわからないのかな?

796 名前:名無し~3.EXE:04/08/27 12:20 ID:fSYxHqxP
IEの履歴(index.dat)にアクセスして,格納されているURLを取得する方法はありますでしょうか。

797 名前:名無し~3.EXE:04/08/27 12:52 ID:jrLfEoKc
はい

798 名前:名無し~3.EXE:04/08/27 20:06 ID:fSYxHqxP
>>797
どのようにすればよろしいのでしょうか。
あるいは,該当するメソッドなりを教えて頂けると幸いです。


799 名前:名無し~3.EXE:04/08/27 20:29 ID:+89Jjeuy
こういう言葉面だけ丁寧で自分では考えようとしないの嫌い。

>>638

800 名前:名無し~3.EXE:04/09/06 05:02 ID:fMWhSYRu
5.6.0.8825にアップデート


http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=c717d943-7e4b-4622-86eb-95a22b832caa

801 名前:名無し~3.EXE:04/09/07 14:29 ID:2X1zFto7
ゲームの鯖を立てているのですが、
鯖が落ちてしまったときに自動で再起動できないものかと考えています。
上の方にもあったのですが、数分ごとにプロセスを監視し
走っていないようであれば指定したプログラムを実行する。
といった感じがいいのかなーと思っているんですが、よくわかりません。
ttp://www.mars.dti.ne.jp/~vwjetta/install.html
これが希望に一番近いのですが、exeしか実行させることが出来ないので使えません。
(ショートカットでコマンドを追加して起動させなくてはならないので)
何かいい方法はないでしょうか?


802 名前:名無し~3.EXE:04/09/07 14:41 ID:lYA1aVbN
>>801
多分AutoHotkeyでできる

803 名前:801:04/09/07 15:41 ID:2X1zFto7
>801さん
レスThxです。今テストしていますが、恐らく問題解決しそうです。
これ、面白いっすねー

804 名前:801:04/09/07 17:18 ID:2X1zFto7
連書スマソ。
問題解決しました。ログも書き出せるので、管理に役立ちそうです。
どうもありがとう:)

805 名前:名無し~3.EXE:04/09/07 20:37 ID:usjITemV
あるフォルダを監視して、そこにファイルが作られるか、もともとあったファイルが更新された場合に、
それを検知して、更新または追加されたファイル名を通知するスクリプト

だれか持っていませんか?

806 名前:名無し~3.EXE:04/09/07 21:30 ID:yHmATBEh
メモ帳とタスクスケジューラがあれば余裕だろ。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/FSOoriFileSystemObject.asp
この辺を一通り読めば楽勝。

807 名前:名無し~3.EXE:04/09/07 21:34 ID:tMdEjuoi
ちょうど昨日、そういうツールをVB.NETで作ったとこだった。
System.IO.FileSystemWatcherを使えばイベント拾うだけ。
めちゃめちゃ簡単だった。
Visual Studio 2005 Express、いまならβフリーでかなり遊べる。

808 名前:名無し~3.EXE:04/09/07 21:57 ID:tMdEjuoi
歯を磨いてうんこしたあと、とりあえずファイルの作成更新検知までを2分で書いてみた。

Const WatchFolder = "C:\hoge\fuga"

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(WatchFolder)
f_size = f.Size
f_DateLastModified = f.DateLastModified

While (f_size = f.Size) And (f_DateLastModified = f.DateLastModified)
Wscript.Sleep(1000)
Wend

MsgBox "更新したぞゴルァ"

でもこれだと、ファイルサイズが変わらないファイル更新には対応できない罠。
どっちにしろ、ファイル名を取得せにゃならんなら、監視フォルダ中の全ファイルの
ファイル名とDateLastModifiedを保存してつきあわせるしかないだろな。
めんどくさいんでパス。自分でやってくれ。

809 名前:名無し~3.EXE:04/09/07 22:00 ID:fZwTMzFh
DynaCall で FindFirstChangeNotification() や WaitForSingleObject() 呼んでみるとか?


810 名前:名無し~3.EXE:04/09/07 22:00 ID:yHmATBEh
くっ
今や.NETの時代か。

Visual Studio 2005 Expressのβを落としてみた。
…… Windows98の時代でもありませんかそうですか。

811 名前:名無し~3.EXE:04/09/07 22:20 ID:XnRpR7tm
そういうのはWMIの出番。
ttp://www.microsoft.com/japan/technet/community/scriptcenter/filefolder/scrff46.mspx

まあ.NETでいけるならそっちの方が便利だけど。

812 名前:名無し~3.EXE:04/09/07 23:19 ID:usjITemV
>811
スクリプトベース希望なので、これを発展させると行けそうですね。
WMIあまり詳しくないのですが、ファイルをハードコーディングしないで
この方法でチェックするのはどうしたらいいでしょうか。
fsoでファイル一覧を取ることは出来ますが、このWMIスクリプトにどうつないだら
良いかわかりません。。。 偉い人なら3分以内でできるところでしょうか。

813 名前:名無し~3.EXE:04/09/08 04:47 ID:G+/v6czv
>812
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022248177&res=59
こんなんでどうか。ただ、タイミングが悪いと更新検知に失敗するかも。

814 名前:名無し~3.EXE:04/09/08 19:25 ID:m+jCZc1F
>812
メンドクセー>811の奴と
ttp://www.microsoft.com/japan/technet/community/scriptcenter/filefolder/scrff46.mspx
これとを両方走らせれば?

.NETなら、↓前スレより。hoge.jsなどの名前で保存して、
コマンドプロンプトから jsc hoge.js で hoge.exe ができる。

import System.IO;
var watcher : FileSystemWatcher = new FileSystemWatcher();
var result : System.IO.WaitForChangedResult;
watcher.Path = "c:\\temp"; //監視するディレクトリ
// watcher.Filter = "*.txt"; // フィルタ。拡張子とか指定可能
watcher.NotifyFilter = ( NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName );
watcher.EnableRaisingEvents = true;
for (;;) {
result = watcher.WaitForChanged( WatcherChangeTypes.All );
System.Console.WriteLine( result.ChangeType + " : " + result.Name );
}


815 名前:814:04/09/08 19:29 ID:m+jCZc1F
間違えた。リンクも同じ奴だし…
>814のWMI部分はなかったことに。orz

816 名前:名無し~3.EXE:04/09/13 19:36:08 ID:k9QCoW1u
WSHからWindowsを休止状態にするにはどうすればいいんでしょうか?
ftp://ftp.microsoft.com/reskit/win2000/restart.vbs
↑これとか、
ttp://homepage2.nifty.com/winfaq/w2k/boot.html#1179
↑これみたいな感じで休止状態にする方法、どなたか教えてください。

817 名前:名無し~3.EXE:04/09/13 19:54:10 ID:ERTWpScR
>>816
ttp://winfaq.power.ne.jp/logs/9x/0254.html
の222621からのスレッドにイイ感じに力業なのが紹介されてる。

818 名前:名無し~3.EXE:04/09/13 20:55:49 ID:k9QCoW1u
>>817
たしかに力業ですね。
WinXPHomeの環境では、以下のスクリプトでうまくいきました。

Set WSHShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
WSHShell.SendKeys "^{ESC}U"
WScript.Sleep 1000
WSHShell.SendKeys "H"
WScript.Sleep 1000

ありがとうございました。

819 名前:名無し~3.EXE:04/09/14 09:20:23 ID:EOsrkN7p
Adobe Reader の Adobe Reader を終わらせる×ではなく、
PDF を表示している×を WSH で押すにはどうすればいいでしょうか?

820 名前:名無し~3.EXE:04/09/14 13:09:02 ID:4fLe+zXq
>>819
[ウィンドウ]→[全て閉じる] じゃダメかい?

Set WSHShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
WSHShell.SendKeys "%w"
WScript.Sleep 1000
WSHShell.SendKeys "^{%w}"

821 名前:819:04/09/14 14:57:10 ID:EOsrkN7p
>>820
なるほど。メニューを使えばよかったですね。ありがとうございました。

822 名前:名無し~3.EXE:04/09/20 09:28:31 ID:fwygRLCu
Windows Script 5.6 アップデート情報

公開された日付 : 2004/09/18
バージョン : 5.6.0.8825

2000/XP用
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=c717d943-7e4b-4622-86eb-95a22b832caa

98/ME/NT4.0用
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=0a8a18f6-249c-4a72-bfcf-fc6af26dc390

823 名前:名無し~3.EXE:04/09/20 11:38:32 ID:17hrOjt8
今さらのようにバージョンアップを重ねるなぁ

824 名前:名無し~3.EXE:04/09/20 16:28:24 ID:D10kyBYF
おまいらのお知恵をお貸しください。
ブラウザに表示されているフォームのボタンをスクリプトで押す場合
ボタンの名前が'ログインボタン'ならこれで

Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Document.all.ログインボタン.Click

いけるんですが、もしボタンの名前に'.'が使われていた場合
例:ログインボタン.001

objIE.Document.all.ログインボタン.001.Click

上手く動きません。objIE.Document.forms(0).Submit や SendKeys
は事情により使用できない場合、他に'.'を含んだボタン名を
名前の一部として認識させる方法はあるでしょうか?

825 名前:名無し~3.EXE:04/09/20 16:48:10 ID:norr7fLB
>>824
Dim button
button = document.getElementByName("buoon.001");
button.Click

//Setって必要だっけ?

826 名前:名無し~3.EXE:04/09/20 16:49:07 ID:norr7fLB
objIE.Document.getElementByName("button.001").Click
で済むか……。

827 名前:名無し~3.EXE:04/09/20 18:15:07 ID:D10kyBYF
出来ましたー!
825さんありがとうございました。感謝

Setはサンプルに載ってたんでそのままコピペw

828 名前:名無し~3.EXE:04/09/21 20:50:31 ID:u/ckrAgu
vbsでIEのウェブページの更新てどうやればいいんでしょうか?
navigateでurl送ってもキャッシュが表示されて更新されないようです。
更新する関数ってあるんですか?


829 名前:名無し~3.EXE:04/09/21 22:45:55 ID:KnOqcO9i
>>828
Refresh / Refresh2

830 名前:名無し~3.EXE:04/09/22 11:12:40 ID:sBx0dFla
>>829
ありがとうございました

831 名前:名無し~3.EXE:04/09/22 19:30:47 ID:SUizVXMN
失礼します。いまウェブメールだけの環境で
URL:mailtoプロトコルの左クリックには↓のダミーを当てています。
ttp://www.showg.jp/hoge/DummyMailer/index.htm
このスクリプト(Vbscript。改変しての再配布はOKとのこと)を書き換えて
メールアドレスをクリップボードに飛ばすことは可能でしょうか?

まったくの初心者でメソッドも何もわかりません。グーグル検索していたら
Vbscriptはクリップボードの操作に対応していないとか(?)
作者さんのBBSは二ヶ月くらい人がいないようなのでちょっと訪れにくく。
そもそも可能かどうか、可能ならどのくらいいじる必要があるのか、
アドバイス頂けたらと思います。よろしくお願いします。


832 名前:名無し~3.EXE:04/09/22 19:39:01 ID:3PEtX8K/
>>831
Ctrl + C

833 名前:名無し~3.EXE:04/09/22 19:45:20 ID:SUizVXMN
ああああ

すげーーー
すっげーー


「じゃあ"mailto:" を省く方法はありますか」に質問を変更します。。

834 名前:名無し~3.EXE:04/09/22 20:56:55 ID:FDuqZ9qc
>>831
http://winscript.s41.xrea.com/wiki/index.php?%5B%5BFAQ%5D%5D#content_1_2

835 名前:名無し~3.EXE:04/09/22 21:07:04 ID:S6T2ltz0

んぃんどぅーざっ! すぉくりぇぷてぃーんっがっ ふぅすてぃんーっがっ!

836 名前:名無し~3.EXE:04/09/22 21:23:40 ID:SUizVXMN
>>834ありがとうございます!!
でもつなげ方がさっぱりわからないや・・・
そのサイト見て勉強します。
CTRL+Cじゃあ色々余計なのが入ってしまうし。

837 名前:名無し~3.EXE:04/09/22 21:39:44 ID:FDuqZ9qc
>>836
ダミーメールのスクリプトの
"'メッセージにURLを含める"の次の行に

Set Ie = WScript.CreateObject("InternetExplorer.Application")
Ie.Navigate "about:blank"
Do While Ie.Busy
Wscript.Sleep 10
Loop
Ie.Document.parentWindow.clipboardData.setData "text",WScript.Arguments.Unnamed.Item(0)

を挿入。上手くいくか分からんが

838 名前:名無し~3.EXE:04/09/22 21:56:15 ID:SUizVXMN

Script:C:\Documents and Settings\Koast\My Documents\Programs\DummyMailer\DummyMailer.wsf
Line:64
Char:3
Error:Variable is undefined: 'Ie'
Code:800A01F4
Source: Microsoft VBScript runtime error

これはもしかしてwshのバージョンが古くいせいですか? 

839 名前:名無し~3.EXE:04/09/22 22:01:16 ID:FDuqZ9qc
>>838
ああ、悪い。スクリプトの頭に

Dim Ie

つけてみて。

840 名前:名無し~3.EXE:04/09/22 22:05:53 ID:SUizVXMN
あ、変数のなんとかですね。よっしゃ。

mailto:sage

きゃーーーできちゃったーーーーーー!!! やったやたた
あとはOKボタンに対応させることですね。自分でできるかな?
>>839さんまじありがとう!!! びっくりした!

841 名前:名無し~3.EXE:04/09/22 23:22:44 ID:SUizVXMN
アドレス保存YES/NO設定できました。俺でもできた!!!
これでmailto: を削れたらそれなりに使えるツールになるですよ・・・

842 名前:名無し~3.EXE:04/09/23 00:02:01 ID:R2XdI34p
VBS使いって街を歩いていたら石を投げられるような存在なんでしょうか?
VC++使いやVB使いには逆らっちゃいけないんでしょうか?

843 名前:名無し~3.EXE:04/09/23 00:04:44 ID:hMcR479U
全然ベツモンだろ

VCの方が一般的に敷居が高いだろうが
VBSでできる仕事をC++で書いてたらむしろそっちが馬鹿

844 名前:名無し~3.EXE:04/09/23 00:18:18 ID:Lh2l0axC
別に石を投げられることはないよ。
仕事も投げてもらえないが。

845 名前:名無し~3.EXE:04/09/23 00:23:21 ID:vScm7/uV
例えば、クライアント環境構築や鯖メンテみたいな
ちょっとした仕事はスクリプトの分野


846 名前:名無し~3.EXE:04/09/23 01:29:25 ID:R2XdI34p
会社だとVBS使える人間がまわりにいない・・・
誰かに仕事を頼むとVCとかで作ってくる

847 名前:名無し~3.EXE:04/09/23 02:21:08 ID:hMcR479U
>>846
それもどうかと思うが

848 名前:名無し~3.EXE:04/09/23 07:55:39 ID:uCnjknxX
使える言語を使えばいい。
むかしはN88BASICで作った表計算ソフトなんかも売られてた訳だし。

849 名前:名無し~3.EXE:04/09/23 11:02:41 ID:lubInKMC
せめてコンパイラとスクリプトくらい使えるようにしとけよって気はするけどな。
特にコンパイラ型の言語使える奴は。

850 名前:FeaturesOfTheGod ◆UdoWOLrsDM :04/09/23 21:54:45 ID:gwThE3LZ
Re:>849 Windowsには標準のコンパイラは付いてたっけ?

851 名前:名無し~3.EXE:04/09/23 22:27:59 ID:TNVe/cUI
「標準のコンパイラ」って何だ?
標準なんてあったっけ?

852 名前:名無し~3.EXE:04/09/23 22:47:43 ID:fGIO2dyg
っていうか「コンパイラ型の言語」って何だ?
Cのインタプリタだってあるし、JScriptのコンパイラだってある。

ちなみに、xpまでは標準ではついてこないけど
NT4や98以上なら、WindowsUpdate からででも
Microsoft .NET Framework をインストールしておけば
VisualBasic.NET・VisualC#.NET・JScript.NET のコンパイラがついてくる。
WSH用に作ったJSファイルがそのままコンパイルできて実行できてウマー。

853 名前:名無し~3.EXE:04/09/23 23:27:30 ID:lubInKMC
>っていうか「コンパイラ型の言語」って何だ?
>Cのインタプリタだってあるし、JScriptのコンパイラだってある。
幼稚園児並みの読解力だな。
意味が通じないなら型付けの強い言語とより動的な言語とでも読み替えてくれよ。
どっち道厳密な分類はできないけどな。

854 名前:名無し~3.EXE:04/09/23 23:29:09 ID:mHeZIzzx
強いて言うならば「コンパイル型の言語」だな。

855 名前:名無し~3.EXE:04/09/23 23:48:58 ID:XpAYeHB+
確かに適材適所で言語を使い分けていきたいところだな

856 名前:名無し~3.EXE:04/09/24 07:44:43 ID:xJwPxoUq
>>853
なぜ、そんなに偉そうに自己正当化できるのかな。
単なる無知なだけなのに。

857 名前:名無し~3.EXE:04/09/24 16:08:37 ID:CQQlJGxt
ここまで堂々と開き直れるのも珍しい。
思わずメル欄を確認しちまったよ

858 名前:名無し~3.EXE:04/09/24 18:48:19 ID:0xNjV/jk
そんなトリビアルな事で熱くなれるというのは、なかなか狭くて深い世界だねえ。

859 名前:名無し~3.EXE:04/09/25 00:05:35 ID:F8U02/G3
さあ、仕切り直しだ。

860 名前:名無し~3.EXE:04/09/25 07:03:12 ID:RYLdM9oS
仕切り直しに質問させてください。

ポスト送信をサイトに送るってWSHできますか?

861 名前:名無し~3.EXE:04/09/25 13:17:27 ID:lUR05caY
>860
strURL="サイトのURL"
strDATA="POSTするデータ"
strtmpFilePath="戻ってきたデータを保存するファイルのパス"
On Error Resume Next
set objXmlHttp = WScript.CreateObject("microsoft.xmlhttp")
objXmlHttp.Open "POST", strURL, False
objXmlHttp.Send(strDATA)
If Err.Number <> 0 Then
strErrMsg = strPostURL & ": " & Err.Description
MsgBox strErrMsg
WScript.Quit
End If
On Error Goto 0
Set objStream = CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.Write(objXmlHttp.ResponseBody)
objStream.SaveToFile strtmpFilePath, 1
objStream.Close
set objStream = nothing
set objXmlHttp = nothing


862 名前:860:04/09/25 16:38:21 ID:b+FbVlqx
>>861
おぉ!ありがとうございます。

実行したのですが「ファイルが書き込めませんでした。」ってエラー(行19,文字1,エラーコード:800a0bbc,ソース:ADODB.Stream)
が出たんですが以下の整数値を2にすると無事動きました。ほんとにありがとうございます!

objStream.SaveToFile strtmpFilePath, 2


863 名前:名無し~3.EXE:04/09/25 16:47:20 ID:lUR05caY
>862
すまん。元々のvbsから切り出すときにミスったみたい。

Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
if objFileSystem.FileExists(strtmpFilePath) then
intadSaveCreate = adSaveCreateOverWrite
else
intadSaveCreate = adSaveCreateNotExist
end if

↑を最初のあたりに追加して、該当の行を↓のように

objStream.SaveToFile strtmpFilePath, intadSaveCreate


864 名前:860:04/09/25 19:45:16 ID:ACYOB/F2
>>863
丁寧にありがとうございます、無事動きました。

細かいようですがFileSystemObjectを(ry
Set objFileSystem = CreateObject("Scripting.FileSystemObject")

865 名前:名無し~3.EXE:04/09/25 20:11:17 ID:lUR05caY
>864
そうだね。ごめん。

866 名前:名無し~3.EXE:04/09/27 00:50:49 ID:tH608INi
Cscript とFileSystemObject.GetFolder & Foldersコレクションを使って、DOSプロンプトの
Dir /b /s *.* みたいなWSHスクリプトを作っている所です。
このvbs ファイルだけは、Cscript で起動させたいのですが、WSH設定ファイルなどでは
対応できないのでしょうか。

CreateObject("Wscript.Shell").Run("CMD /C dir /b /s *.txt")、などで、確かに代用でき
なくはないのですが、できればWSH内で完結させたいです。

CreateObject("Wscript.Shell").Run("Cscript 実行ファイル.vbs")は試した事ないですが、
上手く動くのでしょうか。


867 名前:名無し~3.EXE:04/09/27 01:03:42 ID:WDVJ2j8P
何がしたいのかわかんないけど
自動でコマンドプロンプト開いて結果表示したいってこと?

アイデアだけ提供すると、
.vbs内でコマンドライン引数を見て、例えば /prompt ってのが指定されてなければ
CreateObject("Wscript.Shell").Run("CMD /C Cscript 実行ファイル.vbs /prompt")
って自分自身を呼び出して、
/prompt があったときは通常の処理をするようにするとか


868 名前:名無し~3.EXE:04/09/27 01:03:43 ID:ksl0j9rA
>>866
試せよ。

869 名前:866:04/09/27 01:33:02 ID:eac+bg+4
>>867
返事ありがとうございます。 Run("Cscript.exe ")の発展型という事なのですね。
何でそんなスクリプトを作っているかと言うと、現在ネットワークディレクトリの中のファイルを全部
CMD dir /b /s \\machine01\doc\*.* | sort >c:\database-machine01.txt
みたいな事して、データベース化してるのですが、 そのあと、不要なキーワードを含む行
を DeleteLine.vbs database-machine01.txt として処理しています。
部分的にCMD を使うと、途中で中間ファイルを作る必要があるので、できればWSH のみ
で処理を完結したほうが、ハードディスクへの書き込み回数も少なくすんで良いかと
思ったのです。
もう1つの理由は、単に、WSHプログラミングのスキルを上げたかったので、そろそろ
CMD.exe を頼りにするのも卒業しようかと思ったからです。

>>868
普段は全くプログラミングとは関係のない仕事をしてるので、しばらく確認できなくて。
うまくやってる人が運良く読んでくれればいいかなと。

870 名前:名無し~3.EXE:04/09/28 02:12:04 ID:J0wNr5Cw
>>869
> 何でそんなスクリプトを作っているかと言うと、現在ネットワークディレクトリの中のファイルを全部
> CMD dir /b /s \\machine01\doc\*.* | sort >c:\database-machine01.txt
> みたいな事して、データベース化してるのですが、 そのあと、不要なキーワードを含む行
> を DeleteLine.vbs database-machine01.txt として処理しています。

それだったらオレなら逆にバッチファイル(*.bat)のみで書いてしまうけどな。
最近のcmd.exeはなにげに高機能。(もちろんbashほどじゃないが。)

まWSHの勉強のために書くのはいいことだけど。

871 名前:名無し~3.EXE:04/09/28 17:20:33 ID:jaV7ssBE
>>867
それよりもWScriptオブジェクトのFullNameプロパティを利用したほうがよくないか?
実行ファイル名がcscript.exeかどうかで処理を変えるとか。

872 名前:名無し~3.EXE:04/10/01 21:35:52 ID:WnxSNxPq
ボリュームコントロールの
CDのをミュートだけをON./OFFしたいのですが
やりかたを教えてください

873 名前:名無し~3.EXE:04/10/01 21:42:06 ID:HkEn7W6f
要望:
次スレのタイトルには WSH の文字を入れてください…

874 名前:名無し~3.EXE:04/10/02 19:02:42 ID:m2Ya+TYm
いつまでもあると思うな次スレと金

875 名前:名無し~3.EXE:04/10/02 19:27:44 ID:ctTa24O9
>>873
そういう要望はスレが980まで逝ってから言ったほうがよいと思われ。
なんせ>>1の日付を見ろって。

876 名前:名無し~3.EXE:04/10/02 19:47:17 ID:BtPZR038
こんだけ便利なのにマイナーなWSHって浮かばれないよな

877 名前:名無し~3.EXE:04/10/02 21:33:36 ID:zcbqrjBi
>>876
まだ死んでません

878 名前:名無し~3.EXE:04/10/04 15:59:13 ID:LGpQP8s2
Longhornで死滅します。

879 名前:名無し~3.EXE:04/10/04 22:50:50 ID:Y48Z29kw
>>876
系統的にエクセルのマクロとかで大活躍してるじゃん。

880 名前:名無し~3.EXE:04/10/04 22:52:24 ID:7PYF+pCW
>876
IEコンポーネント系タブブラウザではわりと活用されてる希ガス

881 名前:名無し~3.EXE:04/10/04 23:24:00 ID:o7CWpnNG
>>876
WMV9エンコードにも使われてるよ。

882 名前:名無し~3.EXE:04/10/05 00:15:23 ID:D0vdFyi2
>>872
さすがに無理じゃないかな。

883 名前:名無し~3.EXE:04/10/05 10:30:02 ID:R9mfnBsh
>>882
SendKeyで出来そ(ry

884 名前:名無し~3.EXE:04/10/05 15:29:02 ID:ml87br28
>>878
MSのことだから後方互換性だけはしっかり確保するんじゃねーの?

885 名前:名無し~3.EXE:04/10/05 20:38:38 ID:bf5UD62g
次期OSではせきゅりてぃ確保のため
実行時にかならず確認ダイアログが表示されます。
なお、OKボタンは表示後5秒経過しないと押すことができません。

886 名前:名無し~3.EXE:04/10/05 22:02:06 ID:CJuY4KJ3
>>884
いつMSが後方互換性をしっかり確保したのかと小一時間以下略

887 名前:名無し~3.EXE:04/10/06 14:55:23 ID:zdSVn8iX
ちょと質問。
メールにファイル添付する際「ReadFromFile」メソッド使えばいいんですよね?
うまいこと動かないんでできたらご教授願いたいのですが。

888 名前:名無し~3.EXE:04/10/06 21:02:03 ID:u8b+Eklu
wshでスクリーンショットを取ってbmpで保存させることは出来ますか?

889 名前:名無し~3.EXE:04/10/06 21:02:52 ID:WDvKa30H
basp21.SendMail()
わりとらくちん。

890 名前:名無し~3.EXE:04/10/06 21:09:54 ID:WDvKa30H
>>888
Doodle2.CaptureWindow()
Doodle2.SaveToFile()

つか、新キンタマ作り?

891 名前:名無し~3.EXE:04/10/07 10:37:46 ID:0nmesP+2
>>889
thx。やっぱりbasp21使わんとあかんか。

使わずに送る方法ってのはないのかな?
msdnイテクル

892 名前:名無し~3.EXE:04/10/07 10:45:25 ID:BZoX7yFs
フリーソフトのcmailをbat経由で使う手があるけど、面倒くさいからbasp21を使うようになったな

893 名前:名無し~3.EXE:04/10/07 23:30:10 ID:tYNrDfvt
俺はComBlatJ

894 名前:せい:04/10/10 03:15:23 ID:RlItQ142
どなたか DYNWRAP.DLL のバグ取った方いらっしゃいませんか
いちおう文字列変数のアドレス取得するDLL作ってクリップボード
読み書きには成功したけど DYNACALL付属サンプルでさえ
GetPrivateProfileSection とかまともに動かない。

895 名前:せい:04/10/11 00:47:24 ID:GzRkfCMe
自己レス。むかーし某板で熱心に DYANAWRAP.DLL 使用された方のレスで
VBSの文字列変数について書かれてましたが、かならずしも UNICODE|ANSI 変換
はちゃんと動いてないようです。私の環境下(Win98)では、アドレスを返す
関数に"i=w""r=l"指定で返った値は確かに文字列変数に関するアドレスですが
文字列自身のアドレスはその値の8バイト先に「格納」されています(文字列定数では
文字列アドレスそのものを返す(?))。だからそのアドレスを所得すればVBSでも文字列は
おろかバイナリでもいじり倒せます。ちなみに文字列格納場所の4バイト前が
文字列数、8バイト前が属性情報のようです。無理矢理変数の属性を変える
ことも可能かもしれません。

896 名前:名無し~3.EXE:04/10/15 22:34:20 ID:+MsEg/sL
最後の自己レス。一応 DYNWRAP.DLL だけで文字列変数のアドレス取得できました。
Win32APIとChrW()、ビット演算とおよそ VBSにはもっとも不向きな
演算です。COM作る環境持ってない私のような人間には DYNWRAP.DLLは
やっぱり便利です。フリーのCOM作成ツールってないのかな?

897 名前:名無し~3.EXE:04/10/18 00:03:18 ID:hLy5Be5T
for %%a in (*.*) do md5.exe %%a

これをWSHで書き直したいんですが。

898 名前:名無し~3.EXE:04/10/18 00:33:51 ID:j1CH7/dy
そんな単純なのならほんとbatの方が良いんだけどね。
とりあえずjscript。
ちなみにwscript.exeで動かすとプロンプトがファイル数ぶん開いて非常にうざいのでcscript.exeで実行すべし。

var shell = new ActiveXObject("WScript.Shell"), fso = new ActiveXObject("Scripting.FileSystemObject");
for (var e = new Enumerator(fso.GetFolder(WScript.Arguments(0)).Files); !e.atEnd(); e.moveNext()) {
   var exec = shell.Exec("md5.exe " + e.item().Path);
   while (!exec.StdOut.AtEndOfStream)
      exec.StdOut.ReadLine();
}

899 名前:名無し~3.EXE:04/10/18 02:38:59 ID:JxpZBg0M
WSC(Windows Script Compornent)ファイル内でWScript::sleepメソッド
使いたいんですが、どのようにすればよいかわかる方はいませんでしょうか??

本やネットでめちゃくちゃ探したんだけど全然わからなくて…。

又は、
Sleepメソッドが使いたいだけなので、Windows2000及びXPで標準
ついている機能のみ(他のコンポーネントのインストール無し)で
WSCファイルでSleepできる方法がわかる方、挙手願えますでしょうか??

900 名前:名無し~3.EXE:04/10/18 23:43:20 ID:pT70E/XD
続けて質問します。

wsfやwscを使用せずにvbsファイルだけでincludeしたいのですが、
>>556 の手法だと、ドラッグドロップ時に私のマシン環境では
うまくスクリプトが動作しません。

例えば以下のスクリプトの場合、
 a. test.vbsをダブルクリックする。
  →正常に「in func_test()」というメッセージボックスが表示される。
 b. test.vbsにファイルをドラッグドロップする。
  →「ファイルが見つかりません。」というエラーが表示される。
となります。


901 名前:900の続き:04/10/18 23:43:57 ID:pT70E/XD
'━ test.vbs ━━━━━━━━━━━━━━━━━━━━━━━━━━

include "common.vbs"

func_test

Sub include(ByVal FileName)
Dim objFS, objTXT
Const ForReading = 1
Set objFS = CreateObject("Scripting.FileSystemObject")

' for debug --
Set tgtFolder = objFS.GetFolder(".")
MsgBox tgtFolder.Path
'↑ファイルをdrag&dropすると
' Windows2000の場合はここでカレントディレクトリが"C:\"と表示される。
' WindowsXPの場合はここでカレントディレクトリが"C:\Documents and Settings\Owner"と表示される。
' (あくまで私のマシンの環境では…)
' ------------

Set objTXT = objFS.OpenTextFile(FileName, ForReading, False) '←ここでエラー
ExecuteGlobal( objTXT.ReadAll() )
End Sub

'━ common.vbs ━━━━━━━━━━━━━━━━━━━━━━━━━━
Sub func_test
MsgBox("in func_test()")
End Sub

' ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


902 名前:901の続き:04/10/18 23:44:44 ID:pT70E/XD
原因はスクリプト実行時のカレントフォルダが、ダブルクリックと
ドラッグドロップとでは異なってしまうためのようです。
(カレントフォルダ)
 ダブルクリック時 :実行するvbsファイルのあるフォルダ
 ドラッグドロップ時:"c:\"とか。正式にはどのフォルダがカレントディレクトリとなるかはわかってない。

そこでこれに対処する方法がわかれば知りたいのですが、ドラッグドロップしても
問題なくスクリプトが動作するやり方のわかる方、教えてください。
よろしくお願いします。
(どこどこの設定を変えるとか、このサイトに書いてあるとか…)

903 名前:名無し~3.EXE:04/10/18 23:58:04 ID:j1CH7/dy
・フルパスでインクルードファイルを指定。
・WScript.ScriptFullNameからスクリプトファイルの位置を取得して
 それをもとにインクルードファイルのフルパスを取得してそれをインクルード。

どちらなりと。

904 名前:名無し~3.EXE:04/10/19 00:48:16 ID:xJshwPhk
L/Rキター

905 名前:902:04/10/19 00:50:07 ID:jFeBV1yG
>>903
後者は思いつきませんでした。
少し冗長になるのが気になるが、これでOKです。
ありがとうございました。

Set objTXT = objFS.OpenTextFile(FileName, ForReading, False)
  ↓
Set objTXT = objFS.OpenTextFile(left(WScript.ScriptFullName,instrrev(WScript.ScriptFullName,"\")) _
& FileName, ForReading, False)

906 名前:名無し~3.EXE:04/10/19 16:52:28 ID:oXlBCPFA
dos系のバッチファイルの実行ってどう記述するの?

907 名前:名無し~3.EXE:04/10/19 21:37:28 ID:ZpRJTA1c
>906
set objWshShell = WScript.CreateObject("WScript.Shell")
call objWshShell.Run("batファイルのフルパス")

こういう感じ?

908 名前:名無し~3.EXE:04/10/20 08:05:33 ID:xn4LtraR
set objWshShell = WScript.CreateObject("WScript.Shell")
call objWshShell.Run("batファイルのフルパス")

上記のように記述すると「指定したファイルが見つかりません」
のエラー表示になってしまうのはなぜ?

909 名前:名無し~3.EXE:04/10/20 12:45:06 ID:jTTjJP5H
"batファイルのフルパス" というファイルが見つからないせいだと思います。

もしかして >>906 の質問はメモ帳の使い方をおしえてほしかったのかな?

910 名前:名無し~3.EXE:04/10/21 21:18:23 ID:jTTMvPxN
これらのWSHスクリプトをください。

1「ユーザーの切り替え」
2「ユーザーを指定して切り替え」
3「終了オプション選択画面」
4「IMAPI(CD-Burning COM Service)サービスを開始」

911 名前:名無し~3.EXE:04/10/21 21:20:29 ID:1cNP+TAQ
>>910
こんなスクリプト書いてください in ソフト板 part1
http://pc5.2ch.net/test/read.cgi/software/1095411685/

912 名前:名無し~3.EXE:04/10/24 18:00:03 ID:hjbLCR8n
>>911の情報により、>>910じゃないですが、こんな依頼しました。
http://pc5.2ch.net/test/read.cgi/software/1095411685/35-36

でも、自分でも頑張ってやってみて途中まで上手く言ってると思うんですが…
AVIをD&Dした時点で関連付けされてるMediaPlayerが起動して上手くいきません。
同時に、QuickTime側は処理が動作してるのか…一応処理されるんですが、
AVIを読み込めていないので、下手したらアクティブになったウィンドウで処理しちゃってます。

WSFで書いてます。

<job id="IncludeExample">
<script language="JScript">
var WShell = WScript.CreateObject("WScript.Shell");
var oExec = WShell.Exec("QuickTimePlayer");//QuickTimePlayerを起動
WShell.Sendkeys("+E");//キーを送る
WShell.Sendkeys("{ENTER}");//キーを送る
while(oExec.Status == 0)
WScript.Sleep(1000);
WShell.Sendkeys("%FX");//キーを送る
</script>
</job>

あまり賢い方法じゃないでしょうが、初心者なのでこんな感じで始めてます。
現在、色々調べてやってる途中ですがJSもVBSも全くの初心者です。
どなたかアドバイス頂ければ幸いです。よろしくおねがいします。

913 名前:名無し~3.EXE:04/10/29 12:52:24 ID:y5f4KQ1x
ユーザーに情報を通知する手段についてですが、
普通にMsgBoxだとユーザーがボタン押さないといけないので
画面の端に一定時間表示されて勝手に消えてくれるような通知方法はないでしょうか?

914 名前:名無し~3.EXE:04/10/29 12:58:50 ID:rbM8AXyP
>>913
WshShell.Popup

915 名前:名無し~3.EXE:04/10/29 13:00:27 ID:rbM8AXyP
と思ったけど画面の端には無理だな。

916 名前:名無し~3.EXE:04/10/29 13:53:16 ID:zo6tvFG1
>>913
CreateObjectでIEを生成して、自動で閉じるウインドウを表示するとか。

917 名前:yara ◆SSLypP3Luo :04/10/29 23:37:55 ID:zsrZ/0Da
RubyScriptでWebページ内でHello Worldと表示させるにはどうしたらいいでしょうか。
↑WSH用のRuby

918 名前:名無し~3.EXE:04/10/29 23:50:32 ID:V0FW996l
>>917
print "<html>Hello world</html>"

919 名前:名無し~3.EXE:04/10/29 23:52:32 ID:Ap0nYukH
WSHの勉強を始めようと思って、本を一冊買おうと思ってるんだけど
オススメの本ってある?
>>3の本は随分古いようなので、今はどうなのかなと思って。
ちなみにおいらは、バッチファイルはある程度書ける、という程度のレベルです。

920 名前:919:04/10/29 23:53:57 ID:Ap0nYukH
× >>3の本〜
○ >>5の本〜

921 名前:名無し~3.EXE:04/10/29 23:59:41 ID:UwzqSupw
>>5の本は古いし、VBScripばかりなんだよね

922 名前:名無し~3.EXE:04/10/30 05:03:40 ID:wh/VjY2r
>>912 一週間も前だからもうみてないな。

どの時点で上手く行ってないのかがわからないけど、
スクリプトファイルにD&Dしたファイルが起動したQTで開けないってこと?
もしそうなら、QT起動時に引数として渡したらどうでしょ。

var file = WScript.Arguments.Unnamed.Item(0);
var oExec = WShell.Exec( "QuickTimePlayer" + " \"" + file + "\"" );

でもスクリプトにaviをD&DしてもWMPは起動しないし、外してるかな。

923 名前:912:04/11/03 01:47:40 ID:PB9dmDR7
>>922
たまに覗いてます!
ありがとうございました。QTにAVIを送り込むことが出来ました!

>でもスクリプトにaviをD&DしてもWMPは起動しないし、外してるかな。
WMPにAVIが関連付けされてるんですが、そのせいでWMP上でAVIが
再生されちゃうんですよ…。うちの環境だけですかね…。

でも、何とかQTでAVIを開けました。
後は、キーを送るの箇所辺りを弄ってみます。
どうも上手く作動してないっぽいです。


924 名前:912:04/11/03 02:45:25 ID:PB9dmDR7
立て続けにすみません。
>>922さんのおかげで、何とか1ファイルだけの処理を
上手くこなす事ができるようになりました。
有難うございます。

一つの処理時に次への実行を待機させるようなのは、
やはりSleepメソッドは無いでしょうか?
やたらSleep行が多いもので…。
これがクリアできたら、次は複数ファイルへの対応です!
ボチボチ調べながら自分自身でも頑張ってみます。

925 名前:912:04/11/03 02:46:35 ID:PB9dmDR7
>Sleepメソッドは無いでしょうか?

Sleepメソッド以外は無いでしょうか?の間違いです。
スレ汚しスマソ

926 名前:名無し~3.EXE:04/11/05 00:37:17 ID:g7DYgbKA
>912
複数ファイルスクリプトにD&Dして処理するのなら、
WScript.Arguments.Unnamed.lengthで名前なし引数の数を確認して
ループで順に取り出していけばいい。

>912のスクリプト、while(oExec.Status == 0) WScript.Sleep(1000); で
起動したQTPの終了を待ってるけど、その後さらにキーを送ってるから
ここのステータスチェックでのsleepはいらないんじゃない?

処理待ちSleepは、キーを送ってその処理待ちならSleepで待つしかないかな。

927 名前:名無し~3.EXE:04/11/05 00:37:28 ID:6HnHT4mY
こんな表記も出来るのね。今日初めて知った。

Dim a(2)
a(0)=array(0,1,2)
a(0)(0)=10
msgbox a(0)(0) ' 10と表示


928 名前:名無し~3.EXE:04/11/05 00:40:52 ID:PKEjFJ0R
ショートカットのリンク先に引数足して、
そのショートカットにファイルをドロップすると、
ショートカットで足した引数が WScript.Arguments で取れないみたいなんですが、
これは仕様ですか?

ショートカットで足した引数の後ろにドロップしたファイルがきて欲しい。
バッチファイルならいけたのに。

929 名前:名無し~3.EXE:04/11/05 21:50:54 ID:g7DYgbKA
>>928
ほんとだ、出来ない。

スマートじゃないけど
目的のスクリプトを引数付けて呼び出すスクリプトを書くとか?

930 名前:912:04/11/08 04:43:08 ID:2YtLn7z3
>>926
レスありがとうございます。遅くなってすみません。

>WScript.Arguments.Unnamed.lengthで名前なし引数の数を確認して
>ループで順に取り出していけばいい。
初心者なんで、何を言われてるかチンプンカンプン状態ですが、
WScript.Arguments.Unnamed.lengthをヒントにやってみます。

>ここのステータスチェックでのsleepはいらないんじゃない?
そこのsleepは処置待ちでのスリープです。
後、起動時にも即時にキーを送ってるっぽいので、今のバージョンでは、
多数sleep入れてしまっております。

ご教授ありがとうございます!

931 名前:名無し~3.EXE:04/11/09 04:46:23 ID:E7QupWoW
>>4
DynaCall - Win32APIコール
http://www.borncity.com/WSHBazaar/WSHDynaCall.htm
ここ落ちてないですか?そのうち復旧するのかな?
dynacallが必要なんです。

932 名前:名無し~3.EXE:04/11/09 11:30:22 ID:yAu/BLvf
microsoftのwshのサンプルってどこにありますか?
ヘルプには

>Windows Script Host のサンプルをダウンロードするには
>Microsoft Windows Script Technologies の Web サイト (http://www.microsoft.com/japan/) のナビゲーション ウィンドウ領域にある [Windows Scripting Host] をクリックします。
>メニューにある [ダウンロード] をクリックします。
>ダウンロード ページの [サンプル スクリプト (英語)] をクリックします。[ファイルのダウンロード] ダイアログ ボックスが表示されます。
と書いてありますがそんなページは見つかりません。

また他にもよいサンプルのおいてあるところがありましたら教えてください。
やりたいことは、ファイルとレジストリ操作、ダイアログの表示です。

933 名前:名無し~3.EXE:04/11/09 17:50:10 ID:OHm2GMYi
すみません、質問なのですが

Set IE=Wscript.CreateObject("InternetExplorer.Application")

↑の場合の「InternetExplorer.Application」の部分は、どうやったら調べられるのですか?


934 名前:名無し~3.EXE:04/11/09 22:24:03 ID:GAuhza3Q
>931
Upローダ教えてくれたらUpするよ。
2chでUpされた物を信用できるのならだけど。

>932
MSDNじゃ駄目なん?
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/vtoriMicrosoftWindowsScriptTechnologies.asp
あとは>3にある個人サイトとか。

>933
oleview.exe。
ttp://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/oleview-o.asp

935 名前:名無し~3.EXE:04/11/09 23:03:44 ID:OHm2GMYi
>>934
レスありがとうございます。
win2000のサイトのようですが、このoleview.exeは、XP SP2でも使えますか?

936 名前:名無し~3.EXE:04/11/09 23:05:16 ID:4UinI7d0
まあまずは試してみ。

937 名前:名無し~3.EXE:04/11/09 23:24:54 ID:uAkdiH+f
>>931
ttp://web.archive.org/web/20010706182517/http://www.borncity.de/WSHBazaar/dynawrap95.zip
9x系ならInternet Archiveから落ちたよ
Internet Archiveのバグで1バイトかけているので
ファイルの最後にバイナリエディタで00を追加すれば解凍できる

938 名前:名無し~3.EXE:04/11/09 23:34:00 ID:GAuhza3Q
>>935
>934のはver5.0。xpでも問題ないと思うよ。
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en
こっちがたぶん最新版でver5.1。でも他のも入ってるからファイルがちょっとでかい。

939 名前:名無し~3.EXE:04/11/10 00:32:10 ID:dH38g6sq
WSHかバッチファイルでデスクトップのスクリーンショットを取って
bmpかjpgでファイルに保存することはできるでしょうか?

940 名前:名無し~3.EXE:04/11/10 00:38:11 ID:IgUgxNFd
>>939
そういうCOMを探すより、そういうEXEを探したほうが早いでしょう。

941 名前:935:04/11/10 00:59:55 ID:0IqHZxsT
>>938
どうもです。>>934のをインストールしてみたら、「iviewers.dllがない」って言われたので
ネット検索して見つけだしてコピー、ついでにoldバージョンの日本語化パッチを見つけたので
一工夫して日本語化、そしてOleviewには検索機能がないらしく、見方を把握するのに
手こずっていたら、こんな時間になってしまいました。
ProgID というのが該当部分なのですね。分かってしまえば便利ですね。

というわけで、>>934のはXP SP2でも問題なく動作しました。
>>938のリソースキットも面白そうなのでダウンロードしました。
ありがとうございました。

942 名前:名無し~3.EXE:04/11/10 07:35:12 ID:ANC3jy5y
>>939
キンタマ露出させる前にログぐらい嫁

943 名前:m:04/11/10 12:00:00 ID:PmMEJcSc
あるキー配下にあるキー名を取得したい場合ってどうするんですか?

具体的には
HKCU\Softwareの中にあるキーを片っ端からゴニョゴニョしたいんです。
ってか他のキーにもゴニョゴニョする事を考えいるので、配下のキーを全部・・・的な
動作を知りたいです。

944 名前:名無し~3.EXE:04/11/10 12:27:37 ID:IgUgxNFd
>>943
WMI EnumKey でぐぐれ

945 名前:名無し~3.EXE:04/11/10 12:28:59 ID:/7A6p4zJ
>>943
NT系ならWMI。
ttp://www.google.com/search?num=100&hl=ja&c2coff=1&q=WMI+%E3%83%AC%E3%82%B8%E3%82%B9%E3%83%88%E3%83%AA+%E5%88%97%E6%8C%99&lr=lang_ja
9x系ならそれ用のコンポーネント。
ttp://hyons.hp.infoseek.co.jp/

946 名前:名無し~3.EXE:04/11/10 12:45:00 ID:/7A6p4zJ
Win98でもWMIを手動インストールはできるのか。知らなかった。

947 名前:m:04/11/10 15:01:48 ID:PmMEJcSc
> 944-955

ぬおぉぉ、助かりました
まさにこんな動きです。

WMIって良く解らんかったので頭が回りませんでした。

948 名前:名無し~3.EXE:04/11/10 16:14:53 ID:Qneit69U
レジストリを検索して特定の文字列を見つけたら削除するスクリプトなんて
WSHで実現できないでしょうか?

ファイルやレジストリキーの削除は検索して出来るようになったのですが、
量が多いとめんどくさいので検索機能を使って一気にやりたいのです。

949 名前:名無し~3.EXE:04/11/10 16:21:04 ID:/7A6p4zJ
>>948
>  WSHで実現できないでしょうか?
できるよ。
すぐ上でやりとりされてるのを参考にすればいい。

//でもぶっちゃけ一気に数十台のマシンをとか言うんでない限りスクリプト書くより適当なレジストリエディタ使う方が早そうだが。

950 名前:948:04/11/10 18:00:06 ID:u2p4OJfV
>>949
レスありがとうございます。
ちょっと前のやりとりを参考に読んで自分でできるか試してみます。

ちなみにそのレジストリエディタはどのようなものでしょうか?
Vectorでちょっと見てみたのですが、検索して削除ってのはWinに付属の
レジストリエディタとあまり変わらなかったみたいなので。
よかったら教えてください。

951 名前:948:04/11/10 18:34:13 ID:0pHBdo5H
二つほど教えてください。
1、vbsの拡張子だと実行するファイルの拡張子をWSFにするとエラーになりますけど、
これは何か宣言すれば動作するようになるのでしょうか?
今まで実害が無かったのでずっとvbsのままにしていましたが気味悪いので。

2、もうひとつですが、ファイルの名前を今日の日付にしてあるファイルをコピーしたい
のですが、これはどうすればできますか?
ファイル操作は初めてでコピーのやり方や日付情報の取り方すら分かりません。
ここのログを検索してもファイルの削除の方法は書いてあったのですが、
コピーの方法はどこにも書いてありませんでした。


952 名前:名無し~3.EXE:04/11/10 18:48:45 ID:lTopE8CH

放置放置

953 名前:名無し~3.EXE:04/11/10 18:58:50 ID:/7A6p4zJ
まあ取りあえずMSDN読め。
Google使え。

954 名前:名無し~3.EXE:04/11/10 20:37:49 ID:0m1rxycB
>>951>>5の参考文献から何か買ったほうが良さそうだな

955 名前:名無し~3.EXE:04/11/10 23:57:09 ID:fbxEpDl6
MsgBoxでvbYesvbNo等以外にすること出来る?

例えば、4つぐらいのボタンを並べるとかやりたいんだけどYes No Cancel以外できなくて。


956 名前:名無し~3.EXE:04/11/11 00:07:30 ID:gp8+fVfY
MsgBoxとはそんなもんだ。
簡単に出せるけど、できることが限られてる。

IEを起動して、MsgBox風の外観にして、
HTMLでボタンを並べて、入力結果を元のスクリプトに返してやればいい。

957 名前:名無し~3.EXE:04/11/11 00:36:59 ID:cNYXWVQr
初心者が増えてきたな。良いことだ。

958 名前:名無し~3.EXE:04/11/11 16:12:50 ID:fZTohmvy
空白のあるフォルダや実行ファイルに引数を送るときは通常
"""c:hoge\hoge.exe -x"""
でやるよね?

でも、フォルダ名や引数が場合によって変わるからどうしてもこの形式が
使えないんだけど、こういうときに空白のフォルダ名や引数を送るには
どうしたらいいの?
ショートカットを作るとなると大量になるのでそれも無理です。
できたら、Wscript.run "C:\"+hogedir+"hoge.exe " +hoge
見たいな形でできたらいいんだけど、これって無理ですか?

959 名前:名無し~3.EXE:04/11/11 16:23:40 ID:YEYQryb+
例も日本語もむちゃくちゃだが、適当に引数の前後に"を付け加えるQuote関数でも作るとか。

960 名前:958:04/11/11 16:31:00 ID:CBKbTJ5A
""""で解決しました。すみませんでした。


961 名前:名無し~3.EXE:04/11/11 18:28:40 ID:ENl8B5W0
過去ログやテンプレのサイトも一通り読んでも分からないので教えてください。

http://pc5.2ch.net/test/read.cgi/win/1058829737/l50
などの2ちゃんのスレを . や / で切り分けて順番を並び替えることはできませんか?

例えば上の例だったら
http://www.aaa.co.jp/2ch_logbackup/pc5-win/1058/1058829737.mht
などのように.などや文字列の一部で切り分けて文字列操作をしたいのですが、
やり方が分かりません。
やりかたを教えてください。

962 名前:名無し~3.EXE:04/11/11 18:37:34 ID:YEYQryb+
わざわざ「2ちゃんのスレ」などと書く必要はないな。URL文字列の、とかなら分かるけど。

Split関数(VBScript)/splitメソッド(JScript)で文字列配列にして、
適切に処理して、
"/"なりなんなりを間に挟んで再結合とか。

//先頭のttp://は事前に削除しといた方がやりやすい。

963 名前:名無し~3.EXE:04/11/12 11:26:57 ID:uCMuzyOf
961です。
やってみたのですが、どうしてもできません。
とりあえずURLを入力させて各要素をひとつずつ表示させようと
しているのですが、それすらできません。
lengthやsplitの使い方が間違っていると思うのですが、
どなたか教えていただけないでしょうか?
MSDNに当たっても
function SplitDemo(){
var s, ss;
var s = "The rain in Spain falls mainly in the plain.";
// スペースの位置で分割します。
ss = s.split(" ");
return(ss);
}
と言う例があるだけでそれを真似たのですが出来てないみたいです。

以下、ソース
Dim i,RURL,ss

RURL=inputbox("input URL")
ss=split(RURL,"/") 'ss=RURL.split("/")でも出来ず
for i=0 to ss.length 'ss.countなども試したが出来ず
msgbox ss[i]
next i

Wscript.Quit intMsg


964 名前:名無し~3.EXE:04/11/12 11:51:26 ID:gsoQ0tnO
>>963
VBScriptとJScriptがごっちゃになりまくってるね。

JScriptならsplitから返ってくるのがArrayオブジェクトなので、そのlengthプロパティを参照できる。
VBScriptだと、配列は配列なのでUBound関数を使って配列長を取得する必要がある。
大抵は、同じような機能をJScriptはオブジェクトベースで、VBScriptは関数ベースで解決しているから、
異なる言語のサンプルを見る時はそれに対応した自分の扱う言語上での表現に留意しないといけない。

あと、JScriptは配列要素へのアクセスは[index]だけど、VBScriptだと(index)になる。

965 名前:名無し~3.EXE:04/11/12 13:57:16 ID:A+iYBMN8
NTFSのファイルストリームに格納されているコメントの取得と設定のやり方を教えてください。

966 名前:名無し~3.EXE:04/11/12 14:59:41 ID:32lcMbL0
>>963
こんな感じじゃないかな。

Dim i, RURL, ss
RURL = InputBox("input URL", "hoge", "http://pc5.2ch.net/test/read.cgi/win/1058829737/")
ss = Split(RURL, "/")
For Each i In ss
MsgBox(i)
Next

967 名前:名無し~3.EXE:04/11/13 13:33:24 ID:tyAZ2gRt
>>963
よく、MidやSplitを駆使して文字列を切り貼りしているのを見かけるが、
変則パターンがあると、バグを入れ込むしロジックも複雑になる。
VBSでもJSでも 正規表現の置換使うのが一番手っ取り早いのではないかと。
http://(\w+).+(\w+)/(\d{4})(\d{6})(/l\d+)?$

http://www.aaa.co.jp/2ch_logbackup/$1-$2/$3/$3$4.wht
みたいな感じで。ぱっとみぃで適当に作ってみたが。


全部 最新50
DAT2HTML 0.35f FIX Converted.