TClock Script Help

TClock2ch付属サイト…

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

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

・煽りや荒らしは無視の方針で。基本的にsage進行です。

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

・質問する際は、OS及び使用するコンポーネントのバージョンもお忘れなく。

●過去スレ
#1 http://pc.2ch.net/test/read.cgi/win/1009175619/
#2 http://pc2.2ch.net/test/read.cgi/win/1022248379/
#3 http://pc11.2ch.net/test/read.cgi/win/1058829737/
#4 http://pc11.2ch.net/test/read.cgi/win/1100489339/
#5 http://pc11.2ch.net/test/read.cgi/win/1126543183/

その他 >>1-10 あたり

2 名前:名無し~3.EXE:2006/08/08(火) 21:42:04 ID:hqaA5ks/
●便利なリンク
Windows Script
http://www.microsoft.com/japan/msdn/scripting/default.asp
MSDN Library (オンラインドキュメント)
http://msdn.microsoft.com/library/ja/
Windows Script 5.6 ドキュメント ダウンロード (exe 形式; 1.67 MB)
http://download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/JA/scd56jp.exe
OLE/COM Object Viewer ダウンロード (exe 形式; 656 KB)
http://download.microsoft.com/download/win2000platform/oleview/1.00.0.1/NT5/EN-US/oleview_setup.exe

Sesame Script (スクリプト作成初心者向けコラム)
http://www.microsoft.com/japan/technet/scriptcenter/resources/begin/default.mspx
Hey, Scripting Guy! (スクリプトのQ&A・ハウトゥ集)
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/default.mspx
Windows管理者のためのWindows Script Host入門 (@IT内記事)
http://www.atmarkit.co.jp/fwin2k/operation/wsh01/wsh01_01.html
Windows XP に含まれるコマンドラインツールの紹介 (@IT内記事)
http://www.atmarkit.co.jp/fwin2k/xp_feature/013commandtool/commandtool.html
ADSI (Active Directory Service Interfaces) の特集記事全文
http://web.archive.org/web/20050309045811/http://www.galliver.co.jp/writing/nikkei_tokushu/wad002/index.html

●個人サイト
Windows Script Wiki
ttp://winscript.s41.xrea.com/wiki/index.php
趣味のJavaScriptなページ
ttp://homepage3.nifty.com/aya_js/
Windows Scripting Host Laboratory
ttp://www.roy.hi-ho.ne.jp/mutaguchi/wsh/
Tips - (小技にも満たない)微ワザ集
ttp://www1.u-netsurf.ne.jp/~tomo_c/tips/Scr002.html

3 名前:名無し~3.EXE:2006/08/08(火) 21:42:58 ID:hqaA5ks/
●コンポーネント関連リンク

○Microsoft 製外部コンポーネント
DCOM
(98/Me) http://www.microsoft.com/japan/com/dcom/dcom98/dcom13.asp
(95)  http://www.microsoft.com/japan/com/dcom/dcom95/dcom13.asp
MDAC - データベース・メールボックス・WebDAV・バイナリの操作
http://msdn.microsoft.com/data/ref/mdac/downloads/
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
MSXML - XMLパーサ、SAX・DOM API、XSLT変換、POST/HTTPダウンロード
http://www.microsoft.com/downloads/details.aspx?familyid=993c0bcf-3bcf-4009-be21-27e85e1857b1

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

4 名前:名無し~3.EXE:2006/08/08(火) 21:43:41 ID:hqaA5ks/
●WSH(COM)参考書籍

「はじめてのWindows Scripting Host」 (株)アンク著 技術評論社
http://www.amazon.co.jp/gp/product/477410650X/

「[改訂版] VBScriptポケットリファレンス」
http://www.amazon.co.jp/gp/product/4774127930/

「使いながら覚えるWindows Scripting Hostプログラミング入門」 竹田英雄著 エーアイ出版
http://www.amazon.co.jp/gp/product/4871936678/

「Windows Scripting Host入門 with VBScript」 毎日コミュニケーションズ
http://www.amazon.co.jp/gp/product/4839900906/

「WSHで楽しむWindows95/98/NT4.0版 ウィンドウズ・スクリプティング入門 VBScript編」 メディアテック出版
http://www.amazon.co.jp/gp/product/4896270207/

「WSHクイックリファレンス」 羽山博著 オライリー・ジャパン
http://www.amazon.co.jp/gp/product/4873110068/

「Rubyを256倍使う本 邪道編」 arton著 ASCII
http://www.amazon.co.jp/gp/product/4756136036/

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

「標準ASPテクニカルリファレンス」山田祥寛著 SOFTBANK
http://www.amazon.co.jp/gp/product/4797314001/

5 名前:名無し~3.EXE:2006/08/08(火) 21:44:21 ID:hqaA5ks/
●JavaScript、VBScript 以外のWSHで使える言語

TCLScript
http://tclscript.sourceforge.net/
Perl
http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl
Ruby
http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/
Python
http://www.python.jp/Zope/download
PHP
http://www.php.net/downloads.php
REXX
http://www.borg.com/~jglatt/rexx/win32/rxusrw32.htm

6 名前:名無し~3.EXE:2006/08/08(火) 21:47:19 ID:hqaA5ks/
テンプレ終わり。なかったので立てました。
リンク切れ修正したり、簡潔にしたり、書籍をAmazonでまとめたり、色々追加したりしてみました。
まずかったらごめんなさい。

7 名前:名無し~3.EXE:2006/08/08(火) 22:44:29 ID:m2nJYuN9
やっと立ったか
>>1

8 名前:名無し~3.EXE:2006/08/09(水) 02:18:52 ID:HZLszs1m
おつりんこ


9 名前:名無し~3.EXE:2006/08/09(水) 21:29:00 ID:3ZEp9c5C
元ネタttp://www.apple.com/jp/macosx/features/applescript/

10 名前:名無し~3.EXE:2006/08/10(木) 01:20:51 ID:dgC59hri
そろそろ、大学入試に採用して欲しいものだ。

11 名前:11:2006/08/10(木) 02:20:10 ID:/7XeLnYy
こっそり。
連載って大変です・・・

12 名前:名無し~3.EXE:2006/08/10(木) 11:10:30 ID:QZ8c+eSn
>>11
ただの11に興味はありません。

13 名前:名無し~3.EXE:2006/08/13(日) 11:50:50 ID:41wVJTOD
「VBScrip逆引き大全 500の極意」 井川はるき著 秀和システム
ttp://www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=4-7980-1379-X

14 名前:名無し~3.EXE:2006/08/13(日) 20:54:27 ID:8j+UDFyv
ファイルをD&Dすれば、その配下に「2006年08月」の年月フォルダを作って
振り分けてくれるスクリプトはどこかにないですか?

15 名前:名無し~3.EXE:2006/08/13(日) 21:14:49 ID:mVE7+F6R
見当たらないものを作るのがこのスレ。とにかく書いてみろよ。

16 名前:名無し~3.EXE:2006/08/13(日) 22:15:18 ID:Th0qG/nU
簡単っぽいね

現在の年・月取得
→「y年m月」というフォルダがないなら作る
→引数のファイルをそのフォルダにコピーor移動

>>14
がんばれ

17 名前:名無し~3.EXE:2006/08/15(火) 17:13:21 ID:5toxITo3
本当にスクリプトで画面の解像度を変更できませんか

18 名前:名無し~3.EXE:2006/08/15(火) 20:34:44 ID:5SvS0Mip
>>17
WScript.exe自体の機能では出来ない。
そういう機能のあるCOMを探すか作るかすれば出来る。
WMIのWin32_DisplayConfigurationあたりでも出来るかもしれないが
面倒なので自分で調べて。

というか、コマンドラインから解像度変更するツールは確かあったから
そいつをWshShellのRunで呼ぶのが一番手っ取り早いかも。

19 名前:名無し~3.EXE:2006/08/18(金) 02:23:11 ID:huYxnQWS
IE7をCOMで扱うときの資料ってどこかにありますか? メソッド一覧とか。

自作のIE自動運転ツールで、CreateObject("InternetExplorer.Application")ってやって新規IEをいくつも立ち上げてるんですが、
IE7のタブ機能で、同じIEの新規タブを使うように変更したいんです。


20 名前:名無し~3.EXE:2006/08/18(金) 03:20:19 ID:huYxnQWS
あと、CreateObject("InternetExplorer.Application") みたいな感覚で、
FireFoxって扱えないのでしょうか?
どっかに資料があったら教えてください。

21 名前:名無し~3.EXE:2006/08/18(金) 05:52:24 ID:X3GM4s/3
前まで使っていたHTAがある日突然文字化けして使えなくなってしまいました。
拡張子をHTMLにすると文字化けも解消し、動作します
なんとか元通りHTAのまま動作するようにしたいのですが、なにが原因なんでしょうか
ちなみに他のHTAは文字化けしませんでした

22 名前:名無し~3.EXE:2006/08/18(金) 06:09:17 ID:Y6b9lzs3
>>21
<meta http-equiv="Content-Type" content="text/html; charset=****" />

を入れてみたら?****はshift_jis, EUC-JP, UTF-8など

HTAスレがありますよ
HTAをもっと流行らせる計画
http://pc8.2ch.net/test/read.cgi/tech/1124559962/l50

23 名前:名無し~3.EXE:2006/08/18(金) 10:26:16 ID:cwDh88nh
>>19
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reflist_cpp.asp

IE7は使ったことないから分からないけど
タブで開くには Navigate2で第2引数のフラグ(BrowserNavConstants)に
navOpenBackgroundTab = 0x1000を立てればいいんじゃないかな


24 名前:名無し~3.EXE:2006/08/18(金) 10:27:46 ID:cwDh88nh
ああ間違えた
navOpenInNewTab = 0x0800
でもいいね

http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/enums/browsernavconstants.asp


25 名前:名無し~3.EXE:2006/08/19(土) 21:40:24 ID:Ax5AbTvR
789 名無し~3.EXE [sage] 2006/08/19(土) 13:35:26 ID:IAl43imz
MS06-023で指摘された脆弱性対応版ですかね?
バージョンは 5.6.0.8831

Windows 98、Windows Millennium Edition (Windows Me)、および Windows NT 4.0 用の Windows Script 5.6
※OS本体はサポート終了、しかも何故か→【要認証】
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a8a18f6-249c-4a72-bfcf-fc6af26dc390&DisplayLang=ja
http://download.microsoft.com/download/3/a/0/3a09aa38-a01d-437d-aff0-517d1d47746e/Windows9x-Script56-KB917344-x86-jpn.exe

Windows 2003 用の Windows Script 5.6 【要認証】
http://www.microsoft.com/downloads/details.aspx?FamilyID=887fce82-e3f5-4289-a5e3-6cbb818623aa&DisplayLang=ja
http://download.microsoft.com/download/5/8/2/582f8ad3-c9c2-40db-a7cd-e30bdf8c6e70/WindowsServer2003-Script56-KB917344-x86-jpn.exe

簡単な説明
このダウンロードは、Visual Basic Script Edition (VBScript) Version 5.6、JScript Version 5.6、Windows Script Components、
Windows Script Host 5.6、および Windows Script Runtime Version 5.6 からなる Microsoft Windows Script をインストールします。

http://pc11.2ch.net/test/read.cgi/win/1133803512/789

26 名前:名無し~3.EXE:2006/08/26(土) 08:36:17 ID:7AZj00I6
バッチファイルの結果って、wsh からコピーできないんでしょうか。
Alt + Space を SendKeys してもメニューが出ないので、困ってます。
かなりぐぐったけど、結局できなかったって話しかないし。

-- 8< Login-FTP.bat 8< --
@echo off
TITLE FTP-Tool
ftp hoge
echo "FTP 終わったら [OK] をクリックしてください"

-- 8< FTPcopy.wsf 8< --
set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "cmd.exe /k Login-FTP.bat", 1, false
MsgBox "[OK] をクリックしてください"
Do Until objShell.AppActivate("FTP-Tool")
WScript.Sleep 100
Loop
objShell.SendKeys "%({ }ES)%({ }EY)"
WScript.Sleep 100
Set objExec = objShell.Exec("notepad.exe")
Do Until objShell.AppActivate(objExec.ProcessID)
WScript.Sleep 100
Loop
objShell.SendKeys "%(EP)"
WScript.Sleep 100
objShell.SendKeys "%(FA)"
WScript.Sleep 500
objShell.SendKeys "FTP.log"

27 名前:名無し~3.EXE:2006/08/26(土) 09:21:16 ID:NGHbsPUz
>>26
Run じゃなくて Exec を使う。
WshShell.Exec の返り値として WshScriptExec のオブジェクトが返ってくるから
その StdOut を読めばいいよ。

28 名前:26:2006/08/26(土) 11:18:57 ID:7AZj00I6
>>27
サンクス! 全然考えてなかったやりかたでした。

試しました・・・ら、かんじんの FTP 処理がコマンドプロンプト上で
入力できないんですね・・・。
WSH から標準入力としてコマンドを送りつければよいのでしょうが、
FTP を自由に使いたいのでそういうわけにも行かず・・・。

うーむ・・・。
標準入力だけは WSH を経由しないようにできないものか・・・。


29 名前:26:2006/08/26(土) 11:31:17 ID:7AZj00I6
あ、標準入力っていうか、普通にコマンドプロンプト上で操作できて、
その後で Exec の結果を取得できなくちゃいけないのか。

・・・できそうにないな・・・。

30 名前:名無し~3.EXE:2006/08/26(土) 12:03:52 ID:X5Z8XRwb
出来ることをできそうにないとか言って諦めきれるならやらなきゃいいさ。
諦めきれないなら調べるなり試行錯誤するなりすればいいさ。

それが出来ないと本当に困るという状況で必死になってるなら自分で解決まで
這い蹲ってでも辿り着くだろうし、解決できないなら出来なくてもたいして困らないから
必死になりきれてないだけ。本人が別に解決しなくてもいいや程度に考えてるなら
俺等が手を掛けることでもないし、これ以上教えることは何も無さそうだな。

31 名前:26:2006/08/26(土) 12:23:05 ID:7AZj00I6
いや、まだやってますけど・・・。

32 名前:名無し~3.EXE:2006/08/26(土) 22:54:38 ID:caN/FdXT
HTAって、背景透過できない?

33 名前:名無し~3.EXE:2006/08/26(土) 23:22:22 ID:NGHbsPUz
このスレ的な回答なら COM を作ればできる かな。

34 名前:名無し~3.EXE:2006/08/27(日) 18:11:11 ID:iJpflacd
難しいそうでつね。

35 名前:19:2006/08/27(日) 23:34:30 ID:7+PWpyeP
>>23-24
情報感謝です。そんなIE7を反映した資料があるの、全然知らなかった。

複数サイトに対して自動巡回をするため、これまでは
CreateObject("InternetExplorer.Application") でIEをいくつも立ち上げてたんですが、

・IEインスタンスが存在しない→
  ・CreateObject("InternetExplorer.Application")
  ・それに対してNavigate2 URL (これまでどおりの処理)
・IEインスタンスが存在する→
  ・インスタンス取得
  ・それに対してNavigate2 URL, navOpenInNewTab
  ・新規タブで作った新インスタンスを取得、それに対して巡回操作

こう改造することで、1つの窓の複数タブにまとめることができました。
縮小表示で複数の巡回を一覧できて快適です。

ただし、IE7beta3がめちゃめちゃ落ちやすい罠。実用にはちょっと厳しいです。
いっぺん落ちるとDOM関係の内部構造がぐちゃぐちゃになるらしく、
IE7を再起動してもDHTML要素が取得できなくなります。
タスクスケジューラでexplorer.exeを全部殺して立ち上げなおすと、なぜか治る。
あと、普通に使ってても、Formで日本語入力できなくなったりすることがやたら多い。

9月のIE7正式版登場までには、もうちょい使い物になるようになってくれないと…。


36 名前:26:2006/08/29(火) 01:28:54 ID:o0XsAnyT
Alt + Space を SendInput する .exe を作って
wsh から呼び出すことにして解決しましたです。

37 名前:名無し~3.EXE:2006/09/03(日) 02:10:24 ID:9m7JaXWT
フォルダAにあるファイル全てと(サブフォルダ内のファイルを含む)
フォルダBにあるファイル全てを(サブフォルダ内のファイルを含む)比較して
同じファイル名のものがあれば、フォルダAのファイルをフォルダBのファイルに
上書きしたいのですが、どのような繰り返し処理を行えばいいのかわかりません。
初歩的な質問で申し訳ないのですが、どなたか参考になるご意見を聞かせて下さい。

38 名前:名無し~3.EXE:2006/09/03(日) 02:23:00 ID:M/8yjKeF
まずFileSystemObjectを使ってフォルダAにあるファイル全てを列挙して
配列(または連想配列)に入れておく。
あとはフォルダBのファイルを1つずつ調べていき、配列に同じ名前があれば
フォルダAのファイルを上書きコピーすればいいんじゃない?

列挙→GetFolder + Files 辺り
上書きコピー→CopyFile もしくは GetFile + Copy 辺り

39 名前:37:2006/09/03(日) 23:36:27 ID:9m7JaXWT
>>38
レスありがとうございます。
参考書片手に四苦八苦していたところに
ヒントを頂けて大変助かります。
早速試してみますね。

40 名前:名無し~3.EXE:2006/09/04(月) 00:42:41 ID:4RNTB77S
念のため言っとくと、GetFolder + Filesの列挙処理は、再帰的にな。
下層フォルダもぜんぶ処理対象にするためには。
もしわかんなきゃ「再帰」をキーワードに入れてぐぐること。

41 名前:名無し~3.EXE:2006/09/04(月) 16:42:27 ID:QYJv5P/p
JScriptからフォルダ共有の解除を行いたいと考えているのですが、外部からアクセスされている場合、
「この操作を続行しますか? (Y/N) [N]:」ってプロンプトが表示されてうまく動きません。
調べた感じでは標準入力(StdIn)に"Y"って送ってあげれば良い気がするのですが、うまく動いてくれません。
私が作ったjsファイルの内容は...

var WShell = WScript.CreateObject("WScript.Shell");
var objNet = WShell.Exec("net share Share /DELETE");
while (!objNet.StdOut.AtEndOfStream)
{
var strLine=objNet.StdOut.ReadLine();
var nPos=strLine.indexOf("この操作を続行しますか?");
if (nPos>=0)
{
objNet.StdIn.WriteLine("Y");
}
}

ちなみに誰も使用していない場合はちゃんと共有が解除されます。
対象はWindows2000 Serverです。
どうすればうまく動くようになりますか?
教えてエライ人!

42 名前:名無し~3.EXE:2006/09/06(水) 02:31:02 ID:6VRM8O2+
WShell.Exec("cmd /c echo y | net share airplane /DELETE");

あーあ、なんだよこの旧世代プログラマがやりそうな力技は
こんなことを考えついて試してしまう自分が嫌だ


43 名前:名無し~3.EXE:2006/09/06(水) 03:14:37 ID:W4o+AU9u
>>42
なるほどw パイプ便利だな

44 名前:名無し~3.EXE:2006/09/06(水) 03:46:18 ID:mG/64ktE
むしろ当然の解決策だと思った

45 名前:名無し~3.EXE:2006/09/06(水) 08:24:38 ID:Z523kT6K
stdinを読んでるわけでないようだから>>42もうまくいかない

46 名前:41:2006/09/06(水) 11:01:06 ID:B7U19HoE
>>42,43,44,45
レスありがとうございます。
wktkしながら試しましたが私の環境ではダメでした... (´・ω・`)
なんでだろうな...

47 名前:名無し~3.EXE:2006/09/07(木) 00:01:08 ID:Sux4zrox
>>46
var prc = GetObject("winmgmts:{impersonationLevel=impersonate}")
.ExecQuery("SELECT * FROM Win32_Share");
for ( var e = new Enumerator(prc); !e.atEnd(); e.moveNext() ) {
var sd = e.item();
if ( sd.Caption == "Share" ) sd.Delete();
}

48 名前:47:2006/09/07(木) 00:02:48 ID:7NNz2Yc3
しまった。プロセス操作のヤツからコピペしたから変数名が変だ。

49 名前:名無し~3.EXE:2006/09/07(木) 10:45:44 ID:EZRTppgw
>>47
同様のスクリプトを作ってやったことあるけれど
誰かが共有フォルダにアクセスしていると共有解除されないような


50 名前:41:2006/09/07(木) 11:25:34 ID:kklWKgcq
>>47
レスありがとうございます。
試したところ無事動作しているみたいです!
もしやあなたはネ申でつか。
...WMIは色々使えそうですね (. .)〆

>>49
簡単にやってみたところ大丈夫そうです。
もう少し色んなケースを試して見たいと思います。

PS.
レスくれた方々ありがとうございます。


51 名前:名無し~3.EXE:2006/09/12(火) 17:21:16 ID:6aj+7wdR
指定したフォルダのmp3ファイルをランダムで実行したい。

Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run "C:\MP3\*.mp3",3,true

これじゃエラー出るんだけど何故?この場合ってワイルドカード使えない?

52 名前:名無し~3.EXE:2006/09/12(火) 17:22:50 ID:8qFdY5Hd
    _, ,_  パーン
 ( ‘д‘)  
   ⊂彡☆))Д´) 

53 名前:名無し~3.EXE:2006/09/12(火) 17:47:46 ID:A3UEU+1f
*はランダムではない。
任意の文字列という意味。
Runの引数にワイルドカードなんて認められてない……はず。

ランダムで実行したかったら
すべてのファイルパスを配列にぶちこむ

Rndとかでファイル数以下のランダムな整数作る

それをインデックスにしてファイル実行する




54 名前:名無し~3.EXE:2006/09/12(火) 19:29:56 ID:5GCyJ/an
var WSHShell = WScript.CreateObject("WScript.Shell");
var Fso = new ActiveXObject("Scripting.FileSystemObject");
// .mp3ファイル名をmp3[]配列に格納
var folder = Fso.GetFolder("C:\\MP3");
var mp3 = [];
for (var e = new Enumerator(folder.Files); ! e.atEnd(); e.moveNext()) {
    var f = e.item();
    if (/\.mp3$/i.test(f))
        mp3.push(f);
}
var i;
do {
    // ランダムに並べ替え
    for (i = 0; i < files.length; i++) {
        var r = Math.floor(files.length * Math.random());
        var t = mp3[i];
        mp3[i] = mp3[r];
        mp3[r] = t;
    }
    // プレイ
    for (i = 0; i < files.length; i++)
        WSHShell.Run(mp3[i], 3, true);
} while (true); // trueで無限ループ

55 名前:名無し~3.EXE:2006/09/12(火) 19:41:04 ID:jll2Gkhp
WSHで、既に作成されているExcelファイルを開き、そこにある
イメージコントロールに画像を表示させるにはどうしたら良いの
でしょうか?

Option Explicit
Dim objExcel
Dim objExcelBook
Dim objExcelSheet

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objExcelBook = objExcel.Workbooks.Open("D:\Book1.xls")
Set objExcelSheet = objExcelBook.Worksheets(1)

objExcelSheet.cells(1,1).value = "aaa"
objExcelSheet.Image1.Picture = LoadPicture("D:\test.jpg")

objExcel.Quit
Set objExcelSheet = Nothins
Set objExcelBook = Nothing
Set objExcel = Nothing

を実行すると、A1に"aaa"が入る所までは良いのですが、LoadPictureの
行で「致命的なエラーです」が出てしまいます。
おそらく、Image1の指定方法に問題があるかと思うのですが、具体的な
指定方法または、それについて記載されているURLなどを教えて頂けない
でしょうか?

56 名前:名無し~3.EXE:2006/09/12(火) 20:01:14 ID:5GCyJ/an
>>54
× files.length
○ mp3.length
です

57 名前:51:2006/09/12(火) 23:16:11 ID:rMXBUJr8
>>53
>>54
サンクス。動作は確認できたが、出来ればWSHで書いて欲しかった。javascriptはウヴォア

58 名前:名無し~3.EXE:2006/09/12(火) 23:30:42 ID:5MYDPybn
WSH は VBScript だけのもんじゃないよ?

59 名前:名無し~3.EXE:2006/09/12(火) 23:36:25 ID:muCQp/dj
JavaScriptもPerlもRubyもPythonも。

60 名前:名無し~3.EXE:2006/09/13(水) 00:08:35 ID:ry6CWKuK
あーそうなのかー
無知ですまぬ

61 名前:名無し~3.EXE:2006/09/13(水) 10:17:38 ID:74VYdgSO
>>55
> おそらく、Image1の指定方法に問題があるかと思うのですが、
問題ないよ。試しにその前で
MsgBox TypeName(objExcelSheet.Image1)
ってやってみな。これで「Image」が返るなら、正しくImageオブジェクトを参照出来てる。

問題があると言えば、objExcel.Quitの前にobjExcelBook.Closeが必要なのと
Set objExcelSheet = Nothingの、Nothingのスペルが間違ってることくらいだが
エラーが出ている部分は問題なし。おそらく間違ってるのではなく、仕様として出来ないんだろうね。
Picture = LoadPictureをブックのVBAモジュールに書いて、VBSからそのプロシージャを読んでみれば?
画像のパスはVBS側で指定することも可能だし。

62 名前:55:2006/09/13(水) 11:01:41 ID:P4go6OWL
>>61
御回答ありがとうございます。

> MsgBox TypeName(objExcelSheet.Image1)
> ってやってみな。

 こうすれば、オブジェクトの確認が出来るんですね。
 やってみた所、「Image」と表示され、参照方法には問題が無かった様です。

> 問題があると言えば、objExcel.Quitの前にobjExcelBook.Closeが必要なのと
> Set objExcelSheet = Nothingの、Nothingのスペルが間違ってることくらいだが

 そこに行く前に、エラーで止まっていたので気付きませんでした。

> おそらく間違ってるのではなく、仕様として出来ないんだろうね。

 御指摘の方法等を含め、別の方法を検討してみます。

63 名前:55:2006/09/13(水) 20:42:40 ID:8lTHFtaw
>>61
御指摘の通り、Excel側にVBAを仕込み、VBS側から実行したら画像の表示が出来ました。

やった事は、

1. Module1の下に、下記の様なマクロを仕込む。

Sub Macro1()
Worksheets("Sheet1").Image1.Picture = LoadPicture("D:\test.jpg")
End Sub

2. VBS側のLoadPictureの行を下記の様に変更

objExcel.Run ("Book1.xls!Module1.Macro1")

です。

Macroの実行方法が分からなかったのですが、
http://suiten.wig.nu/index.php?itemid=289
が参考になりました。

今回は、ありがとうございました。

64 名前:名無し~3.EXE:2006/09/14(木) 23:27:15 ID:XRemmWNN
VBScriptから別のVBScriptを呼び出すことはできますか?
あとユーザライブラリの関数を呼び出す的なことをしたいのですができますか?
一度作った関数をコピペするのが面倒で。
よろしくお願いします。

65 名前:名無し~3.EXE:2006/09/14(木) 23:36:11 ID:6COp2u2i
ファイル読み込んで Eval
後者は意味が良く分からんが ユーザライブラリって何?

66 名前:名無し~3.EXE:2006/09/14(木) 23:40:30 ID:8WXwarb4
外部のスクリプトを読み込みたいんでしょ
wshなら素直に.wsfファイル作って、

<package>
<job>
<script language="VBScript" src="外部スクリプト1.vbs" />
<script language="VBScript" src="外部スクリプト2.vbs" />
<script language="VBScript" src="メイン.vbs" />
</job>
</package>

67 名前:名無し~3.EXE:2006/09/15(金) 00:22:29 ID:MxvWsxE+
あとついでに、ライブラリはクラス化すると吉。
VBScriptのクラス機能って存在感なさすぎて忘れがちだけどね。


68 名前:名無し~3.EXE:2006/09/15(金) 00:49:05 ID:6z+vLxyz
>>65,66,67
ありがとです。外部スクリプトの呼び出しは最初
Set obj = WScript.CreateObject("WScript.Shell")
Set obj2 = obj.Run("RunNotepad.vbs")
ってやってWin32オブジェクトじゃないって怒られたんですが、2行目を
obj.Run "RunNotepad.vbs"
で出来ました。いろんなやり方があるようですね。
ライブラリはクラス化して中にメソッド書けばいいのですかね?
いや、皆さん作られた関数をどうやって再利用されているのかと思いまして。

69 名前:名無し~3.EXE:2006/09/15(金) 00:50:34 ID:1e9FhoNf
コピペさ

70 名前:名無し~3.EXE:2006/09/15(金) 00:54:36 ID:3qVVhzeE
wsh で使うようなのは書き捨てが基本だな、私は。
String とか Date とか Number とかの prototype にいくつかメソッドは突っ込んでるけど(JScript)。

71 名前:名無し~3.EXE:2006/09/15(金) 01:49:36 ID:hZMJWHVe
wshしこしこ書くのとドトネトでアプリ作るのと
作業量が大して変わらないことに最近気付いた

72 名前:print.vbs:2006/09/17(日) 03:36:23 ID:pIeGPZjs
ファイルをまとめて印刷するツールです。
'Print files

Option Explicit

Dim Fs
Set Fs = WScript.CreateObject("Scripting.FileSystemObject")

Dim ws
Set ws = CreateObject("WScript.Shell")

Dim argv,file,name,ret
Set argv = WScript.Arguments

Dim tpad,i,code

If argv.Count > 0 Then
For Each file In argv
If Fs.FileExists(file) Then
name = Fs.GetFileName(file)
Set tpad = ws.Exec("C:\Free\TPad\TeraPad.exe """ & file & """")
WScript.Sleep 100
i=0
Do
ret = ws.AppActivate(tpad.ProcessID)
WScript.Sleep 100


73 名前:print.vbs:2006/09/17(日) 03:38:27 ID:pIeGPZjs
i=i+1
If i>100 Then
MsgBox "Activate 失敗 print前"
WScript.Quit
End If
Loop While ret = False
ws.SendKeys "^pp"
WScript.Sleep 5000
i=0
Do
ret = ws.AppActivate(tpad.ProcessID)
WScript.Sleep 100
i=i+1
if i>100 Then
MsgBox "Activate 失敗 print後"
WScript.Quit
End If
Loop While ret = False
tpad.terminate
set tpad = Nothing
Else
MsgBox file & "というファイルは存在しません。"
End If
Next
Else
MsgBox "ファイルをD&Dしてください"
End If


74 名前:print.vbs:2006/09/17(日) 03:56:30 ID:pIeGPZjs
ソースが無駄に長くてすみません。そういう書き方がしみ付いているもので

前スレまであったソースアップ板は、無くなったのでしょうか?

使い方は、印刷したいファイルをドラッグ&ドロップするつもりで作ったのですが、
過去スレを読みなおして見るとSendToで使うほうが便利そうです。

中でteraPadを呼び出しています。(作った当時使っていたエディタだったので)
sendkeysで操作しているだけなのでそういう操作ができるほかのエディタ用にも書きかえれると思います。

一応私の環境(Win98)では、3,4ページのファイル4,5個は、まとめて印刷できました
あまり大きなファイルを印刷するには、むいていないと思います。

まだあまり、wshにはなれてなくて、マニュアルを見ながら作りました。
sleepの値などもいいかげんで、その辺も含めて添削していただいたらありがたいです。

75 名前:名無し~3.EXE:2006/09/17(日) 10:41:23 ID:GAjliUIS
プリントアウトはFileSystemObjectを使って出来たはず、と思って
ttp://www.microsoft.com/japan/msdn/columns/server/server033099.aspx を参考に
こんなん書いてみたけど、エラーは出ないのにプリントアウトできない。なんで?
\\MyPC\BJF9000 はUSBポートに接続したプリンタで、共有してます。

var fso = new ActiveXObject("Scripting.FileSystemObject");
var objWSHNet = new ActiveXObject("WScript.Network");
objWSHNet.AddPrinterConnection("LPT2:", "\\\\MyPC\\BJF9000");
var printer = fso.CreateTextFile("LPT2:", true);
try { printer.Write("printout test");} catch(e) {;}
printer.Close();
objWSHNet.RemovePrinterConnection("LPT2:");

76 名前:print.vbs:2006/09/17(日) 14:54:53 ID:pIeGPZjs
>>75

AddPrinterConnection
リモートの MS-DOS ベースのプリンタ接続をコンピュータ システムに追加します。

ちょっと前、メーカーに
「プリンタ(CANON PIXUS 550i)をMS-DOSで使えるようにできるかどうか」たずねたところ、
「MS-DOSで使えるようにはできない」という回答でした。
多分私の環境では、このスクリプトは使えないと思います。

77 名前:名無し~3.EXE:2006/09/17(日) 15:50:48 ID:8OXBNlvH
WshScriptExec オブジェクトについて質問させてください。

var sh = new ActiveXObject("WScript.Shell");
var exe = sh.Exec("cmd.exe /c dir");
while (exe.Status == 0) { WScript.Sleep(100); }
WScript.Echo("完了");
if (!exe.StdOut.AtEndOfStream) { WScript.Echo("出力結果\n" + exe.StdOut.ReadAll()); }

上記のスクリプトで "cmd.exe /c dir" を実行して結果を取得しようとしています。
しかしファイル数の多いフォルダではいつまで待っても (exe.Status == 1) になりません。
どうやら StdOut の容量制限があり、Read されるまで実行が止まってしまうようです。

(exe.Status == 1) を待たずに StdOut.ReadAll() をすればすぐに終了するのですが
StdOut.ReadAll() は、EOFまで(プログラム終了まで)帰ってきませんので
実行待ちの間に Terminate() したりすることができなくなってしまいます。
StdOut.Read() も入力があるまで待つので使えません。

良い解決策はないでしょうか?

78 名前:名無し~3.EXE:2006/09/17(日) 16:36:09 ID:RpCl687c
>>77
こういうふう(↓)にはしたくないってことかな

var sh = new ActiveXObject("WScript.Shell");
var exe = sh.Exec("cmd.exe /c dir");
var dir = [];
while (! exe.StdOut.AtEndOfStream) { dir.push(exe.StdOut.ReadLine()); }
WScript.Echo("完了");
WScript.Echo("出力結果\n" + dir.join("\n"));

それなら、こういうのは?

var sh = new ActiveXObject("WScript.Shell");
var dirfile = "dir.txt";
var exe = sh.Exec("cmd.exe /c dir > " + dirfile);
while (exe.Status == 0) { WScript.Sleep(100); }
WScript.Echo("完了");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile(dirfile);
WScript.Echo("出力結果\n" + f.ReadAll());
f.Close();

79 名前:目民 ◆xQYoLwVGxQ :2006/09/17(日) 16:41:19 ID:oMWuro07
まぁ、>>78と同じだけど。

var sh = new ActiveXObject("WScript.Shell");
var exe = sh.Exec("cmd.exe /c dir");
var str = "";
while (!exe.StdOut.AtEndOfStream){
    str += exe.StdOut.ReadLine() + "\n";
}
WScript.Echo("完了");
WScript.Echo("出力結果\n" + str );

ファイルの多いフォルダで実行してみると、最後の一行に異常に時間がかかるね。
実用的側面からは、単にファイルにリダイレクトするのが早いと思う。

80 名前:77:2006/09/17(日) 17:30:31 ID:8OXBNlvH
>>78-79様ありがとうございます。

最終的には hta でつかおうと思ってるんですが
StdOut.ReadLine(), Read(),ReadAll() を使うと出力待ちの間、どうしても画面がフリーズしちゃうんです。
出力がない時は StdOut.AtEndOfStream が true になってくれればいいのですが・・・

あんまりファイルに書き出したくないのですが、やっぱそうするしかないでしょうか。

81 名前:目民 ◆xQYoLwVGxQ :2006/09/17(日) 17:52:05 ID:oMWuro07
>>80
while (!exe.StdOut.AtEndOfStream){
    str += exe.StdOut.ReadLine() + "\n";
    // ココで必要な処理
}
じゃ、ダメなの?


82 名前:77:2006/09/17(日) 18:24:19 ID:8OXBNlvH
>>81
そこで Sleep() や setTimuout() しちゃうと 時間がかかりすぎるし
どっちにしても ReadLine() のところで止まっちゃうので・・・

あ、すいません。実際には dir だけじゃなくて時間のかかるコマンドも使いたいと思ってます。

83 名前:名無し~3.EXE:2006/09/17(日) 18:30:11 ID:DkiP0mWC
>>77
ttp://www.vector.co.jp/soft/winnt/util/se373943.html
ttp://www.vector.co.jp/soft/winnt/util/se363385.html


84 名前:目民 ◆xQYoLwVGxQ :2006/09/17(日) 18:32:31 ID:oMWuro07
>>82
なるほど〜。
やっぱり、ファイルに書き出すのがいいと思うよ。

85 名前:77:2006/09/17(日) 20:06:55 ID:8OXBNlvH
ファイル使うことにします。わがまま言ってすみません。
しかし >>83 すごいですね。
これだけ苦労されてるということはやっぱ簡単な方法はないということですね。

86 名前:名無し~3.EXE:2006/09/18(月) 16:03:23 ID:0Yyqe12A
>>77
HTAなら、これも。
ttp://www.vector.co.jp/soft/winnt/util/se405418.html


87 名前:dir_+w.vbs:2006/09/18(月) 21:14:02 ID:TkVYNr1Z
フォルダを再帰的に検索して中のファイルを書きこみ可能にする

' chmod +w **

Set fso = WScript.CreateObject("Scripting.FileSystemObject")

Sub FileRW(filespec)
Set f = fso.GetFile(filespec)
ReadOnly=1
If f.attributes and ReadOnly Then
f.attributes = f.attributes - ReadOnly
End If
End Sub

Sub FolderRW(filespec)
Set subf = fso.GetFolder(filespec)
For Each FileName In subf.Files
FileRW(FileName)
Next
For Each FolderName In subf.Subfolders
FolderRW(FolderName)
Next
End Sub


88 名前:dir_+w.vbs:2006/09/18(月) 21:14:40 ID:TkVYNr1Z
Set argv = WScript.Arguments
If argv.Count <= 0 Then
Wscript.Echo "ファイルをD&Dしてください"
WScript.Quit
End If
For Each file In argv
If fso.FolderExists(file) Then
FolderRW(file)
ElseIf fso.FileExists(file) Then
FileRW(file)
Else
Wscript.Echo file & "というファイル・フォルダは存在しません。"
End If
Next
Wscript.Echo "書きこみ可 終わり"


89 名前:dir_+w.vbs:2006/09/18(月) 21:21:50 ID:TkVYNr1Z
こんなのwshで書かなくても標準のやり方があるのでしょうか?

いろいろなところのサンプルプログラムをつぎはぎして作ったので自信がないです。
特にBASICでの再帰呼び出しが。
間違いや他のやり方があったら指摘してください。

一応自分で動作チェックした限りは正常に動いているみたいです。

90 名前:名無し~3.EXE:2006/09/18(月) 21:35:28 ID:IGnQYkUN
attrib /s -r *.*

91 名前:名無し~3.EXE:2006/09/18(月) 21:35:41 ID:1rgAgV0s
attrib -r %1 /s /d

92 名前:89:2006/09/18(月) 22:13:54 ID:TkVYNr1Z
>>90 >>91
試してみたのですが、うまくいきません。
win98ではできないんじゃないでしょうか

93 名前:名無し~3.EXE:2006/09/18(月) 23:23:17 ID:j9Uaecc1
cygwinでchmod -R +w でできないかな?

94 名前:名無し~3.EXE:2006/09/19(火) 03:10:53 ID:+HpwiHbO
>>92
できる。コマンドプロンプト開いて attrib /? してみ。

95 名前:名無し~3.EXE:2006/09/19(火) 03:26:44 ID:X9V4Hq4y
>>93
UnxUtils の chmod でできました。

cygwin は、昔入れて日本語化するだけで一週間ぐらいかかっていたような気がするので
とりあえずパス

>>92は、今から試します

96 名前:名無し~3.EXE:2006/09/19(火) 03:30:30 ID:PvS6FX5U
システムついてると一緒に指定しないと外せなかったりとか
変な規制がついてるよね。あととりぶ

97 名前:名無し~3.EXE:2006/09/19(火) 03:39:25 ID:X9V4Hq4y
>>94
attrib /? を行うとフォルダも受け付けるようなニュアンスなんですが、
実際に試してみるとファイルは受け取るけど、フォルダはだめみたいなんですが?

98 名前:77:2006/09/19(火) 12:50:31 ID:PvS6FX5U
>>86
どうもです。

すれ違い気味(htaねた)でわるいけど、
Exec() の代わりに Run()を使ったら実行中でもhtmlがフリーズしないことがわかった。

これってJavaScriptでマルチスレッドみたいな動作だけど、普通に使ってても大丈夫なのかな?

99 名前:名無し~3.EXE:2006/09/20(水) 14:48:55 ID:NLxtOcqj
98の頃のバッチファイルを見つけた。

ffind . -attr dh | xargs attrib -h

ATTRIBでディレクトリを操作するときは1個ずつでないと駄目なようだ。
ffindもxargsも外部ツールなので、OS標準コマンドだけでは一括は無理だったのかも。


100 名前:名無し~3.EXE:2006/09/24(日) 22:24:37 ID:zXp/H8j6
ネット株取引でEトレを使っていますが
wsh で自作した便利なツールがあれば、ただで暗号化しないでクレ。

101 名前:名無し~3.EXE:2006/09/25(月) 02:23:37 ID:VGXX8PLt
見積もりは無料ですよ?

102 名前:名無し~3.EXE:2006/09/26(火) 20:51:06 ID:OGK5SGUc
作ってもらうほどではないので退散します。

103 名前:名無し~3.EXE:2006/09/28(木) 13:45:46 ID:P5EUWFW0

Windows Script File( .wsf )についての質問です。OSはWinXP SP1。
wsfは
<script language="VBScript" src="パス"/>
と定義すると、src属性値で指定したパスのファイルを参照できますが、
特定のディレクトリに置いたvbsを、別のディレクトリに置いたwsfから
ファイル名のみで参照する方法を教えてください。

相対パスが使えるので、同一ディレクトリに置けば、ファイル名のみで参照可能ですが
別ディレクトリの場合は、もちろんそのままではファイル名のみでの参照は出来ません。
パスを通せば出来るかとも思ったのですが、パスを通してもダメでした。
(WshShell.Runではファイル名だけで呼べるので、パスがきちんと通っているのは間違いないのです。)
参照するvbsを置くディレクトリは固定ですが、wsfは別ドライブに置く可能性もあるし
作成後、移動する可能性もあります。wsf、vbs側では、もう出来ることは無いので、
後はOS側の設定になると思いますが、どこをどのようにすれば解決するかが解りません。
どうかご教示願います。


104 名前:名無し~3.EXE:2006/09/28(木) 16:34:28 ID:H6IHIklM
htmlと同じ要領でいいんじゃないの?

test1.wsf
└testfolder
  └test2.vbs
って配置した時、

testfolder/test2.vbs
or
./testfolder/test2.vbs
でパスを指定したら動いたぉ

105 名前:名無し~3.EXE:2006/09/28(木) 16:37:36 ID:H6IHIklM
ごめん、ちゃんと読んでなかった
wsfはいろいろ動かすのね
誰かまかせた

106 名前:目民 ◆xQYoLwVGxQ :2006/09/28(木) 17:31:22 ID:McUJ8oIU
>>103
"VBSDir"みたいなユーザー環境変数を作って、
(システムのプロパティ→詳細設定タブ→環境変数(XPの場合))

var WshShell = WScript.CreateObject ("WScript.Shell");
with( WshShell ){
    CurrentDirectory = ExpandEnvironmentStrings("%VBSDir%");
}

とか?

// VBSの話なのにJScriptだけど気にしないでw

107 名前:名無し~3.EXE:2006/09/29(金) 15:56:35 ID:KPftmCI3
>>103
WSCを使う。

108 名前:名無し~3.EXE:2006/09/29(金) 16:18:18 ID:KPftmCI3
>>72
terapadには/pがないのかと思ったらあるじゃないですか。
terapad.exe /p
じゃ駄目なの?


109 名前:103:2006/10/01(日) 11:02:53 ID:WUxruDIK
>>106
残念ながらダメでした。
ご教示いただいたものを参照を書いてる行の前に入れても、
job分けしても、コードが実行される前に参照が評価されてしまうようで
ファイルが見つからないというエラーが出ます。

>>107
現在いくつか使ってます。
しかしwscは>>103の条件を満たしていません。なぜならwscは1ファイル単位の登録が必要で、
「特定のディレクトリに置いた」もの全てに対して有効になるようなものではないからです。
レジストリを使うのは全く構いませんが、「特定のvbs」ではなく「特定のディレクトリに置いたvbs」に
有効な方法をお願いします。
特定のディレクトリに置いた物を個別登録無しで使える方法があるならwscでも構いませんが。



ということで、ご回答には感謝しますが解決には至っておりませんので引き続き宜しくお願いします。


110 名前:名無し~3.EXE:2006/10/01(日) 11:27:13 ID:Mjb4Qp/j
ディレクトリさえ分かったならあとはファイル読み込んで Eval で評価すれば良いじゃん?

111 名前:名無し~3.EXE:2006/10/01(日) 12:27:11 ID:kCPKYKBO
wscの中に
<script language="VBScript" src="パス"/>
を並べて、
wsfからは、
wsc.メソッド名
で呼び出せ。
という意味だったけど通じなかった?
getobject("script:wscのフルパス")ならレジストリは不要だけど、これはどっちでも。


112 名前:名無し~3.EXE:2006/10/01(日) 16:52:54 ID:kCPKYKBO
>>75
form feed \f を送るとか。


113 名前:名無し~3.EXE:2006/10/02(月) 04:29:12 ID:+WL/W97H
>109
ここで究極の選択。スクリプトで wsf ファイルを書いて実行。

114 名前:名無し~3.EXE:2006/10/02(月) 19:14:34 ID:bWQ93X+m
すいません。知ってたら教えて頂きたいんですが
WScript.CreateObject(strProgID[,strPrefix])
などで作成したオブジェクトのプロパティやメソッドを調べる方法ご存知の方いますか?

115 名前:名無し~3.EXE:2006/10/02(月) 19:19:41 ID:9vzbPfN/
http://www.google.com/search?q=strProgID

116 名前:名無し~3.EXE:2006/10/02(月) 20:00:19 ID:kbswuek+
>>111
wscの<script>にsrc属性が使えるなんて初耳だけどできるの?
仕様的に他のファイルに実装を書けるとは思えんのだが

117 名前:名無し~3.EXE:2006/10/02(月) 20:21:15 ID:V60uXU1H
>>114
ttp://www.vector.co.jp/soft/win95/util/se406129.html


118 名前:114:2006/10/02(月) 21:36:01 ID:bWQ93X+m
>>115,117
私の探し方が足りなかったみたいですね
解決しました、ありがとうございます

119 名前:名無し~3.EXE:2006/10/06(金) 21:09:26 ID:e+UOKJbW
DynaCallにEnumWindowsのサンプルがついてますが、
これを参考に特定文字列を含むウインドウにメッセージを送るってのを作ったのだけど、
なんかClassなのに変にグローバルになってて、どれをどう再利用できるのかよくわからんのです。
うまくカプセル化できませんか?

120 名前:名無し~3.EXE:2006/10/06(金) 22:28:17 ID:drRRZZ4o
日本語でおk

121 名前:名無し~3.EXE:2006/10/14(土) 17:33:06 ID:COmDsoWy
hosyu

122 名前:名無し~3.EXE:2006/10/14(土) 22:13:32 ID:kOCNeboH
DOS窓から行う作業があったので、wscript.execにやらせようとしているのですが、DOS窓では数秒で完了するコマンドがexecでは動作中のまま帰ってきません。
動くコマンドと動かないコマンドがあったりするのでしょうか?
ちなみに動かそうとしているのは業務用のソフトです

123 名前:名無し~3.EXE:2006/10/14(土) 22:27:57 ID:3YNrV18h
そもそも WScript オブジェクトに exec メソッドなんて無かったような気がするのだが。
何を以て返ってこないと判断したのか分からんし。

124 名前:名無し~3.EXE:2006/10/14(土) 22:52:54 ID:kOCNeboH
WshScriptExec の間違いでした
DOSだとすぐ出力結果のファイルが出来るんですが、WshScriptExecだと黒いウィンドウが開いてそこから進まないです

125 名前:名無し~3.EXE:2006/10/15(日) 00:23:27 ID:0zheqdL0
プロンプト画面に何も出力されないのは仕様。
WshScriptExec オブジェクトは StdIn / StdOut プロパティ使って入力したり出力受け取ったりする。
MSDN にサンプルコードも多分あるだろ。
進まないってのは入力待ちしてるんじゃね?

126 名前:名無し~3.EXE:2006/10/15(日) 00:44:16 ID:bYSqBt4L
>>122
以下のVBSスクリプトが参考になるかも。

Option Explicit
Dim ws,i
Set ws = CreateObject("WScript.Shell")
i = ws.Run("%COMSPEC% /C DIR C:\ > C:\sample.log" , 1, true)
ws.Run "NOTEPAD C:\sample.log" , 1, true
Set ws = Nothing
WScript.Quit(i)

127 名前:名無し~3.EXE:2006/10/15(日) 21:08:26 ID:Tn/lrPJD
私も122さんと同様にDOSの業務用ソフトをwshで動かそうとしているのですが、
以下の部分が分からず困っています。便乗して質問させてください。

動かそうとしているDOSの業務ソフトは実行するとメニューが出力され
メニューから番号を選択して、出力ファイルを得るものなのですが、
番号の選択を自動化したいと思い、「入力=」が表示されたら、
Sendkeysをしようと以下のようなvbsを作成したのですが、
Exec メソッドがプログラムの実行終了後に行われるため、
業務ソフトが終了するまで、StdOutが取得できず困っています。


Set ws = CreateObject("WScript.Shell")
Set wsExec = ws.exec("業務ソフト.exe")

Do Until wsExec.StdOut.AtEndOfStream
If InStr(strLine,"入力=") <> Then
wsExec.Sendkeys.("1")
End If


Loop


メニューが出力されるDOSをwshから操作する良い方法がありましたら
教えてください。

128 名前:名無し~3.EXE:2006/10/15(日) 21:21:46 ID:ZvvyBgQg
StdIn 使えばいいんじゃね?
と思ったが GUI アプリか? それにしちゃ StdOut 読んでるよな。
つか strLine が書き変わってないようだが。

> Exec メソッドがプログラムの実行終了後に行われる
の意味が分からん。

129 名前:名無し~3.EXE:2006/10/15(日) 22:05:37 ID:Qx1lq3WL
strLine = wsExec.StdOut.ReadLine は要らないの?
InStr(strLine,"入力=") > 0 じゃないの?
SendKeys と ("1") の間にある . は必要なの?

ごめん、VBScriptはあんまわかんないけど、これは明らかに動くわけないよね。

130 名前:127:2006/10/15(日) 22:08:50 ID:Tn/lrPJD
>>128さん
127のvbsを実行すると、DOS窓で黒いウィンドウが開いた状態で業務アプリが
入力待ちになったまま止まってしまいます。
StdOutが出来ているかを確かめるために、127のIf文を以下のように書き換えて
実行しました。

If InStr(strLine,"入力=") <> Then
  WScript.Echo strLine
End If

DOS窓で黒いウィンドウが開いた状態で業務アプリが入力待ちになり、
ずっと止まったままになります。
真っ黒で止まっているDOS窓に業務ソフトを終了させる番号の「9」を入力すると
WScript.Echo strLine が実行され、
メッセージボックスに「入力=」が表示されました。

某HPでExecメソッドは、Execを使って実行されたスクリプトまたはプログラムの実行終了後、
実行開始前のいずれかに行われると書いてあったので、業務ソフトが終了するまで
メッセージボックスが表示されなかったのかな?と思ったのです。

勘違だったらすみません。

131 名前:名無し~3.EXE:2006/10/15(日) 22:23:29 ID:bYSqBt4L
>>130
例えば"1"の1バイト分だけ記録されたテキストファイルを"stdin.txt"とすると、コマンドプロンプト画面で

業務ソフト.exe < stdin.txt

と打ち込んで実行させる事はできる?
もしできるのであれば、>>126の応用で解決できそうな気がするんだけど・・・

132 名前:127:2006/10/15(日) 22:35:28 ID:Tn/lrPJD
>>129さん
>SendKeys と ("1") の間にある . は必要なの?

ご指摘の通り、間違いです。お恥ずかしい。

>>128さん
その業務ソフトはGUI アプリというか、
DOS窓に
==メニュー===
 1)実行
 2)変更
 9)終了
入力=

のように表示され、DOS窓にメニューの番号を
入力するようなタイプのアプリです。
Sendkeysで番号を自動入力できないかなっと思ってWSHを調べながら
始めてみたのですがどうも難しくって・・


133 名前:127:2006/10/15(日) 22:42:05 ID:Tn/lrPJD
>>131さん
レスありがとうございます。

業務ソフト.exe < stdin.txt

もDOS窓で直接試してみたのですが、
メニューの後に複数のメニュー画面が続くせいか、
stdin.txtに選択したい番号を記述して実行では思うような結果が
得られませんでした。


134 名前:名無し~3.EXE:2006/10/15(日) 22:58:29 ID:Qx1lq3WL
え、てか Exec の戻り値の WshScriptExec に SendKeys なんてメソッドはないんじゃ。
wsExec.StdIn.Write "1" & VbCrLf
とかじゃないとダメでしょう。

135 名前:名無し~3.EXE:2006/10/16(月) 11:08:32 ID:FXtLk26/
1{Enter}なら、
(
ECHO 1
MORE
) | 業務ソフト.exe


136 名前:名無し~3.EXE:2006/10/16(月) 13:42:42 ID:FXtLk26/
Set wShell=CreateObject("WScript.Shell")
wShell.Run """業務ソフト.exe"""
Do While Not wShell.AppActivate("タイトル")
WScript.Sleep 100
Loop
wShell.SendKeys "1{Enter}"

137 名前:名無し~3.EXE:2006/10/17(火) 00:39:00 ID:MOegLLqX
>>127
ReadLineじゃ駄目なのは、「入力=」の最後に改行がないからだと思う。
>>130の「止まったまま」というのは改行待ちしてる状態と予想。

Read(1) で一字ずつ読みながら「入力=」との一致をチェックすればいけるかもよ。
一致したところでReadを止めてWrite。

138 名前:名無し~3.EXE:2006/10/17(火) 13:34:51 ID:oUFoO9T0
VBScript使用で、a.vbsはmusic1.mp3を再生する。b.vbsはmusic2.mp3を再生する。

最初にa.vbsを実行して、曲の再生が終わったら自動でb.vbsを実行することは可能ですか?
つまり、曲が終わったことを何らかの形で取得することは出来ますか?

139 名前:名無し~3.EXE:2006/10/17(火) 14:11:45 ID:cfn5xPeC
>>138
頭を柔軟に。
VBSで曲が終わったことを検知する方法ばかりに拘らないで
曲が終わったことをVBSに検知させられるような再生方法というのを考えてみよう。
答えはすぐ出るはずだ。

140 名前:138:2006/10/17(火) 14:58:00 ID:oUFoO9T0
感謝です。色々やってみたのですが、

Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run "music1.mp3",1,true
WSHShell.Run "b.vbs",1,true

これだと、曲が終わった後にwinampを手動で終了させることでb.vbsが実行されることになります。
自動で実行するにはどうしたらいいでしょうか・・・

141 名前:名無し~3.EXE:2006/10/17(火) 15:36:42 ID:muV3yV8A
music1.mp3
music2.mp3

ってm3uファイルに書き出してvbsで実行

じゃ駄目?

142 名前:138:2006/10/17(火) 15:43:39 ID:oUFoO9T0
>>141
最終的に、複数のm3uファイルを用意して、一曲再生されるごとに別のm3uに移動する、
という方法にしたいの不可です。すまぬ。

143 名前:名無し~3.EXE:2006/10/17(火) 22:23:32 ID:V4I4jpE0
>>140
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run "%COMSPEC% /C START /W music1.mp3",1,true
WSHShell.Run "b.vbs",1,true

これはどう?

144 名前:名無し~3.EXE:2006/10/17(火) 22:28:18 ID:CmV+fzlF
つかアプリ決め撃ちでない以上どうしようもないんじゃない?
再生が終わったからってアプリそのものが終了するとも限らないんだし。

145 名前:名無し~3.EXE:2006/10/17(火) 22:42:21 ID:V4I4jpE0
>144
ほとんどの再生ソフトは、再生終了時にソフト自体も終了させる事ができるだろ。
それに質問者本人は>140で再生ソフトがWinampという海外製の定番フリーソフトである事を
晒しているから、イザとなればどうにでもなるんじゃないかな?

146 名前:名無し~3.EXE:2006/10/17(火) 22:45:40 ID:kaR5WnBM
>>142
最初に複数のm3uファイルを読み込んで、vbsで合成したm3uファイルを作成後、再生するとか。

147 名前:138:2006/10/18(水) 01:23:50 ID:rHQCrCuO
再生終わったとあとに、どうしてもアプリを一旦終了させる必要がありそうですか。
流石にそれは無駄な動作なので避けたい所ですが('A`)  ちなみに再生はwinampでも何でもいいです。

>>143
コマンドプロンプトが邪魔に感じてしまう('A`)  でも工夫次第で何とかなるかも

>>146
プレイリストに手を加えるというのはアリかも


みなさんありがとうございました。何とかやってみます。

148 名前:名無し~3.EXE:2006/10/18(水) 01:47:36 ID:u9ZZOnu7
HTAで、こんな感じ。
<object id=WMP classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95">
</object>
<script language=vbscript>
wmp.ShowAudioControls=True
wmp.AutoStart=True
wmp.Open "C:\...\....mp3"
</script>
<script language=vbscript for=WMP event="EndOfStream(Result)">
MsgBox Result
window.close
</script>


149 名前:名無し~3.EXE:2006/10/18(水) 03:35:55 ID:d04WcGTs
>>148に似てるけどこれを応用するとか( .htmでなく .hta です)

<html>
<head>
<script>resizeTo(269, 283);</script>
<hta:application /><title>Player</title>
<style>body{margin:0px}</style>
<script>
var Playlist = ["C:/WINDOWS/Media/tada.wav", "C:/WINDOWS/Media/chimes.wav"];
function Play() { Player.URL = Playlist.shift(); }
</script>
</head>
<body onload="Play()">
<object id="Player" classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"></object>
<script for="Player" event="playStateChange(NewState)">
if (NewState==1) {
if (Playlist.length)
setTimeout("Play()", 1000);
else
window.close();
}
</script>
</body>
</html>

150 名前:名無し~3.EXE:2006/10/18(水) 19:45:28 ID:u9ZZOnu7
原始的に、
mplay32.exe /play /close "...mp3"


151 名前:名無し~3.EXE:2006/10/20(金) 17:33:52 ID:wRng55we
WSHを使う上でのjsとvbsの違いって何ですか?

152 名前:名無し~3.EXE:2006/10/20(金) 17:54:19 ID:UVRHvNiX
違いはないと思うよ。

言語の仕様上、vbsの方がfor eachとかでファイル再帰とかやりやすいけど。
おれはVBっぽいのに拒否感があるので、見た目Cっぽいjsを主に使ってる

153 名前:名無し~3.EXE:2006/10/20(金) 18:17:10 ID:Ut0WGun7
>>151
JSは引数の参照渡しができないのが致命的欠点。
JSのいい加減な配列になれていると、VBSの配列は使いにくい。
使いにくい分実行速度はVBSが有利。

154 名前:名無し~3.EXE:2006/10/20(金) 20:30:17 ID:xavmQ34J
大文字と小文字を打ち間違えて、なんでエラーになるんだー、と悩むのが嫌でVBScriptです。



155 名前:名無し~3.EXE:2006/10/20(金) 21:14:36 ID:XTKLReLW
>>153
オブジェクトは参照渡しじゃね? 文字列とか整数みたいな、プリミティブな型は値渡しだけど。
でも、やろうと思えばオブジェクトを媒介にして参照渡しはできる。

function hoge(o) {
o.a += 10;
o.b -= 10;
}
var o = { a: 10, b: 10 };
hoge(o);
WScript.Echo( o.a + "\n" + o.b );


個人的には、正規表現が組み込まれてて文字列処理に強いのと、
プロトタイプ指向なOOPが好きなので、JavaScript 使ってます><
でも、VBSにもJSにもそれぞれ良いところがあるから、結局自分で選んだ方がいいね。

156 名前:名無し~3.EXE:2006/10/20(金) 21:26:38 ID:/EMq1zH6
>>155
参照の値渡し、と言うべきかな。

JScript は(ECMAScript は、なのかな)正規表現が言語組み込みな割りに
グローバル変数に結果が格納されるという謎仕様が台無し感たっぷり。

157 名前:名無し~3.EXE:2006/10/20(金) 21:35:11 ID:Ut0WGun7
>>155
自作関数ではなくて、引数に値を返してくるCOMがやっかいなのよ。
おれもJSの方が楽なのでCOM周辺だけVBS使ってる。

158 名前:名無し~3.EXE:2006/10/20(金) 21:46:52 ID:XTKLReLW
>>156
> グローバル変数に結果が格納される
RegExp オブジェクトの事かな?
match メソッドとか exec メソッドとか、結果をちゃんと返してくれるんだから
RegExp オブジェクトを使わずに返り値を使うようにすれば済む話では?

>>157
なるほど。それはやっかいですね(´・ω・)

159 名前:122,124:2006/10/20(金) 22:07:43 ID:G2VMMq1m
業務ソフトをwshshell.execで走らせると窓が止まってしまうと言っていた者です。
wshshell.run で同じコマンドを走らせると動きました。
stderrが使えないのが不満ですが・・・

runとexecで使えるコマンドに違いがあるのでしょうか?文字数とか使用できる文字とか。

160 名前:名無し~3.EXE:2006/10/20(金) 22:11:13 ID:Ut0WGun7
stdoutかstderrのバッファがあふれてるとか?

161 名前:122,124:2006/10/20(金) 22:23:31 ID:G2VMMq1m
>>160 バッファあふれ対策ってあるのでしょうか?runだと不便で不便で

162 名前:名無し~3.EXE:2006/10/20(金) 22:37:34 ID:Ut0WGun7
Readすりゃいいけど、stdoutとstderrの両方があふれる可能性がある場合はお手上げ。
ファイルにリダイレクトすれば・・・・・Runと変らないw

163 名前:名無し~3.EXE:2006/10/20(金) 22:37:50 ID:xavmQ34J
パイプはタンクじゃないんだから、出口から読み出さないと、入り口へ書き込めないよ。


164 名前:名無し~3.EXE:2006/10/20(金) 22:40:50 ID:xavmQ34J
Set oExec=wShell.Exec("cmd.exe /c,""業務アプリ.exe"" 2>&1")
hoge=oExec.StdOut.ReadAll()


165 名前:122,124:2006/10/20(金) 22:47:21 ID:G2VMMq1m
皆さんありがとうございます
DOS窓やrunで実行するとメッセージが1〜2秒くらいスクロールしていますからたぶんstdoutのバッファあふれだと思います。
月曜日に>>164 を解読して応用してみたいと思います。

166 名前:名無し~3.EXE:2006/10/21(土) 00:22:05 ID:EplX6k6g
C:\> type test01.js
p = function(s) { WScript.Echo(s); }

re = /^ABC(.*)$/i;

if(r1 = "abcdefg".match(re)) {
if(r2 = "abcxyz".match(re)) {
if(r3 = re.exec("abchijkl")) {
if(r4 = re.exec("abcllll")) {
p(r1[1]);
p(r2[1]);
p(r3[1]);
p(r4[1]);
}
}
}
}

C:\> cscript test01.js
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

defg
xyz
hijkl
llll

C:\>

167 名前:名無し~3.EXE:2006/10/22(日) 01:06:53 ID:2EaEsyDk
VBSの正規表現って「任意の文字列」ってありますか?
いろいろネットで調べたんですが「.」が任意の一文字っつーのはわかったんですが
どうしても任意の文字列が見つからんのです。
そういう正規表現はVBSではサポートされてないのでしょうか?
ちなみにやりたいことは、テキストから「〜ABC」という文字列を検索して
replaceで「XYZ」に置換したので、「〜」の部分を正規表現で表せないのかなと。

168 名前:名無し~3.EXE:2006/10/22(日) 01:13:55 ID:liwxrQBE
終了条件(ABC)は分かった。
開始条件は何よ。

169 名前:名無し~3.EXE:2006/10/22(日) 01:30:45 ID:sou1ELwq
> 「任意の文字列」

普通に".*"だろ(空文字列も含む)

170 名前:名無し~3.EXE:2006/10/22(日) 02:38:07 ID:SSdwCjK5
検索: .+ABC
置換: XYZ

もちろん、テキストの先頭から ABC まで「任意の文字列」として置換の対象になります^^

171 名前:167:2006/10/22(日) 11:14:01 ID:2EaEsyDk
>>168
>>169
>>170
レスサンクスです。

>>168
開始条件はありません。先頭から「ABCで終わる」文字列をXYZに置換したいのです。
「あいABC」「かきくABC」「さしすせABC」をXYZへ置換したいのです。

>>169 >>170
「.*」「 .+」さっそく試してみます。
ちなみにこの2つは全く同じという解釈でいいですか?

172 名前:名無し~3.EXE:2006/10/22(日) 11:23:38 ID:liwxrQBE
>>171
> 先頭から「ABCで終わる」文字列
あるじゃん、開始条件。>先頭から

* や + は正規表現の超基本なのでそれくらい調べれ。
わざわざ別の文字を割り当ててる以上別モンである。

173 名前:目民 ◆xQYoLwVGxQ :2006/10/22(日) 11:29:46 ID:2pGZNsvG
>>171
「開始条件はない」と言ってるけど、無意識に
空白文字以外で始まる文字列を前提にしているんじゃないの?
それなら、「\S*ABC」でやってみるといい。


174 名前:名無し~3.EXE:2006/10/22(日) 12:22:00 ID:8Mbhr02c
>>171
こういう処理に慣れてないとしょうがないけど、条件の書き方があいまい。

> 先頭から

どの先頭から?

行なの? 単語なの?

単語としたら、単語ってなに?

>>173 が言うように空白意外の塊?

> 「ABCで終わる」文字列

文字列ってなに?

例えば、"あいABCD" は、"XYZD" に変換されてもいいの?

あと細かいところだけど、〜ABC の「〜」の部分は、空でもいいの?

175 名前:名無し~3.EXE:2006/10/22(日) 15:27:40 ID:N3BdT48Y
「あいABC」「かきくABC」「さしすせABC」をXYZへ置換したいのです。
----------------------------------------------------------
というのがどういう状況でデータになっているのかが重要、

あいABC
かきくABC
さしすせABC
おばかXXX

というように、データが一行に一個あるのか。
あるいは文章がずらずらと並んでいるのか。その場合、先頭って何?

あいABCでかきくABCがさしすせABC

なのか?
正規表現は行頭、行末もマッチさせることができるし、それらの情報
なくして回答なしだよ。

176 名前:名無し~3.EXE:2006/10/22(日) 21:18:46 ID:OIBpBobZ
WSHをはじめたいけど、何からはじめたらいいのかわかりません。


環境:WindowsXP SP2
PG経験:Cをちょっと

177 名前:名無し~3.EXE:2006/10/22(日) 21:24:38 ID:mrzCrOm0
>>176
まずはWMIあたりから始めると面白いかも。

178 名前:名無し~3.EXE:2006/10/22(日) 21:29:03 ID:vQXb6UKC
>>176
必要になったらやればいいのに、、、

179 名前:名無し~3.EXE:2006/10/22(日) 22:13:29 ID:EOcMerY5
>>176
つまり、>>1

180 名前:名無し~3.EXE:2006/10/22(日) 22:55:08 ID:afcuKUls
>>176
まずは>>2の「Windows Script 5.6 ドキュメント ダウンロード」を落として
隈無く読むこと。今とくにやりたいことも無いならそこから入れ。
まあ、やりたいことがあってもここから入るのが基本だが。

181 名前:176:2006/10/22(日) 23:35:43 ID:OIBpBobZ

返信ありがとうございます。

目的は、PCの単純作業を出来る限り自動化です。


「Windows Script 5.6 ドキュメント」を隈なく読みます。
それでわからなかったらまた質問に来させて頂きます。


ありがとう御座いました。

182 名前:名無し~3.EXE:2006/10/23(月) 17:09:37 ID:IlmEYWFd
まあでもそのドキュメントがWSHでやれることの全てだと思われても困るが。

183 名前:名無し~3.EXE:2006/10/23(月) 22:29:02 ID:p8IXQ+tm
え゛、あのドキュメントが全てだろ。

184 名前:名無し~3.EXE:2006/10/23(月) 22:39:08 ID:Mp53qbOD
COM があれば可能性はおおよそ無限だ

185 名前:名無し~3.EXE:2006/10/23(月) 23:04:41 ID:BYV9Z446
COMさえあればモテモテだね!

186 名前:名無し~3.EXE:2006/10/23(月) 23:07:04 ID:CBFP8CuU
>>182
俺もアレがほぼ全てだと思うけど。そりゃ、COMだのWMIだのを使えば、出来ることの幅は広がるが
それらはWSHの機能でもなければ、WSH専用のコンポーネントですら無いから、(WSH同梱のCOMはあるが)
全てに置いてリファレンスが載ってるわけではないが、それらが利用できることはきちんと書いてあるし。

例えば自分はWSHがサポートしていないxml要素を作り、それを利用して変数の値を保持したり
次回実行時にそれを読み込んだりしているが、wsfがxml準規であることと、COMが使えることが書かれている以上、
定形外のwsfを作りMSXML2.DOMDocumentを利用したこの使い方も、あのドキュメントから導き出される使い方の一つだ。

「加算演算が出来ます」と書かれていたら、1+1の演算が可能です、1+2の演算が可能ですといちいち書かれていなくても
それらの演算が可能なことを意味するのと同じ。言語製品は応用するのは当然のことだが、応用ではなく機能として見た場合に
あのドキュメントに書かれていない機能って何がある?絶対無いとは言い切れないけど、俺はすぐには思いつかないな。

187 名前:名無し~3.EXE:2006/10/23(月) 23:40:51 ID:j0qOB48K
3行でかけることをよくもまぁ

188 名前:名無し~3.EXE:2006/10/24(火) 00:01:18 ID:wYm/9FA1
別に構わないよ、苦ではないし。
わざわざそいいうことを書き込む理由が分からない。

189 名前:名無し~3.EXE:2006/10/24(火) 00:11:33 ID:P1PufmL8
内容が無い書き込みを読む方が苦痛ですぅ

190 名前:名無し~3.EXE:2006/10/24(火) 04:22:05 ID:e4iNvxC6
MSDNとか見難くて見てられんのよね・・

191 名前:名無し~3.EXE:2006/10/30(月) 00:01:11 ID:/XauOmlM
hozyu

192 名前:名無し~3.EXE:2006/10/31(火) 19:28:20 ID:WW2MnT8D
WSHクイックリファレンス 第2版
http://www.amazon.co.jp/gp/product/4873113091

193 名前:名無し~3.EXE:2006/10/31(火) 21:00:56 ID:iFG+tSJz

> 紙のリファレンスとして
>  ある意味では,本書のカバーする範囲はWSHのヘルプに書かれている範囲をそう越えてはいない。
>  基礎的な知識があることを前提にすれば,一読したあとは紙のリファレンスであることが最大のメリットということになる。
>
>  紙のリファレンスの価値は,プログラマの人ならよくわかっているだろうとは思う。
>  はたして,紙としてまとめられていることにどれだけの価値を見いだすか,というのは議論のわかれるところだろう。
>  入門書というにはやや記述が少なく,解説書というにはリファレンス的側面が強すぎるため,それ以外には魅力を見いだせないということなのだ。

確かに紙面リファレンスは有ると便利だが、それだけの為に4000円出すバカは居ないだろう。
早速改訂版が入荷してたので立ち読みしてみたが、サンプルとかもショボすぎて使い物にならないし。
4000円出してでも、script56.chmの紙面版が欲しいってなら、絶対に買うなとは言わないが、
俺にとっては100円ショップに置いてあるなら買ってもいいかなってレベルの出来だな。


194 名前:名無し~3.EXE:2006/11/01(水) 02:00:10 ID:M0Co5/Ld
WSHヘルプを見る時は、「窓使いの憂鬱」と「HHプラグイン」を使うと読み易いです

195 名前:名無し~3.EXE:2006/11/02(木) 02:30:30 ID:dDmy4YyL
.vbsのショートカットにドロップしても引数が消えなくする方法
ttp://pc11.2ch.net/test/read.cgi/win/1152544955/341


196 名前:名無し~3.EXE:2006/11/04(土) 10:36:34 ID:gFg82ib7
.vbsを登録してD&Dで引数が渡せる良い感じのプログラムランチャーって無いですか?

197 名前:名無し~3.EXE:2006/11/04(土) 11:12:19 ID:4Dsu/0i6
あるよ。
但しスレ違いな上に、「良い感じ」の定義は個人によって違うので具体的な紹介はしないけど。
具体的に紹介して欲しいなら、ソフ板のソフト紹介スレで、
具体的にどういうものが君にとって「良い感じ」なのかをきちんと書いて質問してみな。

198 名前:名無し~3.EXE:2006/11/04(土) 13:43:08 ID:gFg82ib7
自分で探した方が早そうだね

199 名前:名無し~3.EXE:2006/11/06(月) 04:44:13 ID:6BsyJ6Fg
>>193 の引用部分は↓から。

http://www.cmagazine.jp/bookreview/20000302.html

200 名前:名無し~3.EXE:2006/11/08(水) 19:11:29 ID:PcQgSeRB
うっしゅ

201 名前:名無し~3.EXE:2006/11/09(木) 18:28:17 ID:/TzE/TZH
既定のブラウザをIE5.01SP4とfirefox2(J) とに交互に切り替えるJscript を恵んでくださいな。

202 名前:名無し~3.EXE:2006/11/09(木) 20:33:49 ID:nGi8ytVm
>201
交互っつったって、どんなタイミングで切り替えるんだ?
既定ブラウザ自体はレジストリ変更でどうにかなりそうだが…

203 名前:名無し~3.EXE:2006/11/09(木) 21:13:34 ID:/TzE/TZH
(既定ブラウザを切り替えたいときに、机の上にある jscript ファイルをダブルクリックする。)
// 1 変数の初期設定
// 2 該当レジストリを読み出す。
// 3 既定ブラウザが IE だったら、とある変数に firefox2 を代入する。
// 4 既定ブラウザが firefox2 だったら、とある変数に IE を代入する。
// 5 既定ブラウザが上記以外だったら、とある変数に 逝ってよし を代入する。
// 6 とある変数が逝ってよし以外なら、 該当レジストリに書き込んで、とある変数 に切り替えましたと表示する。
// 7 とある変数が逝ってよしなら、とある変数をそのまま表示する。

こんな感じです。

204 名前:名無し~3.EXE:2006/11/09(木) 21:48:39 ID:qNCmXvkB
何にしてもここは「スクリプトの作成を依頼するスレ」じゃないからね。
自分で作る気が無いなら帰れってことになる。

205 名前:名無し~3.EXE:2006/11/09(木) 23:00:35 ID:/TzE/TZH
じゃ帰りまつ。

206 名前:名無し~3.EXE:2006/11/10(金) 02:09:09 ID:AYtg+sjS
Windowsがロック(Win+L)されてると、AppActivate→SendKeysではキー送れない…ですよね?
何か代替策ありますでしょうか?

WshShell.Run('notepad.exe', 1, false);
WshShell.AppActivate('メモ帳');
WshShell.SendKeys('0{ENTER}');


207 名前:名無し~3.EXE:2006/11/10(金) 02:31:12 ID:ktKvkKru
>>206
COM使ってSendMessage
具体的な方法はCOM付属のドキュメントやWeb上の解説読んで

208 名前:名無し~3.EXE:2006/11/10(金) 08:13:38 ID:AYtg+sjS
>>207
dクス!
まだまだ知らないことばっかりだ(゚∀゚;)

209 名前:名無し~3.EXE:2006/11/11(土) 04:37:38 ID:jLixVM07
PowerShellって完成遅くね?
もしかしてVistaに入ってない?

210 名前:名無し~3.EXE:2006/11/11(土) 07:33:18 ID:OPUQTd1+
XMLHTTPでWebから落としてきたテキストファイルが文字化けするんだけど
文字化けしないで表示させるるにはどうな感じにやればいいの?

var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
xmlhttp.open( 〜 );
xmlhttp.send( 〜 );
win1.document.open();
win1.document..clear();
win1.document..write(xmlhttp.responseText);
win1.document..close();
xmlhttp.abort();

↑はスゲー適当にしたけど、今はこんな感じ。処理の流れを言葉で表せは、
win1からコンテキストメニュー経由でスクリプト起動、xmlhttpでアクセス、ページ落としてそれをwin1にそのまま表示。
って感じ。

あと、落すのは普通のwebページ。ゆえにサーバーの方は弄れないし、文字コードは予め判らない。
そして、ググッていくつかの参考サイト見たけど、全然理解できなかったぐらいおれは馬鹿。

よろしくお願いします。

211 名前:名無し~3.EXE:2006/11/11(土) 09:34:07 ID:OPUQTd1+
桃子って馬鹿っぽい声だな

212 名前:名無し~3.EXE:2006/11/11(土) 09:36:39 ID:yLvGNxuk
URLそのまま表示するだけなら、普通にwin1.location.href="URL"でええやん(´・ω・)

213 名前:名無し~3.EXE:2006/11/11(土) 19:52:55 ID:fv8aBk4Z
>>203
「とある変数」は冗長。


214 名前:名無し~3.EXE:2006/11/11(土) 21:17:05 ID:OPUQTd1+
>>212
フォームのアクションへ POST して取ってくる感じ

215 名前:名無し~3.EXE:2006/11/11(土) 21:55:05 ID:yLvGNxuk
>>210
内容を一旦テンポラリファイルに保存してから、それを開くって感じではどう?
ADODB.Stream 使って XMLHTTP.responseBody を保存すれば、正確に表示できる。

216 名前:名無し~3.EXE:2006/11/12(日) 09:26:37 ID:paxoE75X
>>215
やってみたら文字化けしませんね。
一度保存するってのをベースにこれから作ってみます。
どもありがとです。

217 名前:名無し~3.EXE:2006/11/12(日) 09:53:43 ID:UX7xiFXQ
ファイルに書き出さんでも、Write した後 Position を 0 にしてやれば
Type やら Charset やら ReadText やら可能になるよ。

218 名前:名無し~3.EXE:2006/11/12(日) 10:13:55 ID:2A2d5Z9x
ファイルに保存せずに、ストリームを直接ブラウザに表示なんてできる?

219 名前:名無し~3.EXE:2006/11/12(日) 12:41:42 ID:eheFZjLZ
wshであるサーバがtelnetできるかというのを自動化しようとしてます。

Runメソッドでtelnet.exeを動かすスクリプトを作ってみたのですが、
ログインしている状態では動くのですが、
ログアウトしてスケジューラで動かしてみると、パスワードとかの入力ができません。

' Connect Server
strCMD = "telnet.exe -a -l root -f telnet.log 192.168.1.100
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run strCMD,2
' Send Password
WScript.Sleep 5000' Wait 5 sec
WshShell.AppActivate "Telnet"
WshShell.SendKeys "rootpsaaword~"
' Exit Telnet
WScript.Sleep 2000' Wait 2 sec
WshShell.AppActivate "Telnet"
WshShell.SendKeys "exit~"


Execメソッドにしてみたところ、telnetが動いてもくれません。
Dim WshShell, oExec
strCMD = "telnet.exe -a -l root -f telnet.log 192.168.1.100
Set WshShell = CreateObject("WScript.Shell")
Set oWshExec = WshShell.Exec(strCMD)

telnetできなかったらメールを送るとかのスクリプトを作りたいのですが
どなたか同じことをやられている方はいませんでしょうか。

220 名前:名無し~3.EXE:2006/11/12(日) 14:13:34 ID:2A2d5Z9x
メールを送るだけなら CDO.Message でできる。
詳細はググってください。

221 名前:名無し~3.EXE:2006/11/12(日) 15:18:11 ID:0ftkh14m
>>219
標準のtelnet.exeじゃなくて、
ログインまで自動化できる別のソフトを使えば?


222 名前:名無し~3.EXE:2006/11/13(月) 23:10:05 ID:qiz2dlwS
>>219
> WshShell.SendKeys "rootpsaaword~"
> WshShell.SendKeys "exit~"

CRLF は送らなくていいのか?

223 名前:名無し~3.EXE:2006/11/14(火) 20:48:44 ID:eUOyYwez
ローカルPCのプロセス一覧を書き出す VBScript があります。
これは正常に動作します。

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_Process",,48)
For Each objItem in colItems
Wscript.Echo "Name: " & objItem.Name
Next


これをJScriptに変換しようとしているのですが、
var strComputer = ".";
var objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2");

この行で既に
「Microsoft JScript 実行時エラー: オートメーションの操作中にファイル名または
 クラス名を見つけられませんでした。」となってしまい、実行できません。
\記号が何か変なことになってるんでしょうか?

どうすればいいのでしょうか?
WSH 5.6 / Windows XP SP1 Professional の環境です。

224 名前:223:2006/11/14(火) 20:50:34 ID:eUOyYwez
あ、ごめんなさい。
エラーの行に WScript をつけて、以下のようにしても同様でした。
var obj = WScript.GetObject("winmgmts:\\" & strComputer & "\root\CIMV2");

225 名前:名無し~3.EXE:2006/11/14(火) 20:53:15 ID:7Tv2z1qt
JScript の文字列連結演算子は + だが。

226 名前:名無し~3.EXE:2006/11/14(火) 21:43:55 ID:7Vc/ugR3
\→\\

227 名前:名無し~3.EXE:2006/11/15(水) 05:49:24 ID:eq52+nBC
PowerShell正式版来たな

228 名前:名無し~3.EXE:2006/11/15(水) 08:49:19 ID:eq52+nBC
PowerShell 1.0
ttp://support.microsoft.com/?kbid=926140
これおもしろいな。昔Monadスレあった気がしたけど、消えた?

229 名前:223:2006/11/15(水) 10:11:55 ID:8Giezelv
>>224-225
初歩的なことですみません&ありがとうございます。

var obj = WScript.GetObject("winmgmts:\\\\" + strComputer + "\\root\\CIMV2");

のようにしてみましたが、今度は
(null): 0x800C000D
のようなエラーで止まってしまいます。

試しに
var obj = WScript.GetObject("winmgmts:");
とすると上記と同じエラーが、

var obj = WScript.GetObject("winmgmts"); // ←コロンを取った
とすると>>223と同じエラーが出てしまいます。

原因として何が考えられるでしょうか?

230 名前:223:2006/11/15(水) 10:18:39 ID:8Giezelv
解決しました。

var obj = WScript.GetObject("winmgmts:\\\\" + strComputer + "\\root\\CIMV2");

はダメで

var obj = GetObject("winmgmts:\\\\" + strComputer + "\\root\\CIMV2");

ならOKでした。ムムム。

231 名前:名無し~3.EXE:2006/11/15(水) 23:24:20 ID:F3PSFGj/
>228
Windows Server 2003 Service Pack 1 および Windows XP Service Pack 2 用ってのがアレだけどな。

232 名前:名無し~3.EXE:2006/11/16(木) 10:54:00 ID:X8pn6xyi
PowerShell入れてみたけど、気に入ったw。
wsh捨てる決心ついたよ。


233 名前:名無し~3.EXE:2006/11/16(木) 12:14:40 ID:qnfm5A7w
コマンド入力まで時間かかるんだが、どうにかならんの

234 名前:名無し~3.EXE:2006/11/17(金) 00:37:42 ID:qH260wvA
Me使いのオレは移行したくとも出来んのだよ。

235 名前:名無し~3.EXE:2006/11/17(金) 01:02:22 ID:rS+zXwC5
PowerShellってパイプを流れるのもオブジェクトなのな。
CMDで
dir | sort
dir | sort /r

PSで
dir | sort
dir | sort -des
と比べて、頭の古い俺はちょっとびびった。

cd hklm:
でおいおい俺レジストリにいるよ、とか。

Vistaにデフォで入っていない上にデフォのセキュリティもガチガチだけど
やれること考えたら仕方ないか…。

236 名前:名無し~3.EXE:2006/11/17(金) 12:14:12 ID:tuTlaVuD
explorer切ってこっちをシェルにできんかな

237 名前:名無し~3.EXE:2006/11/18(土) 02:21:35 ID:OLX52wf8
ご案内

Windows PowerShell (正式版リリース)1.0
http://pc11.2ch.net/test/read.cgi/win/1163764836/

238 名前:名無し~3.EXE:2006/11/18(土) 15:10:02 ID:AegbpAMY
ADODB.Stream関連のプロパティを紹介してるHPを知りませんか?

239 名前:名無し~3.EXE:2006/11/18(土) 15:16:39 ID:rOSuiBco
>>238
Microsoft Data Access SDK 2.8
をダウンロードしたら?

240 名前:名無し~3.EXE:2006/11/18(土) 15:20:25 ID:mdx8HK1h
>>238
http://msdn.microsoft.com/library/en-us/ado270/htm/mdobjstream.asp


241 名前:名無し~3.EXE:2006/11/22(水) 21:59:57 ID:Hl8ABRjt
エクセルの中身をスクリプトで抜きたいんですが、可能でしょうか?
アクセスに移行しないと無理ですかね?

242 名前:名無し~3.EXE:2006/11/22(水) 22:12:10 ID:ag1e260U
エクセルの中身というのを xls ファイルの中身であると解釈して。
Excel.Application からオートメーションすればいいっしょ。

243 名前:名無し~3.EXE:2006/11/22(水) 22:36:18 ID:FtHukSom
>>241
できる

244 名前:名無し~3.EXE:2006/11/22(水) 23:20:06 ID:t8oZlpFH
>>241
ADO使えばできる
ttp://homepage3.nifty.com/aya_js/wsh/wsh27.htm

245 名前:名無し~3.EXE:2006/11/22(水) 23:47:23 ID:EyhEga7i
皆様ありがとうございます。
>>244のって工夫すればなかなか便利に使えそうですね

246 名前:名無し~3.EXE:2006/11/25(土) 04:54:10 ID:fL/fbuiK
>>244
いろいろいじってみたけど、これすげく楽しいな
ADOでのSQLについて詳しいページってありませんか?

247 名前:名無し~3.EXE:2006/11/25(土) 12:16:26 ID:Z7NXJrJB
ググれ

248 名前:名無し~3.EXE:2006/11/25(土) 12:41:31 ID:qXN1g3LQ
  _____
  \  _ _/
   ( *゚∀゚)
   ( 9 ⌒)9゙ ググッ
  "⊂_)∪,,

249 名前:名無し~3.EXE:2006/11/25(土) 23:07:22 ID:OspuG9g+
>>248

( ゚∀゚)o彡゚ wsh!wdh!

250 名前:名無し~3.EXE:2006/11/26(日) 21:34:24 ID:tNFTdH9d
OutLookExpress内の任意のメールを特定のフォルダへドロップ(コピー)するような
スクリプトは、どのような関数を使えばよいでしょうか?

emlファイルに出来ればOKです。
WSHに詳しい先輩達にご意見をお聞きしたいです。




251 名前:名無し~3.EXE:2006/11/27(月) 00:56:10 ID:1iJUdyxp
COMってコム?それともシーオーエム?
WSHは?ウィンドウズスクリプトホスト?ダブリュエスエイチ?ウーシュ?

252 名前:名無し~3.EXE:2006/11/27(月) 01:06:33 ID:nxeZfR/d
COMはコムって読んでる
WSHはそのままW・S・H

253 名前:名無し~3.EXE:2006/11/27(月) 01:20:04 ID:YbmUHCoW
wshはウッシュだなあ
関係ないけど、zshはズッシュ、tcshはティッシュと
呼んでた俺。

254 名前:名無し~3.EXE:2006/11/27(月) 02:33:55 ID:nUiU//Yl
        lヽ ノ l        l l l ヽ   ヽ
  )'ーーノ(  | |  | 、      / l| l ハヽ  |ー‐''"l
 / W  | | |/| ハ  / / ,/ /|ノ /l / l l l| l  W ヽ
 l   ・  i´ | ヽ、| |r|| | //--‐'"   `'メ、_lノ| /  ・  /
 |  S  l  トー-トヽ| |ノ ''"´`   rー-/// |  S |
 |  ・   |/     | l ||、 ''"""  j ""''/ | |ヽl  ・ |
 |  H   |       | l | ヽ,   ―   / | | l  H  |
 |   !!  |     / | | |   ` ー-‐ ' ´|| ,ノ| | |  !! |
ノー‐---、,|    / │l、l         |レ' ,ノノ ノハ、_ノヽ
 /        / ノ⌒ヾ、  ヽ    ノハ,      |
,/      ,イーf'´ /´  \ | ,/´ |ヽl      |
     /-ト、| ┼―- 、_ヽメr' , -=l''"ハ    |  l
   ,/   | ヽ  \  _,ノーf' ´  ノノ  ヽ   | |
、_    _ ‐''l  `ー‐―''" ⌒'ー--‐'´`ヽ、_   _,ノ ノ
   ̄ ̄   |           /       ̄


255 名前:名無し~3.EXE:2006/11/27(月) 18:31:52 ID:uqV36mAE
>>254 W−WSHのアニメはイマイチだったぞ。

256 名前:名無し~3.EXE:2006/11/27(月) 22:04:40 ID:mEhuqTrR
>>250
やっぱり、難しいですよね。


257 名前:名無し~3.EXE:2006/11/28(火) 00:54:51 ID:Tv1LYONy
htaやwsfファイル中でPerlScriptからVBScriptやJScriptの関数って呼べます?
逆は普通に呼べるんだが...

258 名前:名無し~3.EXE:2006/11/28(火) 01:03:28 ID:V4pOQQjQ
ランチャをWSHで組んだとして
起動させたアプリからの、read/writeを規制することは
可能でしょうか?
例えば、~/tmp以外書き込み禁止とか...

259 名前:名無し~3.EXE:2006/11/28(火) 01:12:07 ID:Tv1LYONy
>>258
何でそんなことしたいのか知らんけど,Windows2000かXPであれば,新しくユーザ作成して適切なパーミッション設定して,runasでそのユーザで起動するようにすればできなくはないかも?

260 名前:名無し~3.EXE:2006/11/28(火) 01:14:36 ID:kOxlRyob
>>257
呼べる。とりあえずwshのリファレンス読め。
htaも同じ方法で呼べるから。

>>258
不可能。というかスクリプトの仕事じゃない。
まともなプログラム言語使え。

261 名前:名無し~3.EXE:2006/11/28(火) 01:25:26 ID:Tv1LYONy
>>260
呼べるのか.

<job id="main">
<script language="PerlScript">
sub perlfunc() {
$WScript->Echo("PerlScript");
}
</script>
<script language="JScript">
perlfunc();
</script>
</job>

これはいけるけどPerlScriptからJScriptのfunctionを呼ぶにはどうすれば?
wshやperlのマニュアル見ても見つからないの.サンプルプリーズ.


262 名前:名無し~3.EXE:2006/11/28(火) 01:27:02 ID:RRJTB0rw
&jscriptfunc()
で呼べるんでないの?

263 名前:名無し~3.EXE:2006/11/28(火) 01:33:50 ID:Tv1LYONy
>>262
それで呼べないんで困ってるんですわ.

264 名前:名無し~3.EXE:2006/11/28(火) 01:34:54 ID:ZRVbZfL6
method(); でいけるはずだが

265 名前:名無し~3.EXE:2006/11/28(火) 01:44:28 ID:dX4vnSDr
strconvはもちろんストア昆布だよな

266 名前:257:2006/11/28(火) 01:57:32 ID:Tv1LYONy
いろいろ試してたら分かってきた.
PerlScriptからVBScriptの関数は普通に呼べました.
JScriptの関数オブジェクトはPerlScriptからは扱えないみたい.
$WScript->Echo(&jsfunc());とかやるとfunctionの中身がdumpされた.

JScriptで作ったライブラリとか使えねー
PerlScriptなんて使うなってことですか...

<job id="main">

<script language="VBScript">
  sub vbsfunc()
    WScript.Echo("VBScript")
  end sub
</script>

<script language="JScript">
  function jsfunc() {
    WScript.Echo("JScript");
  }
</script>

<script language="PerlScript">
  # VBScript OK
  &vbsfunc();
  # JScript NG
  &jsfunc();
  $WScript->Echo(&jsfunc());
</script>

</job>

267 名前:名無し~3.EXE:2006/11/28(火) 02:35:59 ID:BAbEyrhQ
引数があれば呼べるんじゃないかな

268 名前:名無し~3.EXE:2006/11/28(火) 02:40:16 ID:RRJTB0rw
適当な引数を付ければ呼べるみたいだね。例えば、
&jsfunc(0);

269 名前:名無し~3.EXE:2006/11/28(火) 02:47:47 ID:g8pNCyQB
ScriptControlを使う手もあります 呼び出し先ではWScript使えないけど><

<job id="main">
<script language="PerlScript">
my $jscript = <<EOS;
    function jsfunc() {
        return "Perl meets JavaScript!";
    }
EOS

my $sc = $WScript->CreateObject("ScriptControl");
$sc->{Language} = "JScript";
$sc->AddCode($jscript);
$WScript->Echo( $sc->Run("jsfunc") );
</script>
</job>

270 名前:258:2006/11/28(火) 02:49:32 ID:V4pOQQjQ
>>259
データ管理上、ローカルにデータ放置させたくないのです
小生Win環境詳しくないので、感謝
早速試してみます

>>260
元がAIX上でPerl/Tkで動いている認証機能付ランチャなのです
Win環境は詳しくないものですいません

271 名前:名無し~3.EXE:2006/11/28(火) 07:36:45 ID:AQr+bFyx
OutLookExpress内の任意のメールを特定のフォルダへドロップ(コピー)するような
関数を教えてください。

頭の良い方達揃いと思い、お願いします。


272 名前:名無し~3.EXE:2006/11/28(火) 12:16:59 ID:h8kiq/Ct
>>271
この辺の情報を参考に作ってみたら?

OE dbx file format
ttp://oedbx.aroh.de/

273 名前:名無し~3.EXE:2006/11/28(火) 13:51:02 ID:77idGO9L
>>271
バックアップならこういうのを使ったほうがいい。
ttp://www.tietew.net/soft/OE2/

274 名前:名無し~3.EXE:2006/11/28(火) 15:46:44 ID:eQt+KJMG
>>269
>ScriptControlを使う手もあります 呼び出し先ではWScript使えないけど><
使えます。VBScriptの記述では、
sc.AddObject "WScript",WScript
みたいにSC側にWScriptを渡せばよいのです。


275 名前:名無し~3.EXE:2006/11/28(火) 19:56:04 ID:eQt+KJMG
>>258
>>259
タスクスケジューラに登録しておいて、FolderItem.InvokeVerbで実行する。


276 名前:名無し~3.EXE:2006/11/28(火) 19:58:54 ID:g8pNCyQB
>>274
それは知らなかった。thx!

277 名前:名無し~3.EXE:2006/11/28(火) 20:03:14 ID:eQt+KJMG
>>257
あてずっぽうですが、
jscriptfunc()
で呼べませんかね。結構、非常識な発想が通ったりする世界ですから。。。


278 名前:257:2006/11/28(火) 20:21:36 ID:Tv1LYONy
>>267 >>268
無事呼べました.情報ありがとう.
perlじゃ引数なし()は省略されるってことね.

>>269
ふむふむ.それはVBA上からperl呼ぶとか便利に使えそうだね.
vbsやjsにできてperlにできないことはまずないから,wshでは使わないだろうけど.


279 名前:名無し~3.EXE:2006/11/28(火) 21:48:29 ID:tFRKZPTE
スクリプトから自動でメールを出すってできますか?
WEBページにあるフォームに入力させて「送信」ボタンを押すみたいなことをスクリプトで実現したいんですが

280 名前:名無し~3.EXE:2006/11/28(火) 21:53:30 ID:mWvA7je0
MsgBox でフォントの大きさを変えることはできませんか?
(全体を大きくするのではなくて、MsgBox のウインドウで
使われるフォントだけ)。


281 名前:名無し~3.EXE:2006/11/28(火) 22:06:15 ID:g8pNCyQB
>>279
CDO.Message で検索してみて。

>>280
一からウィンドウを作らないとダメかと。

282 名前:280:2006/11/28(火) 22:18:48 ID:mWvA7je0
>>281
Wsh では1からウインドウを作るのはどうやるんでしょうか?
VBScript でも JScript でもこの際なんでも構いません。
(機能はメッセージを出して OK 押したら消えるだけでいいんです。
但し大きく目立つように出したいということです)。かといって
後から何か特別なソフトをインストールしたくはないので Wsh の
VBScript の MsgBox でやっていたんですが、何か方法ありませんかね?


283 名前:名無し~3.EXE:2006/11/28(火) 22:23:19 ID:HgwQULRQ
HTAにしてみるとか

284 名前:名無し~3.EXE:2006/11/28(火) 22:23:44 ID:E3q0nv4b
>>282
WSHから使えるGUIウィンドウは
COMとして作るしか無いかと。
又はWSHではなくHTAを使うって手もある。

285 名前:名無し~3.EXE:2006/11/28(火) 22:39:47 ID:mWvA7je0
>>283-284
HTAというのは知りませんでした。検索したら出ましたが。これですよね。
http://www.microsoft.com/japan/msdn/workshop/author/hta/overview/htaoverview.asp
調べてみます。ありがとうございました。


286 名前:名無し~3.EXE:2006/11/28(火) 23:15:36 ID:eQt+KJMG
PowerShellを使うと
>>36
>>206
などが簡単に出来るようになるんでしょうか?


287 名前:名無し~3.EXE:2006/11/28(火) 23:23:34 ID:45tW03Iv
CDO.Messageについて調べたんですが、送信元のアドレスをソースに入れないで(自動で補完)つくれないでしょうか
スクリプトを知らない多数の人が使用するという想定でつくりたいのです

288 名前:名無し~3.EXE:2006/11/28(火) 23:42:30 ID:Tv1LYONy
>>282
TclScript, PerlScript, RubyScriptとかならTkが使えるからGUIが自前で作れる.
それぞれの処理系をインストールしなきゃならんのでHTAの方がいいだろうけど.

>>287
1. スクリプトの先頭にadress = "foo@bar.com"とか書いておいて,各自そこだけ書き換えてもらう.
2. InputBoxやHTA使ってアドレス入力させる.毎回入力するのは面倒なので,ファイルに保存しておいて次回からはそれを読む.
など

289 名前:名無し~3.EXE:2006/11/29(水) 00:33:36 ID:2/mGVRQo
>286
↓で訊いてみたら?

Windows PowerShell (正式版リリース)1.0
http://pc11.2ch.net/test/read.cgi/win/1163764836/

290 名前:名無し~3.EXE:2006/11/29(水) 22:17:21 ID:1dkZEY39
>>272
>>273
ありがとうございます。

ただ、もっと簡単にスクリプトを組んで関数をチャチャっとやって、
できないものか思案中です。

あまり、プログラムって組んだ経験がないので・・・。

何か良いアイデア、ないでしょうかね?


291 名前:名無し~3.EXE:2006/11/29(水) 22:41:40 ID:DKiaM1yK
自力でプログラム書く気がないなら、このスレ向きじゃないよ。

292 名前:名無し~3.EXE:2006/11/30(木) 01:16:13 ID:WPzp0DQP
標準出力を使いたいので、ファイル名.vbs(wscript.exe)で実行しても
cscript.exeで実行するような書き方ってありますか

293 名前:名無し~3.EXE:2006/11/30(木) 01:40:47 ID:f/8+PZe+
>>292
cscript //H:CScript

294 名前:名無し~3.EXE:2006/11/30(木) 02:14:43 ID:oHR/u/8E
>>292
vbsじゃないけどお手製のライブラリがあるので晒そう.

以下をたとえばstdio.jsというファイル名で保存
//---------ここから------------
(function(){
  if (/wscript\.exe$/i.test(WScript.FullName)) {
    var args = new Array();
    for ( var i = 0; i < WScript.Arguments.length; i++ ) {
      var arg = WScript.Arguments.Item(i);
      if ( /\s/.test(arg) ) arg = '"' + arg + '"';
      args.push(arg);
    }

    var cmd = 'cscript.exe //Nologo "' + WScript.ScriptFullName + '" ' + args.join(' ');
    WScript.CreateObject('WScript.Shell').Run(cmd, 1, false);
    WScript.Quit();
  }
})();
//---------ここまで------------

使い方はwsfファイルの最初でインクルードしてやるだけ.
<job>
<script language="JScript" src="stdio.js"></script>
<script language="VBScript">
'ここに好きなコードを書く
WScript.StdIn.ReadLine
</script>
</job>

既定のスクリプトホストはwscriptのままでOK.
まあ自分で使うだけなら >>293 が一番楽でしょう.

295 名前:名無し~3.EXE:2006/11/30(木) 02:42:53 ID:v82cYZy4
>>292
vbcという拡張子をcscriptに関連付けて、cscriptで実行したいものはvbcで作る方法がオススメ。

>>294のようにwsfでやるならjob分けした方が良い。または引数が無ければ
ttp://winscript.s41.xrea.com/wiki/index.php?%5B%5B%A5%C6%A5%AF%A5%CB%A5%C3%A5%AF%5D%5D#content_1_4
でもいける。ぶっちゃけ>>294はこれの引数対応版なだけの話だし。

まぁ固定環境で使うものなら関連付けしちゃうのが一番煩わしくないよ。
コード一切必要ないし、条件分岐も、実行し直しも、引数の処理も無いからいくらか早いし。

296 名前:名無し~3.EXE:2006/11/30(木) 07:51:25 ID:oeVEhWch
>>295
> vbcという拡張子をcscriptに関連付けて、cscriptで実行したいものはvbcで作る方法がオススメ。

なるほどなあ、その発想はなかった

297 名前:名無し~3.EXE:2006/11/30(木) 10:53:55 ID:4A8n4oNd
>>292
先頭に
REM:&@CScript.exe //E:VBS //NoLogo "%~f0" %* & GOTO :EOF
を書いて、拡張子をCMDに変える。


298 名前:名無し~3.EXE:2006/11/30(木) 19:27:18 ID:4A8n4oNd
>>295
関連付けで標準入出力が使えない障害はありましたが、もういいのかなぁ。
もし、駄目なときはVectorのVBCFILEを参照。


299 名前:名無し~3.EXE:2006/12/02(土) 15:02:40 ID:AkJV6Sni
これでアクセス権限のないレジストリキーを
自動で削除する事ってできますか?

300 名前:名無し~3.EXE:2006/12/02(土) 20:48:03 ID:0XNYfzVD
WScript.ShellのPopup(,nSecondsToWait)が効かないってことありませんか?
HTMLやHTAのときは、そういう仕様か、と思っていましたが、WSHでも起こります。
どうもCPUが他の処理で忙しいときに抜けるみたいです。
さすがに、それは障害だと思いますが。使うときはご用心。

301 名前:名無し~3.EXE:2006/12/07(木) 15:43:36 ID:EC5LjnO7
>>282
こういうときは、WSHからIEを起こして操作するのが簡単。

302 名前:名無し~3.EXE:2006/12/09(土) 18:45:02 ID:P6CN1pgP
バッチファイルをリモートからWebに埋め込んで使う
ということをwsh使ってできますか?

303 名前:名無し~3.EXE:2006/12/09(土) 19:13:49 ID:pifhS49b
うん、出来る。。面倒だから普通はやらないけど。
どうしても面倒なことやりたいなら勝手にやればよい。

304 名前:名無し~3.EXE:2006/12/09(土) 19:49:26 ID:0qa9SSE3
>302
で、それを知って何をやりたいんだ?

305 名前:名無し~3.EXE:2006/12/10(日) 00:08:13 ID:UaBqXVVZ
>>296
それより、RunWithArgs.CMDを関連付けると、便利だわい。


306 名前:名無し~3.EXE:2006/12/11(月) 22:02:52 ID:YncVWVUZ
age

307 名前:名無し~3.EXE:2006/12/13(水) 14:27:42 ID:/++eaESB
WSHでDDE使う方法ないかな?

308 名前:名無し~3.EXE:2006/12/13(水) 15:44:43 ID:npJjnYln
>>307
DDE使えるCOMを探すか作る。

そんな回答アリかよ、と言うかも知れないが
拡張無しにWSH自身が出来る事なんてほとんど無いんだから
COMなどの外部拡張に頼らざるを得ないのは仕方ない。

309 名前:名無し~3.EXE:2006/12/13(水) 16:38:28 ID:5aDfYNEq
VBScript(.vbs)からExcelを操作して文字列の置換をしたいんですが、ループでセルを一つずつ見て置換していくしかないのでしょうか?

Excelの置換ダイアログみたいに一括でブック全体を置換したいんですが。

ちなみに優先順位としては
処理スピード > コードの複雑さ
です。

310 名前:名無し~3.EXE:2006/12/13(水) 17:06:25 ID:npJjnYln
>>309
RangeメンバのReplaceメソッドで置換すれば良いだけだよ。
Replaceメソッドの使い方はExcelVBAヘルプに載ってる。
因みに組み込み関数のReplaceじゃないので間違わないように。

ちなみに対象のシートオブジェクトを取得したら、置換は1行コードで終わる。
ループよりは速いが、どのくらい速いかはCPU依存。

311 名前:名無し~3.EXE:2006/12/13(水) 17:48:44 ID:5aDfYNEq
>>310
ありがとうございました!標準オプションなら↓だけで行けますね。

objApp.ActiveSheet.Range("A1").Replace <検索文字列>, <置換文字列>

後は各シートでコレを実行させました。十分実用に耐えるスピードです。

312 名前:名無し~3.EXE:2006/12/13(水) 22:14:37 ID:hw3Bn7Em
IEから右クリックで動作させるスクリプトなんですが、
その右クリックされた場所にある画像のURL(リンクではなくIMGタグ)
を取得するにはどうすればいいでしょうか?

313 名前:名無し~3.EXE:2006/12/13(水) 22:49:12 ID:qNFDZs3m
external.menuArguments.document.elementFromPoint(external.menuArguments.event.clientX, external.menuArguments.event.clientY).href
らしい。Irvine のスクリプトによると。

314 名前:312:2006/12/14(木) 00:28:11 ID:7FtNx5qL
>>313
ありがとうございます

315 名前:名無し~3.EXE:2006/12/14(木) 00:29:42 ID:DjAdsCMN
InternetExplorer.Applicationとかの情報ってWSHのリファレンスに
のってないけど、どっから情報獲ってくるんだ?

316 名前:名無し~3.EXE:2006/12/14(木) 00:42:56 ID:WjQ1wjr4
IE オブジェクトなら MSDN にいくらでもあるっしょ

317 名前:名無し~3.EXE:2006/12/14(木) 01:39:10 ID:XilSwh1W
>>315
つ OLEView.exe


318 名前:名無し~3.EXE:2006/12/17(日) 09:32:44 ID:A0dC8xU5
以下のようにした場合、メッセージボックス(?)が表示される前に
コマンドプロンプト・ウインドウが表示されるのですが、結果の
メッセージだけを表示させるにはどうすれば… ?

Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objExecCmd = objWshShell.Exec("ruby\bin\ruby -Ks search.rb")
WScript.Echo "検索結果:" & objExecCmd.StdOut.ReadAll


319 名前:名無し~3.EXE:2006/12/17(日) 11:44:36 ID:H95I1sD8
rubyw.exe

320 名前:名無し~3.EXE:2006/12/17(日) 14:04:16 ID:A0dC8xU5
>>319 ギガddd!

321 名前:スレッドを超えたコテハン:2006/12/17(日) 15:02:58 ID:EP+mDiGm
WSCの場合は、プロパティで定数を公開して、wsc.nameで定数を参照したほうが、
衝突の心配がないし、WSFだけでなく、VBSやJSでも使えてよさそうですが、
もし、nameだけで、参照したいときは、WSC側でreferenceメソッド作って、
function reference(Me){
Me['xxx']=111;
Me['yyy']=222;
}
VBS側で
wsc.reference me
WScript.Echo xxx
JS側で
wsc.reference(this);
WScript.Echo(xxx);
とすれば、WSFだけでなく、VBSやJSからも使えます。

322 名前:名無し~3.EXE:2006/12/18(月) 14:59:23 ID:P40MScLH
WSHでIEオブジェクトを作成してそれのProcessIDを取得する方法を教えて欲しいのですが。

今は下記の手順でブラウザにキー送信をしていますが、「タイトルの文字列」が変更した場合には通用しません。
なので、ProcessID指定で確実にSendKeysをしたいのです。
InternetExplorer.Application + ProcessIDでぐぐっても見つけられませんでした。
よろしくお願いします。

Set IE = WScript.CreateObject("InternetExplorer.Application","IE_")
Set sShell = WScript.CreateObject("WScript.Shell")
sShell.AppActivate("ブラウザのwebページのタイトル文字列")
sShell.SendKeys "ほげほげ"

参考にしたページ
ttp://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html
> 一方のプロセスIDは、Execを使って起動したプログラムでは、WshScriptExecオブジェクトのProcessIDプロパティから取得できる。



323 名前:名無し~3.EXE:2006/12/19(火) 21:38:05 ID:4I7Im65l
マルチするならせめて一言断り入れとけよ。あとリンク。

つか IE オブジェクト使うなら大凡の操作は可能だと思うのだが。わざわざ SendKeys 使わんでも。

324 名前:名無し~3.EXE:2006/12/20(水) 02:32:54 ID:mM03wtmE
>>323
ファイルの指定したいんじゃないかな?
予想だけど。

>>322
<input type="file">以外の入力をしたいのなら、SendKeysなんて不安定なもの使わなくても
Document.Allで取得したHTML要素のオブジェクトを直接操作できるよ。
DHTML関係で調べると情報が見つかると思う。

<input type="file">だけはセキュリティだか何だかで値を設定できないから仕方ないけど。

325 名前:名無し~3.EXE:2006/12/20(水) 10:45:02 ID:RqDSiDAq
>>324
そうです。
SendKeys "%(FA)"とかでセーブしたり印刷などダイアログ操作もしたいんです。


326 名前:名無し~3.EXE:2006/12/20(水) 13:00:07 ID:mrdk27Jg
>>322
WMI を使う。
http://www.microsoft.com/japan/technet/scriptcenter/process/scrpcs07.mspx


327 名前:名無し~3.EXE:2006/12/20(水) 14:15:14 ID:RqDSiDAq
>>326
ありがとうございます。
IEが複数起動してた場合や別プロセスにチェックあった場合とかで試してレポートしますね。



328 名前:名無し~3.EXE:2006/12/20(水) 19:15:52 ID:AUSJGC40
あっちのスレで質問に答えてる人が、こっちのスレを見たらどう思うだろうね。逆はどうだろう。
マルチするやつは、想像力のかけらもない、人を思いやる事のできない、最低の人種。

329 名前:名無し~3.EXE:2006/12/20(水) 21:56:05 ID:hALWCcKZ
痛い人はっけん伝

330 名前:スレッドを超えたコテハン:2006/12/21(木) 00:13:52 ID:Agf2Nj7H
>>328
というか、マルチの問題は、回答者の善意が無駄に捨てられていることだと思う。
そして、それが、本人より、それを見ているひとを刺激するのだと思う。

331 名前:名無し~3.EXE:2006/12/22(金) 15:58:35 ID:JvRzts1c
パワーポイントに画像
1.jpg 2.jpg...
を並べて貼るのって自動化できないの?

332 名前:名無し~3.EXE:2006/12/22(金) 23:04:54 ID:jt8/BZlk
マクロ書けばいいんじゃないのか?

333 名前:名無し~3.EXE:2006/12/23(土) 12:28:39 ID:0ryoXlyK
html で書いて読み込みとか

334 名前:名無し~3.EXE:2006/12/23(土) 14:14:29 ID:N/gLsGdS
SendKeys()は?

335 名前:名無し~3.EXE:2006/12/26(火) 16:17:49 ID:MwEmWwE0
>>103
つ subst

336 名前:名無し~3.EXE:2006/12/26(火) 19:21:31 ID:YnXAl3Sk
質問させて下さい。

var obFS,obFOL,colFile;
var timestamp = "";

obFS = WScript.CreateObject("Scripting.FileSystemObject");
obFOL = obFS.GetFolder("f:\\");
colFile = obFOL.Files;

var x = new Enumerator(colFILE);

for(; !x.atEnd(); x.moveNext()){
timestamp = x.item().DateCreated
}

というコードを実行すると、
timestampに"Wed Nov 29 19:35:35 UTC+0900 2006"というようなのが返ってくるのですが、
ここからyyyymmddという形式の文字列を取り出すにはどうしたらよいのでしょうか。



337 名前:名無し~3.EXE:2006/12/26(火) 19:23:16 ID:YnXAl3Sk
↑環境はXPSP2、Windows Script5.6です。

338 名前:名無し~3.EXE:2006/12/26(火) 19:55:35 ID:TReychuT
>>336
Dateオブジェクトの扱い方について学びましょう。
リファレンスにも載ってますよ。

339 名前:名無し~3.EXE:2006/12/26(火) 19:57:26 ID:YnXAl3Sk
>338

var timestamp = new Date(x.item().DateCreated);
ですね。いろいろいじっていたら閃きました。

340 名前:名無し~3.EXE:2006/12/27(水) 01:45:26 ID:uErdji5h
既に開いてある IE のウィンドウのオブジェクトを、
子ウィンドウかどうかに関係なく所得するにはどうしたらいいでしょうか?

341 名前:名無し~3.EXE:2006/12/27(水) 11:51:57 ID:lsopXQRq
>>340
Set IEShell = CreateObject("Shell.Application")
num = IEShell.Windows.Count
For i = 0 to num - 1
WinName = IEShell.Windows.Item(i).LocationName
WinPath = IEShell.Windows.Item(i).LocationURL
Document.write "<tr><td>" & WinName & "</td>"
Document.write "<td>" & WinPath & "</td></tr>"
Next

こんなんでどお?


342 名前:名無し~3.EXE:2006/12/27(水) 18:21:28 ID:Z9+O0XhD
>>327
レポートはどうしたんだろう?

343 名前:名無し~3.EXE:2007/01/04(木) 09:48:15 ID:pQA4Aeed
少し前に、vbscriptをコンソール実行するのにcscript.exeに関連付けした.vbcというのを用意するという話があったけど
これと同じように.wsfのコンソール実行版として.csfをcscript.exeに関連付けしたいんだけど、どうしたらいい?

単純に%SystemRoot%\System32\cscript.exe "%1" %*じゃエラーになるし、//Eに何を指定したら良いのか解らずお手上げ状態
wsfにはcscript.exeも関連付けされてるが、右クリックメニューからの選択は煩わしいのでvbcみたいに既定関連付けにしたいし
cscript.exeで実行し直すスクリプト(>>294のvbs版のようなもの)を書いてみたりもしたけど、やはり関連付けしちゃったほうがスッキリするので

344 名前:名無し~3.EXE:2007/01/05(金) 11:38:36 ID:IRXk0L1E
普通に%SystemRoot%\System32\CScript.exe "%1" %*でいけるだろ?

ちゃんとREG_EXPAND_SZにしてるか?


345 名前:名無し~3.EXE:2007/01/06(土) 22:39:45 ID:5TwI70x6
>>344
.wsfをcscript.exeに関連付けするんじゃなくて.csf(独自拡張子)をcscript.exeに関連付けする場合ですよ
本当に%SystemRoot%\System32\CScript.exe "%1" %*でスクリプトとして実行される?

こちらはちゃんとREG_EXPAND_SZにしてるし、cscript.exeやwscript.exeに直接D&Dしても同じメッセージが出るので
パスはきちんと通ってるし、コマンドも渡ってる

346 名前:名無し~3.EXE:2007/01/07(日) 02:58:46 ID:Jlib32pI
>>345
D&Dならこれじゃないの。

[HKEY_CLASSES_ROOT\WSFFile\ShellEx\DropHandler]
@="{60254CA5-953B-11CF-8C96-00AA00B8708C}"

しかし、cscriptでD&Dとはこれ如何に…

347 名前:名無し~3.EXE:2007/01/07(日) 06:47:22 ID:bXPc+IQY
>>343
うちもエラーが出る。メッセージは↓だろ。
> ファイル拡張子 ".csf" を持つスクリプト エンジンはありません。
解決方法はわからん。

>>346
スクリプトファイルにD&Dしたいんじゃなくて、
「スクリプトエンジンにD&Dしても同じエラーが出るから
関連付けのパスは間違ってないですよ」ってことだろ。

348 名前:名無し~3.EXE:2007/01/07(日) 14:19:39 ID:sB9LNE5a
画像の容量やサイズを取得しJavaScriptで利用するにはどうしたらいいですか?

349 名前:名無し~3.EXE:2007/01/07(日) 14:30:59 ID:zkbC9oLK
>>348
>>3の doodle とか使えるんじゃない

350 名前:名無し~3.EXE:2007/01/07(日) 17:31:26 ID:F4E+azH/
'標準的なJPEGファイルの画像サイズ取得
GetJpegSize "sample.jpg", x, y
WScript.Echo "X=" & x & " Y=" & y
Function GetJpegSize(filename, ByRef x, ByRef y)
Set oStrm = CreateObject("ADODB.Stream")
oStrm.Open
oStrm.Type = 1 'adTypeBinary
oStrm.LoadFromFile filename
Do While (CvNum(oStrm.Read(1)) = &hFF)
Select Case CvNum(oStrm.Read(1))
Case &hD8 'SOI
Case &hD9 'EOI
Exit Do
Case &hC0 'SOF0
length = CvNum(oStrm.Read(2))
oStrm.Read(1)
y = CvNum(oStrm.Read(2))
x = CvNum(oStrm.Read(2))
Exit Do
Case &hDA 'SOS
Exit Do
Case Else
length = CvNum(oStrm.Read(2))
oStrm.Read(length - 2)
End Select
Loop
End Function
Function CvNum(bstr) ' BigEndian
For i = 1 To LenB(bstr)
CvNum = CvNum * 256 + AscB(MidB(bstr, i, 1))
Next
End Function

351 名前:名無し~3.EXE:2007/01/07(日) 18:57:51 ID:v/viW2rY
>>346
DropHandlerは既に設定してあるけど、問題はそこじゃないので

>>347
エラーメッセージはそれです

cscript.exe /?を見ても、//Eオプションの意味は書いてあるんだけど//Eオプションに設定出来る値とかは書いてないんだよね
.wsf形式は固定エンジンじゃないけど.vbcも//E無しで関連付けすると同じエラーが出て//E:VBSを付けると解決するから
これも//Eで解決しそうな気もするんだけど

352 名前:名無し~3.EXE:2007/01/17(水) 20:07:13 ID:0sN+rIEb
(・∀・∀・)
(・∀・)サテオシゴト・・・          ε三三三三(; ・∀・)鯖マデオツカイ
HTTP/1.1 304 Not Modified
( ・∀・)(・∀・ )オツカイオワリ 三三三三3
(・∀・∀・)
( ´∀`) 誰も書いてないよ
(・∀・)カンリョウ!!

353 名前:名無し~3.EXE:2007/01/19(金) 16:29:22 ID:e+OFGk5J
下のコードでVistaのファイルのプロパティ調べてみたら
266もあって笑った。
2000/XPだと40もなかったのに

--------------------------------
var WshShell = new ActiveXObject("WScript.Shell");
var oShell = new ActiveXObject("Shell.Application");
var oFol = oShell.NameSpace( "C:\\" );
var str= "";

for( var i = 0; i < 300; i++ )
{
    str += i + ":" + oFol.GetDetailsOf( null, i ) + "\n";
}

WshShell.Popup( str );


354 名前:名無し~3.EXE:2007/01/19(金) 18:26:35 ID:QaLFoFFk
WSFはデフォルトをCScript.exeにする。
WScript.exeで動かしたいときは、ショートカット(.lnk)を作って
リンク先の頭にWScript.exeを入れる。

355 名前:名無し~3.EXE:2007/01/19(金) 18:56:22 ID:QaLFoFFk
>>348
>>356の要領で26,27,28がサイズ

356 名前:名無し~3.EXE:2007/01/19(金) 18:58:08 ID:QaLFoFFk
訂正
>>353の要領で26,27,28がサイズ

357 名前:名無し~3.EXE:2007/01/20(土) 00:20:12 ID:GPpR1ytY
>>353

207:雰囲気


なんじゃこりゃ

358 名前:名無し~3.EXE:2007/01/20(土) 02:42:29 ID:ETgywjVO
envionment を直訳したのか?

359 名前:名無し~3.EXE:2007/01/20(土) 12:57:54 ID:N7R7pz3V
envionment (なぜか翻訳できない)

360 名前:名無し~3.EXE:2007/01/20(土) 14:38:04 ID:UE2i8MKk
//E:のエンジン名は可変だから、
ハードコーディングのcscript /?に書いてある訳ないわな
ヘルプぐらいででわざわざレジストリを検索するのも面倒だし

361 名前:名無し~3.EXE:2007/01/20(土) 15:25:54 ID:UE2i8MKk
>>359
ぐぐれ

362 名前:名無し~3.EXE:2007/01/20(土) 16:16:36 ID:XJ4mGjq5
>>359
つ r

363 名前:Jscriptで:2007/01/20(土) 17:23:56 ID:5Xd7S+Ct
Excel のブック中に、4月〜3月のシート名を持つワークシートがあり、
各シート名内の数字が全角か半角かはあやしいものとする。

セルA6から下方方向に半角数字で日付が記入してあり
対応する日の’C'から'G'のセルに行事予定が記入してある。

今日も含めて3日分の予定を WScript.Echo で表示する。
エクセル.xls ファイルとJscript.js ファイルは、d:\1 フォルダ内に置く。

という条件で、とりあえず動くものを作りましたが、

ここを直した方がスクリプトが簡素になるよとか、
「今日も含めて3日」間が、月の境界の場合は無視しているので
その処理のアイデアとか
コメントを下さい。

ttp://a-draw.com/uploader/src/up11825.lzh.html

364 名前:名無し~3.EXE:2007/01/20(土) 20:34:48 ID:8DNLMKa6
JScript使い始めて2日目のおいらが、勉強がてらリファレンス読みながら調べたことを書いてみる。

var XLS_FILE = WScript.ScriptFullName.replace(/\\[^\\]+$/, "\\sample.xls");
にすれば"d:\1"以外でも、同一ディレクトリにsample.xlsがあれば動く。

曜日はyday = "日月火水木金土".charAt(yday)の1行で済む。

正規表現使って(reはmonthから"^(?:10|10)月$"のようなパターンを作る)
for(; !sub1.atEnd(); sub1.moveNext()){
  if (sub1.item().Name.match(re) != null){
    sh = sub1.item();
    break;
  }
}
という感じで対象シートを変数に取得しておけば、
while(sumSheatnc.indexOf("1")>-1){ 〜 sumSheatnc.indexOf("月"+month +"月")+1))).Select;
の約50行は不要だし
ExcelApp.ActiveWorkBook.ActiveSheet.Cells(i,3) を
sh.Cells(i,3) と書ける。
半角数字はcharCodeAt+65248をfromCharCodeすれば全角数字になる

更に
if (ExcelApp.ActiveWorkBook.ActiveSheet.Cells(i,3)>"") event+= ExcelApp.ActiveWorkBook.ActiveSheet.Cells(i,3)+" ";
以下の5行に相当するものが
event = new VBArray(sh.Range(sh.Cells(i,3),sh.Cells(i,7)).Value).toArray().join("\t").replace(/\t+/, " ");
の1行で書ける。(join(" ")でもいいと思うけど)

月越えの処理は、「2007年month月date+1or+2日」のgetMonthがmonthより大きければ次のシートに移る処理を書けば良いのでは?
2007/2/28の場合なら、2007/2/30を指定すれば2007/3/2を返すから、末日が何日かとか考えなくても月を越えたかどうか判断できる。
次のシートはWorksheets(sh.Index+1)って感じで取得すればいい。末尾シートの場合の例外処理をお忘れなく。

365 名前:名無し~3.EXE:2007/01/20(土) 23:24:24 ID:slWIhDIN
Excel上にVBAで書いたモジュールを
jsやvbsから呼び出す方法ってあるんですかね?
ぐぐってみたんですけど、わからんのですorz

366 名前:名無し~3.EXE:2007/01/20(土) 23:42:48 ID:Lkiodn1p
ネット中毒なっている若者はオナニーでもしておれ!!

367 名前:名無し~3.EXE:2007/01/21(日) 14:39:38 ID:fTYEC1jK
>>365
kwsk

368 名前:名無し~3.EXE:2007/01/21(日) 16:02:19 ID:ilBf4mqg
>>364
ありがとうございます。参考にさせて頂きます。

正規表現のところは、こちらの能力の限界で、今分かっても数ヶ月のちには屁理屈を忘れてしまいそうなので
ブラックボックスのまま置いておくか、wsh HELP ページや参考となるところのURL までコメントとして詳しく書き入れるか
どうしよう。

ここも人が少なくなりましたね。サンプルソースコードは、2,3日後には消しますね。
でわ。

369 名前:名無し~3.EXE:2007/01/21(日) 16:11:18 ID:eMwqitJ2
>>365
ttp://www.vector.co.jp/soft/win95/prog/se373991.html
とか参考にならん?

370 名前:365:2007/01/22(月) 00:19:18 ID:o8eRiI+8
>>369
返信ありがとうございます。

なんとか解決できないだろうかと、
会社の帰りに本屋でExcelマクロの本を読み漁って、
Application.run ってのが探してたものだとわかりました。
お手数おかけしました。



371 名前:名無し~3.EXE:2007/01/23(火) 01:49:09 ID:15EbuWWs
回避策はわかったのですが、
どなたか知っていたら教えてください。

<やりたい事>レジストリの値名が\から始まっているデータをRegReadで取得する方法
<環境>WinXP SP2 Pro/WSH5.6

<例>キー[HKLM\HARDWARE\DEVICEMAP\SERIALCOMM]
値名 \Device\Serial0
データ COM1
この場合は、「COM1」を取得したい

<やった事>RegReadで簡単に取得できるだろうと思ったのですが、全然取れませんでした。
<回避策>reg.exeからはデータの取得が可能

Set objWSH = WScript.CreateObject("WScript.Shell")
'RegReadで取得失敗した例
'WScript.Echo objWSH.RegRead("HKLM\HARDWARE\DEVICEMAP\SERIALCOMM\\\Device\\Serial0")
'WScript.Echo objWSH.RegRead("HKLM\HARDWARE\DEVICEMAP\SERIALCOMM\\\Device\Serial0")
'WScript.Echo objWSH.RegRead("HKLM\HARDWARE\DEVICEMAP\SERIALCOMM\\Device\\Serial0")
'WScript.Echo objWSH.RegRead("HKLM\HARDWARE\DEVICEMAP\SERIALCOMM\\Device\Serial0")
'WScript.Echo objWSH.RegRead("HKLM\HARDWARE\DEVICEMAP\SERIALCOMM\Device\Serial0")

'回避策
WScript.Echo objWSH.Exec("reg query HKLM\HARDWARE\DEVICEMAP\SERIALCOMM /v \Device\Serial0")


372 名前:名無し~3.EXE:2007/01/23(火) 01:51:52 ID:dZzOJZ4W
\は全部\\にしろ

373 名前:名無し~3.EXE:2007/01/23(火) 02:01:31 ID:4m7yBxl6
自己解決能力低すぎ
ぐぐればわかるだろうに


374 名前:371:2007/01/23(火) 02:26:27 ID:15EbuWWs
>>372
\でエスケープしてみたがダメだった。
値名が\以外なら、アッサリ取得できるのだが・・・

WScript.Echo objWSH.RegRead("HKLM\\HARDWARE\\DEVICEMAP\\SERIALCOMM\\\Device\\Serial0")
WScript.Echo objWSH.RegRead("HKLM\\HARDWARE\\DEVICEMAP\\SERIALCOMM\\Device\\Serial0")

>>373
すまん。ぐぐってもRegReadで取得する方法がわからかった。
WMIでならやれそうな気もするが、教えてくれまいか

375 名前:名無し~3.EXE:2007/01/23(火) 02:53:05 ID:rRUN1PnK
ググれば解ることとはいえ、\のエスケープ方法はMSDNやダウンロード版ドキュメントのRegRead項目にに書いておくべきだよな。

でもRegReadでの\のエスケープを覚えておくより、WMIの扱いを覚えていた方が身になるぞ。
\のエスケープは「可能なこと」だが、WScript.Shellのレジストリ操作はそれ以外に「不可能なこと」が多すぎる。
「不可能なこと」に直面したときにあたふたするよりは、WScript.ShellのRegRead、RegWrite、RegDeleteで出来ることも
全てWMIでやるようにしておいた方が遙かにいいだろ。数年前だとWIMの情報は少なかったが今はあふれかえってるし。

376 名前:373:2007/01/23(火) 19:49:29 ID:4m7yBxl6
ああ、勘違いしてたよ。
それなら俺もわからんわ。

wmiでやるならWin32_SerialPort*あたりだろ
サンプルなら
ttp://www.activexperts.com/activmonitor/windowsmanagement/scripts/hardware/ports/
とかじゃない?


377 名前:371:2007/01/23(火) 21:37:04 ID:15EbuWWs
>>375>>376
RegReadで\をエンコードする方法はあるんですね。
私はわからんかったので、
WMIのEnumKeysとEnumValueで実装し直しておきました。
レスサンクスでした。

378 名前:名無し~3.EXE:2007/01/24(水) 01:03:32 ID:ww8gbHgn
だれか教えて下さい。
WSHでマウス移動の自動化って出来るんですか?
キー送信の自動化とか出来るんですか?
ディスプレイカラーの値を読み込む事って出来るんですか?
プリントスクリーンみたいな画像保存って出来るんですか?

379 名前:名無し~3.EXE:2007/01/24(水) 01:59:45 ID:Yau2S1mD
できる。
できる。
意味不明。
できる。

380 名前:名無し~3.EXE:2007/01/24(水) 03:40:31 ID:eGutPL5I
RegReadの代替、こんなのも
Set Installer=CreateObject("WindowsInstaller.Installer")
WScript.Echo Installer.RegistryValue(2,"HARDWARE\DEVICEMAP\SERIALCOMM","\Device\Serial0")


381 名前:名無し~3.EXE:2007/01/24(水) 07:39:03 ID:7G/RPQuZ
ありがとうございます。
ディスプレイカラーの値を読み込む事って出来るんですか?
→24ビットカラーのRGBの値です。

382 名前:名無し~3.EXE:2007/01/28(日) 18:16:25 ID:bulVaiB4
>>375
>でもRegReadでの\のエスケープを覚えておくより、WMIの扱いを覚えていた方が身になるぞ。
>\のエスケープは「可能なこと」だが

ほんと?聞いたことないな〜

383 名前:名無し~3.EXE:2007/01/28(日) 20:31:04 ID:t8jFe24C
var str=prompt("str1","str2");
の代わりになるものが欲しいのですが、何かいい方法はないですか?

384 名前:名無し~3.EXE:2007/01/28(日) 20:48:56 ID:ce6F4Ah9
どういう時に何が欲しいのかさっぱりだ

385 名前:名無し~3.EXE:2007/01/28(日) 23:02:41 ID:Jx0Q5hq7
IEでは window.prompt が使えるけど WSH では使えないって
話じゃないか?
VBScript だと InputBox 関数が使えるが、JScript だと
相当するメソッドはない。



386 名前:名無し~3.EXE:2007/01/29(月) 03:01:15 ID:RMea5nPo
そんなときはIEオブジェクト作ってprompt使う

387 名前:名無し~3.EXE:2007/01/29(月) 03:48:33 ID:Zhbkzilw
wsfにしてvbscriptで関数書いたらだめ?

<job id="main">
<script language="VBScript">
Function vbinput( mssg, defi )
vbinput = InputBox( mssg, WScript.ScriptName, defi )
End Function
</script>
<script language="JScript">
function prompt( msasg, defd ) {
if ( !msasg ) msasg = "";
if ( !defd ) defd = "";
return vbinput( msasg, defd );
}
</script>
<script language="JScript">

388 名前:名無し~3.EXE:2007/02/02(金) 14:06:21 ID:io3AcPQD
htaでのjsでEnumeratorってつかえないの?

389 名前:名無し~3.EXE:2007/02/02(金) 17:19:48 ID:2buUxDcl
つかえとるがな。

390 名前:名無し~3.EXE:2007/02/02(金) 17:30:37 ID:l8a6AAPU
スレ違いと思うが、Enumeratorが使えるかどうかは、
コレクション側の仕様。HTMLでは使えないコレクションが多い
てぇことじゃないの。インデクス使え。

391 名前:名無し~3.EXE:2007/02/02(金) 19:04:18 ID:io3AcPQD
>>389-390
なるほど。
じつは、ファイル挙列したかったんだ。
インデックスつかえるのかー。ちょっとやってみる。

392 名前:391:2007/02/02(金) 19:26:54 ID:io3AcPQD
うーん。ファイル数はあってるんだけど。
なんでVBSのfor eachはできるのにjsはできないんだろう・・・。それとも、また勘違いなのか。。。

一応残骸をはってみるけど、あきらめたーー!

function EnumFileName(path){
    var Names = new Array();
    var Fso = new ActiveXObject("Scripting.FileSystemObject");
    var Fo = Fso.GetFolder(path);
    
//  alert(Fo.Files.Count);
    var i=0;
    for(var i=0;i<Fo.Files.Count;i++){
        var Fi = Fo.Files[i];
        Names.push(Fi.Name);
    }

    return Names;
}

393 名前:名無し~3.EXE:2007/02/02(金) 19:34:39 ID:2buUxDcl
>>392
<html lang="ja"><head><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>quote</title><script type="text/jscript"><!--
while (1){ try{ resizeTo( 0, 0 ); break; } catch(e){} }
//--></script><HTA:APPLICATION id="hta" border="none" /><script type="text/jscript"><!--
//配列とオブジェクトの宣言
var strCmdLine = hta.commandLine, strHTADir
if ( strCmdLine.indexOf('"') == 0 ) strHTADir = strCmdLine.match( /"(.+?)[^\\]+?"/ )[1];
else strHTADir = strCmdLine.replace( /[^\\]+?(?: .+)?$/, "" );

var objSFS = new ActiveXObject("Scripting.FileSystemObject");
var list = new Array();
var inFiles = objSFS.GetFolder(strHTADir).Files;

//こうするとコレクションのすべての要素に対する繰り返しができるらしい
var enumInFiles = new Enumerator(inFiles);
while ( !enumInFiles.atEnd() ) {
list.push( enumInFiles.item().Name );
enumInFiles.moveNext();
}

//まとめて出力
var dialogMessage = new String( inFiles.count );
for (i in list) dialogMessage += "\n" + list[i];
alert( dialogMessage );
close();
//--></script></head><body></body></html>

学習用にスクリプトと同じディレクトリ内のファイルを列挙するWSHを作ったのが残ってたのでHTAにしてみた。
参考になるか知らないが。whileのところはforでもおk。

394 名前:Adrienne ◆HI8ebVe8lo :2007/02/02(金) 19:50:11 ID:fKLh6VfE
>>392
(ちょっと、>>393とかぶるけど)
7行目の var i=0; は不要。
それに、JScriptではforステートメントの制御変数は宣言しないのが流儀。
for( i=0; i<Fo.Files.Count; i++ )でOK.

↓みたいな感じでやるといいよ〜

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder(path)
var fc = new Enumerator(f.files);
var names = new Array();

for (; !fc.atEnd(); fc.moveNext()){
     names.push( fc.item() );
}

395 名前:Adrienne ◆HI8ebVe8lo :2007/02/02(金) 20:08:35 ID:fKLh6VfE
var f = fso.GetFolder(path); // →正
var f = fso.GetFolder(path) // →誤:文終了子がない

ね。わざわざ訂正する必要もないと思うけど、一応。

396 名前:名無し~3.EXE:2007/02/02(金) 20:14:21 ID:pU/AdnT5
i をグローバルで使うのってどこの流儀?

397 名前:Adrienne ◆HI8ebVe8lo :2007/02/02(金) 20:29:13 ID:fKLh6VfE
>>396
function test(){
     for( i=0; i < 5; i++ ){
     }
}

WScript.Echo( i );

試しに↑を走らせてみて。6行目の i は宣言されていないとエラーが出るはず。
つまり、for文の制御変数は宣言なしでも暗黙でローカル変数として扱われるということ。
もちろん、どうしても気持ち悪いなら for( var i=0; ……と書いても構わない。

398 名前:392:2007/02/02(金) 21:33:58 ID:io3AcPQD
>>393-395
おまえら!ほんとうにありがとう。できました!
後はエラーチェックとか必要に応じて追加すれば完了だ!!
で、以下のようになったよ。

function EnumFileName(path){
    var Names = new Array();
    var Fso = new ActiveXObject("Scripting.FileSystemObject");
    var Fo = Fso.GetFolder(path);
    var EnFiles = new Enumerator(Fo.Files);
    
//  alert(Fo.Files.Count);
    var i=0;
    for(; ! EnFiles.atEnd();EnFiles.moveNext()){
        Names.push(EnFiles.item().Name);
    //  alert(EnFiles.item().Name);
    }
    return Names;
}

399 名前:名無し~3.EXE:2007/02/02(金) 22:56:36 ID:4UL0tw6S
Enumerator の作成を for の初期化節でやるのって少数派なんだろうか
for (var e = new Enumerator(list); !e.atEnd(); e.moveNext()) {

400 名前:名無し~3.EXE:2007/02/02(金) 23:04:02 ID:2buUxDcl
省略が好きな人はやるんじゃない?

自分の場合はそのときの気分。

401 名前:名無し~3.EXE:2007/02/02(金) 23:07:19 ID:KzBlSYpP
htmlをぶっこ抜く時に

1.CreateObject("MSXML2.XMLHTTP.4.0")
2.CreateObject("InternetExplorer.application")

とかあると思うんだけど、君らならどっち使う。
それとそれぞれのメリット・デメリットあれば教えて下さい。

402 名前:名無し~3.EXE:2007/02/03(土) 00:12:55 ID:ZQXI4k07
>>397
あまり知ったかはしない方がいいよ。ボロが出るから。

> つまり、for文の制御変数は宣言なしでも暗黙でローカル変数として扱われるということ。

実行コンテキストが違うからだろ。
悪いことは言わん、スコープチェーンの勉強でもして出直して来い。

ちなみに>>398の var i=0; はマジで余計だな。単なる消し忘れだろうけど。

403 名前:名無し~3.EXE:2007/02/03(土) 00:26:29 ID:ZQXI4k07
いや、俺は俺で変なこと書いてるな。

>>397の例で、最終行で i を参照出来ないのは
そもそも関数 test() を1度も呼び出していないからだよ。

試しに

function test(){
     for( i=0; i < 5; i++ ){
     }
}
test();
WScript.Echo( i );

でやって味噌。これでもエラー出る?

この時 i は立派にグローバル変数になっているよ。
スクリプト中のどこからでも参照出来る。

404 名前:Adrienne ◆HI8ebVe8lo :2007/02/03(土) 00:44:08 ID:yTQ/iH6h
>>403
試しに
var i=100;
function test(){
    for( var i=0; i < 5; i++ ){
     }
}
test();
WScript.Echo( i );

でやってみた。うん、明らかにグローバルになってるね。一つ利口になった。ありがとう。
ってか、ドキュメント等で悉く宣言省略されてるから無意識にローカル変数になるものと思ってたよ。

なんか、自宣言省略できたり勝手に型変換されたりといったJScriptの仕様は、
逆に難解だよね。

405 名前:名無し~3.EXE:2007/02/03(土) 03:11:51 ID:pDHMAoqQ
>>404
「変数の宣言を明示的に行わなければグローバル変数になる」と覚えておけば
問題ないよ。

ややこしいのは for なんかのブロック内で宣言したとき。JavaScript では
変数のスコープはグローバルか関数内かの2つしかない。
(最新版では違うらしいけど。)

for(var i=0; ... みたいにブロック内で var を書いても、これは関数あるいは
スクリプトの先頭でvar したのと同じこと。

>ドキュメント等で悉く宣言省略されてるから

は、宣言したらブロック内スコープを持つものと開発者が勘違いしてバグるの
を心配してのことかも。
横着するには便利んだけどね。関数内で for ループ書くときに、いちいち
関数の先頭でカウンタ変数を宣言しないですむから。


406 名前:名無し~3.EXE:2007/02/03(土) 03:36:27 ID:5xiUQTdM
letが使えんからな。

407 名前:名無し~3.EXE:2007/02/03(土) 20:43:52 ID:In8o1+SV
匿名関数の中から外部のローカル変数を参照してるクロージャとかもややこしい。

408 名前:名無し~3.EXE:2007/02/04(日) 09:01:18 ID:pYYZVU6i
MSXML2.XMLHTTPで
Open "GET", URL, True
と非同期実行した場合、readyStateで通信状態を取得できますが、これをWinHttp.WinHttpRequestで
実行した場合、通信状態はどのようにして取得したら良いのでしょうか?
主要なメソッド、プロパティは共通のようですが、readyStateに該当するものが見つけられずに困ってます。
OSはWindowsXP SP1、WSHは5.6、WinHttp.WinHttpRequestは5.1です。

409 名前:名無し~3.EXE:2007/02/04(日) 13:16:16 ID:XUYfkIsH
試してないしドキュメントにもどうなるのか書いてないけど、
WaitForResponse をタイムアウト 0 で呼び出してみるとか?

410 名前:名無し~3.EXE:2007/02/04(日) 14:49:19 ID:/70Bq45h
誰か>>401お願いします

411 名前:名無し~3.EXE:2007/02/04(日) 16:38:11 ID:Lw9wofTu
>>410
2だと画像などの付属品もダウンロードしてしまう。

412 名前:名無し~3.EXE:2007/02/04(日) 21:47:54 ID:MbUYtnwe
こんちわー。
htaで揮発性環境変数(PATH)の設定をするために以下のようにコードを書きました。
ネットを回って得たものなので根拠とかが欠落してます。@@;
それで、ですね。
tagに環境変数名をいれてParhに場所を記述したものをOSに登録したいのですが、下のコードではうまくいきませんでした。
どのように書けばうまくいきそうですか?

function AddSystemPath(tag,path){
    //var WshShell = WScript.CreateObject("WScript.Shell");
    var WshShell = new ActiveXObject("WScript.Shell");
    var WshEnv = WshShell.Environment("VOLATILE");
    if( tag.toUpperCase() == "PATH" ){
        WshEnv.Item(tag) = WshShell.ExpandEnvironmentStrings("%Path%") + ";" + path;
    }else{
        WshEnv.Item(tag) = path;
    }

}

これができたら次のステップにいけるんですー。
作ってるのは簡易版GUI似非Makeです。

413 名前:名無し~3.EXE:2007/02/04(日) 22:12:37 ID:JVVlKIId
>>411
1.だとhtml以外は取得しないということですね。ありがとうございます

414 名前:名無し~3.EXE:2007/02/04(日) 23:37:47 ID:3x53LZg+
>>412
よくわからんが、
pathに登録したいならレジストリ直接弄ればよいんじゃね?

415 名前:名無し~3.EXE:2007/02/05(月) 00:29:38 ID:vT9R2Dhh
>>414
うわ。それは勘弁してください。
"VOLATILE"指定すれば、遺恨も残らないということらしいので、便利だなーとおもったんですけど。
うーん、前途多難ですねぇ。基本機能はほぼできててあとこれだけなんですよ。

まぁ、いいや。またきます。
おやすみなさいー。

416 名前:名無し~3.EXE:2007/02/05(月) 00:37:29 ID:xw+mOdqs
勘弁も何も一番簡単だろ。

417 名前:名無し~3.EXE:2007/02/05(月) 01:22:47 ID:fqy0z/kI
揮発性の意味・意義をわかってない奴がいるな

418 名前:名無し~3.EXE:2007/02/05(月) 01:59:52 ID:ybbbBATF
揮発性環境変数も保持される場所はレジストリであることを知らないのかな?

419 名前:名無し~3.EXE:2007/02/05(月) 02:19:32 ID:xw+mOdqs
HKEY_CURRENT_USER\Volatile Environment

420 名前:名無し~3.EXE:2007/02/05(月) 02:54:38 ID:xw+mOdqs
function AddSystemPath(tag,path){
var WshShell = new ActiveXObject("WScript.Shell");
var WshEnv = WshShell.Environment("VOLATILE");
WshEnv.Item(tag) += ";" + path
}

いろいろやってみたけどこれで十分じゃね?

421 名前:名無し~3.EXE:2007/02/05(月) 03:40:16 ID:ttc4Lfai
>>412
MSDN見たら、PATHとかの予約されてる環境変数はVolatileは
使えないと書いてある。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wsproenvironment.asp

けど、今試したらうまく動いた。(WinXP)
しかもわざわざ既存のPATHに追記しなくても、追加したいパスを指定
するだけでマージされる。
(考えてみればSystemとUserのPATH環境変数もそんな関係だ。)


うまくいかないのは、すでに動いてるプロセスに反映させたいと思ってるから
とかではない?
SystemだろうがVolatileだろうが、環境変数の反映は新しいプロセス
から有効だよ。


422 名前:名無し~3.EXE:2007/02/05(月) 16:49:35 ID:vT9R2Dhh
>416-421
皆さんありがとう!

えっと、VOLATILEでもレジストリに登録されるのは知りませんでした。
>>420をやってみたところ、>>419の場所に登録はされてるんですけど、
>>421にあるように、登録したHTAには反映されてないのかもしれません。

Terapadで書いてはメニューから起動って感じにやってるんですけど・・・。

あ!ってちょっと実験・・・。うげ!できた。
……なんか、起動もと(Terapad)のPath設定を受け継いでたみたいです。。。
エディタ再起動したらうまくいきました。なんてこった。

結局>>421の"すでに動いてるプロセスに反映させたいと思ってるからとか"の部分でした。

お騒がせしました。


・・・しかし、これはちょっと不便だなー。

423 名前:名無し~3.EXE:2007/02/05(月) 19:47:41 ID:0J0/Livg
普通に bat に書き出して実行した方が早いんじゃないかな・・・

424 名前:422:2007/02/05(月) 21:50:23 ID:vT9R2Dhh
結局それがベターなのかなー。

車輪を知るには車輪を再発明するのが一番!とかわけのわからんことをのこしつつ、
そっちの方向を模索してみますー。スクリプトいじりすぎて動かなくなったことだし。。。@@;

さて、皆さんどうもありがとう。;D

425 名前:422:2007/02/05(月) 22:45:24 ID:vT9R2Dhh
ああそうそう。
危険な残骸ほしい人います?

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3613.zip
超危険だしめちゃくちゃ汚いから、扱いには注意してください。

そういうわけでまたどこかで!

426 名前:名無し~3.EXE:2007/02/07(水) 16:45:15 ID:AYyF197a
xmlhttpでsetRequestHeaderでIf-Modified-Since付けてsendすると何十分経っても応答こないサイトがあるんだけど、なんで?

427 名前:名無し~3.EXE:2007/02/07(水) 20:48:05 ID:CeKP5txc
URL プリーズ

428 名前:名無し~3.EXE:2007/02/07(水) 21:51:07 ID:0PYxyQ85
ダウンローダ対策かな

429 名前:名無し~3.EXE:2007/02/08(木) 13:22:42 ID:R1J4DUrt
「Volatile」(「揮発性の」という意味)は、現在のログオン・セッションのみに適用さ
れる。名前が示すとおり、Volatile環境変数は一時的に使われるもので、ログオ
ン中のユーザーがログオフしたり、コンピュータを再起動したりすると、変更した内
容は変更前の内容に戻る。


430 名前:名無し~3.EXE:2007/02/08(木) 16:44:18 ID:d3kjRTBg
で?

431 名前:名無し~3.EXE:2007/02/09(金) 11:30:07 ID:fnbavqX5
>>430

「Process」は、現在のプロセスにのみ適用される環境変数である。Process環境変数は、
コマンド・プロンプトが終了するなど、現在のプロセスが終了すると、変更内容が元に戻る。

変数 System User Volatile Process
NUMBER_OF_PROCESSORS ○ × × ○
PROCESSOR_ARCHITECTURE ○ × × ○
PROCESSOR_IDENTIFIER ○ × × ○
PROCESSOR_LEVEL ○ × × ○
PROCESSOR_REVISION ○ × × ○
OS ○ × × ○
COMSPEC ○ × × ○
HOMEDRIVE × × ○ ○
HOMEPATH × × ○ ○
PATH ○ × × ○
PATHEXT ○ × × ○
PROMPT × × × ○
SYSTEMDRIVE × × × ○
SYSTEMROOT × × × ○
WINDIR ○ × × ○
TEMP × ○ × ○
TMP × ○ × ○

環境変数の種類と利用できる変数(○=利用可、×=利用不可)


432 名前:名無し~3.EXE:2007/02/09(金) 12:21:51 ID:Z70kHm//
で?

433 名前:名無し~3.EXE:2007/02/09(金) 16:47:48 ID:/+8ALF64
コピペばかりで何が言いたいやら。

434 名前:名無し~3.EXE:2007/02/11(日) 00:58:40 ID:XFBIDHB0
おいらみたいなスクリプトをちょっといじるだけの人間には逆にありがたいが・・
検索してもちゃんとわかりやすく解説してるサイトとかなんか見かけないし(;´д`)
WSHのドキュメントには>>431みたいなこれが使える使えないの表とよく分からんコメントがちょろっとしかないし

435 名前:名無し~3.EXE:2007/02/11(日) 12:30:23 ID:tgvQIzzh
検索の能力が無いんじゃないか?

http://www.microsoft.com/japan/technet/scriptcenter/default.mspx

436 名前:名無し~3.EXE:2007/02/11(日) 14:17:35 ID:83xaTx2C
おせーてください。
var A = new Date(); ってやると
DateオブジェクトのインスタンスへのポインタがAに格納されるのかなと
思ってるんです。
だからもう一回
A = new Date(); をやると
新しいDateオブジェクトのポインタがAに入りますよね。
ということは1回目のDateオブジェクトの確保されたメモリの開放は
されてないんじゃないの?と思ったわけです。
メモリの開放はする必要はないのでしょうか? そもそも認識誤り?
ループで数万回newを実行するのが怖い・・。

437 名前:名無し~3.EXE:2007/02/11(日) 15:10:40 ID:XTg9OO+A
>>436
やってみれ

438 名前:名無し~3.EXE:2007/02/11(日) 15:41:54 ID:jfeZcFaS
>>435
そんな入り口じゃなくてSystemとUserとVolatileとProcessの違いを書いてるところを直接貼れですぅ
それかおまいがさっさとSystemとUserとVolatileとProcessの違いを「素人に毛が生えた程度のヤツにも」「わかりやすく」教えやがれですぅ

439 名前:名無し~3.EXE:2007/02/11(日) 15:58:54 ID:83xaTx2C
>>437
やってるんですよ、でリソースエラーで落ちてるんで
コードを見直しすと
もしかしてこのせいではと思ってるんです。
MSのサイトみてもdestroyメソッドなんてないし・・・

440 名前:そのまま System User Volatile Process でググレ、カス。:2007/02/11(日) 16:29:15 ID:tgvQIzzh
>>438
ググルこともできない奴は、「 あ き ら め れ 」

441 名前:名無し~3.EXE:2007/02/11(日) 22:42:10 ID:gLg6x3i4
>>436
参照が外れた時点で自動的に解放されるので大丈夫。

while (true) {
  var A = new Date();
}
とか実行してみればわかるけど、メモリ使用量は増えずに一定。

ただし、
var A = [], i = 0;
while (true) {
  A[i++] = new Date();
}
とかやったら、いつまで経ってもオブジェクトは解放されず、
メモリ使用量はガンガン増える。

442 名前:名無し~3.EXE:2007/02/11(日) 23:18:15 ID:GhIBrlc6
>>436
GCは自動
強制的にnull代入したり、deleteする必要があるのはまれ

443 名前:名無し~3.EXE:2007/02/12(月) 02:04:02 ID:3LVpBfdW
なんでここで GC の話がでてくるんだろうか...。

444 名前:名無し~3.EXE:2007/02/12(月) 02:08:09 ID:QgYwe6Xo
>>439
HTAでかけるならHTAで書いてみてみ。
実行速度云々のダイアログが出るなら何か間違ってるから。

445 名前:436:2007/02/12(月) 08:05:03 ID:731Di+ID
いやー、皆様ありがとうございます。
441さんのやり方でテストもしてみて確かに増えないですよね。
参照がはずれると自動開放ということで安心しました。
ということは、他の部分で落ちているということですので
444さんの教えどおりHTAで書いて試してみます。
助かります!

446 名前:名無し~3.EXE:2007/02/12(月) 11:53:33 ID:9qzGp9MR
>>443
勉強が足りない

447 名前:名無し~3.EXE:2007/02/12(月) 12:00:38 ID:0DSgfs+L
>>443
参照されていないオブジェクトのメモリを回収するのは
GCのお仕事だからだよ。

448 名前:名無し~3.EXE:2007/02/12(月) 12:03:44 ID:gVWGPkUz
GC を任天堂のゲーム機だと思ってしまった、とか

449 名前:名無し~3.EXE:2007/02/12(月) 12:04:57 ID:QgYwe6Xo
がべぃじこれくたー

450 名前:名無し~3.EXE:2007/02/12(月) 17:24:26 ID:Zi22y/xv
WSH、得意なのはバッチ代わり?
ちゃんとしたアプリは作れない?
んなことなくてVBで作れるようなものはたいがい作れる?
GAMEとかシューティングのようなものとか。

451 名前:名無し~3.EXE:2007/02/12(月) 17:41:02 ID:gVWGPkUz
まあ止めといた方が良いだろう

452 名前:名無し~3.EXE:2007/02/12(月) 17:56:40 ID:Zi22y/xv
ぶっちゃけ、これでGAMEとかRPGとか作れるのかなあと。

453 名前:名無し~3.EXE:2007/02/12(月) 18:02:05 ID:Zi22y/xv
>>451
レスありがとう。更新しなくて書いたのですれ違いすいません
これってある意味無料だから、修得したら便利かなって。
GAMEが作れるなら、シューティングとかRPGが作れるなら、たいがいのものは
作れるだろうと思ったんですよ。
GAMEにかぎらず、ちょっと目立つようにJPGを重ねたり動かしたりとかいうのは
良くあるでしょうから。

やめといたほうがいいんですね 有り難う御座いました

454 名前:名無し~3.EXE:2007/02/12(月) 18:06:21 ID:hmPAvRl0
>>450
jsやvbsなどのスクリプト言語でGUIツール使いたいならWSHではなくHTAの方がいいよ。
「GAMEとかシューティングのようなもの」というのがどの程度のものを想定してるのか知らないが
HTAならスキル次第でそこそこのGUIツールが作れる。WSHでもIEのインスタンス作ればどうにかなるけどね。

455 名前:名無し~3.EXE:2007/02/12(月) 18:09:35 ID:9qzGp9MR
>>453
できるけどEXEのほうが高速かつ無難
玄人じゃないと高速なゲームを作るのは難しい
JavaScript製のブラウザゲームがどの程度、同内容のEXEのゲームと張り合えているのか考えるとよろし

456 名前:名無し~3.EXE:2007/02/12(月) 18:19:38 ID:gVWGPkUz
VS すら無料の時代だぜ?

457 名前:名無し~3.EXE:2007/02/12(月) 19:25:32 ID:3LVpBfdW
>>447
論点はそこじゃないだろ。

しょぼい知識を披露したかったのか? (w

458 名前:名無し~3.EXE:2007/02/12(月) 19:36:20 ID:WOrUc4U6
ろっ、ろんてんはどこなの〜〜??

459 名前:名無し~3.EXE:2007/02/12(月) 21:20:57 ID:PkhDhK5r
オレ論点 w

460 名前:名無し~3.EXE:2007/02/12(月) 21:28:27 ID:QgYwe6Xo
ガベージコレクションは自動。って書いてりゃ良かったのだろう。
>>441と本筋は同じだすね。がべーじこれくたーってのを説明にまじぇただけで

461 名前:名無し~3.EXE:2007/02/13(火) 02:30:05 ID:Ep5PwYrj
意外と知られていないが、Microsoft JScript には
undocumented な CollectGarbage() なる関数が存在する。

ただ、よっぽどのことでもない限り、使用すべきではないでしょう。
(通常、生涯使う機会がないと思うけど)

http://support.microsoft.com/kb/164494
http://support.microsoft.com/kb/266088/EN-US/

462 名前:名無し~3.EXE:2007/02/13(火) 02:36:55 ID:Ep5PwYrj
> 関数

メソッドですた。

463 名前:名無し~3.EXE:2007/02/13(火) 03:57:12 ID:3QRyx/IL
なんかJavaScriptでFPS作るデモがあったような気がするが

464 名前:名無し~3.EXE:2007/02/13(火) 10:24:15 ID:h83QHOwZ
>>454
>>455
レスありがとう!
PDAのスマートフォンであるX01HTやシグマリ3やW-ZERO3で
動くWSH方式のNSBASICというのがあるんですよ。これがほとんどWSHと
文法も同じ。だからWSHを覚えようかなあと。WindowsCE上でも開発できるし。
GAMEを作るにしても作るレベルは、昔MSXで作っていたレベルです。出来れば
当時は線画で3DRPGやシューティングを作っていましたが、これをRPGなら面画で3D表示
できればいいなあと。
市販するとかシェアウエアレベルのものなんて求めていないですから、
当時のBASICなみに気軽にサンデープログラミング出来るのかなあとWSHが。

その程度のものなら出来るというのであれば、WSHアマサンデープログラマーの仲間入り
したいんですが。長々とすいません。

465 名前:名無し~3.EXE:2007/02/13(火) 10:25:52 ID:h83QHOwZ
ぐぐってみたんですが、WSHの入門サイトは引っかかったんですが
作った作品のスクリーンショットを公開してるサイトがめっからなくて。
だからWSHがどのくらいの目安を持っているのか、分からなかったんですよ

466 名前:名無し~3.EXE:2007/02/13(火) 12:32:37 ID:XbSpjXDZ
そりゃWSHのGUIってメッセージボックス程度しかないから
スクリーンショットを公開してるとこはないだろうね。

467 名前:名無し~3.EXE:2007/02/13(火) 13:40:11 ID:RyIkaJG+
メッセージボックスで何か作れる?

468 名前:名無し~3.EXE:2007/02/13(火) 14:43:18 ID:7IiMzH02
「はい」の時に[いいえ]ボタンを、「いいえ」の時に[はい]ボタンを押す、
メッセージボックスによる反射神経ゲーム。


var max = 10; // 回数。
var objWSHShell = WScript.CreateObject("WScript.Shell");
var arr = new Array("はい", "いいえ");
var answer, rnd, i;
var time = (new Date()).getTime();
for (i = 0; i < max; i++) {
    rnd = (Math.random() + "").substr(2, 1) % 2;
    answer = objWSHShell.PopUp(arr[rnd], 0, "[ はい / いいえ ] 反射神経測定", 36);
    if (rnd + answer != 7) break; // お手付きにつきゲーム終了。
}
if (i == max) { // 全問正解。
    WScript.Echo("全問正解!\n\n掛かった時間: " + ((new Date()).getTime() - time) / 1000 + "秒");
} else { // お手付き。
    WScript.Echo("お手付き!\n\n成功回数: " + i);
}

469 名前:名無し~3.EXE:2007/02/13(火) 16:34:20 ID:RyIkaJG+
>>468
4.469でした

470 名前:名無し~3.EXE:2007/02/13(火) 20:28:04 ID:OHI0QKKv
なにげに良展開あげ


471 名前:名無し~3.EXE:2007/02/13(火) 22:00:53 ID:RyIkaJG+
「3 < 7-5」みたいな式が正しいかを答える


var max = 5;
var WshShell = WScript.CreateObject("WScript.Shell");
var getX = [function () {return String(Math.floor(Math.random()*9)+1);},
function () {return this[0]()+(Math.floor(Math.random()*2) ? " + " : " - ")+this[0]();}];
do {
var time = new Date().getTime();
for (i=0; i<max; i++) {
var question = getX[Number(i>3)]()+" < "+getX[Number(i>1)]();
var answer = WshShell.PopUp("この式は正しい?\n\n"+question, 0, "不等式", 36);
if (answer == 7 == eval(question)) break;
}
} while (WshShell.PopUp("( "+i+" / "+max+" ) "+(i == max ? "全問正解!" : "お手付き!")
+"\n経過時間: "+((new Date().getTime()-time)/1000)+"\n\nまだ続ける?", 0, "Result", 36) == 6);


472 名前:名無し~3.EXE:2007/02/14(水) 20:44:58 ID:R5pO5sAJ
ダブルクォーテーションを文字としてコマンドライン引数に渡し、
 "ARG ARG"
となることを期待して
 cscript example.vbs "\"ARG ARG\""
と実行したのですが、
WScript.Arguments(0)が勝手にダブルクォーテーションを削除しているのか、
 ARG ARG
としてしか受け取れません。
もうよくわからず、
 cscript example.vbs "\"\"ARG ARG\"\""
などとして二重にしてみたりしたのですが当然だめでした。

ものすごく初歩的なことな気がするのですが、検索しても解決できません…。
どなたかお教えいただけないでしょうか。

473 名前:名無し~3.EXE:2007/02/14(水) 20:49:03 ID:eKYTLQYh
^

474 名前:名無し~3.EXE:2007/02/14(水) 20:56:11 ID:R5pO5sAJ
>>473
おお、素早い返事ありがとうございます。
最初はキャレットでエスケープしたのですがだめでした。

また、結果の表示を間違えて書いてしまいました。
詳しく状況を説明すると、
 WScript.Echo WScript.Argument(0)
 WScript.Quit()
という、example.vbsを作成し、コマンドラインから
 cscript example.vbs "\"ARG ARG\""
を実行すると「\ARG」と表示されます。
また、この円マークをキャレットに変更すると「^ARG」と表示されます。

単純にダブルクォーテーションが削除されて、空白で区切られてしまっているように見えます。


475 名前:名無し~3.EXE:2007/02/14(水) 21:45:33 ID:BFGnaiNb
プレフィックスエスケープではなくエンコードエスケープすれば良いのでは?
可逆で有ればなんでも良いわけだが、全体変換ではなく部分変換なら実態参照がいいかも。単純にやるなら
 実行:cscript example.vbs ""ARG ARG""
 変換:WScript.Echo Replace(WScript.Arguments(0), """, """")
更に"を&"でエスケープ出来るようにするなら、組み込み関数のReplaceではなく
正規表現で「s/(?<!&)"/"/g」だな。但しVBScript.RegExpでは後読み「(?<!…)」が使えないので
VBScript.RegExpでやるとすれば「s/(^|[^&])"/$1"/g」って感じかな。
引数の中に'が使われないとするなら
 実行:cscript example.vbs "''ARG ARG''"
 変換:WScript.Echo Replace(WScript.Arguments(0), "''", """")
でもいいし。

ただ、WshShellのRunなどで使うだけなら、普通に"ARG ARG"を渡して、
スペースが含まれてたら""で囲う処理を用意した方が良いと思うけど。

476 名前:名無し~3.EXE:2007/02/14(水) 22:12:22 ID:R5pO5sAJ
>>475
おおなるほど、別の文字を変換するのですか。
ついダブルクォーテーションを渡すことばかり考えてしまいました。
実体参照では見通しが悪りそうなので、
シングルクォーテーションを重ねる方法を頂きたいと思います。

単純なショートカットを作成するスクリプトを作りたかったのですが、
ショートカット先へ渡すコマンドライン引数にスペースが含まれることがあるので、
それをダブルクォーテーションで囲みたかったため、この文字をそのまま出力する必要がありました。

おかげさまでなんとかなりそうです。
どうもありがとうございました。助かりました。

477 名前:名無し~3.EXE:2007/02/15(木) 23:32:27 ID:wVnZTfYP
>>463
JavaScriptでウィンドウズGUIを再現してるのを見たことはあるな。
まあよっぽどJavaScriptでやるメリットが無い限りはわざわざ選ぶモノでもないけど

478 名前:名無し~3.EXE:2007/02/19(月) 03:18:56 ID:2jm0n8Yc
質問です。VBSで標準出力に文字列を出力したいのですが、
WScript.StdOut.Write "hoge"
で「ハンドルが無効です」とエラーが出ます。
また WScript.Echo も標準出力にならず、ウィンドウに文字列が表示されます
どうすれば標準出力に出力できるのでしょうか?

479 名前:名無し~3.EXE:2007/02/19(月) 03:53:42 ID:Ea8qR7RP
>478
wscript.exeではなくcscript.exeでvbsファイルを実行する。

480 名前:478:2007/02/19(月) 03:55:55 ID:2jm0n8Yc
>>479
上手くいきました。
どうもありがとうございます。

481 名前:名無し~3.EXE:2007/02/19(月) 23:36:26 ID:J+D6xycq
【正社員募集】ドワンゴ大卒未満限定で技術者採用【学歴重視】
http://pc10.2ch.net/test/read.cgi/prog/1171868043/79
で、「windows script host(Jscript) でがんばっている俺は却下ですか?」
ってカキコしても誰にも相手にされんかったわ。

482 名前:名無し~3.EXE:2007/02/23(金) 11:26:09 ID:GFWOF5op
IPアドレスやホスト名リストを読み込んで、nslookupを実行し
その結果を表示させながら、ファイルに書き出すようにしたいのですが
まったく検討がつかないので方法をお教えください。


483 名前:名無し~3.EXE:2007/02/23(金) 11:48:25 ID:zLQ4KMwL
>>482
nslookupというものを知ってるなら、あとはWSHのヘルプ(Windows Script 5.6 ドキュメント)を読めば解ることです。
ヘルプ読んでも解らないと言うなら、日本語を理解できないと言うことだからここで日本語の説明をしても無駄だろうし、
コード書いてくれなんてのはスレ違いなので、あとは自分で頑張りましょう。

484 名前:名無し~3.EXE:2007/02/23(金) 12:06:25 ID:soUk2p3d
>>483
うつ病に頑張れは禁句


485 名前:名無し~3.EXE:2007/02/23(金) 13:58:27 ID:0m+mdoh4
>>483
日本語が理解できない場合はそのレスも理解できないわけだが

486 名前:名無し~3.EXE:2007/02/24(土) 15:06:35 ID:wTaW1+v2
>>482
プログラム書けないやつが本も何も読まず、wshを使えばできると
聞きかじり、2chで人に書いてもらおうなんてあさましいな・・
サイテー


487 名前:名無し~3.EXE:2007/02/24(土) 21:44:51 ID:M2W6NVuE
>>482
詰まっている段階が分かりにくいのですが、ここが参考になりませんか。
http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_03.html


#煽るだけの奴は消えろ。
#見苦しい。

488 名前:名無し~3.EXE:2007/02/25(日) 00:20:31 ID:EQ4Q9T2k
#のコメントで後書きする人って何なの

489 名前:名無し~3.EXE:2007/02/25(日) 05:58:51 ID:pI2XMlMi
煽るだけの奴とか言うけど、

例え質問に答えてもフレームを混ぜる奴は同類です。

490 名前:名無し~3.EXE:2007/02/25(日) 15:09:54 ID:xOojygct
>>488
/.er

491 名前:名無し~3.EXE:2007/02/25(日) 17:49:13 ID:TzBAKqFp
スラドなんかよりもはるかに古い文化ですけど

492 名前:名無し~3.EXE:2007/02/25(日) 20:16:34 ID:Bn9vmEGX
おもしろおかしい


493 名前:名無し~3.EXE:2007/02/25(日) 22:09:24 ID:3p3uGprt
/. はたまにのぞくけど、独自の文化(オフトピなのでACとか)が育ってて
2chやってると違和感があるんだよなー

# オフトピなのでAC

494 名前:名無し~3.EXE:2007/02/25(日) 22:16:35 ID:d5QT1Xvl
しかし何故コメントが # 開始なんだろう?
WSH と言うとやはりメインは VBS か JScript。
' か // が基本だと思うのだが。PerlScript もあるけどさ。

495 名前:名無し~3.EXE:2007/02/25(日) 22:47:15 ID:+XEJRyC1
/*

>>496以降のレスは全てコメントアウトされる。ざまぁカンカンw

496 名前:名無し~3.EXE:2007/02/25(日) 22:48:21 ID:H3CLTB50
*/

再開↓

497 名前:名無し~3.EXE:2007/02/25(日) 22:51:57 ID:V5hQEo4p
×>>496以降のレスは全てコメントアウトされる。
>>496以降、最初の */ までのレスは全てコメントアウトされる。
だな

>>496


498 名前:名無し~3.EXE:2007/02/25(日) 23:43:00 ID:H3CLTB50
>>495だけが見事にコメントアウトされた件

499 名前:名無し~3.EXE:2007/02/26(月) 00:07:50 ID:ybuIjVJ6
ワラタ

500 名前:名無し~3.EXE:2007/03/01(木) 08:41:46 ID:Snwf3Oai


501 名前:名無し~3.EXE:2007/03/02(金) 20:17:06 ID:imQofTdk
こういう流れになると絶対過疎るなw

502 名前:名無し~3.EXE:2007/03/05(月) 22:13:49 ID:pkRZSKvF
以下のダイアログで

自動的に送信しない

を選びたいのですが、どうすればいいのでしょうか?

-------------------------------
問題が発生したため、**を終了します。ご不便をおかけして申し訳ありません。


この問題をMicrosoftに報告してください



503 名前:名無し~3.EXE:2007/03/05(月) 22:35:25 ID:70huv0vk
俺ならダイアログを出ないようにするな。

504 名前:名無し~3.EXE:2007/03/06(火) 19:21:09 ID:jTn4SU/3
JavaScriptスレにて、

40 :Name_Not_Found :sage :2007/03/06(火) 18:53:49 ID:???
指定したURLからhtmlソースを取得して、
その中から指定した文字列を含むlength個の文字列を抽出し
取得順に配列str[i]に格納しWScript.Echoで出力するプログラムを
今日中に作らないと卒業できなくなるんですが
友達いないボクには無理です神様タスケテクダサイ

というのが来たから誘導しましたwwwよろしくwww

505 名前:名無し~3.EXE:2007/03/06(火) 19:26:41 ID:7bsQ1z2v
知るかボケ

506 名前:名無し~3.EXE:2007/03/06(火) 21:28:29 ID:rVrCV3Y3
そんなんで卒業できるなんてどこの中学だよ

507 名前:名無し~3.EXE:2007/03/07(水) 00:18:40 ID:vyb0FCD/
>>506
卒業できなくなるとは書いているが、卒業できるとは書いていない。

508 名前:名無し~3.EXE:2007/03/07(水) 00:27:14 ID:mpEBXn45
つまり必要条件であって十分条件ではないと

509 名前:名無し~3.EXE:2007/03/07(水) 01:24:08 ID:Dw1HeTg9
今ieで見ているページを、そのアドレスをfirefoxに送って別に起動するようなieのブックマークレットを誰か作ってください。
自分で考えるのが億劫になりました。 あ゙ーー、もちろん普段はieのスクリプトは切ってます。よろです。



510 名前:名無し~3.EXE:2007/03/07(水) 01:29:00 ID:mpEBXn45
そんな事がブックマークレットでできたら、とっくにウィルス漬けです。

511 名前:名無し~3.EXE:2007/03/07(水) 02:07:24 ID:Dw1HeTg9
えーできねの。
じゃ、ツールボタンで。

512 名前:名無し~3.EXE:2007/03/07(水) 02:09:30 ID:kgCU6w5M
http://www.google.com/search?client=opera&rls=ja&q=IE+FIREFOX%E3%81%A7%E9%96%8B%E3%81%8F&sourceid=opera&ie=utf-8&oe=utf-8

513 名前:名無し~3.EXE:2007/03/07(水) 03:06:44 ID:Dw1HeTg9
コンテキストメニューかツールバー経由しかない。
しかし、これ以上入れる場所の余裕が無いんぜ。


514 名前:名無し~3.EXE:2007/03/07(水) 11:41:39 ID:pUN54nVl
>>502
ダイアログ出さない設定あるよ


515 名前:名無し~3.EXE:2007/03/07(水) 19:35:29 ID:duOZYfea
>>509
他人に教えるのが億劫になりました。

516 名前:名無し~3.EXE:2007/03/15(木) 16:34:37 ID:WU5+3R9H
初めまして 以下のことはWSHで出来るでしょうか?

とある固定ディレクトリにあるファイルを選ぶダイアログを出す
このときに、相手先(テキストファイルから読み出す)とコメント入力をする
選択されたファイルをLHAに渡し、圧縮作業が行われ
任意のルールで圧縮名をつけて、いつも決まったところに入れる

決まったところに入った圧縮ファイルは、先ほど決めた
相手先にいつも決まったテンプレートとコメントをつけて
添付ファイルとして送り出す。

出来るか出来ないか教えてくださいまし。お時間をくださいませ
よろしくお願いします。こういうのはWSHのはんちゅうを超えているでしょうか?


517 名前:名無し~3.EXE:2007/03/15(木) 16:49:19 ID:lKniy2Bp
>とある固定ディレクトリにあるファイルを選ぶダイアログを出す
これがファイル選択ダイアログならこの時点で無理。

518 名前:名無し~3.EXE:2007/03/15(木) 19:52:36 ID:gd0AF5kn
「WSHのはんちゅう」が

スクリプトエンジン: VBScript v5.5 / JScript v5.5
スクリプトランライム: Scripting.Dictionary / Scripting.FileSystemObject
Windows Script Host 標準オブジェクト各種

だけなら無理っぽい。

外部プログラムやcomをガンガン使っていいなら話は別だが。

519 名前:名無し~3.EXE:2007/03/15(木) 20:11:54 ID:WU5+3R9H
>>517
ええ、ファイル選択ダイアログのつもりでした。仕事は建築でして
選択されたDXFファイルを自動的にルールに従い圧縮ファイルにして
それをOUTLOOKを起動して、添付ファイルとして、最初に指定した相手に送る直前まで
やりたかったんですよ。送信ボタンを押すのみのところぐらいまで。
ちゅうのは、うちの会社、けっこう年寄りの建築業者(60歳前後が最も多い)が多く、CADは覚えたけどWindowsは
とてもじゃないが覚えきれない人が多数いまして。手順をメモに残しても恐ろしいようです。
毎回DXFアウトからあとよろしくと呼ばれて自分の仕事が止まるのでこの辺なんとかならないかなあと。

>>518
レスありがとうございます。コレガできるならWSHに手をつけようかな
と思っていましたが、ちと残念です。自分的にはWSHってのはマクロスクリプト感覚でしたので
できそうかな?と思っていましたが。

社内で外部から派遣されてる人のPCにはCADしか入れられなくて。この間ようやくLHAとDWというファイラーが
入れるように出来たんですよね。
しかも目の前でこんな動きが出来るんですよと説明して許可書を取ってようやく。

今回のこれはCADに必要だということで作ったなら入れてもいいとようやく許可をもらったんですよ。
自分の仕事に差し支えるからと言ったら通りやすくなったみたいですが

長々と書いてすいません


520 名前:名無し~3.EXE:2007/03/15(木) 20:14:27 ID:lKniy2Bp
HTAなら頑張ればできるかもしれない。

521 名前:名無し~3.EXE:2007/03/15(木) 20:16:14 ID:WU5+3R9H
OUTLOOKは入ってるXPマシンです。

めちゃくちゃ久しぶりにVB5を取り出すかあ(;´Д`) 6年ぶりぐらい?
まずVB5がXPで動くかっちゅうところから調べないと。

正直言いますとWSHは、インタプリンタ型のVBなのかもなあと
思っていました。

522 名前:名無し~3.EXE:2007/03/15(木) 20:45:28 ID:N9Eg5QZi
インタプリンタw

523 名前:名無し~3.EXE:2007/03/15(木) 20:48:07 ID:jNvzAAvj
> めちゃくちゃ久しぶりにVB5を取り出すかあ
なんでここでVB5が出てくるの?
ソフトを勝手に入れられないんじゃ、VB5を引っ張り出しても意味無いし
VB5で作ったアプリを入れられるなら、ActiveXコンポーネントを入れることで
WSHでも解決できる問題でしょ。

524 名前:名無し~3.EXE:2007/03/15(木) 21:37:43 ID:2Y/tNLpI
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/jan05/hey0128.mspx
Hey, Scripting Guy!
ファイルを選択するためのダイアログ ボックスを表示する方法はありますか

525 名前:名無し~3.EXE:2007/03/15(木) 22:51:43 ID:mA1C3Gzd
outlookが入っているならVBAでできるだろうに。
なくても標準的に入ってるCDO.Message使ってできるんじゃないの。

526 名前:名無し~3.EXE:2007/03/15(木) 23:19:34 ID:A7maWzfR
OutlookかOutlook Expressであるフォルダのメール全てに保存されている添付
ファイルを一気にどこかに保存するスクリプトって書けますか?

527 名前:名無し~3.EXE:2007/03/15(木) 23:42:19 ID:9FGCV+mK
>>524
どうせならこっち紹介しようぜ
ttp://www.vector.co.jp/soft/win95/util/se398568.html

528 名前:名無し~3.EXE:2007/03/17(土) 14:44:09 ID:K8WNJf+j
Y岡か。懐かしいな。今頃どこでどうしてるやら。

529 名前:名無し~3.EXE:2007/03/17(土) 14:46:30 ID:K8WNJf+j
たしかExpressは無理だったような気が。

530 名前:名無し~3.EXE:2007/03/20(火) 01:22:03 ID:b9ZVd0cO
ADOのStreamを使って
ふつーのファイルを開こうと思ったんですが

オブジェクト作ってOpenしてなんとかfileloadして
さあRead(1)ってやったら (バイナリファイルを読みたいの)

「お前に食わせる担麺は許可がありません」

とか(文面はうろおぼえ)言ってエラーになったなdけど
なんでですかね?

Widows2kSP4, 普通のテキストファイルの読み出しのやつは
うまくいってます

531 名前:名無し~3.EXE:2007/03/20(火) 01:25:56 ID:kDerUjCx
お前に食わせるタンメンがないんじゃないですかね

532 名前:名無し~3.EXE:2007/03/23(金) 18:16:44 ID:+CYmGPKo
携帯から失礼します。
wshのプロ達に質問があります。
vbsでPOSTかGETを使って、文字列をWEBサーバに送信したいのですが、どうやれば良いのでしょうか?

533 名前:名無し~3.EXE:2007/03/23(金) 18:22:58 ID:G1TmW4yG
>>532
Microsoft.XMLHTTP とか MSXML2.XMLHTTP とか使えばいいよ。
使い方はここのログでも何度も出てきてるし、ググれば解説もサンプルもいっぱい転がってるから自分で調べよう。

534 名前:名無し~3.EXE:2007/03/23(金) 22:47:00 ID:cFMNGSpo
ttp://www.uploda.org/uporg744079.jpg.html
上の画像のダイアログにユーザー名とパスワードを入力して
OKボタンを押すと動作をしたいのですが、アドバイスをお願いできませんでしょうか?
VBSを使っていて、他の部分は完成しているのですが、ここの部分だけがどうしても解りません。

535 名前:名無し~3.EXE:2007/03/23(金) 23:13:34 ID:byjtAjTE
セキュリティがそんなに重要じゃないなら
http://username:password@192.168.11.1/
を開くようにする

536 名前:名無し~3.EXE:2007/03/23(金) 23:20:01 ID:cFMNGSpo
>>535
ありがとうございます。
入力はそういうやり方もあるのですね。
その後のOKボタンを押す方法はないのでしょうか?

537 名前:名無し~3.EXE:2007/03/23(金) 23:22:55 ID:oZiRW3es
WshNetworkについて教えてください。

現在、webサーバーのJscriptを使用して、
クライアントのコンピュータ名を取得するプログラムがあります。
そのプログラム自体は、下記のとおりとなります。
エラーは2行目でおきているようです。

var WshNetwork;
WshNetwork = new AcriveXObject("Wscript.Network");
Com_Name = WshNetwork.ComputerName;

実は、クライアントの権限が今までドメインのadministratorであったものを、
ドメインのDomain Userとしました。
そのDomain Userには、クライアントのadministrator権限を追加してあります。
多分、ActiveXかWshのcomが読めなくなっているのではないかと思うのですが、
どこを調査していいのかわかりません。

使用しているwebサーバーはWindows 2000server、
クライアントはWindows 2000 sp3となります。

どんな小さなことでもいいですので、ご指導いただけないでしょうか?
よろしくお願いします。

538 名前:名無し~3.EXE:2007/03/24(土) 00:32:32 ID:jifbJ56b
>>536
>535をやればわかるさ

539 名前:名無し~3.EXE:2007/03/24(土) 00:36:34 ID:jjWZ4P7E
>>538
やったんですけど、OK押さないと進みません・・・。

540 名前:名無し~3.EXE:2007/03/24(土) 00:57:10 ID:jjWZ4P7E
PostMessage使えばいいのかもしれないのかな

541 名前:名無し~3.EXE:2007/03/24(土) 01:03:19 ID:jjWZ4P7E
すみません、SendKeys使うことで解決しました。

542 名前:名無し~3.EXE:2007/03/24(土) 17:38:05 ID:YkL2wEfh
CreateObject("Shell.Application").NameSpace("D:\").Items.Item.InvokeVerb "取り出し(&J)"

Win98 でこれを動かそうとすると「メモリが不足しています」とエラーが
出て上手く行きませんでした orz XPだと動いたのですけれども、Win98で
このvbsを動かすのは難しいでしょうか?

543 名前:名無し~3.EXE:2007/03/24(土) 17:55:43 ID:ZHR7dm/d
俺はWSHなんて使ったことない中学生だけど最新のWSHにうpだてすればいいんじゃないの?
ttp://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=0A8A18F6-249C-4A72-BFCF-FC6AF26DC390

544 名前:名無し~3.EXE:2007/03/24(土) 18:31:13 ID:5S0it1X0
>>537
エラー書けよ

>エラーは2行目でおきているようです。
3行目だろ?

545 名前:名無し~3.EXE:2007/03/24(土) 18:57:09 ID:ZyDgRrWX
>>544
うるせーよカス

546 名前:名無し~3.EXE:2007/03/24(土) 18:58:49 ID:ZyDgRrWX
>>544
カス

547 名前:名無し~3.EXE:2007/03/24(土) 20:41:59 ID:HRUO8j8b
>>542
Items.item.やめて
NameSpace(17).Items().Item("D:\")つかえ

548 名前:名無し~3.EXE:2007/03/25(日) 00:01:03 ID:HRUO8j8b
>>530
Typeをバイナリにしたんかい?


549 名前:名無し~3.EXE:2007/03/25(日) 01:03:04 ID:eJl21viZ
>>548
「その女が使っていたのはこんな言語じゃねえのか?」
そば売りがエディタをぺろりとなでると、とたんに問題のコードがJavaScriptに。

「うわっ!」
泡を食ったPGは何もかも放り投げて一目散に逃げていきました。

550 名前:537:2007/03/25(日) 11:13:07 ID:qiQp0b59
いや、エラーは2行目です。
行の前にメッセージボックスだすよういしたところ、
2行目の前のはでて3行目のはでませんでしたから。
エラーは「object error」とでます。

551 名前:名無し~3.EXE:2007/03/25(日) 18:19:59 ID:Tz2Q6Jgg
エラーメッセージをちゃんと書けよ。

俺の環境だと、>>537 を実行すると。

test.js(2, 1) Microsoft JScript 実行時エラー: 'AcriveXObject' は宣言されていません。

になるぞ。

て言うか、このメッセージ見て対応方法がわからんのなら、素直にあきらめろよ。

552 名前:名無し~3.EXE:2007/03/25(日) 19:09:11 ID:JJftShQn
>>537
Ac「r」iveXObjectになっとるがな(´・ω・`)

553 名前:537:2007/03/25(日) 19:19:34 ID:qiQp0b59
すいません。web系はほとんどわからずにこのプログラムいじらされてるんです…
他にどのような内容をかけばいいのでしょうか?
エラーメッセージはtry catchでひろったExceptionの内容ぐらいしかわかりません。

あと、2行目は下記間違えておりました。
正しくは「WshNetwork = ActiveXObject("WScript.Network");」です。

ど素人の質問だということは重々承知しております。
なんとかお力をおかしねがえないでしょうか?

554 名前:理解もせずに try〜catch なんか使わなきゃいいのに...。:2007/03/25(日) 19:47:56 ID:Tz2Q6Jgg
いじれと命令した奴に「すみません、僕にはできません」と言え。

555 名前:537:2007/03/25(日) 20:19:07 ID:qiQp0b59
もうその人はいないんです。>554

普通にadministrator権限なら使えるんで、文法ミスではないと思ってます。
どこかにあるwsh等にパスが通ってないか、
それにアクセス権限がついてないかだと思います。
ただ、それがどのファイルかフォルダかわからないんです…

ちなみに、try catchは前からついてたのに、エラー表示するように修正しただけです。
htmlやjavaならまだわかるんですが、wshは全然使ったことないもんで。

ご不快はわかりますが、何らかのヒントはいただけないでしょうか?

556 名前:名無し~3.EXE:2007/03/25(日) 20:43:54 ID:ImjS/GXy
> もうその人はいないんです。
だったらやらなきゃいいじゃん。
その人が居なくなったのに、やらなきゃならないってことなら
結局誰かに押しつけられてることなんだから、その誰かに言え。

実力以上のことをカッコ良くこなしてるフリをするためにここを使うな。
ということで不快だからヒントはあげない。
                            - 終了 -

557 名前:名無し~3.EXE:2007/03/25(日) 21:02:24 ID:woCthK/z
単にIEのセキュリティ設定の問題だったりして、、、
そもそも単純なWScriptが動くのかどうかを確かめたら?
WScriptってローカル(クライアント)のPCにインストールされてないと
だめだからバスが同のって関係ないっしょ。

558 名前:名無し~3.EXE:2007/03/25(日) 22:01:46 ID:Tz2Q6Jgg
> try〜catch なんか (* 使わなきゃ *) いいのに...。

559 名前:名無し~3.EXE:2007/03/25(日) 22:38:31 ID:RtcpckhP
切り捨てはfixだけど、切り上げって関数ないよな?

560 名前:Adrienne ◆HI8ebVe8lo :2007/03/25(日) 22:50:53 ID:MGTeqA1Y
>>559
JScriptならMath.ceil()が切り上げだけどね。

561 名前:名無し~3.EXE:2007/03/25(日) 22:52:25 ID:rws3m5kX
取りあえず負の数にして Int して正の数にという手を思いついた
でもまあ JScriptor には Math.ceil/floor があるからどうでもいいや

562 名前:559:2007/03/25(日) 23:13:50 ID:RtcpckhP
0.9足してintでいいみたいです。

563 名前:名無し~3.EXE:2007/03/25(日) 23:16:54 ID:+IWPGL+l
すみません質問です。
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile "C:\test\test.txt", "D:\test\"
みたいな感じで単純にファイルをコピーするスクリプトなのですが
C:\Program Files\NetTransport\username' NetTransport.database
と言うファイルのコピーに失敗します(ファイル名に ' が含まれるとダメ)
コピーさせる方法はありますでしょうか

564 名前:名無し~3.EXE:2007/03/25(日) 23:28:46 ID:rws3m5kX
>>562
いや良くないだろ。
Int(0.05 + 0.9) だと 0 になるぜ。

>>563
ふつーにできたけどなぁ。
単に読み込み禁止でロックされてただけじゃね?

565 名前:名無し~3.EXE:2007/03/25(日) 23:37:08 ID:+IWPGL+l
>>564
レスどうもです
今やり直したら確かに普通に成功しました
仰るとおりロックされてただけかもしれません
スレ汚し失礼しました

566 名前:名無し~3.EXE:2007/03/25(日) 23:44:09 ID:ImjS/GXy
>>564
扱う数値が少数第一位精度なら問題ないよ。
きっと>>559が扱うのは少数第一位精度なんだろう。
全ての条件で>>562のやり方が正しいとは言えないけど
頭ごなしにダメって言うのもどうかと。

567 名前:名無し~3.EXE:2007/03/26(月) 00:23:53 ID:PEHg0u9B
あと付けで条件つけてどうのこうの言うやつって...。

568 名前:名無し~3.EXE:2007/03/26(月) 00:46:17 ID:gncrFpqS
どうしようもないよね。
先に詳しい条件書かなかった559も559だが
その条件が解ってる559自身が、その条件に合う方法を見つけられたのに
後からこういう条件ではダメだのなんだの言っても仕方なかろうに。

569 名前:名無し~3.EXE:2007/03/26(月) 03:15:27 ID:N7Ok9Hes
>>566
そういうのは後々他のスクリプトに流用してバグの温床になったりするからなぁ・・・。


570 名前:537:2007/03/26(月) 06:38:05 ID:vTpT+SIA
やらなきゃいいんならやらないし、出来ないって上司にはちゃんといってる。
でも、仕事だからそのままにはできないんだよ。
別に実力以上のことやってかっこつけたいと思わないし、
出来ないならできないままにしときたいよ。
WSHのこと質問できるところには全部質問してるんだよ…

ちょっときいてみたいんだが、仕事で「出来ない」っていえる環境って、
どこら辺りにあるんだ?そのままにできるところにいきたいよ…


571 名前:名無し~3.EXE:2007/03/26(月) 06:45:21 ID:RmbsiKtv
>>570
お前は「空を飛べ」と言われたらどうする?
また2chに「教えてください」と書き込むのか?

572 名前:名無し~3.EXE:2007/03/26(月) 06:46:32 ID:OkIlf65J
空を飛べと言われたら、空を飛ぶに決まってるじゃないか!

573 名前:名無し~3.EXE:2007/03/26(月) 07:54:27 ID:N7Ok9Hes
>>570
金出して外注に投げるという手もあるぞ。

574 名前:名無し~3.EXE:2007/03/26(月) 11:04:38 ID:4cg/SX7J


                         ハ_ハ
                 ハ_ハ    (^( ゚∀゚)^)   
               ('(゚∀゚∩    )  /
                ヽ  〈   (_ノ_ノ
                 ヽヽ_)


575 名前:名無し~3.EXE:2007/03/26(月) 11:19:21 ID:7F+Cl6xg
>>569
関数としてライブラリ化したり、コメントも入れずに使い回したりすればの話ね
少数一桁限定じゃ使いどころは少ないだろうが、内部関数として流用する場合は
その限定条件をコメントとして書いておくだけでバグの温床になるのは防げる

「汎用的に使えるようにした方がいい」というのはもっともだが、そうしてない状態を
「間違い」「バグの温床」と決めつけるのは、それ自体が間違いだ
もっと柔軟になろう

576 名前:名無し~3.EXE:2007/03/26(月) 12:06:04 ID:AD+rej51
確かに

577 名前:名無し~3.EXE:2007/03/26(月) 12:45:00 ID:R83/Lndf
- Sgn(number) * Int(-Abs(number))


578 名前:名無し~3.EXE:2007/03/26(月) 13:15:01 ID:R83/Lndf
>>553
>あと、2行目は下記間違えておりました。
>正しくは「WshNetwork = ActiveXObject("WScript.Network");」です。
それが間違い

579 名前:名無し~3.EXE:2007/03/26(月) 13:23:00 ID:tJ7Fxl2K
切り上げには切り上げ桁って要素もあるからな。
例えば0.05を1ではなく0.1に切り上げるということもある。
又は0.05を10に切り上げることだってある。
これだってまだ切り上げの中でも更に十進桁切り上げの中だけの話だし。
有る程度条件が決まってるなら、決め打ち処理するのも悪くないよ。

580 名前:名無し~3.EXE:2007/03/26(月) 22:31:40 ID:PEHg0u9B
>>570
なんでお前ができない ≡ そのままにしておく なんだ?

できる奴に代わってもらえばいいだけだろ。社内にいなければ、
>>573 の言うように外注に投げればいいだろ。

> 出来ないって上司にはちゃんといってる。

ホントか? 上司はそれに対してどう言ってるんだ?

>>579
そういうのは、10倍するなり、10で割るなりすればいいだけの話。

「扱う数値が少数第一位精度」等の入力データの条件はプログラマ
側ではどうしようもないケースも多いので、使えるケースはかなり
限られるよ。

581 名前:名無し~3.EXE:2007/03/26(月) 22:35:31 ID:72wywYVt
┐(゚〜゚)┌

582 名前:名無し~3.EXE:2007/03/27(火) 01:01:27 ID:V+GQ+2Bi
>>575
うん。それはわかる。
ただ、このスレで質問する人間がその辺考えてコメント入れるかといえばかなり疑問。
だから、なるべく汎用的な回答をするか、駄目な条件は出してやる方が親切かなと思う。

583 名前:名無し~3.EXE:2007/03/27(火) 21:19:51 ID:NPBcdEuP
なんつーか・・・どうでもいいことのバランス感覚がバロスww

584 名前:名無し~3.EXE:2007/03/29(木) 14:20:22 ID:tN2jzjyY
http://bubble5.2ch.net/test/read.cgi/mukashi/1162470958/

585 名前:名無し~3.EXE:2007/04/03(火) 07:47:55 ID:1Q99NK3W
特定のフォルダやファイルを右クリックしたときに出るポップアップを
スクリプトから表示させることって出来ないでしょうか?

586 名前:名無し~3.EXE:2007/04/03(火) 11:28:39 ID:22l3N1/7
PopupItemMenu()があるけど使えん
SelectItem()してSendKeys "+{f10}"


587 名前:名無し~3.EXE:2007/04/04(水) 05:35:39 ID:ssJ5F2b9
>>586
レスどもでした。
調べてみます。

588 名前:名無し~3.EXE:2007/04/05(木) 23:47:56 ID:9bAQcwbY
ie.DocumentからHTMLテキストを得るのには
どれを使うのがいいんでしょうか?
ie.Document.parentElement.outerHtml
を使っていたんですが、最近これだと
ちゃんと取得できないページがある事に気づきました。

Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate "http://www.nicovideo.jp/"
Do While ie.Busy Or ie.ReadyState <> 4
Loop
MsgBox ie.Document.body.parentElement.outerHtml

589 名前:名無し~3.EXE:2007/04/05(木) 23:55:50 ID:C+XbpQJO
生のソースは普通には無理だったんじゃないかな
XMLHTTP とか使った方が良い

// IPersistFile::Save なんだが、IPersistFile は IUnknown だから……。

590 名前:名無し~3.EXE:2007/04/06(金) 01:24:27 ID:qN1BBhr8
document.documentElement.outerHTML


591 名前:名無し~3.EXE:2007/04/06(金) 01:48:49 ID:qN1BBhr8
URL="http://www.nicovideo.jp/"
Path="C:\hoge.html"
Set Application=CreateObject("Excel.Application")
RC=Application.ExecuteExcel4Macro("CALL(""urlmon"",""URLDownloadToFileA"",""JJCCJJ"",0,"""&URL&""","""&Path&""",0,0)")
MsgBox RC
はどうだろ?

592 名前:名無し~3.EXE:2007/04/06(金) 02:04:55 ID:blYi0hD7
>>589 >>590 >>591
みなさんどうもありがとうございました。
とりあえず上のURLだと
>document.documentElement.outerHTML
でできるようです。
ie.Document.all.tags("html")(0).outerHtml
という頭の悪い方法も考え出し、これでもできました。
590さんありがとうございました

>>589
完全な生はやっぱ無理ですよね・・・

>IPersistFile::Save
純粋なオートメーション以外は無理ですからね・・・
でもIPersistFile::Saveでもできるんですか?
今度使ってみようかな・・・

>>591
Excelは持ってないわけですが入手の暁には
試させていただきますm(_ _)m

593 名前:名無し~3.EXE:2007/04/11(水) 02:06:10 ID:g68mpwXM
IEで表示された画像のキャッシュ(ローカルパス)を取得する方法はないでしょうか?


594 名前:名無し~3.EXE:2007/04/11(水) 11:27:29 ID:iUttHWVD
> IEで表示された
スレ違い。
実行ホストがWSH(Windows Script Host)ではなくIE(Internet Explorer)なので。
ここはVBScriptやJScriptのスレではなくWSHのスレだから。

595 名前:名無し~3.EXE:2007/04/11(水) 14:39:32 ID:4FX0lSeC
>>593
http://pc11.2ch.net/test/read.cgi/tech/1055075469/951
http://pc11.2ch.net/test/read.cgi/tech/1055075469/953
しかしマルチじゃな
http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/index.shtml

596 名前:名無し~3.EXE:2007/04/11(水) 15:06:25 ID:3IvfKlfV
>>594
WSHで起動したIEまたはすでに起動済みのIEから
強引に持ってくるという話だと思うよ。

スクリーンショットを取ってアドレスバーの画像を切り取り
表示されている文字を解析してURLを取得すればいいんじゃないか?
もしくはアドレスバーにカーソルをあわせて文字列をコピーし
クリップボードから取り出す

597 名前:名無し~3.EXE:2007/04/11(水) 15:13:22 ID:gY213RNS
>>595
レスどうもです。
言葉足らずでしたが、URLを与えてキャッシュパスを取得する、という
方法を知りたかったのです。
>マルチ
こちらで答えて頂けなかったので別の掲示板で聞いたものです。
(日時を見ていただければ分かるかと。
IEでもWSHでも、使用しているスクリプトエンジンは同じですし、こちらで聞いても
問題ないかと思ったのです。
IEのオブジェクトモデルに関する質問ともとれるのでグレーだとも思っていました。
失礼致しました。

598 名前:名無し~3.EXE:2007/04/11(水) 15:15:40 ID:gY213RNS
>>596
レスどうもでした。
上でレスしたとおり、言葉足らずでした。
失礼致しました。

599 名前:名無し~3.EXE:2007/04/11(水) 16:12:37 ID:4FX0lSeC
>>597
>こちらで答えて頂けなかったので別の掲示板で聞いたものです。
だからそれがマルチ。断ってから行くのが礼儀

>言葉足らずでしたが、URLを与えてキャッシュパスを取得する、という
>方法を知りたかったのです。
だから
|http://pc11.2ch.net/test/read.cgi/tech/1055075469/951
|http://pc11.2ch.net/test/read.cgi/tech/1055075469/953
に、Drag&Dropの代替をWSHでCOPY&PASTEしてやればよいだけ

600 名前:名無し~3.EXE:2007/04/11(水) 16:18:22 ID:4FX0lSeC
こっちで聞くならあっちを断って来い

601 名前:名無し~3.EXE:2007/04/12(木) 07:22:13 ID:3CusierK
久々にオレ様がきましたよ〜

>>593
キャッシュをエクスプローラで開けばできるよ。
ie.Document(この場合のieはエクスプローラ)
からドキュメントオブジェクトを取得して中の要素を操作すればできる

>>594
おまいは勘違いし杉。
でもIEホストスクリプト(クライアントサイド)のスレが無い罠・・・

>>595
別にマルチでも目に余る失礼な態度でなければおkと思う。
つか返事が無ければ他にどうしようもない

602 名前:名無し~3.EXE:2007/04/12(木) 21:54:42 ID:G96tqkzp
NameSpace(32)では駄目なのか?

603 名前:名無し~3.EXE:2007/04/14(土) 12:14:21 ID:G3PWtnXe
そもそもVBScriptうんぬんじゃなくてIEのAPIの話なんだろ?
キャッシュへのアクセスなんてDOMと関係ないし。
で、>>594もまあちょっとあれだが、スレ違いだと思ったわけだろ
InternetExplorerオブジェクトにはそういう機能はない、で終わりだ。
代替案とかいいけどまずそれを確認してからやってくれな

604 名前:名無し~3.EXE:2007/04/14(土) 15:41:56 ID:YRhG6sRI
| お前ら、WindowsScripting使ってますか? Part3
| 733 名前:名無し~3.EXE :04/07/23 16:26 ID:7v/exN2o
| IE CacheR
| http://www.vector.co.jp/soft/win95/net/se238516.html

605 名前:名無し~3.EXE:2007/04/15(日) 07:00:23 ID:4O+j/UhS
WSHで一意のテンポラリファイルを作るには
どうすればいいのでしょうか?
万一の既存ファイルの破壊を避けたいのです

606 名前:名無し~3.EXE:2007/04/15(日) 07:24:33 ID:C65AQ6We
FSO使えばいいじゃん。GetTempNameで名前を得ても良いし
FileExistsでファイルが無いことを確認して、有ったら連番でも付加して
再確認するようなループを作ってもいいし。

607 名前:名無し~3.EXE:2007/04/15(日) 08:13:06 ID:/KjjB8H6
IEのリンク上の右クリックメニューからVBSにリンクを送ってあげたいのですが、
WSHでIEのリンクを習得してあげるにはどうすればいいのでしょうか?

external.menuArguments.document.selection.createRange().text

とすることで、選択されているドキュメントを習得することはできたのですが、リンクを習得する方法がわかりません。
よろしくお願いします。

608 名前:名無し~3.EXE:2007/04/15(日) 08:59:13 ID:uT1NWWKf
今度こそ>>594だね。
external.menuArgumentsが使える時点で、間違いなくWSH実行ではなくIE実行だから。

とはいえ「external.menuArguments」でググった先見れば解決するけどね。
これでググって1件目のサイトは、俺もIEの拡張メニュースクリプトの勉強で利用させて貰った。
あとはサンプルとかも結構引っかかるので、暇があれば眺めるだけでも勉強になる。

609 名前:名無し~3.EXE:2007/04/15(日) 09:31:31 ID:/KjjB8H6
>>608
スレ違いなうえ親切に教えていただきありがとうございました。
これから精進します!

610 名前:名無し~3.EXE:2007/04/15(日) 20:55:26 ID:73Fg1OlE
私は Irvine のサンプルで学んだなー……。

611 名前:名無し~3.EXE:2007/04/15(日) 21:49:44 ID:j9mRoUTG
>>608
だから該当スレが無い。
Web制作板はサーバーサイドしか無い。
近いのはム板のHTAスレと思うが、
あそこには質問に答える回答者は殆ど居ないし、
HTAとIEは違うと言えば違う。

わざわざスレ立てるのもどうかと思うので
ここでいいんじゃねか?

唯一心配なのは質問者がWSHなのかIEの話なのかを
完全省略して質問してきて話が全然合わなかった場合だけど

612 名前:名無し~3.EXE:2007/04/16(月) 11:53:08 ID:j/Qm3ZvY
>>595
おまえ暇人だな


613 名前:名無し~3.EXE:2007/04/17(火) 11:42:31 ID:2Ck6Cllg
/////////////////Object.js
Object.prototype.x = 2;

////////////////test.wsf
<job>
<script type="text/javascript" src="Object.js" />
<script type="text/javascript">
to ={};
WScript.Echo(to.x);
</script>
</job>

先生っ、これだと組み込みオブジェクトの拡張が出来ません。
でも、test.wsfのJScriptのコード部分を切り出して、
<script type="text/javascript" src="hoge.js" />
みたいにすると、上手く行きます。

この違いって何?

614 名前:名無し~3.EXE:2007/04/17(火) 11:58:03 ID:2Ck6Cllg
おーいえーなんてこったい自己解決。

wsfのタグでこけてたらしい。
駄目だったtest.wsfのコード部分が
<script language="javaScript" /> になってた。

<script type="text/javascript" />にしたら大丈夫だった。

だから>>613は大丈夫ですね。なんという落とし穴。

615 名前:名無し~3.EXE:2007/04/17(火) 12:08:43 ID:2Ck6Cllg
もっかいレス。languageで揃えても大丈夫でした。
てかwsfだとlanguageの方が正しい感じなんですね。


616 名前:名無し~3.EXE:2007/04/17(火) 20:57:29 ID:khmIvrix
>>608>>611の意見を考えた上で
スクリプトファイルをについてどうしてもわからないことがあるので質問させてください。

IEの右クリックメニューに登録してURLを特定のソフトウェアに貼り付けるスクリプトを書いているのですが、
ウェイトをかけるところがどうがんばっても動いてくれません。

<SCRIPT LANGUAGE="VBScript">
<!--
Set 111= external.menuArguments.event
222= external.menuArguments.document.elementFromPoint(111.clientX, 111.clientY)
Set 333= CreateObject("WScript.Shell")
333.Run "Notepad"
WScript.Sleep 1000
333.SendKeys 222
-->
</SCRIPT>

これを.htmlで保存後、MenuextでURLを送っているのですが、
7行目の一文字目で「オブジェクトがありません:WShost」となってしまいます。
ウェイトをかけないとまともに動いてくれないのですが、
この場合どのようにウェイトをかけてあげればいいのでしょう?

どなたかお力を貸していただけませんでしょうか?

617 名前:名無し~3.EXE:2007/04/17(火) 22:01:20 ID:QX125b/X
WSH実行でなければWScriptオブジェクトは無いので
WScript.〜は使えないし、WScriptオブジェクトが無いような状況はスレ違いだってば。

変わりにIEの機能でウェイトを置くことは出来る。WScript.Sleepほど直感的なものではないけどね。
Web制作やHTAで使われる手法だから、そっち系の解説サイト回って、それでも解らなかったら
そっち系のスレで聞け。「該当スレが無い」とか言ってる奴も居るが、そんなことは全然ないから。

> >>608>>611の意見を考えた上で
とか言い訳しても、スレ違いの事実は変わらない。
「マルチ失礼しますが」とか前置きしても、マルチすれば叩かれるのと同じ。

618 名前:名無し~3.EXE:2007/04/17(火) 22:03:40 ID:khmIvrix
>>617
わかりました。
ありがとうございます。

619 名前:名無し~3.EXE:2007/04/17(火) 22:08:32 ID:tkBKDmqU
スクリプトごと気で威張ってる自称上級者って痛いよね。
自分はどうせコピペぐらいしかやってないくせに。

620 名前:名無し~3.EXE:2007/04/17(火) 22:39:11 ID:pianEbMs
>>616
メニュー拡張で待つのは難しかったような
待たないでやる方法を模索したほうがいいんちゃうか

621 名前:名無し~3.EXE:2007/04/17(火) 22:48:18 ID:pianEbMs
>>616
どうしても待ちたいなら
http://pc11.2ch.net/test/read.cgi/tech/1055075469/974-984

622 名前:名無し~3.EXE:2007/04/18(水) 01:44:18 ID:EcPUf9dE
> 「該当スレが無い」とか言ってる奴も居るが、そんなことは全然ないから
ではどこのスレでそういう事を教えてくれるのか
具体的に教えていただけますかね?
誘導するのならちゃんと具体的に示すべきだと思いますが?

あと、マルチ叩きとか、WScriptが無いからスレ違いとか
くだらな杉。
ムダにレス消費するだけだからお前が答えたくなければ黙っとけ

つか>>617は本当にゴミレスだね。何の情報も無い
ちなみにこれもゴミレスです〜

623 名前:名無し~3.EXE:2007/04/18(水) 03:57:31 ID:GjzdXx90
ちなみにこれもゴミレスです〜

624 名前:名無し~3.EXE:2007/04/18(水) 11:17:22 ID:liUfKfa9
書き込んだ奴そのものがゴミだからしょうがないね
m9

625 名前:名無し~3.EXE:2007/04/18(水) 11:43:19 ID:fiFeCVqu
WScript.もCOMオブジェクトなので
それをIEなどに渡してやればWScript.Sleepなども使えるよ
面倒さを超えるメリットがないのでしないだけ

626 名前:名無し~3.EXE:2007/04/18(水) 13:16:27 ID:fiFeCVqu
wscript.vbs
---
set shell=createobject("shell.application")
shell.windows().Item(0).putproperty "WScript",WScript
MsgBox "Waiting...",,WScript.ScriptName
---

hoge.hta
---
<script language=vbscript>
set wshell=createobject("wscript.shell")
wshell.run "cscript wscript.vbs"
do while not wshell.appactivate("wscript.vbs")
wshell.run "ping localhost -n 1",0,true
loop
set shell=createobject("shell.application")
set W=shell.windows().Item(0).getproperty("WScript")
W.Echo "hoge"
</script>


627 名前:名無し~3.EXE:2007/04/18(水) 15:31:38 ID:DNW4VSpp
こいつ、バカだw

628 名前:名無し~3.EXE:2007/04/18(水) 16:48:45 ID:Lu/hjP0v
また何か訳わからんのが沸いた >>627

629 名前:名無し~3.EXE:2007/04/18(水) 18:01:04 ID:v/cHbh3Z
何ムキになってるの?

630 名前:名無し~3.EXE:2007/04/18(水) 21:59:46 ID:2KIA1Ng+
>>625
一回自分でやって、アホさに気づけ。

631 名前:名無し~3.EXE:2007/04/18(水) 23:28:47 ID:B4mHvh80
しかし何だかなこのスレは・・・

だからどう見ても>>625
こんな事やるのはアホくさいからやらない、
と言ってると思うんだが・・・

632 名前:名無し~3.EXE:2007/04/18(水) 23:33:59 ID:B4mHvh80
多分知らなかった、という事なのだろうが
あんまり悔し紛れに変な事言わない方がいいぞ?
せっかくお前らの知らない事書いてくれてるのに・・・

つかこのスレもダメだな・・・

633 名前:名無し~3.EXE:2007/04/19(木) 00:08:31 ID:/faBWwVN
たとえばアプリを制御するのにちゃんと経路が用意されてるけど
面倒だから全部SendKeyで操作しちゃうとかよくやるだろ。

で、納品先で処理中にキー叩くバカがいたりして
ロールバックかかって全データパァになって
サービスセンターから夜中にたたき起こされて

634 名前:名無し~3.EXE:2007/04/19(木) 01:23:10 ID:/BqK3ADX
>>633
いや、それは設計者が悪いだろ。
客は常に最悪の操作をする前提で設計しなけりゃ。
「処理中のキー操作については保証外」って議事録でも作ってあるならともかく。

635 名前:名無し~3.EXE:2007/04/19(木) 02:42:12 ID:p7ByV6U7
>>634
大丈夫。その後の運用マニュアルには
「不要時はキーボード・マウスを取り外す」
という条項が追加されましたから!

さすがに転職を考えたよ

636 名前:名無し~3.EXE:2007/04/19(木) 10:58:04 ID:fJ+0DaBe
馬鹿は同じミスを何度もするからまた転職かな


637 名前:名無し~3.EXE:2007/04/19(木) 18:46:05 ID:cXVbURLh
素直にスクリプトしか書けない、って事白状しろよ。
VBやCなら普通にメッセージ送ればいいだろうさ。
あとまあ処理中はキーボードをロックしちまうとかな

638 名前:名無し~3.EXE:2007/04/19(木) 23:21:07 ID:p7ByV6U7
別にそんなことわざわざいう必要も無いよ。
全部キーボード操作した、納品先の会社の新人のせいにしたから。

639 名前:名無し~3.EXE:2007/04/19(木) 23:25:49 ID:rvvht0fD
さすが能無し。言い訳と自己弁護だけは一人前。

640 名前:名無し~3.EXE:2007/04/20(金) 00:25:35 ID:JAWrAlO6
>>639
お前少しきつ過ぎね?

>>638
いや
これの事言ったのよ
>たとえばアプリを制御するのにちゃんと経路が用意されてるけど
>面倒だから
と言ってるのが言い訳で
実はSendMessageを使った事がねーんだろーと

641 名前:名無し~3.EXE:2007/04/20(金) 00:27:12 ID:NBN5PLNf
つか、それは納品先もアホすぎる。
俺なら要求仕様を満たしてないって言って納品書を突っぱねるが。

642 名前:名無し~3.EXE:2007/04/20(金) 00:48:41 ID:JAWrAlO6
相手先にスクリプトキディ程度のスキル持ってるのが
一人もいないからじゃね?

643 名前:名無し~3.EXE:2007/04/20(金) 01:03:02 ID:RNda4icP
おまいら良くそんな他人ごとに熱くなれるな

644 名前:名無し~3.EXE:2007/04/20(金) 02:37:58 ID:P4B3OPLJ
>>640
そ、そのくらい使ったことくらいあるわよ!
予算10万でやってって言われたから 手を抜いただけなんだからね
勘違いしないでよ!

645 名前:名無し~3.EXE:2007/04/20(金) 15:19:57 ID:4KZDDhdu
どの位の規模はしらんが、
スクリプトで10万もとるのかよ・・・

646 名前:名無し~3.EXE:2007/04/21(土) 01:51:08 ID:7KTLSfod
ヘタに手を抜くと後でガチャガチャ言われてかえって面倒なんで
どんなバカでも使えるようにしとくもんだけどな。普通。
・・・まあVBSでなく最低VBが使えて、の話だが。

647 名前:名無し~3.EXE:2007/04/21(土) 08:49:29 ID:mN72ojZl
>>646
それやってると赤字になりかねんし。
でも相手の現場に責任かぶせると、次からやりにくくなるからお勧めしない。
基本は制限事項を議事録にとっとくことだね。

648 名前:名無し~3.EXE:2007/04/21(土) 10:45:52 ID:evmfqMJZ
> それやってると赤字になりかねんし。

どんだけへたれの会社なんだよ。

て言うか、納品するんならもっとちゃんと見積もれよ。

自分の見積もり能力のなさを、赤字になるからって手抜きするなんて
最低の会社だな。

649 名前:647:2007/04/21(土) 12:10:15 ID:mN72ojZl
>>648
いや、俺は>>633ではないので・・・。

営業が既設品の流用とか、簡単でいいとかって条件で安くとってくることはある。
設計積めている段階で、安く作るとまずい条件が見つかることもよくある。
そういう場合は
「これこれこういう場合はまずいんで、そこは運用で回避してくださいね」
「それが駄目なら受注仕様書の変更になるので見積もりからやり直しますよ」
と提案すればだいたいは運用で回避してくれる。

明らかにこっちの落ち度なら、赤字でやるけどね。
受注仕様書は客のサイン貰ってるんだから、それの範囲外は金が出ないならやらない。

650 名前:633:2007/04/21(土) 13:12:06 ID:uI3/X9aK
>>649
そうそう!

安く請け負ったときは、ぜーんぶ運用で回避!
これが基本だよね〜。
自慢じゃないが、赤字でなんかやったことなんか無いよ

651 名前:名無し~3.EXE:2007/04/21(土) 18:21:38 ID:biPPlYdx
短期的にはそれでいいかも知らんが
その内仕事来なくなるよ
特別なコネクションでもないと

652 名前:名無し~3.EXE:2007/04/21(土) 20:43:06 ID:mN72ojZl
>>651
そうならないために事前に仕様書だして、議事録とって、客のサイン貰うわけで。
(1次仕様書と2次仕様書で矛盾してるってのならこっちのミスだが)
自分がサインする書類くらい責任持ってくれないと困る。

「とにかく安く」連呼するだけでろくに書類読まない客は
どーせ赤字仕事しかよこさないので切れてもかまわない。

653 名前:名無し~3.EXE:2007/04/21(土) 20:54:41 ID:biPPlYdx
結果に不満、って言う客に
お前がサインしたんだろが、って言うって事?
客満足度を言ってるのであって
契約トラブルの事言ってるのではないよ

654 名前:名無し~3.EXE:2007/04/21(土) 20:57:17 ID:VyvL4bCk
保険屋か!

655 名前:名無し~3.EXE:2007/04/21(土) 21:09:40 ID:PBYnEjCb
まあ、安ければよくてトラブルが以前に有っても他を検討する気配の無い
アホな客ならそれでも良いだろうな。

656 名前:名無し~3.EXE:2007/04/21(土) 21:10:44 ID:mN72ojZl
>>653
だから、事前に「この値段で実現するとこういう結果になりますがいいですね?」って了承とる訳よ。
事前に了承とっておけばほとんどの客は納得してくれるよ。

どうしても納得できない客とはそこから改修方法について協議するよ。
相手もまともな社会人ならほとんどは追加コストが発生することは納得してくれる。

処理中にハードウェアの特定のボタン押すと不具合が出るってのは実際に経験あって、
そんときは警告マーク入りのアクリルカバーをボタンにかぶせるのと、
画面に警告表示を追加するのを数万円で受注して決着した。
最初は相手側の担当者も「滅多に押さないボタンだからいいよ」って言ってたのに
現場に持って行ったら初日にその問題が発生したもんで。

657 名前:名無し~3.EXE:2007/04/21(土) 22:47:01 ID:evmfqMJZ
> 最初は相手側の担当者も「滅多に押さないボタンだからいいよ」って言ってたのに

要するに双方ともにろくろく検討してないってことだろ。

DQN どうし仲良くていいじゃないか。

だから、君には「数万円」の仕事しか任されないんだろうけどな。(w

658 名前:名無し~3.EXE:2007/04/21(土) 23:03:23 ID:e3sgWE04
いい加減スレ違いってことに気づけよ、おまえら。

659 名前:名無し~3.EXE:2007/04/21(土) 23:06:33 ID:mN72ojZl
>>657
相手の現場の細かいところなんてわからんもの。
だから判断を客先の担当者に投げておいたわけ。

あと、装置としては百数十万ね。
数万円なんて誤差範囲だからサービスしても良かったんだけど
発注側の都合による変更は少額でも有償で受けとかないと
「前回アレをサービスしてくれたんだから〜」とかってどんどん要求がエスカレートすることがあるから。
(もちろん、詳細設計前の仕様変更なら無償でやることもあるけど)

660 名前:名無し~3.EXE:2007/04/21(土) 23:16:18 ID:mN72ojZl
あー、と。
金額に関する判断は実際には営業を通すので、俺の見積もり通りには成らないこともよくある。
だから、上にかいたことは全部うちの会社としての方針。

661 名前:名無し~3.EXE:2007/04/21(土) 23:45:11 ID:evmfqMJZ
> だから判断を客先の担当者に投げておいたわけ。

無能なSEの典型

そんな奴がいる会社ならそりゃ全体で百数十万の仕事しかこないわな。(w

662 名前:名無し~3.EXE:2007/04/21(土) 23:57:42 ID:mN72ojZl
>>661
現場の人間から聞き取りさせてもらえる窓口があればそっちからも確認とるけどー。
業種的に相手の担当者以外に直接連絡とれる窓口を用意してもらえないもんでー。
だから相手担当者経由での確認以外にこっちの確認はできませんー。

663 名前:名無し~3.EXE:2007/04/21(土) 23:58:43 ID:HaLeI3qs
メッセでやってろ。

664 名前:名無し~3.EXE:2007/04/22(日) 00:46:43 ID:SAYu4htl
他所でやれ。

665 名前:名無し~3.EXE:2007/04/22(日) 01:43:57 ID:ROVJktfw
evmfqMJZが最初は
>君には「数万円」の仕事しか
って言ってたのに次には
>全体で百数十万の仕事しかこないわな
って言ってるのには何だろなこりゃ、って思った。

次は日本人がバカだから
日本全体で数十兆の仕事しかこないんだよな、
って言ったりして・・・

666 名前:名無し~3.EXE:2007/04/22(日) 03:07:06 ID:STLmzq4K
>>665
いや、そこはさすがに労働人口を基準に考えようよ。

667 名前:名無し~3.EXE:2007/04/22(日) 14:15:39 ID:LWZyWhe/
>>662
だから「責任は全部お客さんの方です」ってか?

言い訳乙。

>>665
わかってない無能SEが何か発言しないといけないと思って
よくこう言う意味不明なこと言うよな。(w

668 名前:名無し~3.EXE:2007/04/22(日) 15:45:30 ID:HXxtiC+Y
>>667
>だから「責任は全部お客さんの方です」ってか?
そうだよ。仕事だからね。

自分で仕様を決められないお客さんなら、
間に商社なりコンサルなり通して発注すればいいわけで。
こっちは自分で仕様を把握してる客を前提に対応してるから。

669 名前:名無し~3.EXE:2007/04/22(日) 16:07:54 ID:nmEkOEz8
まあまあ、そんなに自分の無能ぶりを自慢しなくても
キミがオシコトできるのは判ったからさ

670 名前:名無し~3.EXE:2007/04/22(日) 16:22:54 ID:WSHjDKMI
オナニーとセックスの話はヨソでやれ。

671 名前:名無し~3.EXE:2007/04/22(日) 18:13:01 ID:STLmzq4K
>>668
まあそこでおろおろする客にはうちでコンサル紹介するよ。
実体はオレなんだけど。

672 名前:名無し~3.EXE:2007/04/22(日) 19:42:46 ID:JybLxewW
Set objWsh = CreateObject("WScript.Shell")
Set objExec = objWsh.Exec("cmd /c dir c:\temp")

Do While objExec.Status = 0
    WScript.Sleep 100
Loop

...

上記のようなコードで、「c:\temp」フォルダにファイルを80個ほど置いておくと、
Status確認のループが無限ループに入ります。
閾値があるらしくて、それ以下では一瞬でループを抜け、それ以上ではまったく返ってこなくなり……
という感じ。

673 名前:名無し~3.EXE:2007/04/22(日) 20:57:31 ID:ivWOgg9X
便秘にはこーラック

674 名前:名無し~3.EXE:2007/04/22(日) 21:08:36 ID:evAQ2yKS
こうらくさんの座布団もっていきなさい。歌丸です

675 名前:名無し~3.EXE:2007/04/22(日) 22:01:38 ID:k8ZwHNGh
evmfqMJZ
LWZyWhe/
お前しつこくね?
つっこみが言い訳とか無能とかたいして面白くねーし
もう少しなんつーか思わずつっこまれた相手自身が
笑うような事書けねーのかよ

676 名前:名無し~3.EXE:2007/04/22(日) 23:09:41 ID:sK80uPQR
空気読めない奴らが客を満足させるとか語るなよw

677 名前:名無し~3.EXE:2007/04/22(日) 23:28:16 ID:STLmzq4K
ひとつひとつは小さな案件だが、100集まればすぐ1億だ!
はっはっは!

実際には半分の半分くらいしかこなせてないけどね〜
今年度も黒字だったので、ヨシだ。
納期が2年延びたのもあるけど、客のせいにした!

678 名前:名無し~3.EXE:2007/04/23(月) 00:30:44 ID:Bhk5cVuF
>>668
指摘されると開き直り。

流石アホSEだな。(w

>>672
標準出力のバッファは 4KB ぐらいしかないから、objExec.StdOut.ReadLine
とかで読み取ってやんないと駄目。

どんなことやりたいのかわからんけど、例えば下記のようにすれば全行表示できる。

Set objWsh = CreateObject("WScript.Shell")
Set objExec = objWsh.Exec("cmd /c dir c:\temp")

Do Until objExec.StdOut.AtEndOfStream
  WScript.Sleep 100
  WScript.StdOut.WriteLine objExec.StdOut.ReadLine
Loop

ただし vbs は、ストリームにデータが入っているかをチェックする方法がないから、
上記の方法でも標準エラー出力に 4KB 以上のデータを吐くプログラムだと、無限
ループになる。この、回避方法は俺は知らない。

>>675
> もう少しなんつーか思わずつっこまれた相手自身が笑うような事書けねーのかよ

つ 鏡

679 名前:678:2007/04/23(月) 00:43:30 ID:Bhk5cVuF
忘れてた、ちょっと訂正

× この、回避方法は俺は知らない。
○ 標準出力もしくは標準エラー出力をファイルに吐き出す以外の回避方法を、俺は知らない。

680 名前:名無し~3.EXE:2007/04/23(月) 02:16:09 ID:AnLMhu/8
Set objExec = objWsh.Exec("cmd /c dir c:\temp 2>&1")

681 名前:名無し~3.EXE:2007/04/23(月) 07:51:09 ID:vCdmUApF
どうも有難う勉強になったわ。

この話ここまで長く書けるのか・・・

682 名前:名無し~3.EXE:2007/04/23(月) 14:23:16 ID:XYh3oPaX
wshってしろうとようかと思っていたが、プロも使うのか?

683 名前:名無し~3.EXE:2007/04/23(月) 15:19:25 ID:ql3ESscK
使える物はなんでも使うのがプロ

684 名前:名無し~3.EXE:2007/04/24(火) 01:08:13 ID:SJLA9t83
ふ〜ん

685 名前:名無し~3.EXE:2007/04/24(火) 02:02:58 ID:B8ZPPHeZ
納品はしなくても、デバッグとかにあると便利。
ログデータの整理とか、ダミーデータ作るのとか。

頻度高いなら専用ソフト作るが。

686 名前:名無し~3.EXE:2007/04/24(火) 09:02:49 ID:uawi901y
親切な方、D&Dしたファイルを削除してくれるだけのスクリプトをいただけますでしょうか……。

687 名前:名無し~3.EXE:2007/04/24(火) 09:11:53 ID:maqUL7OV
実行しているscriptのファイル名は、WScript.ScriptFullName(or ScriptName)で取れるけど、
wsfの<script src="hoge.vbs"/>でインクルードされた側のファイル名って取れるのかな?

上の例で行くと、インクルードされてるhoge.vbsの中で"hoge.vbs"(もしくはフルパス)と言うファイル名を取りたい。
単純にhoge.vbs内でWScript.ScriptFullNameとやると、wsfからインクルードした場合は、
呼び出し元のwsfのファイル名が帰ってきちゃう。

688 名前:名無し~3.EXE:2007/04/24(火) 09:18:13 ID:maqUL7OV
>>686

CreateObject("Scripting.FileSystemObject").DeleteFile WScript.Arguments(0), True

1行でおk

689 名前:686:2007/04/24(火) 09:57:43 ID:uawi901y
>>688
シンプルで美しいスクリプトです、ありがとうございます!

690 名前:名無し~3.EXE:2007/04/24(火) 10:07:50 ID:uawi901y
>>688
応用して、

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
For I = 0 to objArgs.Count - 1
objFSO.DeleteFile WScript.Arguments(I), True
Next

と書いたら複数ファイルに対応できました。ありがとうございます。

691 名前:名無し~3.EXE:2007/04/24(火) 10:08:56 ID:uawi901y
2行目いらなかったです。

692 名前:名無し~3.EXE:2007/04/24(火) 10:14:15 ID:uawi901y
改変して、

For I = 0 to WScript.Arguments.Count - 1
WScript.CreateObject("Scripting.FileSystemObject").DeleteFile WScript.Arguments(I), True
Next

としました。ありがとございます。

693 名前:名無し~3.EXE:2007/04/24(火) 10:20:17 ID:9IeWnjrK
なんでわざわざVBSで書くんだよwwwいじわるだなwww

694 名前:名無し~3.EXE:2007/04/24(火) 11:08:22 ID:AOYlXD1I
画像掲示板の自動巡回として使ってる
wsh便利


695 名前:名無し~3.EXE:2007/04/24(火) 13:59:30 ID:MVyPALf6
ソースplz

696 名前:名無し~3.EXE:2007/04/24(火) 14:07:14 ID:fTTIq8yW
diy

697 名前:名無し~3.EXE:2007/04/24(火) 14:34:08 ID:Jm4E73d+
>>694
みんなそういうことはやってるだろうけど、そういうことは人に言わずにひっそりやるものだぞ。
「俺ってこんなことできるんだぞ」と自己主張したい年頃なのかも知れないがw

698 名前:名無し~3.EXE:2007/04/24(火) 15:36:22 ID:uFNbu+9H
手段を問わなければ出来るよ

699 名前:698:2007/04/24(火) 15:38:09 ID:uFNbu+9H
>>687

700 名前:名無し~3.EXE:2007/04/24(火) 19:22:32 ID:r8k6oIAv
専用ブラのジェーンのステータスバーの完了ってのを
取得したいのですがどうすればいいですか?

701 名前:名無し~3.EXE:2007/04/24(火) 22:10:20 ID:zsYD+HSB
はぁ?

702 名前:名無し~3.EXE:2007/04/24(火) 22:24:38 ID:9IeWnjrK
>>700
他プロセスのウィンドウのステータスバー内の文字列を取得したい。

と言っているんです?

703 名前:700:2007/04/24(火) 22:56:43 ID:6tTUt89Z
そうです。

704 名前:名無し~3.EXE:2007/04/25(水) 08:16:56 ID:JhQaRiIx
では
「他プロセスのウィンドウのステータスバー内の文字列を取得できるCOM」
を使ってください。WSH本体(WScript.exe、cscript.exe)にはそういう機能は無いので。
COMを探すか作るかはお好きなように。探すことも作ることも出来ないなら君には無理ってことになるね。

因みにそれを取得したあと何をするかにも因るが、こういうことはAutoHotkeyの方が得意だよ。

705 名前:名無し~3.EXE:2007/04/25(水) 09:13:06 ID:qvPjG5g/
>>704
このスレでは、WSH本体に無い機能について語ることはNGなのか?

というか、それ以前に、これ普通に出来るだろ。
ちょっとサンプル持ってくる。正座して待ってろ。

706 名前:名無し~3.EXE:2007/04/25(水) 11:50:54 ID:eKTc1S97
普通のEXEにして標準出力から受け取ればいいだけの話なのに
わざわざオートメーションサーバー
作らなければならないと言い出す704は
当然COMが何なのかも知らないし普通のEXEも作れない知ったかのアホ

707 名前:名無し~3.EXE:2007/04/25(水) 13:33:11 ID:4evyIg1O
> 普通のEXEにして標準出力から受け取ればいいだけの話なのに
ここ、笑うところ?

708 名前:名無し~3.EXE:2007/04/25(水) 15:29:12 ID:C7A55gUG
ファイルのdropで起動されたか、ファイルを指定されて起動されたか
区別する方法はないでしょうか?

709 名前:名無し~3.EXE:2007/04/25(水) 17:10:55 ID:9g5HSWSr
>>705
足が大変なことになってますが、まだですか?

710 名前:名無し~3.EXE:2007/04/25(水) 19:37:49 ID:BPvwMLAd
> 707 :名無し~3.EXE:2007/04/25(水) 13:33:11 ID:4evyIg1O
> > 普通のEXEにして標準出力から受け取ればいいだけの話なのに
> ここ、笑うところ?
やっぱり意味わからなかったみたいねw

711 名前:名無し~3.EXE:2007/04/25(水) 22:08:25 ID:XeOH9w0p
そうでもないか

むしろ706のほうが解ってな(ry

712 名前:名無し~3.EXE:2007/04/25(水) 22:45:02 ID:qRvMc+BJ
「他プロセスのウィンドウのステータスバー内の文字列を標準出力」するexeを作って
それをwshから呼べば、stdoutから文字が取得できるってことじゃないの?

>>705
足が・・・

713 名前:名無し~3.EXE:2007/04/25(水) 23:04:36 ID:/zJ5vBV1
済まぬ・・・
他の事はかなり出来るようになったのだが
なぜかステータスバーだけ取得できぬ・・・
こうなったら画像処理か・・・いやアホだ・・・

714 名前:名無し~3.EXE:2007/04/26(木) 01:32:30 ID:1rUsauG4
           / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ○y-~~ <     ステータスバーと一口にいっても、
    |\     \   コモンコントロールのやつもあれば独自実装っぽいのもあるし
_| ̄|○ ̄|      \  子にtoolbarとかもってるやつもあるし、まあ一発で取るのは難しいよね。
 ↑            \____________________
>>713

715 名前:名無し~3.EXE:2007/04/26(木) 01:38:12 ID:sxwmgrUM
Jane使ってないけど
画像処理するぐらいならメッセージでもフックしてみたら?
たぶんメッセージでテキストやり取りしてるでしょ。

716 名前:名無し~3.EXE:2007/04/26(木) 12:30:57 ID:C1h0Mixs
>>686
削除でなくごみ箱送りは?


717 名前:名無し~3.EXE:2007/04/27(金) 03:18:12 ID:LcwkbNjt
http://111.111.111.111:8888/
http://22.2.22.2:8080

このようなURL文字列のhttp://の部分とポート番号を削り、IPのみに置換するスクリプトを作っています。
具体的には上記の例だと「111.111.111.111」「22.2.22.2」こんな感じです。

先頭部分のhttp://の部分に限っては

Replace(http://111.111.111.111:8888/@`"http://"@`"")

このように指定してあげることで、削ってあげることができたのですが、
コロン部分、ポート番号、最後のスラッシュを削ってあげるにはどのように記述してあげればいいのでしょう?
コロン以降を削るにも、httpの直後にコロンがありますし、ポート番号は千差万別、最後のスラッシュはあるかわからない。

このような状態でどうしたらいいのかまったくわかりません。
また、IPのみの場合はそのまま送れるようにしたいのですが、皆さんのお力を貸していただけないでしょうか?

718 名前:名無し~3.EXE:2007/04/27(金) 03:42:45 ID:aQRmZHIa
普通そういう場合正規表現を使うか、
InStr()で位置を調べMid()を使って分解する。

719 名前:名無し~3.EXE:2007/04/27(金) 04:26:17 ID:2JiNl1j3
str.match(/[\d.]+/);


720 名前:名無し~3.EXE:2007/04/27(金) 04:41:31 ID:LcwkbNjt
>>718
>>719

aaa = "http://111.111.111.111:8888/"
bbb = Replace(aaa,"http://"@`"")
WScript.Echo bbb



現状この状態で行き詰ってます・・・orz
ググっていろいろ試しているのですが、頭が足りないせいかどうも上手くいきません。
もう少し詳しくお願いできませんでしょうか?

721 名前:名無し~3.EXE:2007/04/27(金) 05:06:19 ID:aQRmZHIa
2
> Windows Script 5.6 ドキュメント ダウンロード (exe 形式; 1.67 MB)


722 名前:Adrienne ◆HI8ebVe8lo :2007/04/27(金) 05:11:38 ID:kn/mZrfu
>>720
基本的に>>719のでいけるはずだけど、
ポート番号も削るとすると、↓みたいな感じかな。

var aaa = "http://111.111.111.111:8888/"
var re = new RegExp("https?://(([0-9]{1,4}\.){3}[0-9]{1,4})[:0-9]*/","ig");
WScript.echo(aaa.replace(re, "$1"));

JScriptで悪い。

723 名前:Adrienne ◆HI8ebVe8lo :2007/04/27(金) 05:34:17 ID:kn/mZrfu
連投スマソ。慣れないがVBSでも書いてみた。

Dim regEx, aaa
  aaa = "http://111.111.111.111:8888/"
Set regEx = New RegExp
regEx.Pattern = "https?://(([0-9]{1,3}\.){3}[0-9]{1,3})[:0-9]*/"
WScript.Echo regEx.Replace(aaa,"$1")

724 名前:名無し~3.EXE:2007/04/27(金) 05:46:54 ID:LcwkbNjt
>>722>>723
ご親切にありがとうございます。
ただこれでは、最後にスラッシュの無いURLですと、上手く置換できないのですが、
ある場合、無い場合に両方とも対応させるにはどうしたらよいのでしょうか?

725 名前:Adrienne ◆HI8ebVe8lo :2007/04/27(金) 05:50:48 ID:kn/mZrfu
>>724
regEx.Pattern = "https?://(([0-9]{1,3}\.){3}[0-9]{1,3})[:0-9]*/?"

726 名前:名無し~3.EXE:2007/04/27(金) 05:55:45 ID:LcwkbNjt
>>725
即レスありがとうございます。

文字でしか感謝の気持ちを表せないことが非常に残念ですが、
このように親切に教えていただいたことを心より感謝します。

727 名前:名無し~3.EXE:2007/04/27(金) 08:53:53 ID:/IsUTm2t
> 基本的に>>719のでいけるはずだけど、
> ポート番号も削るとすると、
719のでポート番号も削れるよ。数字と .の連続にマッチするので、http://111.111.111.111:8888/の場合なら
8文字目の1から、最初に出てくる数字と .以外の文字である23文字目の:の前までが一つ目のマッチになるから。
あとはマッチ全体ではなく、一つ目のマッチ部分のみを参照すればいいだけだから。

きちんとやるなら↓ね。
△ "https?://(([0-9]{1,3}\.){3}[0-9]{1,3})[:0-9]*/?"
○ "https?://((?:\d{1,3}\.){3}\d{1,3})(?::\d{1,5})?/?"

728 名前:名無し~3.EXE:2007/04/27(金) 12:21:11 ID:BhprWh5I
なぜ>>719のを見てすぐに
完全な正答である事に気づかないのか
毎度毎度・・・

初心者が初心者に嘘を教えるスレ。

(727の事は言っていない)

729 名前:名無し~3.EXE:2007/04/27(金) 16:44:00 ID:kn/mZrfu
>>728
>>719は完全な誤答。

730 名前:Adrienne ◆HI8ebVe8lo :2007/04/27(金) 16:49:19 ID:kn/mZrfu
もとい、正答(;´Д`)
正答なんだけど、IPじゃない数字の羅列にもマッチすると思ったわけ。

731 名前:名無し~3.EXE:2007/04/27(金) 18:00:12 ID:BhprWh5I
もうIP変わったと思って荒らそうとしたら
変わってなくて慌ててフォロー

何だかな・・・

732 名前:Adrienne ◆HI8ebVe8lo :2007/04/27(金) 18:21:09 ID:kn/mZrfu
>>731
いや、違うってw
つーか、ケーブルだからIPずっと同じなんだよ(´ω`;)

正規表現に話を戻すと、\dじゃなく[0-9]を使っているのは
>>719をそのまま動かしてみてうまくいかないので、
JScriptでは\dが使えないと勘違いしたから。
よく考えると、\\dとエスケープすれば使えたわ。

733 名前:名無し~3.EXE:2007/04/28(土) 00:42:00 ID:gbEJE2Wr
>>732
>正規表現に話を戻すと、\dじゃなく[0-9]を使っているのは
http://pc11.2ch.net/test/read.cgi?bbs=win&key=1155040873&st=719&to=719&nofirst=true" target="_blank">>>>719をそのまま動かしてみてうまくいかないので、
>JScriptでは\dが使えないと勘違いしたから。
>よく考えると、\\dとエスケープすれば使えたわ。
???
>>719はJScriptで、\dが使えてますが?

734 名前:名無し~3.EXE:2007/04/28(土) 00:54:42 ID:DGfeoJja
なぜか/../でなく"..."の話をしてるみたい。
荒らしてるのこの人?

735 名前:名無し~3.EXE:2007/04/28(土) 20:13:38 ID:nWx8uwlB
置換がしたいっつってんのに>>719はマッチしてるだけだし。

736 名前:名無し~3.EXE:2007/04/28(土) 20:28:19 ID:nWx8uwlB
>>732
ちなみに>>722の書き方だと"\."も"\\."にしとかないとね。
前者だと改行文字以外の任意の1文字にマッチするメタキャラクタになってしまう。

737 名前:名無し~3.EXE:2007/04/28(土) 20:29:25 ID:QKMYYFHO
じゃあ>>719のコードでどんな不都合があるか指摘してみなよ
不要な部分を削るだけならreplaceする必要はなくってmatchで十分

あと指摘しておくと、>>722のコードは「完全な」間違いね

// var aaa = "http://111.111.111.111:8888/";
var aaa = "http://1234567890:8888/";
var re = new RegExp("https?://(([0-9]{1,4}\.){3}[0-9]{1,4})[:0-9]*/","ig");
WScript.echo(aaa.replace(re, "$1")); // 1234567890:8888

単なるドットのつもりで \. としてるけど、あれはメタ文字。




738 名前:737:2007/04/28(土) 20:33:17 ID:QKMYYFHO
ああかぶった・・・

>>735
最近荒らしてる人と勘違いした。ごめん
>>737 の前段はスルーして

739 名前:名無し~3.EXE:2007/04/28(土) 21:19:15 ID:gbEJE2Wr
>>735
>置換がしたいっつってんのに>>719はマッチしてるだけだし。
まだわかんないのかねぇ。。。

740 名前:名無し~3.EXE:2007/04/28(土) 21:47:26 ID:hpQQWhuy
>>735
実際は置換ではなく部分抽出なので、抽出する部分にマッチさせるだけでOKなんだよ。
JScriptのmatchメソッドは結果を配列で返すから、インデックス与えるだけでお望みの結果が得られるし。
var str = 'http://111.111.111.111:8888/';
WScript.Echo(str.match(/[\d.]+/)[0]);

どちらかというと、(間違いではないけど)置換する必要ないのに置換メソッド使ってる>>723の方に突っ込むべきでしょ。
あそこは$1にReplaceするべきところではなく、Testした上でExecute(aaa)(0).SubMatches(0)を参照すべきところだ。
因みにPatternが"[\d.]+"なら、Execute(aaa)(0).Valueを参照。置換と抽出は使い分けられるようにならなくちゃね。

741 名前:名無し~3.EXE:2007/04/28(土) 22:00:47 ID:gbEJE2Wr
あと>>735はJScriptで
"abc";
のような記述の意味を理解してないみたい

742 名前:名無し~3.EXE:2007/04/28(土) 22:08:57 ID:4ZNe92js
関係ないけど個人的には
JScriptの /abc/ のような記述は気に入らない。

743 名前:名無し~3.EXE:2007/04/28(土) 22:48:50 ID:v4oX2IOi
誤答を取り消して正答って書いたまでは
間違いという事にしてやっても良かったが
その後また719がマッチしてるだけとか、
別人を装って自分のレスに突っ込み入れる自演・・・

大丈夫この人?

744 名前:名無し~3.EXE:2007/04/28(土) 23:24:56 ID:nWx8uwlB
正直>>717
> このようなURL文字列のhttp://の部分とポート番号を削り、IPのみに置換するスクリプトを作っています。

からどうして目的が「置換じゃなく抽出」となるのかが理解できんのだが
(もしかして>>720の「WScript.Echo bbb」からそう判断?)、
そうだとして、>>719の表現はいくら何でも乱暴過ぎて
(単独の"0"や"."も拾いまくる。ってかその前にgオプションが要るだろこれ)
少なくとも私にはこれを「完全な正答」と自信満々に言い切る>>728のほうが
ピント外れに思えるんだが。

matchメソッドでの戻り値の配列から抽出するならせめて
(JScriptの正規表現で肯定後読みができるとの前提で)

str.match(/(?<=https?:\/\/)(?:\d{1,3}\.){3}\d{1,3}(?=(?::\d{1,5})?\/?)/g);

とすべきでは?「完全な正答」と言い切るならね。

# 悲しいかな、JScriptの正規表現は肯定/否定後読みをサポートしていない。

745 名前:名無し~3.EXE:2007/04/28(土) 23:28:05 ID:nWx8uwlB
あああああああ

もしかして今検索対象文字列は「URLそのもの」なのか?

だとしたらなるほど>>719は「完全な正答」だ。すまん。
俺は勝手に検索対象として一般的な文字列を仮定していた。

746 名前:名無し~3.EXE:2007/04/28(土) 23:32:44 ID:nWx8uwlB
ん?何なに?
もしかして俺>>730と勘違いされてるわけ?

証明する手段はないけど、違うとだけは言っておこう。
どうでもいいけど。

747 名前:名無し~3.EXE:2007/04/28(土) 23:40:41 ID:pMakl6sH
質問した人ですが、もはや何がどう進んでいるのか理解の範囲を超えました。
お願い!私のために争わ(ry

とりあえずhttpから始まるアドレスを送ると変換するスクリプトとして

wwww = WScript.Arguments.Item(0)
Set dddd = New RegExp
dddd.Pattern = "https?://((?:\d{1,3}\.){3}\d{1,3})(?::\d{1,5})?/?"
WScript.Echo dddd.Replace(wwww,"$1")

本来なら別のアプリケーションに送る作業をしていますが、
こんな感じで書いてあるのですが間違っていませんよね?

ちなみに置換する文字列はURLそのものではないでしょうか?
IPのみが送られることもありますが、その場合は置換する必要がありません。

748 名前:名無し~3.EXE:2007/04/28(土) 23:42:51 ID:LcYBLA0G
明らかに別人でしょ

ああいうのは放っおいていいから

749 名前:748:2007/04/28(土) 23:45:04 ID:LcYBLA0G
「ああいうのは」って>>743のことな

750 名前:名無し~3.EXE:2007/04/29(日) 00:03:58 ID:ahTiRjDP
こういうライブラリで処理したら?
ttp://lukewarm.s151.xrea.com/test/read.cgi/b/1163165308/28


751 名前:名無し~3.EXE:2007/04/29(日) 01:01:48 ID:IvFkw0Il
>>728
>初心者が初心者に嘘を教えるスレ。
初心者が自問に自答して自分に感謝と突っ込みを入れるスレ。 みたい

752 名前:名無し~3.EXE:2007/04/29(日) 02:57:20 ID:fjLqhoab
他のScript関係のスレの荒らしにウンザリして
逃げてきたんだけど
ダメだこりゃ

753 名前:名無し~3.EXE:2007/04/29(日) 03:07:14 ID:fjLqhoab
漏れは710なんだけど
711がID違うのも平気で
勝手にレス継続してるの見て
ああ、ここにもいたのか、こういう手合
と思った。

しかし荒らすのはまあいいとして(笑)
初心者過ぎるのはどうにかしろ。
一人だけ余りに初心者過ぎて誰が書いてるかバレバレ

754 名前:名無し~3.EXE:2007/04/29(日) 03:33:10 ID:NcM4uAaB
>一人だけ余りに初心者過ぎて誰が書いてるかバレバレ

試しに直近50件からその「バレバレな一人」のレス全部挙げてみてくれ

755 名前:名無し~3.EXE:2007/04/29(日) 03:40:35 ID:2wYUlGKh
たとえば、こんな荒れる質問をしてしまった俺とか。
ブツは無事に完成してるんですよ?

756 名前:名無し~3.EXE:2007/04/29(日) 05:35:44 ID:uQG0bLUr
まぁ君は何も悪くないから気にするな。
引き続き>>753の回答を待つとしますか。
なにしろ

>一人だけ余りに初心者過ぎて誰が書いてるかバレバレ

というくらいなのだから
どうってことない実に簡単な作業だろうし。

しかし

>他のScript関係のスレの荒らしにウンザリして
>逃げてきたんだけど

なんて言っているわりには、次の投稿で

>初心者過ぎるのはどうにかしろ。
>一人だけ余りに初心者過ぎて誰が書いてるかバレバレ

ってな荒れる要因を積極的に投下して、
一体どういう神経してんのかね。やれやれ。

757 名前:678:2007/04/29(日) 11:52:35 ID:pw3YevD6
荒らしはスルーで

758 名前:名無し~3.EXE:2007/04/29(日) 18:48:32 ID:etPQI3Tt
いちいちID切り替えてご苦労な事で・・・

759 名前:名無し~3.EXE:2007/04/29(日) 18:55:36 ID:rUMvvbLJ
と、荒らしID:fjLqhoabが申しております

760 名前:名無し~3.EXE:2007/04/29(日) 19:04:08 ID:38gusqza
とりあえず>>747の変数名に突っ込みを入れる勇者はいないのですか

761 名前:名無し~3.EXE:2007/04/29(日) 20:15:43 ID:IvFkw0Il
>>747>>719をVBScriptに翻訳できんのかね?
>>740を見てもまだ分らんの?こりゃ重度の‥‥

762 名前:名無し~3.EXE:2007/04/30(月) 14:53:55 ID:ACMQHVEa
ところで、正規表現など使わなくても
InternetCrackUrlとか
hrefに入れてhostnameを取り出すとかすれば

763 名前:名無し~3.EXE:2007/04/30(月) 18:02:49 ID:rfORYBWQ
逆も言えるね。

InternetCrackUrlなんて使わなくても、正規表現使えば簡単に…

ってな。

764 名前:名無し~3.EXE:2007/05/01(火) 13:14:05 ID:yT4xCCv9
LAN内にpingを打って返ってくるかこないかで処理を分けるにはどうすればいいのでしょう。
以下のようなのを書いてみて、一応は事足りてはいるのですが、もっといいやり方がありそうな気がします。

var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec("%comspec% /c \"ping.exe -w 10 192.168.0.6 | find.exe \"Reply\"\"");

if (oExec.StdOut.Read(1)) {
WScript.Echo("aru");
}else{
WScript.Echo("nai");
}

765 名前:名無し~3.EXE:2007/05/01(火) 14:10:36 ID:6oHOJlSu
> もっといいやり方がありそうな気がします。
どうしてそう思うのか、15文字以内で理由を述べよ

766 名前:名無し~3.EXE:2007/05/01(火) 15:50:57 ID:G+ZKU8gW
>>764
いい勘してるな。うまいやり方は確かにある。

767 名前:名無し~3.EXE:2007/05/01(火) 16:40:31 ID:8m0EqL9y
>>764
http://pc11.2ch.net/test/read.cgi/tech/1148485555/901-910

768 名前:名無し~3.EXE:2007/05/01(火) 16:50:20 ID:rxCuFFZB
しかし台詞の一言一言に大分恥ずかしいものがあるな・・・

769 名前:678:2007/05/01(火) 18:47:06 ID:3MRBko9y
>>764
使ってるOSが Windows XP / Windows Server 2003 以降なら、
WMI ping あたりでググってみ。

770 名前:名無し~3.EXE:2007/05/03(木) 17:41:34 ID:+AKTZjlP
XP Home Editionでlogoff/shutdown scriptを使えるようにできない?

771 名前:名無し~3.EXE:2007/05/08(火) 19:53:37 ID:bJAyYqFQ
Wscript.Echo("ほしゅ");
Wscript.Echo("ほしゅ");

772 名前:名無し~3.EXE:2007/05/08(火) 20:08:51 ID:ixPnD11N
>>771
WScript

773 名前:名無し~3.EXE:2007/05/09(水) 06:19:38 ID:iQjYX/E4
JScript5.7(IE7やVistaに同梱)の不具合修正パッチ

ttp://support.microsoft.com/?kbid=933812
 夏時間を無視。
ttp://support.microsoft.com/?kbid=933873
 32kB以上? 32k命令? を無視。

パッチは同じなのでお好きな方を。

774 名前:名無し~3.EXE:2007/05/18(金) 23:14:45 ID:lCUQX7nR
>>772 失礼




WScript.Echo("ほしゅ");
WScript.Echo("ほしゅ");

775 名前:名無し~3.EXE:2007/05/18(金) 23:50:02 ID:KXgJnFbG
WScript.echo

776 名前:名無し~3.EXE:2007/05/19(土) 17:46:31 ID:MEXVxhB1
InputBox "お前ら、wsh使ってますか?"

777 名前:名無し~3.EXE:2007/05/19(土) 18:27:30 ID:WP3h4HZ7
Dim Wsh
set Wsh = WScript.CreateObject("WScript.Shell")
Wsh.Popup "ウィンドゥズから2文字とってウィッシュにすれば良かったのに", 3, "WISH", 32

778 名前:名無し~3.EXE:2007/05/19(土) 21:01:27 ID:wfuQjMOY
Dim Wish
set Wish = WScript.CreateObject("WScript.Shell")
Wish.Popup "こうですか?", 3, "WISH", 32

779 名前:名無し~3.EXE:2007/05/19(土) 21:44:55 ID:WP3h4HZ7
そうか!

Dim Wish
set Wish = WScript.CreateObject("WScript.Shell")
Wish.Popup "I wish wsh becomes wish. (・∀・)ウィッシュ!ウィッシュ!", 3, "WISH", 32


780 名前:名無し~3.EXE:2007/05/20(日) 10:08:43 ID:47BhqPae
エクスプローラの「アイコンの整列」で時系列順と名前順を頻繁に切り替えるので、
そのふたつの状態をトグルで切り替えられるスクリプトを書きたい。
「アイコンの整列」の状態を取得・更新するためのプロパティって、どうやったら見れるのでしょうか。
どうかえらい人教えてください。

781 名前:名無し~3.EXE:2007/05/20(日) 14:00:04 ID:dUIRo6AY
WebブラウザのInternetExplorerはActiveX化されてるけど
ファイラーのExplorerはActiveX化されてなかったと思うが。

WSHはActiveXじゃないと外部ソフトの操作はSendKeysくらいでしか出来ないよ。
外部ソフトを操作するActiveX.dll(COM)を自作するとか
DynaCallでWin32API使うというなら話は別だけど。

というかWin32API使える無料の開発環境でも落としてきて作った方が早そうだな。

782 名前:名無し~3.EXE:2007/05/20(日) 15:13:07 ID:nSmIDUa9
ExplorerもActiveXコンポーネントになっている
ただ、780のようなことはできなかったと思うけど

783 名前:名無し~3.EXE:2007/05/20(日) 23:38:28 ID:1oxHueti
またお前か。アホ杉

784 名前:名無し~3.EXE:2007/05/21(月) 19:39:11 ID:A1hLc1nS
>>780
sendkeys

785 名前:780:2007/05/22(火) 00:15:01 ID:AyEAbPGp
そうか……できないのかー。
WSHってなんでもできるんだと感動していた初心者だったけど、
やっぱりWSHにも壁はあったんだね。そうだったんだね。
皆教えてくれてありがとう!

結局、X-Finderに乗り換えることにしました。
処理も軽くて機能も多いのでオーライ。
WSHぜんぜん関係なくなったけど。

>>784
現在の状態が取得できないとトグルにできないのが残念なところ。

786 名前:名無し~3.EXE:2007/05/22(火) 02:48:45 ID:JlY1xoAR
sendkeysしてみて、Class ShellFolderViewのEvent EnumDone()が
起きれば変更されたと分るんじゃないかな

787 名前:名無し~3.EXE:2007/05/22(火) 14:43:14 ID:JlY1xoAR
昇順降順のtoggleになってるからだめだね
Folder.Items().Item(0)〜を見れば大体の見当は付くのでは


788 名前:名無し~3.EXE:2007/05/27(日) 07:49:11 ID:35trjwIR
UTF-8 のテキストファイルを読み込んで、
一部を変更して、また UTF-8 で出力させたいのですが、
どんな作戦で行けばよろしいでしょうか。

練習として以下のように、読んだものをそのまま書き出そうとしてみましたが、
それすら文字化けしてしまいます。どうすればよいですか?
( ADODB.Stream というものを使えばできるらしいのですが、よく分かりません )

-------------------------------------------------------------------
Option Explicit
Const ForReading =1, ForWriting = 2, ForAppending =8

Dim FSO, Input, Output, CurrentLine
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Input = FSO.OpenTextFile( "Input.txt", ForReading )
Set Output = FSO.OpenTextFile( "Output.txt", ForWriting, True )

While Not Input.AtEndOfStream
  CurrentLine = Input.ReadLine
  Output.WriteLine CurrentLine
WEnd

Input.Close
Output.Close
-------------------------------------------------------------------

789 名前:名無し~3.EXE:2007/05/27(日) 08:29:02 ID:d7qwcdZx
>>788
> ( ADODB.Stream というものを使えばできるらしいのですが、よく分かりません )
いや、調べろよ。ネットにいくらでもサンプル転がってんだからさ。
一つ言っとくと、FileSystemObject じゃ無理。

790 名前:678:2007/05/27(日) 16:08:11 ID:q00Zzyug
FileSystemObject にバイナリモードがあればなぁ...。

791 名前:名無し~3.EXE:2007/05/28(月) 01:33:36 ID:XjJA1/p+
OpenTextFile や CreateTextFile といったメソッド名は
OpenBinaryFile や CreateBinaryFile といった将来的な拡張を期待させるんだが。


> FSO オブジェクト モデルは、スクリプティング タイプ ライブラリ (Scrrun.dll) に格納されており、
> TextStream オブジェクトによってテキスト ファイルの作成および操作をサポートします。
> バイナリ ファイルの作成および操作については、まだサポートしていませんが、将来サポートする予定です。

どんだけ待たせんだよ。
ADODB.Stream オブジェクトの操作で代用出来るからって
事実上放置状態なの?

まぁバイナリファイルの操作はBASP21で事足りてるが。
やはり標準でサポートしてもらいたいところ。

792 名前:名無し~3.EXE:2007/05/28(月) 07:09:46 ID:GVz6b+cG
PowerShell 及び .NET Framework に移行してってことじゃね

793 名前:名無し~3.EXE:2007/05/28(月) 12:31:38 ID:JxdXlebb
>>791
Windows PowerShellが出たからもうWSHはメンテのみで機能強化はない
不満なら↑で.NET Frameworkのクラスライブラリを呼び出せばいい

794 名前:名無し~3.EXE:2007/06/01(金) 01:27:36 ID:bJQTtEuK
バイナリファイルの書き換えとかは.NETなんか使わなくとも
XPとかでは普通にできる訳だが、多少面倒だわな

つか何言ってんだよw
WSHはもう何年も前からウィルス扱いなんで
まともな機能が追加されるはずがないだろ。
使えるコンポーネントはゴミばかりだっつーの

795 名前:名無し~3.EXE:2007/06/01(金) 10:04:36 ID:tTkE71Pg
>>794
WSHに代わるスクリプト言語で、最近の流行は何?
実行エンジンはWindows標準でついてるもので。

796 名前:名無し~3.EXE:2007/06/01(金) 19:30:05 ID:hBq+oeU8
WSHが言語ですって・・・

( ´д)ヒソ(´д`)ヒソ(д` )ヒソ

797 名前:名無し~3.EXE:2007/06/01(金) 23:24:16 ID:9i7Jo/Z3
bat

798 名前:名無し~3.EXE:2007/06/01(金) 23:33:46 ID:NRR7s1fy
Windows標準ってったら限られるでしょう。
VistaですらPowerShell標準で入ってないし。
そういやIronPythonってのもあったな。

799 名前:名無し~3.EXE:2007/06/02(土) 02:06:08 ID:t0/jh1TP
>>795
もはやスクリプトやバッチの存在そのものが危険要素だし。

2chとか見れば掲示板にrdとか貼り付けるの続出だし
まともで使いやすい機能つけたら何しでかされるやら・・・

従って標準でそういう便利なものが入る事はこれからも多分有り得ない。
間違えてIEで使えるようにしてしまったADODBもすぐブロックされた訳だし、
folder.httのように無かった事にされたのもあるし(涙)

WSHで色々な事ができる、と言っても馬鹿みたいなコーディングになったり
全然使えない仕様のが出来たりするばかり。

WSHだけで何でもやろうとする人いるみたいだけど
遊びならともかく仕事で使うにはとてもとても・・・

>>796
言語でも別に問題ないだろ

800 名前:678:2007/06/02(土) 12:48:32 ID:Tox5gCCd
自分が使えないからって、そこまで嫌悪しなくてもいいのにね。(w

まあ、

> 言語でも別に問題ないだろ

なんて言ってるぐらいだから、何も理解できてないんだろうな。

801 名前:795:2007/06/02(土) 15:38:31 ID:sJzH3K8W
>>796
ごめんなさい

でも、Unix系ならperlは準標準みたいなもんだし
それに代わる何かはやっぱり欲しいよ

802 名前:名無し~3.EXE:2007/06/02(土) 21:14:09 ID:V+wqZ1WK
795のことじゃないが、
大したことも言ってないレス番をコテハンにして無駄に自己主張するのって流行ってるん?

803 名前:名無し~3.EXE:2007/06/02(土) 21:22:05 ID:HpzWdFlY
>>802
後々まで読み返してもらいたい会心のレス(のつもり)だったんだったりしてなw

804 名前:名無し~3.EXE:2007/06/03(日) 04:08:45 ID:IWupGHOH
だったんだったり?

805 名前:名無し~3.EXE:2007/06/03(日) 04:51:34 ID:ZxizyGM/
だったん人の踊り

806 名前:名無し~3.EXE:2007/06/03(日) 10:26:35 ID:V6O5Vhs0
ダダ星人 「<<807」

807 名前:名無し~3.EXE:2007/06/03(日) 14:48:45 ID:M7V2Ms+i
UNIX系は基本的にユーザー自身に
Cが使える事が前提みたいな物だからな。
WindowsでもC使えれば問題ないし

808 名前:名無し~3.EXE:2007/06/03(日) 15:35:21 ID:r5V6kpWr
C くらい誰でも書けるだろ。いや煽りとかじゃなくて、
wsh 使うようなやつならなおさら。

809 名前:名無し~3.EXE:2007/06/03(日) 16:32:07 ID:b/QnnZbo
正直ソース拾ってきてBCCでコンパイルするぐらいにしか使ってない

810 名前:名無し~3.EXE:2007/06/03(日) 19:56:39 ID:M7V2Ms+i
誰でも書けるはずないだろw
WSH使うような奴ならなおさらw

811 名前:名無し~3.EXE:2007/06/03(日) 20:43:57 ID:2mijn1fZ
日本人の8割は書けない

812 名前:名無し~3.EXE:2007/06/03(日) 23:50:59 ID:b/QnnZbo
仮性包茎とCを一緒くたにするのはどうかと思うんだ うん

813 名前:名無し~3.EXE:2007/06/04(月) 05:28:55 ID:joPUDTqQ
だったら男の8割だろ?日本人全体なら4割だろ。
もっとも女でも○ケてる○ケてないで
判断できるかもしれんがwww

814 名前:名無し~3.EXE:2007/06/04(月) 05:35:39 ID:hG9jg+BN
でもWinって標準でCコンパイラ入ってないよな?
>>795が言いたかったのはそういうことなんじゃ

815 名前:名無し~3.EXE:2007/06/04(月) 22:39:30 ID:LmzJEMQb
オフィス2003にしたらscript editorとかいうのがあるのに気付いたんですが、これでスクリプトのデバッグができるんでしょうか?
やさしい解説サイトとかないですかね?

816 名前:名無し~3.EXE:2007/06/05(火) 20:26:19 ID:u/nTCPgP
確かWSHのデバッガもあったはず。
全く使った事ないけど。

817 名前:名無し~3.EXE:2007/06/05(火) 21:00:49 ID:sFfY/O22
漢ならmsgboxだけでデバッグしる!

818 名前:名無し~3.EXE:2007/06/05(火) 22:12:29 ID:EKSzdYna
デバッガ使わずに実行デバッグやるならcscript+WScript.Echoの方がいいよ。

結果が残るし、MsgBoxと違って部分コピペ楽だし、WScript.Echoの後に
WScript.Stdin.ReadLineを入れればEnter押すまで停止
WScript.Sleep入れれば任意時間停止
入れなければ出力のみで停止無し、と使い分けられし入力も出来る。

MsgBoxだと「Enter押すまで停止」しか出来ない。
WshShellのPopupなら「任意時間停止」も出来るけどね。
だからこそ、そういう不便な物でデバッグやるのが漢だと言うのかも知れないが。

819 名前:名無し~3.EXE:2007/06/06(水) 03:36:13 ID:FCaZ9cio
でOffice 2003の話は?

820 名前:名無し~3.EXE:2007/06/06(水) 07:15:29 ID:dT8F868I
シラネーヨ

821 名前:名無し~3.EXE:2007/06/06(水) 23:42:31 ID:UPeqzG+/
昔々、ここのスレの方に手伝ってもらってできたもの。還元。
http://www.geocities.jp/madly_aloe/imjs.zip

なんとなく放置気味で落とせなくなっていたので。
微妙に自動インデント機能追加した。デバッグにもどうぞ。
cscript imjs.js [デバッグしたいファイル。]
って感じ。動作確認にも便利。

822 名前:名無し~3.EXE:2007/06/07(木) 23:18:18 ID:Ejm52VK9
デバッグってあんまり話題にならないから参考になりました
感謝

823 名前:名無し~3.EXE:2007/06/07(木) 23:37:53 ID:YWbfCbJY
ぶっちゃけRhinoだな。

824 名前:名無し~3.EXE:2007/06/10(日) 15:34:00 ID:DAdn2QUR
ファイルの行数を数えようとAtEndOfStreamでカウント取ろうとしたら無限ループに陥った

空読みしないとポインタが進まないのね・・・


825 名前:678:2007/06/10(日) 17:28:54 ID:fWS3EzOx
そりゃ AtEndOfStream の呼び出しでポインタ進んだら困るだろ。

826 名前:名無し~3.EXE:2007/06/10(日) 18:16:43 ID:odZ23lIs
ちょっと考えりゃ分かることなのにな。

827 名前:名無し~3.EXE:2007/06/10(日) 18:18:21 ID:FJ0Um+f/
WSHからMCIってどうやって制御するん?
もしかして出来ないのか?

828 名前:名無し~3.EXE:2007/06/10(日) 18:28:59 ID:Q4mnrcCU
>>824
SkipLine

829 名前:821:2007/06/10(日) 20:13:43 ID:Onv6LJJz
Jashみたく補完機能とか付けたいんだけどWScriptオブジェクトのプロパティの
名前ってどうやって取ってくるの?

830 名前:名無し~3.EXE:2007/06/10(日) 20:56:15 ID:Q4mnrcCU
>>829
タイプライブラリ

831 名前:821:2007/06/10(日) 21:51:53 ID:Onv6LJJz
>>830
thx!!

832 名前:名無し~3.EXE:2007/06/11(月) 01:14:09 ID:uVumgOHQ
821のことじゃないが、
大したことも言ってないレス番をコテハンにして無駄に自己主張するのって流行ってるん?

833 名前:名無し~3.EXE:2007/06/11(月) 01:18:10 ID:uVumgOHQ
↑いや、これはマジで821のこと言ってるつもりじゃないんだけどね。
(気にせんでくれ>>821

834 名前:名無し~3.EXE:2007/06/11(月) 01:54:29 ID:IEwmwztl
>>832
>>803

そっとしておいてあげて
彼のちっぽけなプライドが傷付いちゃうから

835 名前:名無し~3.EXE:2007/06/11(月) 09:53:34 ID:uv8jjJR1
キモい

836 名前:名無し~3.EXE:2007/06/11(月) 19:22:14 ID:hgowUgDr
>>834
IDがIE関係の何かのツールみたい

837 名前:名無し~3.EXE:2007/06/12(火) 02:57:51 ID:LoWeRUTB
>>836
歯がウジだらけじゃない?

838 名前:名無し~3.EXE:2007/06/12(火) 06:10:17 ID:oo++7sj9
>>837
お前はロウェルトビーな奴だな!

839 名前:名無し~3.EXE:2007/06/16(土) 23:55:26 ID:OW/2sypB
コールバック関数って使えないの?

840 名前:名無し~3.EXE:2007/06/16(土) 23:59:58 ID:9upkKUNB
なんに?

841 名前:名無し~3.EXE:2007/06/17(日) 00:00:09 ID:Dfksh/gM
age

842 名前:名無し~3.EXE:2007/06/17(日) 00:19:17 ID:XImUwll5
>>840
コールバック

843 名前:名無し~3.EXE:2007/06/17(日) 00:35:15 ID:ltEHne1B
関数のアドレスが分からんから無理っしょ。
常識的に考えて

844 名前:名無し~3.EXE:2007/06/17(日) 00:53:54 ID:bnlBKe1/
アドレスがわかったとしてそれをどーするのか、と。

845 名前:名無し~3.EXE:2007/06/17(日) 00:56:56 ID:bnlBKe1/
OLE流のコールバックならある事はあるけどな。

846 名前:名無し~3.EXE:2007/06/17(日) 22:27:06 ID:VKMLzsQR
JavaScriptなら関数でも、関数がメンバのオブジェクトでも引数にできるけど、
そういう話ではない?

847 名前:名無し~3.EXE:2007/06/26(火) 12:51:09 ID:CP6U2REC
>>846
まあIEとかだとそんな感じでイベントハンドラ指定するだろうけど。
OLEはあとコネクションポイントもあるけど。
>>839は意味不明だな。そもそもWin32 APIが使えないのに。
APIをコールできて(APIの)コールバックもシミュレートする
コンポーネント作ったとかいうブログがあるけど
作者が宣伝に来たかな?

848 名前:名無し~3.EXE:2007/06/26(火) 20:25:58 ID:UK2pdIKC
ttp://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/oct04/hey1008.mspx
↑を参考にしてローカルのadministratorでも
ドメインユーザーを追加出来るようにしたいんだけど無理かな。
ドメインユーザを追加できる権限を持つユーザのユーザIDとパスワードを
どうやって渡すのか解らなくてはまってる。

ドメイン参加の場合は↓ユーザIDとパスワード渡せるのに上では何か不便。
http://www.microsoft.com/japan/technet/scriptcenter/scripts/ad/computer/cptrvb06.mspx

何か知っている人います?


849 名前:名無し~3.EXE:2007/06/27(水) 21:56:43 ID:VWf9EHKN
ドメコンからlocalmachine\administratorにadduser権限付けてやりゃ良いだろが

850 名前:名無し~3.EXE:2007/06/27(水) 23:18:39 ID:FiTR9zSt
>>849
コメントありがとうございます。それは出来ない運用になっているのです。
限られたドメインユーザのみ他の一般ドメインユーザを追加出来る様に運用しています。
ですので現在追加するとき認証ダイアログから
ユーザID:domain\hogehoge
パスワード:******
としてから追加しているのです。この認証情報も渡す事が出来ればと思いまして
質問させて頂きました。



851 名前:名無し~3.EXE:2007/06/27(水) 23:59:13 ID:VWf9EHKN
ほいだら

852 名前:名無し~3.EXE:2007/06/28(木) 00:02:00 ID:VWf9EHKN
途中送信スマソ

ほいだら、OSコマンドのnet user /domain /add usernameみたいなのを
runasかますかなんかしてshellexecuteでキックすればいいんでないの?

ActiveDirectoryだったら、CDのSupportかなんかに便利そうな
ツールいっぱいありそうだけど、詳しく知らないので確約できナス

853 名前:848:2007/06/29(金) 20:15:22 ID:jFptocCk
>>852
アドバイスthx!!
runas /noprofile /user:domain\hogehoge"cscript.exe C:\Scripts\test.vbs"
でいけた!
あとはhogehogeの部分とC:\Scripts\test.vbsが相対パスかカレントディレクトリで
指定できるように改造します。
本当に感謝!



854 名前:848:2007/06/29(金) 20:18:07 ID:jFptocCk
やべ興奮して日本語が変になった。すいません。

あとはhogehogeの部分を入力方式にして
そして"C:\Scripts\test.vbs"が相対パスかカレントディレクトリ取得で
指定できるように改造します。


855 名前:名無し~3.EXE:2007/06/29(金) 21:39:41 ID:kEXg+Fpo
CDのトレーを閉じたいんだけど、出来る?

856 名前:名無し~3.EXE:2007/06/29(金) 22:00:33 ID:3Ycil6FA
WSH自体では出来ないけど、外部のコンポーネントやツールを使って良いなら出来る

857 名前:名無し~3.EXE:2007/06/29(金) 22:15:20 ID:kEXg+Fpo
>>856
外部コンポーネントか・・・

IEとかエクセルの使えば出来るかな?
なんかインストールしなくてもいいやつで

858 名前:名無し~3.EXE:2007/06/29(金) 23:36:01 ID:u0d9hMDS
君は言葉の使い方から覚えた方が良い

859 名前:名無し~3.EXE:2007/07/01(日) 06:39:27 ID:Dw05PCbS
>>855
http://pc11.2ch.net/test/read.cgi/tech/1176698934/117
トレイ空いた状態で
Set WMP = CreateObject("WMPlayer.OCX")
WWMP.cdromCollection.item(0).eject
WWMP.cdromCollection.item(0).eject
こうやるとできるみたいだよ。ejectなのにw
WSHが壊れるみたいだけど♥

860 名前:名無し~3.EXE:2007/07/01(日) 15:30:45 ID:Kan5FiJ6
別に壊れないし、ちゃんとやればWSHも終了する

861 名前:名無し~3.EXE:2007/07/01(日) 16:23:31 ID:0toxHbhu
やれやれ。何の妄想か知らんけど
終了しなくなるのは普通壊れるって言うの。

ちゃんとも何もスクリプトでは
これはごく普通のコード。
何のためにVariantClearがあると思ってんだよ。

862 名前:名無し~3.EXE:2007/07/01(日) 16:33:45 ID:7s4ErC2+
ゴミプロセスが残るとは言うが、壊れるとは言わないな。
壊れるってのはwshのコンポーネントがおかしくなったりしたら当てはまるだろうけど。

いったいどこの普通なのだろう。

863 名前:名無し~3.EXE:2007/07/01(日) 20:03:43 ID:Y/1PoJPy
>>859
閉じたいっつってんだろ
ちゃんと聞けよこのドア帆が

864 名前:名無し~3.EXE:2007/07/01(日) 22:13:15 ID:Kan5FiJ6
>>861
何の妄想か知らんけど、君の脳内限定の常識が
世間一般でも通用すると思わないでね

865 名前:678:2007/07/02(月) 00:25:45 ID:qR6/c1TB
>>860
> ちゃんとやればWSHも終了する

kwsk

>>863
ごちゃごちゃ言ってないで、>>859 の言う通りやってみ。

ただし、2〜3行目は

× WWMP.cdromCollection.item(0).eject
○ WMP.cdromCollection.item(0).eject

だと思うが。

866 名前:名無し~3.EXE:2007/07/02(月) 16:01:35 ID:NwbhG/+y
wscript.exeのプロセス残さず終了するみたいだけど@Vista
プロセスが残る人はWMP.close()とかしてみたらどう?

867 名前:名無し~3.EXE:2007/07/02(月) 17:13:32 ID:r7RxEpCG
XPでも問題なし。でも、Win2kだとプロセスが残るみたいだな。

868 名前:名無し~3.EXE:2007/07/03(火) 00:28:34 ID:6BmsY8Wk
WMPの修正が出てるみたい。Windows Updateしなはれ

869 名前:678:2007/07/03(火) 21:17:01 ID:t4OQPhQ+
WMP 最新版 (9.00.00.3349) にしたけど駄目だった... orz

870 名前:名無し~3.EXE:2007/07/04(水) 02:18:13 ID:goc1OeTW
CreateObject("MSWebDVD.MSWebDVD").eject
うまく行かんな

871 名前:名無し~3.EXE:2007/07/04(水) 09:19:57 ID:IfTdLpgR
>>869
確かにそのバージョンでwscriptがバックに残るのを確認したよ
9じゃなく8なら大丈夫かもね

872 名前:名無し~3.EXE:2007/07/07(土) 17:21:28 ID:Hb+rLCB5
下記のソースで共有フォルダを作ると「アクセスが拒否されました」
がでてしまします。
何かご存じの方がいらしたら、ヒントをお教えください。

・実行したpc:windowsXP(sp2)
・ユーザー:admin権限あり
・スクリプトは問題なく実行されます。プロパティでも共有にチェック入りました。
・共有は簡易共有
・手作業で共有フォルダを作ると問題なし
・拒否されたpc:XPsp2,2000sp4(マイネットワークからは見える)

(mにはフォルダ名、nには共有名が入ります)
---------------------------------------------------------------
Const FILE_SHARE = 0
Const MAXIMUM_CONNECTIONS = 25
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set objNewShare = objWMIService.Get("Win32_Share")
errReturn = objNewShare.Create _
(m, n, FILE_SHARE, _
MAXIMUM_CONNECTIONS, "Public share")
----------------------------------------------------------------

何か足りない気がしてググったりしてみたのですが、お手上げ状態になって
しまいました。
こうするといいかもと言うヒントで結構ですのでよろしくお願いします。


873 名前:名無し~3.EXE:2007/07/07(土) 19:43:41 ID:IkCZnvKX
その手のメソッドを使ったこと無いけど、XP,2Kじゃ最大接続数が10だからじゃねーの?

874 名前:名無し~3.EXE:2007/07/08(日) 05:38:49 ID:xUbCf4be
>>861
脳内用語フイタ

875 名前:名無し~3.EXE:2007/07/08(日) 11:17:52 ID:ySfZz1Mb
872です

一応解決しました。
結局共有の設定はできていて、フォルダのセキュリティに
権限が足りていなかったので、アクセス拒否されたって事
みたいでした。

なので、フォルダのセキュリティにユーザーを追加する
スクリプトを実行して解決しました。(今回はeveryone)

あ、osはよく考えたらxp proでした。homeがないので
テストできないんすけど、何か違いがあるのかな?


876 名前:名無し~3.EXE:2007/07/08(日) 13:47:20 ID:T41Asqy1
未開封のMeを貰ったのだけど(金と銀の2枚DISKのやつ)インストールDISKてどうやって作るのでしょうか?

877 名前:名無し~3.EXE:2007/07/08(日) 14:02:51 ID:btismvLv
スレ違いじゃね?
まあマジレスすると、あと銅のディスクが必要

878 名前:名無し~3.EXE:2007/07/08(日) 16:33:02 ID:u6K+Fvbl
五輪か三種の神器っぽいな

879 名前:名無し~3.EXE:2007/07/08(日) 22:02:43 ID:gIJtA/ES
あのー
クリップボードの画像をJPGに変換するVBS作ってくれませんか?



880 名前:名無し~3.EXE:2007/07/08(日) 22:12:34 ID:8a2z5ma9
IrfanViewでも使え

881 名前:名無し~3.EXE:2007/07/08(日) 22:56:45 ID:PKXkFITB
SendToConvertでも使え

882 名前:名無し~3.EXE:2007/07/09(月) 00:07:39 ID:2vI08xWK
softじゃだめなのよ
お願い

883 名前:名無し~3.EXE:2007/07/09(月) 00:33:18 ID:i5t8KIyz
無理じゃね?


884 名前:名無し~3.EXE:2007/07/09(月) 01:00:56 ID:JHYMYW01
じゃあSendKeysでペイントにでも貼り付けて保存しろ

885 名前:名無し~3.EXE:2007/07/09(月) 06:43:32 ID:uBj5RvIM
>>879
VBSとWSHにはクリップボードを操作する機能も、画像を変換する機能もないので無理です

そういうことが出来るCOM使えば可能だけど、COMの導入にはレジストリへの登録が必要なので
COMよりそういうアプリを使った方が手軽だよ

それでもVBSでやりたいの?

886 名前:名無し~3.EXE:2007/07/09(月) 07:20:27 ID:d7kDyIj4
どうせロクな目的じゃないからほっとけよ

887 名前:名無し~3.EXE:2007/07/10(火) 21:22:00 ID:uOatR1Kv
自分でexe作って呼び出せばいいんじゃないの?
以上

888 名前:名無し~3.EXE:2007/07/14(土) 17:55:15 ID:GfgVyhQB
WSHの Wscript.Shell の sendKeysでアプリケーションの操作を自動化したいのですが
そのアプリケーションってのがFileZillaっていうFTPクライアントなのですが

以下の問題にぶち当たって自動化できません。この場合WSHでは不可能なのでしょうか?
1.Tabキーを押しても該当する場所までカーソルが移動してくれない>マウスでクリックしないと
移動できないからキーイベント送信だと移動できない(と思われる)
2.右クリックしないとメニューが表示されない>やはりこちらもマウスを使わないと
呼び出せないメニュー(と思われる)なのでキーイベント送信だと出来ない(と思われる)

こんな状態なのですが・・・ 具体的にやりたい事は

起動>Ctrl+S > ↓キー Enterキー で事前にFileZillaに登録しておいたサイトへの
接続が可能なのですが、ココからローカル側に表示されているファイルをリモート側に
全て選択してアップロードしたいのですが、アップロードするときにマウスを使わないと
どうしても出来なくて困っているのです。 何か良い方法は無いですかねぇ?

889 名前:名無し~3.EXE:2007/07/14(土) 18:25:08 ID:FcAQvv0D
マウス操作の出来るCOM導入して使えばいいだけだが
そういうのはWSHではなくAHkとか使った方がいいよ
適材適所ってやつね

890 名前:名無し~3.EXE:2007/07/14(土) 18:35:59 ID:H9FfnSRO
>>888じゃないけど、そーゆーのってできればOS標準の
機能だけでやりたい時ってあるじゃない。

そもそもFileZillaがCUIだけで使えればいいのにね。
ていうか、CUIで使えるクライアントじゃダメ?


891 名前:名無し~3.EXE:2007/07/14(土) 19:01:05 ID:XHzcIZJ5
ftpであぷするだけならwshだけできるんじゃない、sshは知らんけど

892 名前:888:2007/07/14(土) 19:14:31 ID:GfgVyhQB
皆さんレスありがとうございます!

>>889
COMって言うのが何なのか知らないのですが、AHKと言うのは AutoHotKey の事ですか?
外部アプリをなるべく入れたくないんですよね・・・。

>>890
そうそう、標準だけでやりたいんです。色々なPCに導入する事になるので
そのたびにいちいちインストールしていてはね。。。

FileZillaがCUIだけで使えればいいのに!ってのは同感です。だから困ってるんです。
CUIで使えるクライアント(例:FFFTP)を試してみましたが、
50GBぐらいの大量データ全てをミラーリングアップロードとかやるとフリーズするんです。
他のFTPクライアントを試してもフリーズするんですが、唯一FileZillaのBeta3だけは
その負荷に耐えて正常に転送できるんです(同期機能が無いのが痛いけど)。

>>891
むしろWindows標準のftp.exeでいいなら .batファイルだけで出来ますよ。。。

893 名前:名無し~3.EXE:2007/07/14(土) 19:18:34 ID:XHzcIZJ5
FileZillaは外部アプリなんじゃ。。と釣られてみる

894 名前:888:2007/07/14(土) 19:24:43 ID:GfgVyhQB
>>893
それは確かに貴方のおっしゃる通りなのですが、こればかりは仕方が無いんです。
しかし外部アプリとは言えども、FileZillaのZip版を落としてきたので

インストール不要。コピーするだけで使える。

からまぁよしとしましょう。出来ればWindowsが標準で持っているftp.exeを使いたいんですが
あれはレジュームも出来なければ大量のファイルを飛ばすと転送できてないファイルが
大量にあるし、機能が貧弱すぎて使い物になりません。

一番の理想は FFFTPに -s プロファイル名 -m -q のようなオプションをつけて
実行できる事なのですが、前述したようにフリーズするのでやむを得ずFileZillaです。
それをWSHで自動化出来ればと思ってWSHを勉強してきたのですが
なんか出来なさそうでショボーン。。。

895 名前:名無し~3.EXE:2007/07/14(土) 19:43:59 ID:pb6heUMX
AutoHotkeyもコピーで使えるだろ

896 名前:名無し~3.EXE:2007/07/14(土) 19:45:51 ID:XHzcIZJ5
<>>888
転送できていないファイルの差分をチェックして、送り直すとか、
何秒かごとに1ファイルずつ転送とかできない?
wshあまり詳しくないのでこれ以上は、ごめん

897 名前:888:2007/07/14(土) 19:51:07 ID:GfgVyhQB
>>895
へぇ・・・AutoHotKeyもコピーで使えるんだ・・・知らなかった。
でもまた1から文法覚えたりしないといけないのか、、、辛すぎ・・・OTL

>>896
そんな無茶な。それは無理でしょうね。。。

898 名前:888:2007/07/14(土) 20:09:23 ID:GfgVyhQB
AutoHotKey ちょっと調べてみたところ、どうやらキーボード入力に応じて
あらかじめ組み込んだ処理を実行するようで。
スケジューラに組み込んで実行したいので(無人で定期実行)
何かキーを押さないと動作し無いと言うのはダメですね。
だからってWSHと組み合わせる(Wscript.ShellのsendKeys)のはこれまた大掛かりな・・。
AutoItってのが良さそうだと思ったのですが日本語の情報が全く無くて困ったり・・・。
WSHは解説サイトが豊富ですよね。

899 名前:名無し~3.EXE:2007/07/14(土) 20:11:39 ID:H9FfnSRO
>>897
FFFTPは1.93って最新版が出たけど、それ使ってもダメ?
GNUのWin32版ftp.exeってのもあるよ。

それから、一気に転送するのではなく、>>896の言うとおりの方法にすれば
十分可能だと思うよ。1ファイルの大きさが大きすぎてフリーズって事なら
難しいけど・・・・。
FTPクライアント起動 ⇒ 1ファイル転送 ⇒ FTPクライアント終了 ⇒ FTPクライアント起動・・・

あとはAHKのコピーがOKなら、それとFilezillaでもいいんじゃない?
覚えるのはWSH程、複雑じゃないから。

900 名前:名無し~3.EXE:2007/07/14(土) 20:13:37 ID:H9FfnSRO
スマソ>>898確認してなかった。



901 名前:名無し~3.EXE:2007/07/14(土) 20:17:04 ID:H9FfnSRO
>>899
どちらにせよ、WSHだけでってのは難しいでしょ。

モレは使った事ないけど、アプリのコピーがOKなら、UWSCってのがあるよ。
ttp://www.uwsc.info/



902 名前:名無し~3.EXE:2007/07/14(土) 21:16:42 ID:FcAQvv0D
>>898
> AutoHotKey ちょっと調べてみたところ、どうやらキーボード入力に応じて
> あらかじめ組み込んだ処理を実行するようで。
そういうことも出来るけど

> スケジューラに組み込んで実行したいので(無人で定期実行)
も出来るのでWSHと組み合わせる必要なし
君がちゃんと調べてないだけ

それに操作の自動化程度なら、文法なんて覚える必要無し
キーを送ったりクリックしたりのコマンドを必要数羅列するだけで一通り動く

903 名前:888:2007/07/14(土) 22:41:32 ID:GfgVyhQB
>>899
もちろん 1.93の最新版も 古いけど安定したバージョン(Ver.1.82a) も両方試しています。
それでもダメなので、この件はFFFTPの作者にメールを送信済みです。

GNUのWin32版ftp.exeってのは標準のと何が違うんですか?

>FTPクライアント起動 ⇒ 1ファイル転送 ⇒ FTPクライアント終了 ⇒ FTPクライアント起動・・・
現実的とは思えません。5000ファイルぐらいを飛ばすと考えると不可能でしょ。。。
そんなスクリプト書くのもどう書いたらいいのかさっぱり分からないし・・・。

>>902
え、本当ですか!

UWSC AutoHotKey AutoIt の3つのうちどれが簡単で
私の今回の目的を一番達成しやすいですかねぇ?
AutoItは日本語の情報がほとんど無い > 使えそうに無い
UWSCは有料?フリー版もあるみたいだけど実行するマシンにいちいちインストールが
必要っぽい(有料版はEXE生成可能みたい)
って事はやっぱりAutoHotKeyを学ぶべきか!

904 名前:名無し~3.EXE:2007/07/14(土) 23:12:27 ID:H9FfnSRO
>>903
>現実的とは思えません。5000ファイルぐらいを飛ばすと考えると不可能でしょ。。。
>そんなスクリプト書くのもどう書いたらいいのかさっぱり分からないし・・・。

ふつーに可能だと思うけど。ルーチンワークを簡単に自動実行するのが、
WSHの良さの一つだと思うんだが。

スクリプトの書き方がわからないのは単に勉強不足なだけでしょ?

ちなみにWSHが外れている時点で既にスレ違い。あとはここまで教えてもらった事を
自分で試して報告してくれ。



905 名前:888:2007/07/14(土) 23:38:33 ID:GfgVyhQB
>>904
WSHの話題から外れると確かにスレ違いになるので、ココではもうAutoHotKeyについて
私は話しませんが、
>ふつーに可能だと思うけど。ルーチンワークを簡単に自動実行するのが、
とおっしゃってますが、それは標準の ftp.exeを用いて実行させるんですか?
そもそも同期を取るのが難しい気が・・・。
それにオーバヘッドが大きすぎません?
>スクリプトの書き方がわからないのは単に勉強不足なだけでしょ?
書き方と言うかアルゴリズムと言うか・・・まぁ勉強不足なのは認めますよ。

906 名前:名無し~3.EXE:2007/07/14(土) 23:46:24 ID:NkXCH4LZ
>>905
ftp.exe使うなら-iつけて対話カットすればいいし
オーバーヘッドなんか5000程度ならそもそも無視していいと思うよ

ていうか、こうして無駄話をしている間にもオーバーヘッド分の時間ぐらい
あっという間に過ぎちゃってるでしょ?
大丈夫、WSHは怖くないわ。勇気を出して!

907 名前:名無し~3.EXE:2007/07/15(日) 14:53:26 ID:L1MyiOj2
WSH初心者です。
<INPUT type=image ・・・について質問がありますm(_ _)m
VBSで自動操縦したいページに<INPUT type=image ・・・がありました。
document.getElementsByName("imageBtn")で要素を探して.Clickすることはできたんですが
Submitされる座標がx=0 y=0になってしまいます。
x,yを任意の値にするにはどうしたらよいでしょうか?
VBSで無理そうならAutoHotKeyを勉強してマウスクリックを代替したいと思います。
クリックする位置はoffsetLeft,offsetTopなどから調べたらいいのでしょうか?
初心者なのでよくわかりませんが。

環境:XPSP2、WSH5.6、IE6SP1
WSH,VBS歴:3ヶ月

僕がtype=imageについて調べたページです。
http://msdn.microsoft.com/library/ja/jpisdk/dhtml/references/objects/INPUT.asp?FRAME=true#image

ttp://d.hatena.ne.jp/umakoya/searchdiary?word=*%5Bjavascript%5D
ttp://www.gac.jp/article/index.php?stats=question&category=9&id=12124&command=msg
ttp://hp.vector.co.jp/authors/VA014833/HTML32/textlevel.html
ttp://bakera.jp/ref/html/element/input
ttp://chaichan.web.infoseek.co.jp/qa6000/qa6413.htm
ttp://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200504/05040004.txt

908 名前:名無し~3.EXE:2007/07/17(火) 21:16:11 ID:onEBTsG0
WSHというかHTMLの問題だと思う
そもそもxyなんて自動で送信されるわけないし、submitしてる値はinputにあるんでしょ?
valueを設定してからsubmitするか、GET限定なら直接location.hrefにurlとしてクエリを付加してから代入すればいい
なお、分からないならHTML、特にformについて勉強不足なので勉強するしかない


909 名前:678:2007/07/18(水) 00:19:37 ID:ddXkilXj
>>907
imageBtn_x, imageBtn_y で送られるんだから、そのフォームに
<input type="hidden" name="imageBtn_x" value="123"> のエレ
メントを追加してから click メソッド呼べばいいんじゃね?

>>908
偉そうに書く前に、<input type="image" についてぐぐってこい。

910 名前:907:2007/07/18(水) 02:21:13 ID:yA++WBCH
お二人様、レスありがとうございましたm(_ _)m
>>909
勉強不足の自分ではどうにもならず、困りきっていたところにまばゆい光が><
早速試させて頂きたいと思いますm(_ _)m
>>908
僕が勉強不足だったと反省しております。HTMLとformについて基本から勉強したいと思います。
ありがとうございました^^

911 名前:名無し~3.EXE:2007/07/18(水) 09:04:01 ID:iGOu5/XR
>>910
> 僕が勉強不足だったと反省しております。

いや、俺の見る限り君の方がよっぽど勉強しているし理解度も高い。
まぁ謙遜は日本人の美徳だが。

ってか、読めば読むほど痛いレスだな、>>908は。

>>909
imageBtn.x, imageBtn.y っしょ。

どうあれ imageBtn.x=123 と共に imageBtn.x=0 の方も送られてしまうので
(受け取った側がどちらの値を採用するのか分からん)
エレメントの追加ってよりはいっそ上書きしちゃった方がいいと思う。

912 名前:911:2007/07/18(水) 09:07:18 ID:iGOu5/XR
ちょっと分かりにくかったかもしれないんで補足。

「追加ではなくて上書き」ってのは、オリジナルの

<input type="image" name="imageBtn" ...

を残さずに

<input type="hidden" name="imageBtn.x" value="123">
<input type="hidden" name="imageBtn.y" value="456">

に置き換えるってこと。んで submit() する。

これなら imageBtn.x=0, imageBtn.y=0 の方は送信されないで済む。

913 名前:911:2007/07/18(水) 09:18:14 ID:iGOu5/XR
> 読めば読むほど痛いレスだな

これはちと言い過ぎだった、すまぬ。

914 名前:907:2007/07/18(水) 20:29:32 ID:yA++WBCH
>>907さん、>>911さん
この方法で無事成功しました!
本当にありがとうございましたToT
formのPOSTで送信されるデータがhiddenで代替できるなんて初めて知りました。
教えて頂かなければずっとわからなかったと思います。
やはりHTML,formについて基礎から勉強していくべきですね^^;

>>908さんもありがとうございました。
二日間レスがなかったので非常に嬉しかったです。
余談ですが、VBSでブラウザ操作する場合、JavaScriptの解説HPが参考になることを最近初めて知りました。
恥ずかしながらformの要素やメソッドなども5日前知った程度です。
僕など、908さんの足元にも及ばないです。

レスを頂いた皆様ありがとうございました。
それでは失礼しますm(_ _)m

915 名前:名無し~3.EXE:2007/07/18(水) 21:07:18 ID:ZW3Df9Iy
ブラウザのオンライン・オフラインを切り替える事は可能でしょうか?
ネットワーク全体を切り替えてしまっても構いません。
よろしくお願いします。

916 名前:名無し~3.EXE:2007/07/18(水) 21:22:19 ID:HP3hsGve
どうせならCとかのまともな言語のスレに行けばいいのに・・・

917 名前:名無し~3.EXE:2007/07/19(木) 05:17:24 ID:FwfyMSnr
Offline Property (InternetExplorer, WebBrowser)
http://msdn2.microsoft.com/en-us/library/aa752061.aspx


918 名前:915:2007/07/19(木) 15:29:08 ID:tX7CbwFy
ありがとうございました。

919 名前:名無し~3.EXE:2007/07/21(土) 22:37:37 ID:KFSHL472
バッチファイルからcscriptで実行するvbsファイルを下記のように作成しました。

Option Explicit
On Error Resume Next
Dim objShell
Set objShell = WScript.CreateObject("Shell.Application")
If Err.Number = 0 Then
Dim objFolder
Set objFolder = objShell.BrowseForFolder(0, "フォルダを選択してください", 0)
If Not objFolder Is Nothing Then
WScript.Echo objFolder.Items.Item.Path
Set objFolder = Nothing
End If
Else
WScript.Echo "ERROR : " ^& Err.Description
End If

これってスクリプト遮断機能で検出されますか?

<チラシの裏>ウィルスバスターにはスクリプト遮断機能がありません。</チラシの裏>


920 名前:名無し~3.EXE:2007/07/21(土) 22:38:46 ID:KFSHL472
あ、「^」は無しです。すみません。

921 名前:名無し~3.EXE:2007/07/21(土) 22:49:36 ID:LhieJYkS
動かしたい環境で動かしてみればいいじゃん

922 名前:名無し~3.EXE:2007/07/21(土) 23:15:44 ID:KFSHL472
>>920
ターゲットは遠方に住む複数の知人のPCなので検証は出来ません。
うちの環境では何事も無く動作しますが、
CreateObjectがスクリプト遮断機能にゴルァされるとの噂を聞きつけまして・・・。

923 名前:678:2007/07/22(日) 00:10:25 ID:tM9sO4Uc
>>922
遠方って... 今時何言ってるんだよ。

その知人にメールで送って試してもらえばいいじゃん。

924 名前:名無し~3.EXE:2007/07/22(日) 00:25:58 ID:qlCupvCr
>>923
知人にはディスクを作成して送付することになっています。
また、デバッグを依頼できるほど親しい間柄でもありませんし、
親しい友人はみなウィルスバスター使いばかりです。
VirtualPC上のWinXPにNAV体験版を入れてみましたが、
動作が重すぎて検証になりませんでした。
それで、思い悩んだ挙句、こちらで質問した次第です。

925 名前:名無し~3.EXE:2007/07/22(日) 01:03:54 ID:KWFVImrU
>>924
親しくなれよ
いいチャンスだろ

926 名前:名無し~3.EXE:2007/07/22(日) 01:53:37 ID:ANMbH8Zu
そもそも環境依存の問題なんて当該者以外の他人に聞いても解決するもんじゃないと思うのだが
最低でもその知人とやら全員の使用しているアンチウィルスソフトとそのバージョン、およびそれを
どんな設定で使用してるかがわかんなきゃ答えようがないような気がするけどな

927 名前:名無し~3.EXE:2007/07/22(日) 02:17:45 ID:FJATDgF/
その友人にこのスレのURLを送って試してもらえばおk

928 名前:名無し~3.EXE:2007/07/22(日) 11:31:20 ID:h90uHO0r
JScriptでゴミ箱を空にするのを作ったんですが
ゴミ箱アイコンがゴミが入ったやつのままになってしまいます。
このアイコンを空のものに更新する方法はありますか?

929 名前:928 :2007/07/22(日) 11:47:19 ID:h90uHO0r
追記
ユーザ操作無しで実行したいのでInvokeVerb以外の方法を探しています。
削除はfsoです。

よろしくお願いします。

930 名前:名無し~3.EXE:2007/07/22(日) 17:27:06 ID:wDEF0MHr
まず、どういう操作でアイコンが変わるか探せ
デスクトップで最新の情報に更新とか
ごみ箱開いてみるとか
あとはそれをスクリプト化しろ

931 名前:名無し~3.EXE:2007/07/22(日) 17:47:14 ID:r3GGLn2z
>>930
はぁ?それはお前の仕事だろ?

932 名前:名無し~3.EXE:2007/07/22(日) 18:38:40 ID:FJATDgF/
>>931
夏休みの宿題は早めにやっとけよ?
毎年まぎわになってから親に頼るな


933 名前:名無し~3.EXE:2007/07/23(月) 01:31:09 ID:tk7bscW7
「ネットワーク接続」内にある接続先を実行する方法はどうすればいいでしょうか?

934 名前:名無し~3.EXE:2007/07/23(月) 03:38:36 ID:tiz4Fn4+
>>933
Shell.Application使えばいいよ
具体的な方法はググればいくらでも出てくるからそっちを見てね

935 名前:933:2007/07/24(火) 01:03:02 ID:S/R6bNn1
>>934

Const NETWORK_CONNECTIONS = &H31&

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(NETWORK_CONNECTIONS)

Set colItems = objFolder.Items
For Each objItem in colItems
    If objItem.Name = "hogehoge" Then
        'hogehoge に接続しる!
    End If
Next

こんな感じだと思うのですが、肝心な接続する(実行する?)方法がわかりません。
ググってみたけどわからなかったです。

936 名前:名無し~3.EXE:2007/07/25(水) 01:24:37 ID:EAIl+hNG
FolderItem.InvokeVerb
or
Verb.Doit

937 名前:名無し~3.EXE:2007/08/02(木) 19:06:04 ID:HYV9OexC
IEのコンテキストメニューから呼び出すスクリプトの中で文字入力ダイアログを使いたいのですが、
下のようにやると ”InputBoxに書き込みできません”となります。
エラーの回避方法がありましたらよろしくお願いします。
<HTML><SCRIPT language="VBScript">

Function vbInputBox(message, title, default)
vbInputBox = InputBox(message, title, default)
End Function
Call vbInputBox("a","b","c")
</SCRIPT></HTML>

それか、window,promptの縦の長さを変えられる方法がありましたら教えてください。

938 名前:名無し~3.EXE:2007/08/02(木) 22:34:05 ID:hjwhShED
あ゛?普通に動くが

<HTML><SCRIPT language="VBScript">

Function vbInputBox(message, title, default)
vbInputBox = InputBox(message, title, default)
End Function

Document.Write vbInputBox("a","b","c")

</SCRIPT></HTML>

939 名前:937:2007/08/03(金) 11:39:25 ID:brmT2+zm
やっぱり動きません。

↓でも動かないし。
<HTML><SCRIPT language="VBScript">
MsgBox("a")

</SCRIPT>
</HTML>

940 名前:名無し~3.EXE:2007/08/03(金) 11:44:57 ID:U+Mx7u4b
>>939
動く。但し規定のブラウザがIEである事が前提。

941 名前:名無し~3.EXE:2007/08/03(金) 16:57:54 ID:gh3Au87b
>>937
win2000 IE6 ですが同じエラー出ますわ
prompt は平気なのにね、何でだろ

MenuExtに登録するhtml を

<SCRIPT type="text/JScript">
var wshell = new ActiveXObject("WScript.Shell");
wshell.run("パス\\vbInputBox.vbs");
</SCRIPT>

にしてワンクッション置いてみるとか

942 名前:名無し~3.EXE:2007/08/05(日) 03:38:22 ID:GMOEkMoa
<script type="text/javascript">
external.dialogWidth = '300px';
external.dialogHeight = '110px';
function OK(){
alert(document.F1.T1.value);
window.close();
}
</script>
<title>モーダルダイアログモード</title>
<br>
<form name="F1" action="#">
<table>
<tr>
<td>何か入力</td>
<td><input type="text" name="T1" size=30></td>
</tr>
<tr>
<tr>
<td></td>
<td><input type="button" value=" O K " onClick="OK();"> <input type="button" value="キャンセル" onClick="window.close();"></td>
</tr>
<tr>
</form>
<script type="text/javascript">
document.F1.T1.value = "デフォルト";
</script>
>937
MenuExt Flags=1で登録してモーダルダイアログモードにする

943 名前:名無し~3.EXE:2007/08/08(水) 13:44:05 ID:ALoY2U7S
今現在、英語版のWindows(再起動するたびに設定リセット仕様)の使用しているのですが、
毎回日本語入力をする為にIMEを出すのが面倒で、
ttp://www.3yokai.net/hawaii/20_pc_net_digicam/ime2.htm このWebサイトの
「日本語を入力できるようにする」の項目作業を自動でやってくれるWSHを書きたいのですが、
WSHにてMS-IMEを起動し、日本語入力環境に設定するにはどのようなコードを書けば良いのでしょうか?

944 名前:名無し~3.EXE:2007/08/10(金) 14:17:32 ID:SB2l+23k
Windows Script 5.7 (IE7に付属)
2000 ttp://www.microsoft.com/downloads/details.aspx?FamilyID=c03d3e49-b40e-4ca1-a0c7-cc135ec4d2be&DisplayLang=en
XP ttp://www.microsoft.com/downloads/details.aspx?FamilyID=47809025-d896-482e-a0d6-524e7e844d81&DisplayLang=en
2003 ttp://www.microsoft.com/downloads/details.aspx?FamilyID=f00cb8c0-32e9-411d-a896-f2cd5ef21eb4&DisplayLang=en

945 名前:名無し~3.EXE:2007/08/18(土) 20:05:02 ID:eUvf8zvX


946 名前:名無し~3.EXE:2007/08/22(水) 20:38:28 ID:tz0yz31E
ume

947 名前:名無し~3.EXE:2007/08/23(木) 20:23:35 ID:YDx8nhVH
保sh

948 名前:名無し~3.EXE:2007/08/28(火) 15:17:19 ID:6JO2o1xw
エクスプローラでファイルを選択→右クリック→「プロパティ」と
同じダイアログを開くCOMオブジェクトなどはないでしょうか?

949 名前:名無し~3.EXE:2007/08/28(火) 19:13:50 ID:uvmautGd
>>948
Win2000/Meのごみ箱フォルダとか

950 名前:949:2007/08/28(火) 19:36:45 ID:uvmautGd
すまん。違った。

>>948
Shell.Application の InvokeVerb とか

951 名前:名無し~3.EXE:2007/08/28(火) 21:03:33 ID:nAgyIVfI
以下のようなvbsを作ってダブルクリックするとプロパティウィンドウが
出てくれません。他のメニュー項目はInvokeVerbできているのですが。
親ウィンドウがないからでしょうか?

Set oShell = CreateObject("Shell.Application")
Set oFolder = oShell.Namespace("c:\")
Set oFolderItem = oFolder.ParseName("WINDOWS")
Name = "プロパティ(&R)"
oFolderItem.InvokeVerb(Name)

952 名前:名無し~3.EXE:2007/08/28(火) 21:10:55 ID:uvmautGd
なるほどね・・・

そのあとに
wscript.sleep 3000
追加すると3秒間は開いてくれるねww

953 名前:名無し~3.EXE:2007/08/28(火) 22:11:44 ID:Rghs668z
何故に3秒?
閉じるまで開いておくようにすればいいじゃん

954 名前:名無し~3.EXE:2007/08/28(火) 23:25:34 ID:zvPk85aX
道連れか

955 名前:名無し~3.EXE:2007/08/29(水) 00:19:34 ID:KI9SLann
Set Shell=CreateObject("Shell.Application")
For Each ie In Shell.Windows()
If InStr(TypeName(ie.Document),"IShellFolderViewDual") Then
Exit For
End If
Next
Set Shell=ie.Document.Application
を使え

956 名前:名無し~3.EXE:2007/09/01(土) 16:04:15 ID:bXQrMlw/
共有フォルダで大量のファイルの作成者を調べる必要がでてきました
スクリプトでファイルの作成者を知る方法はありますでしょうか

957 名前:名無し~3.EXE:2007/09/01(土) 17:26:49 ID:oJcUr36C
>>956
努力しない奴にほいほい答えてくれる者はいない。


958 名前:名無し~3.EXE:2007/09/02(日) 02:08:30 ID:P/N3hv+m
>>956
なんとかstatってのがあったはず
これでなんか情報を取得して調べると
ファイルの情報っぽいのが見れたはず

>>957
いじわるするなよ

959 名前:名無し~3.EXE:2007/09/02(日) 15:15:47 ID:fKko3nYQ
Folder.GetDetailsOfでいけるんじゃね

960 名前:名無し~3.EXE:2007/09/06(木) 18:52:43 ID:LSXnZm/Z
statって調べたらperlなんですね
確かにスクリプトだけどできればvbsかせめてjsでお願いしたい

961 名前:名無し~3.EXE:2007/09/06(木) 20:26:30 ID:ofzdNoRS
>>960
perlはWSHで使えるからこのスレの範疇なんだが。>>5
それにWSH自体やJS、VBSにはそういう機能ないので
COM使うか、別言語使うかの選択になるわけだし。

962 名前:名無し~3.EXE:2007/09/06(木) 22:37:51 ID:X5XEo4Da
wsh初心者なんですが、IE操作でわからないことがあるので教えてください。
Set objIE = CreateObject("InternetExplorer.Application")
で作ったobjIEにurlを表示してリンク先をダウンロードしたいんですが、
保存ダイアログが出てきてそのあとどうしていいかわかりません。
activateしてSendKeysを使えばいいんでしょうか?
保存先も指定したいんだけど、どうしていいか全然わかりません。

963 名前:名無し~3.EXE:2007/09/06(木) 23:34:08 ID:0hvP0y9l
xmlhttpでは駄目なん?

function GetHTMLDocument(ByVal strURL, ByVal strDatFileName)
 dim objXmlHttp, objStream
 const AD_TYPE_BINARY = 1'ストリームタイプをバイナリストリームにする
 const AD_SAVE_CREATE_OVER_WRITE = 2'ファイルを上書きする
 
 on Error Resume Next
 set objXmlHttp = WScript.CreateObject("microsoft.xmlhttp")'XMLHTTPオブジェクトの作成
 objXmlHttp.Open "GET", strURL, false
 objXmlHttp.Send
 if Err.Number <> 0 then
  strErrMsg = strURL & ": " & Err.Description
  GetHTMLDocument = false
  set objXmlHttp = nothing
  exit function
 end if
 on Error Goto 0
 
 set objStream = CreateObject("ADODB.Stream")'バイナリストリームオブジェクトの作成
 objStream.Open
 objStream.Type = AD_TYPE_BINARY
 objStream.Write(objXmlHttp.ResponseBody)
 objStream.SaveToFile strDatFileName, AD_SAVE_CREATE_OVER_WRITE
 objStream.Close
 set objStream = nothing
 set objXmlHttp = nothing
 GetHTMLDocument = True
end function

964 名前:962:2007/09/07(金) 18:48:40 ID:yxgIGp5j
>>963
レスありがとうございます。
やってみてリンク先はダウンロードできました。
ただ、目的のサイトではリンク先のURLを開くと、違う名前のファイルを
ダウンロードするようになってたので、うまくいきませんでした。
自分でもいろいろやってみようと思います。
実は、macでは簡単に出来たんで、winでもやってみようと思ったんですが、WSHは難しいですね。

965 名前:962:2007/09/14(金) 22:53:23 ID:u3aWDe/c
とりあえず、safariをインストールしてsendkeysでなんとかなりました。
safariはコマンドラインオプションが無いみたいなのでホームページに目的サイトのURL指定したり、
保存先もsafariのデフォルトに設定とかだけど。

966 名前:名無し~3.EXE:2007/09/16(日) 18:16:51 ID:Vi51TBdv
あるソフトを、前回起動時から1週間経っていたら起動する。そうでなければ何もしない。
というスクリプトはどう組めば良いですか。

967 名前:名無し~3.EXE:2007/09/16(日) 18:23:26 ID:yrnCWO5U
> あるソフトを、前回起動時から1週間経っていたら起動する。そうでなければ何もしない。
をコードにすればいいだけだと思いますが、なにか?

968 名前:名無し~3.EXE:2007/09/16(日) 18:30:12 ID:Vi51TBdv
>>967
それを教えて下さい><

969 名前:名無し~3.EXE:2007/09/16(日) 18:47:37 ID:yrnCWO5U
何処かに前回起動日時データを保持しておき、それが現在-7より大きかったら終了
小さかったら「あるソフト」を起動して、前回起動日時データを書き換える

以上が"組み方"
上記をコードに"書く方法"は、WSHヘルプやGoogle参照

970 名前:名無し~3.EXE:2007/09/18(火) 17:09:13 ID:3e/ATvcX
あるソフトの選択している範囲をクリップボードに取り込むには
どう記述すればよいでしょうか?

971 名前:名無し~3.EXE:2007/09/18(火) 18:00:46 ID:59SRskbJ
あるソフトとは?

972 名前:名無し~3.EXE:2007/09/18(火) 18:03:50 ID:3e/ATvcX
>>971
OpenJaneDoeです。
ショートカットメニューのコピーを使えば簡単ですが
複数の処理をvbsファイルでまとめて行いたいので。

973 名前:名無し~3.EXE:2007/09/18(火) 18:34:25 ID:Hp5KGcqw
ふつうにこぴーすりゃいいんじゃね?

974 名前:名無し~3.EXE:2007/09/18(火) 23:19:34 ID:gS0vXNvn
SendKeysでCtrl+Cでいいんじゃね?
いまいち何がやりたいか見えないからアドバイスしづらいが・・・。

datファイルをvdsで開いて処理する方がいろいろできるんじゃないのかな

975 名前:名無し~3.EXE:2007/09/19(水) 04:07:11 ID:qZpDaqKl
InternetExplorer.Application

976 名前:970:2007/09/19(水) 10:35:41 ID:pTtgjdvq
ありがとうございます。
SendKeysで出来ました。

977 名前:名無し~3.EXE:2007/09/19(水) 10:40:56 ID:pTtgjdvq
objShell.Run "calc",1
だと電卓が立ち上がるのに
objShell.Run "C:\Program Files\aaa\bbb.exe"
だとbbbが立ち上がりません。
スペースや2バイト文字があるとrunメソッドは使えないのでしょうか?

978 名前:名無し~3.EXE:2007/09/19(水) 11:15:11 ID:ikljzqS6
CreateObject("WScript.Shell").run """C:\Program Files\Windows Media Player\wmplayer.exe"""

979 名前:名無し~3.EXE:2007/09/19(水) 16:25:51 ID:pTtgjdvq
>>978
ありがとうございます。
ダブルクォーテーションマーク3つで囲んだらうまくいきました。

980 名前:名無し~3.EXE:2007/09/19(水) 17:02:19 ID:pTtgjdvq
パラメータつきのアプリケーションをrunメソッドで立ち上げたあとに
Sendkeyメソッドを使用すると、アプリケーションが立ち上がる前に
キーを送ってしまいうまくいきません。単にsleepを使う以外で
確実にキーを渡せる方法はありませんか?

981 名前:名無し~3.EXE:2007/09/19(水) 18:50:48 ID:0K5oMSAo
つAppActivate

982 名前:名無し~3.EXE:2007/09/19(水) 21:24:11 ID:pTtgjdvq
>>981
runメソッドのあとに入れてみましたがアプリが立ち上がる前に
キーを送ってしまっているようでうまくいきません。
なんかいい方法はないでしょうか?

983 名前:名無し~3.EXE:2007/09/19(水) 21:27:50 ID:0K5oMSAo
つAppActivate の復帰値

984 名前:名無し~3.EXE:2007/09/19(水) 21:58:50 ID:pTtgjdvq
Do Until objShell.AppActivate("abc.txt")
WScript.Sleep 50
Loop

で出来ました。

985 名前:名無し~3.EXE:2007/09/20(木) 18:08:59 ID:5a0Uty35
次スレは?

986 名前:名無し~3.EXE:2007/09/20(木) 20:28:37 ID:Kpu8Zq9f
まったく理解されずにターミネートされた>>983が気の毒で・・

987 名前:名無し~3.EXE:2007/09/21(金) 12:36:38 ID:dS92JO99
ActiveXの出力パラメータをVBS
から呼び出すと型が違いますとエラーになります
以下のような関数呼び出すにはどうすればよいか
ご存じでしたら教えていただけませんか。
func(String outarg1[],String outarg2[])

988 名前:名無し~3.EXE:2007/09/22(土) 02:04:30 ID:Acm8tcMi
>>987
Excel VBAやVB6以前があれば、
その中で参照設定してオブジェクトブラウザを見て、
VBでどんな型になるか確認したらいい。
VBScriptでもそれと同じ型に合わせろ。

989 名前:名無し~3.EXE:2007/09/22(土) 16:41:11 ID:E7J7v9Mj
はぁ?

990 名前:987:2007/09/22(土) 17:14:36 ID:7RwwKfbd
>>988
ExcelVBAでは出来てるんですが、
VBScriptでは型の指定ができなくてエラーとなるみたいなんですが
これはWSH+VBSからActX呼び出しの限界でしょうか


991 名前:名無し~3.EXE:2007/09/22(土) 18:23:16 ID:ZspLI4uB
君の脳の限界に一票

992 名前:名無し~3.EXE:2007/09/22(土) 19:57:42 ID:fU47bAPg
つーか、なんでそのActiveXの名前そのものとかを隠すの?
やっぱ脳が弱いのかな?

993 名前:名無し~3.EXE:2007/09/22(土) 21:58:48 ID:K4jH93N6
自作じゃね?

994 名前:名無し~3.EXE:2007/09/23(日) 13:02:12 ID:PIGV9rKX
^

995 名前:名無し~3.EXE:2007/09/23(日) 14:35:53 ID:i+HU8l0E
h

996 名前:名無し~3.EXE:2007/09/23(日) 14:36:24 ID:i+HU8l0E
h

997 名前:名無し~3.EXE:2007/09/23(日) 14:36:57 ID:i+HU8l0E
h

998 名前:名無し~3.EXE:2007/09/23(日) 14:37:29 ID:i+HU8l0E
h

999 名前:名無し~3.EXE:2007/09/23(日) 14:38:00 ID:i+HU8l0E
h

1000 名前:小倉優子 ◆en0rG2J.f6 :2007/09/23(日) 14:38:32 ID:i+HU8l0E
1000ならジュースでも飲むか

1001 名前:1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


全部 最新50
DAT2HTML 0.34bp Converted.