TClock Script Help
TClock2ch付属サイト…
お前ら、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