1 名前:名無し~3.EXE mailto:sage [2007/09/23(日) 21:02:25 ID:2RosR0QK] こんなことコンピュータにやらせろよ。そう思ったことはありませんか? 簡易的な実行環境も含めて普通のOSだったら当たり前に備わっている自動実行。 Windowsの標準に備わっているそれがWSH(Windows Script Host)です。 また、ここではWSHだけに限らずWMI、ADSIなどのネタもOKです。 ・煽りや荒らしは無視の方針で。基本的にsage進行です。 ・ここでヒントを得て完成したスクリプトは、出来れば皆さんにお披露目してください。 同じことで悩んでいる人のためになります。 ・質問する際は、OS及び使用するコンポーネントのバージョンもお忘れなく。 ●過去スレ #1 pc.2ch.net/test/read.cgi/win/1009175619/ #2 pc2.2ch.net/test/read.cgi/win/1022248379/ #3 pc8.2ch.net/test/read.cgi/win/1058829737/ #4 pc8.2ch.net/test/read.cgi/win/1100489339/ #5 pc8.2ch.net/test/read.cgi/win/1126543183/ #6 pc11.2ch.net/test/read.cgi/win/1155040873/ その他 >>1-10 あたり
2 名前:名無し~3.EXE mailto:sage [2007/09/23(日) 21:03:13 ID:2RosR0QK] ●便利なリンク Windows Script www.microsoft.com/japan/msdn/scripting/default.asp MSDN Library (オンラインドキュメント) msdn.microsoft.com/library/ja/ Windows Script 5.6 ドキュメント ダウンロード (exe 形式; 1.67 MB) download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/JA/scd56jp.exe OLE/COM Object Viewer ダウンロード (exe 形式; 656 KB) download.microsoft.com/download/win2000platform/oleview/1.00.0.1/NT5/EN-US/oleview_setup.exe Sesame Script (スクリプト作成初心者向けコラム) www.microsoft.com/japan/technet/scriptcenter/resources/begin/default.mspx Hey, Scripting Guy! (スクリプトのQ&A・ハウトゥ集) www.microsoft.com/japan/technet/scriptcenter/resources/qanda/default.mspx Windows管理者のためのWindows Script Host入門 (@IT内記事) www.atmarkit.co.jp/fwin2k/operation/wsh01/wsh01_01.html Windows XP に含まれるコマンドラインツールの紹介 (@IT内記事) www.atmarkit.co.jp/fwin2k/xp_feature/013commandtool/commandtool.html ADSI (Active Directory Service Interfaces) の特集記事全文 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 mailto:sage [2007/09/23(日) 21:11:50 ID:2RosR0QK] ●コンポーネント関連リンク ○Microsoft 製外部コンポーネント DCOM (98/Me ※リンク切れ) www.microsoft.com/japan/com/dcom/dcom98/dcom13.asp (95) www.microsoft.com/japan/com/dcom/dcom95/dcom13.asp MDAC - データベース・メールボックス・WebDAV・バイナリの操作 msdn2.microsoft.com/ja-jp/data/aa937730.aspx WMI(95/98/NT4.0) - 統一されたコンピュータオブジェクト化モデルを提供するスクリプティングAPI、リモート管理 www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=AFE41F46-E213-4CBF-9C5B-FBF236E0E875 ADSI - Active Dictoryの機能を操作 www.microsoft.com/downloads/details.aspx?FamilyID=f4bf2bf6-ed15-4789-9c63-e849d530a6df&DisplayLang=ja MSXML - XMLパーサ、SAX・DOM API、XSLT変換、POST/HTTPダウンロード www.microsoft.com/downloads/details.aspx?familyid=993c0bcf-3bcf-4009-be21-27e85e1857b1 ○サードパーティ製外部コンポーネント BASP21 - メール、ファイルエンコード、文字コード変換、FTP/HTTPアップ、その他 www.hi-ho.ne.jp/babaq/basp21.html Doodle2 - グラフィック変換、操作、描画 www.vector.co.jp/soft/winnt/prog/se219120.html DynaCall - Win32APIコール people.freenet.de/gborn/WSHBazaar/WSHDynaCall.htm AutoItX - マウス・キーボード・クリップボード操作 www.hiddensoft.com/AutoIt/
4 名前:名無し~3.EXE mailto:sage [2007/09/23(日) 21:12:36 ID:2RosR0QK] ●WSH(COM)参考書籍 「はじめてのWindows Scripting Host」 (株)アンク著 技術評論社 www.amazon.co.jp/gp/product/477410650X/ 「[改訂版] VBScriptポケットリファレンス」 www.amazon.co.jp/gp/product/4774127930/ 「使いながら覚えるWindows Scripting Hostプログラミング入門」 竹田英雄著 エーアイ出版 www.amazon.co.jp/gp/product/4871936678/ 「Windows Scripting Host入門 with VBScript」 毎日コミュニケーションズ www.amazon.co.jp/gp/product/4839900906/ 「WSHで楽しむWindows95/98/NT4.0版 ウィンドウズ・スクリプティング入門 VBScript編」 メディアテック出版 www.amazon.co.jp/gp/product/4896270207/ 「WSHクイックリファレンス」 羽山博著 オライリー・ジャパン www.amazon.co.jp/gp/product/4873110068/ 「Rubyを256倍使う本 邪道編」 arton著 ASCII www.amazon.co.jp/gp/product/4756136036/ 「ADSIスクリプトによるWindows2000システム管理 Windows2000管理者ガイドブック」ピアソン・エデュケーション トーマス・エック 著 www.amazon.co.jp/gp/product/4894712881/ (どちらかというとVBによる操作本?) 「標準ASPテクニカルリファレンス」山田祥寛著 SOFTBANK www.amazon.co.jp/gp/product/4797314001/
5 名前:名無し~3.EXE mailto:sage [2007/09/23(日) 21:13:43 ID:2RosR0QK] ●JavaScript、VBScript 以外のWSHで使える言語 TCLScript tclscript.sourceforge.net/ Perl www.activestate.com/Products/Download/Download.plex?id=ActivePerl Ruby www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/ Python www.python.jp/Zope/download PHP www.php.net/downloads.php REXX www.borg.com/~jglatt/rexx/win32/rxusrw32.htm
6 名前:名無し~3.EXE mailto:sage [2007/09/23(日) 21:17:29 ID:2RosR0QK] テンプレ以上(・∀・) 見つけられなかったところはリンク切れって書いといた(・∀・) 次スレも立てずに意味もなく埋めた糞コテは死ね(・∀・) コロコロとページのURLを変えるMSも死ね(・∀・)
7 名前:名無し~3.EXE mailto:sage [2007/09/23(日) 21:58:37 ID:U0hs+MX3] >>1 乙 >コロコロとページのURLを変えるMSも死ね(・∀・) いやまったく くだらねぇ仕掛けでリソースをムダに使わせるページ構造も許せん、マジで
8 名前:名無し~3.EXE mailto:sage [2007/09/24(月) 01:10:29 ID:DEYMCrth] >>前スレ990 CStrとかArrayとかの関数を駆使してデータ型をあわせてやることってできない? 試せるものなら俺も試してみたいんだけど、なんのAxコンポーネント?
9 名前:名無し~3.EXE mailto:sage [2007/09/24(月) 03:36:57 ID:SjghtxEN] >>1 乙 発言番号>>11 はM口さんのために空けておいてあげて下さい。
10 名前:名無し~3.EXE mailto:sage [2007/09/24(月) 15:38:21 ID:pjBtfzoG] 型指定できる言語使うか、ラップするか、型を変換するCOMを作るか白 手っ取り早いのはpowershellかのー
11 名前:11 mailto:sage [2007/09/24(月) 16:06:57 ID:eaufB3wz] どうもです。しつこくWSHやってる11でございます。 とある方より連絡を受け参上した次第です。 あまりこちらは見てないですがすみません。 Windows Server World11月号にPowerShellの記事を書いたので良かったらみてください。 チェック式 WSH入門 ―― 演習方式で身につけるWSH超入門 ――(@IT連載記事) www.atmarkit.co.jp/fwin2k/tutor/cformwsh01/cformwsh01_01.html もよろしくです。 宣伝乙。ではではー。
12 名前:名無し~3.EXE mailto:sage [2007/09/25(火) 06:58:53 ID:R70FuRMC] >>11 M口乙w
13 名前:名無し~3.EXE mailto:sage [2007/09/25(火) 10:45:34 ID:4yTvHEKx] >11 ウィルスバスターが反応したぞ 阿龍お前なに仕込んだんだ
14 名前:名無し~3.EXE mailto:sage [2007/09/25(火) 10:57:22 ID:+FFzqz0l] >>13 おじいちゃんご飯はさっき食べたでしょ
15 名前:名無し~3.EXE mailto:sage [2007/09/25(火) 11:29:33 ID:4yTvHEKx] >14 だれじゃお前は!さっさとこの家から出ていけ!
16 名前:名無し~3.EXE mailto:sage [2007/09/25(火) 14:06:05 ID:rEJuuZC8] >>15 60年連れ添った女房の顔も忘れるなんてねぇ・・・ おじいちゃんもいよいよだねぇ
17 名前:名無し~3.EXE mailto:sage [2007/09/26(水) 19:48:03 ID:9NizuYkF] InternetExplorer.Applicationでウィンドウの右上の最大化ボタンを押すのと同等のメソッドかプロパティありましたっけ? 画面サイズを取得してサイズをあわせるしかないですか?
18 名前:名無し~3.EXE mailto:sage [2007/09/27(木) 11:31:10 ID:DeYmWi7c] >>11 第1回 WSHを始めよう Microsoft MVP Visual Developer - Scripting 牟田口 大介 2006/06/02
19 名前:名無し~3.EXE mailto:sage [2007/09/29(土) 22:36:16 ID:/mN/rW/R] スクリプトから「ctrl+ホイール」する方法はありませんか?
20 名前:名無し~3.EXE mailto:sage [2007/10/03(水) 18:45:52 ID:kYrf4Oeu] HTTP/1.1 304 Not Modified ( ・∀・)(・∀・ )オツカイオワリ 三三三三3 (・∀・∀・) (-_-) 誰もカキコしてない・・・ (・∀・)カンリョウ!!
21 名前:名無し~3.EXE mailto:sage [2007/10/08(月) 14:18:28 ID:T+jdN/55] WSH=VBS?
22 名前:名無し~3.EXE mailto:sage [2007/10/08(月) 14:27:27 ID:a9zIH+L7] no
23 名前:名無し~3.EXE mailto:sage [2007/10/10(水) 18:43:26 ID:AV8fHOm1] (-_-) 誰もカキコしてない・・・
24 名前:名無し~3.EXE mailto:sage [2007/10/13(土) 23:30:13 ID:g349oLgE] jsでもvbsでもどっちでもいいから 「ディスク上のサイズ」を取得する方法が知りたい・・・ >>19 sendkeysでctrlとscrolllockじゃダメ? ・・・イヤ、ミテナイダロウケド
25 名前:名無し~3.EXE mailto:sage [2007/10/13(土) 23:34:39 ID:h3t5db0s] >>24 WinAPIでサイズ取得して標準出力するexeをCで組んでそのexeを叩いたらできたけど WSHだけで出来るか、ってことだよね?
26 名前:名無し~3.EXE mailto:sage [2007/10/14(日) 00:44:25 ID:g85L0OLw] クラスタ/アロケーションユニット単位に切り上げればいいんじゃない?
27 名前:名無し~3.EXE mailto:sage [2007/10/14(日) 16:00:24 ID:znuraTmG] >>25 圧縮されてたらサイズが違うってことじゃないの?
28 名前:名無し~3.EXE mailto:sage [2007/10/14(日) 21:59:46 ID:h2hqAvvC] スクリプトちょこっと組んでみたけど・・・ 膨大なオブジェクトメソッドプロパティの中から使えるもの探すの大変だった いちいちネットで調べて作ってると時間いくらあっても足らない これがプログラミングってやつなのか、大変なんだな
29 名前:名無し~3.EXE mailto:sage [2007/10/18(木) 16:51:24 ID:oIaJudOl] 2chの鯖のリンクだけスレ内から抽出してテキストファイルに保存。 それのやりかた教えて。
30 名前:名無し~3.EXE mailto:sage [2007/10/18(木) 17:17:10 ID:Docvv0YL] >>29 自分で調べろカス
31 名前:名無し~3.EXE mailto:sage [2007/10/18(木) 17:35:45 ID:oIaJudOl] >>30 いいから教えろ包茎
32 名前:名無し~3.EXE mailto:sage [2007/10/18(木) 17:40:52 ID:Docvv0YL] ヽ(`Д´)ノウワァァン
33 名前:名無し~3.EXE mailto:sage [2007/10/18(木) 17:43:45 ID:OysiApEQ] 対象ファイルをhtmlにするかdatにするかで違ってきますね
34 名前:名無し~3.EXE mailto:sage [2007/10/18(木) 18:13:47 ID:oIaJudOl] >>33 いや、htmlでもなくDatでもなく、TEXTでいいんです。 テキストファイルに2ch鯖だけのリンクを抽出したファイルを作りたいんです。 何をするのかというとp2todatでリスト化されたURLリストを順番に読み込んで実行していきたいんです。 もちろん、鯖にやさしく過剰なアクセスやクロール行為などはやりません。 おしえてくださいまし。
35 名前:名無し~3.EXE mailto:sage [2007/10/18(木) 18:19:04 ID:oIaJudOl] >>32 すいませんでした。
36 名前:名無し~3.EXE mailto:sage [2007/10/18(木) 18:37:01 ID:mX/8qEJB] > 鯖にやさしく過剰なアクセスやクロール行為などはやりません。 信用できないな そもそも手動でやってれば間違いなく鯖に優しいアクセスになる 自力でスクリプト書けないような無能は、本人が鯖への配慮もしてるつもりでも実際は出来てないだろうから 強制的に鯖に優しくなる手動でやらせておくのが吉
37 名前:名無し~3.EXE mailto:sage [2007/10/18(木) 18:41:58 ID:oIaJudOl] >>36 わかった。やめとく。
38 名前:名無し~3.EXE mailto:sage [2007/10/19(金) 22:01:23 ID:pnnmUMtF] OS: XP sp2 wshのバージョン: 5.6 マシンを再起動するコードを教えてくれませんか? Set WSHSHell=CreateObject("WScript.Shell") WSHShell.Run "C:\WINDOWS\system32\RUNDLL32.EXE Shell32.dll,SHExitWindowsEx 2" としても、エントリがありません、と出てしまいます
39 名前:名無し~3.EXE mailto:sage [2007/10/21(日) 21:29:17 ID:/eU1MNMN] >>38 homepage2.nifty.com/winfaq/w2k/boot.html#1179
40 名前:38 mailto:sage [2007/10/21(日) 22:38:04 ID:HYDYzM0Q] >>39 ありがとうございました
41 名前:名無し~3.EXE mailto:sage [2007/10/22(月) 03:42:43 ID:yIINOAp1] fs = new ActiveXObject("Scripting.FileSystemObject"); var objOutFile = fs.CreateTextFile("C:\\test.txt",1,1); objOutFile.Write("ほげ"); objOutFile.Close(); こうすると、UTF-16で保存されてしまいますが、UTF-8で保存するにはどうしたらよいのですか?
42 名前:名無し~3.EXE mailto:sage [2007/10/22(月) 04:08:55 ID:iIIEEuoP] ADODB.Stream UTF-8
43 名前:名無し~3.EXE [2007/10/23(火) 23:15:16 ID:klW0leS2] strComputer = "nullpo" Set CPUSet = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2").InstancesOf("Win32_Processor") for each CPU in CPUSet Wscript.Echo "LoadPercentage:" & CPU.LoadPercentage next これでCPU(コア)ごとのCPU使用率取れますか? おらのデュアルコアCPUマシン(Athlon64×2)では1つしか取れないんだけど?
44 名前:名無し~3.EXE mailto:sage [2007/10/26(金) 07:09:14 ID:YLBr5NF8] どっかの他PCにアクセスしてユーザ名とパスワード入力した状態って出来ますか? NET USE使うしかないんでしょうか? ドライブの割り当てはしたくないんですが。
45 名前:名無し~3.EXE mailto:sage [2007/10/26(金) 22:52:57 ID:IfzcXnJl] >>44 NET USE はドライブ名を割り当てなくても使える。 net help use かヘルプを参照しなさい。
46 名前:名無し~3.EXE mailto:sage [2007/10/26(金) 23:23:12 ID:YLBr5NF8] 来週試してみます
47 名前:名無し~3.EXE mailto:sage [2007/10/27(土) 16:16:14 ID:5z6Mce+m] 音声認識のプロパティ出さずに認識エンジンを設定することって出来ますかね?
48 名前:名無し~3.EXE mailto:sage [2007/10/27(土) 17:25:58 ID:l+KdL2rZ] うん
49 名前:名無し~3.EXE mailto:sage [2007/11/04(日) 17:30:16 ID:gpAEphfP] JScript + WSF でローカルで動作するバッチ処理的なプログラムを書いたのですが、 完成してから、FileSystemObjectでのファイル削除などがMcafeeの怪しいスクリプトを遮断する 機能によってブロックされるという致命的な問題に遭遇しました。 スクリプトを遮断する機能で毎回動作のたびに「許可」をクリックすることで回避可能ではありますが、 あまりに面倒なので常に許可するホワイトリストのようなものを探したが、見つからず。 Mcafeeに限らず、Nortonなどでも同様の問題が発生するようですが、同じような経験をされた方、 解決方法があれば教えてください。そもそもWSH以外でインストール不要で高機能なスクリプト言語があれば、 そちらに移行することも考えております。
50 名前:名無し~3.EXE mailto:sage [2007/11/04(日) 17:46:44 ID:M2Cn2wOu BE:91467432-2BP(445)] >>49 偉い方に教えてもらった対処法ですが 例えば Set FS=CreateObject("Scripting.FileSyst" & "emObject") ; の場合 Set FS=CreateObject("Scripting.FileSyst" & "emObject") ; とかやったらどうでしょう?試してないですがノートン先生ならスルーしてくれそうな予感です。 というか ノートンもマカフィーも入れてないので これでOKなのかどうか教えてもらいたかったり。
51 名前:名無し~3.EXE mailto:sage [2007/11/04(日) 17:52:02 ID:M2Cn2wOu] ああしまった・・ 前半の Set FS=CreateObject("Scripting.FileSyst" & "emObject") ; は Set FS=CreateObject("Scripting.FileSystemObject") ; です
52 名前:名無し~3.EXE mailto:sage [2007/11/05(月) 18:54:01 ID:i5tJkBKd] 質問です。 vbs でポップアップメニューを作成するには どうすればよいのでしょうか?ヒントだけでも お願いしまっす。
53 名前:名無し~3.EXE mailto:sage [2007/11/05(月) 22:14:26 ID:BlJ486bt] MsgBoxってなかったっけ?
54 名前:名無し~3.EXE mailto:sage [2007/11/05(月) 22:25:18 ID:nKqW27R8] あれをポップアップメニューとは呼ばん
55 名前:名無し~3.EXE mailto:sage [2007/11/06(火) 08:52:22 ID:mMTaAUe8] >>52 VBS、WSHにそういう機能は有りません 実現したければそういうきのうのCOMを作るか探すかしてください まぁ、AHKあたり使っちゃった方が手っ取り早いと思うけどね
56 名前:名無し~3.EXE mailto:sage [2007/11/06(火) 18:59:12 ID:M+s+xXd2] エラーになります。 空白があるパスの対処方法を教えてください。 var shell = WScript.CreateObject("WScript.Shell"); shell.CurrentDirectory = 'C:\Documents\ and\ Setting\Administrator\デスクトップ';
57 名前:名無し~3.EXE mailto:sage [2007/11/06(火) 19:12:57 ID:PGoxeNfX] いや、\のエスケープの問題だろ
58 名前:名無し~3.EXE mailto:sage [2007/11/06(火) 19:13:45 ID:Jd5jGHnW] もうVBSを使え
59 名前:名無し~3.EXE mailto:sage [2007/11/06(火) 19:21:56 ID:M+s+xXd2] >>56 「"」の場合は「\\」でやりました。 「'」の場合は「\」で問題ないようです。
60 名前:名無し~3.EXE mailto:sage [2007/11/06(火) 19:33:08 ID:PGoxeNfX] あるよ "と'は自分と違うのをエスケープなしに挿入できる("'"とか'"'とか書ける)以外差はない で、エスケープってのはJScriptで文字列を表現できないから使うもんであって 空白は普通に表現できるのでJScriptとしてエスケープは不要 逆に\は\自体がエスケープ文字に使われているので\は普通に表現できないからエスケープする CurrentDirectoryはそもそも空白を含むパスを受け入れられる
61 名前:名無し~3.EXE mailto:sage [2007/11/06(火) 22:55:43 ID:VprE58du] /でも使っとけ
62 名前:52 mailto:sage [2007/11/06(火) 23:48:32 ID:/MDmkMKN] >>55 dです。COM か... 大変そうですな orz
63 名前:名無し~3.EXE mailto:sage [2007/11/07(水) 20:42:42 ID:Uk4caTay] IEでそれっぽいUIでも作ればいいじゃん
64 名前:名無し~3.EXE mailto:sage [2007/11/08(木) 01:49:20 ID:7SUESWPj] a-draw.com/contents/uploader2/src/up0726.txt.html txt -> js
65 名前:名無し~3.EXE mailto:sage [2007/11/08(木) 02:08:04 ID:IM5eBTuj] つ 「正規表現」
66 名前:名無し~3.EXE mailto:64 sage [2007/11/08(木) 21:35:38 ID:20qyuEPQ] 前スレに引き続き指摘されますた。
67 名前:名無し~3.EXE mailto:sage [2007/11/09(金) 14:14:28 ID:kUQK3taz] >>50 > Set FS=CreateObject("Scripting.FileSyst" & "emObject") ; >>49 じゃないけど、これはNG。 まあこの程度ですり抜けられるようじゃアンチウイルスの意味無いと思うし。 ただし、UWSCスクリプト内でFileSystemObject呼んだ場合は何にも言われないから 同様のパターンで実行可能なのがあるかもしれない。
68 名前:名無し~3.EXE mailto:sage [2007/11/09(金) 22:55:15 ID:mWYWjoAn] IActiveScriptのものだけチェックしてるとか
69 名前:名無し~3.EXE mailto:sage [2007/11/11(日) 21:21:52 ID:AHMXXhyu] >>49 これを使えば? Windows ScriptからWin32APIを呼び出せるようにするライブラリ d.hatena.ne.jp/Asarima/20071107/p1
70 名前:名無し~3.EXE mailto:sage [2007/11/13(火) 22:08:23 ID:+GHf1LY+] BATとwshで文字列をやりとりすることは出来ますか? ファイルを介さないと駄目でしょうか? a.batからb.jsを呼ぶ b.jsが何か文字列を返す a.batはその内容を使って何かする
71 名前:名無し~3.EXE mailto:sage [2007/11/13(火) 22:11:00 ID:zcLXXEdm] batで%1とかつかって引数で渡す。
72 名前:名無し~3.EXE mailto:sage [2007/11/13(火) 23:45:39 ID:Ip41ByhH] SP+メーカー付属のバッチファイルでそれやってるな。あっちはjsでなくvbsだけど
73 名前:名無し~3.EXE mailto:sage [2007/11/13(火) 23:46:18 ID:Ip41ByhH] あ、「それ」ってのは>>70 のことね
74 名前:名無し~3.EXE mailto:sage [2007/11/14(水) 09:15:44 ID:IFtPrZko] >>71 引数が使えるのはa→bの場合だ 70はb→cのところで文字列を渡したいんだから引数は使えない この場合は標準入出力を使うがよろし
75 名前:名無し~3.EXE mailto:sage [2007/11/14(水) 15:44:47 ID:2CCfECGA] for /f %%1 in ('cscript hoge.vbs') do echo %%1
76 名前:名無し~3.EXE mailto:sage [2007/11/14(水) 16:38:33 ID:bRgypCbJ] >>74 bat内では"%1"等でコマンドライン引数を取り出せるのでjsからコマンドライン引数で渡す。 js内ではWScript.Argumentsでコマンドライン引数を取り出せるのでbatからコマンドライン引数で渡す。 ということだ。 www.atmarkit.co.jp/fwin2k/operation/command005/command02.html
77 名前:名無し~3.EXE mailto:sage [2007/11/14(水) 17:10:40 ID:2CCfECGA] 脱帽
78 名前:名無し~3.EXE mailto:sage [2007/11/14(水) 18:43:10 ID:bRgypCbJ] 勘違い ああ勘違い 勘違い
79 名前:70 mailto:sage [2007/11/14(水) 21:30:58 ID:KO3uEZWd] やりたいことができました。 ありがとうございました。 testA.bat for /f %%1 in ('cscript testB.js') do set folderName=%%1 mkdir %folderName% testB.js WScript.Echo("フォルダ01");
80 名前:名無し~3.EXE [2007/11/20(火) 22:12:17 ID:VEKX0U78] 質問がありますです。 コンピュータABCは同じワークグループ名です。 XPSP2のPC[A]で共有を作った。 無効だったGUESTを有効にした。パスワードを空にした。 SECPOLで空パスワードでネットワークアクセスを受け付けるようにした。 SECPOLでGUESTのネットワークアクセスを拒否していないことを確認した。 共有のアクセス権 Everyone フルコントロール NTFSアクセス権 Everyone 変更 スクリプトは、FSOでUNC指定している状態。 これで別のXPSP2のPC[B]からは、この共有にアクセス(ファイル作成)できた。 別のWindows2000[C]から、そのPCにアクセスすると、エラーになってしまった。 エラー番号から見ると、ユーザー名またはパスワードのミスマッチと出た。 GUIでその共有にアクセスすると、2000ではユーザー名とパスワードを訊かれた。 このときXPでも2000でも、ローカルのAdministratorでログオンしていた。 ネットワークは同一セグメント。 Windows2000でアクセスできないのは何故でしょうか。 できるようにする方法があるでしょうか。
81 名前:名無し~3.EXE [2007/11/20(火) 22:19:09 ID:VEKX0U78] 引き続き質問です。 ドライブレターを使用せずにネットワークの共有フォルダを使用したいのですが、 そのときユーザーの資格情報を使うのは実現可能でしょうか? GUIだとファイル名を指定して実行より普通にできますが、 自分で調べたとことろではスクリプトはドライブレターを使う方法ばかりでした。
82 名前:名無し~3.EXE mailto:sage [2007/11/20(火) 23:13:07 ID:gOjp+K58] ファイル名を指定して実行できるならrunかexecでできないの? あんまり詳しくないので誰かフォローよろ
83 名前:名無し~3.EXE [2007/11/21(水) 01:24:51 ID:SPFt+BVD] なんか質問が漠然としててイマイチ意味がわからん。 質問の仕方が下手なのか、オレの理解を超える高度な質問なのか。 >GUIでその共有にアクセス これはエクスプローラで、って意味だよな? Windows2000 からアクセスできないのは、単にWindows2000にユーザとパスワードを登録してないだけ? もう手元にWindows2000が無いから確かめられんが。 ドライブレターを使わない方法っていうと、 ¥¥サーバ名¥共有名¥サブディレクトリ¥ファイル・・・ だろ。そういう事じゃなくって???UNCって言葉を知ってるくらいだから、わかってるやろね。 もしかしてコンソール型のコマンド?だったらドライブレターが無いと動かんのだが。 検証用の短いスクリプトを書いてを掲示板に貼り付けてみろ。 ただ単に「動かない」って言うだけじゃ問題解決せんぞ。 キミの文章は、一見すごく詳しく書いてあるように見えるが、実は具体的な事はぜんぜん何一つ書いてないやん。 あと、コードを貼り付けるときは、空白は に置換してな。じゃないと読む気がしなくなる。
84 名前:名無し~3.EXE [2007/11/21(水) 01:26:26 ID:SPFt+BVD] あと、コードを貼り付けるときは、空白は に置換してな。じゃないと読む気がしなくなる。
85 名前:名無し~3.EXE [2007/11/21(水) 07:31:10 ID:ostA5nqh] >80 俺同じことで悩んだことがある。 難しく書いてあるけど、つまり ワークグループ上のPCで共有つくった。 この共有は、ユーザーが手作業で認証することなく 誰でも書き込みできるようにしたい。 XPだとできるけど、2000だとできない。 XPと2000で確認したときのユーザーは同じユーザー。 でいいか? だとすると、そのカギはたぶん ForceGuest XPから付いた機能。2000にはない。 FGが有効だとネットワーク資源にアクセスするときの試行順序が異なる。 2000で失敗するのはおそらく、共有を作ったPCのAdministratorと 2000のユーザー(Administrator)がマッチしたんで共有のAdministrator のパスワードを求められたと思われる。 >80は薄々それに気付き始めていて、81の質問をしているように見えるな。 81の回答は知らん。
86 名前:名無し~3.EXE mailto:sage [2007/11/22(木) 21:04:54 ID:ZvxWKQzi] ドライブレターをWSHで変更したいんですが、 知っている方いらっしゃったら教えて頂けませんでしょうか?
87 名前:名無し~3.EXE [2007/11/23(金) 01:01:57 ID:RcwUXjpV] support.microsoft.com/kb/300415/
88 名前:名無し~3.EXE mailto:sage [2007/11/23(金) 12:20:45 ID:5ayYEZBT] 時代はPowerShell
89 名前:名無し~3.EXE mailto:sage [2007/11/23(金) 15:37:16 ID:pxqIhImv] 時代とかどうでもいいんだがそのPowershellというやつは便利なのか?
90 名前:名無し~3.EXE mailto:sage [2007/11/23(金) 16:29:21 ID:JzxCLucd] .NETのライブラリが素で使えるんだからWSHに比べりゃ基礎力が違うな
91 名前:名無し~3.EXE mailto:sage [2007/11/23(金) 16:41:35 ID:LQu5gBnH] 基礎力が必要だな
92 名前:名無し~3.EXE mailto:sage [2007/11/23(金) 17:20:53 ID:cY5xDcD8] ttp://www.atmarkit.co.jp/fwin2k/operation/pshvswsh/pshvswsh_01.html Windowsスクリプティング環境比較:PowerShell vs WSH ―― 伝統のWSH 対 先進のPowerShell、どっちを使う? ―― WSHとPowerShell、どちらを使うべきか? ここまでの比較を振り返ってみると、現状ではアプリケーションの使い勝手としてはWSHが、 スクリプト言語の機能面ではPowerShellが優位になると考えて差し支えないだろう。 使い分けの決め手となるのは、システムにPowerShellなどを追加インストールできるか否かにかかっているといえるかもしれない。 WSHならばどこででも動作するが、PowerShellはそうではないからだ。 将来性に関していうと、WSHは今後セキュリティ対策やバグフィックスなどのための マイナー・アップグレードのみにとどまり、メインとなる機能はさほど変化しないと考えられる。 ある意味「枯れた」「安定した」環境である。 筆者としては「こちらがお薦め!」とはいいにくいところがある。 本音をいえば「両方お薦め!」である。ぜひとも、どちらの環境にも触れてみていただきたい。 また、WSHをすでに使われている方は、ぜひ新しいPowerShellも使ってみていただきたいと思う。
93 名前:名無し~3.EXE mailto:sage [2007/11/23(金) 17:38:25 ID:cY5xDcD8] #フォームを表示するサンプル [void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") $form = New-Object System.Windows.Forms.Form $form.TopMost = $true $txt = New-Object System.Windows.Forms.TextBox $txt.Text = "てきすとぼっくす" $txt.MultiLine = $true $txt.Dock = "Fill" $txt.Add_TextChanged({Clear-Host;Write-Host '[' + $txt.Text + ']'}) $form.Controls.add($txt) $form.ShowDialog()
94 名前:名無し~3.EXE mailto:sage [2007/11/23(金) 20:26:50 ID:3Va0+pWj] function tail([string]$file, [int]$line=10){ Get-Content $file | Select-Object -Last $line }
95 名前:名無し~3.EXE mailto:sage [2007/11/23(金) 20:35:07 ID:SA5SFI4k] Windows PowerShell (正式版リリース)1.0 pc11.2ch.net/test/read.cgi/win/1163764836/
96 名前:名無し~3.EXE [2007/11/27(火) 21:24:09 ID:JEXhs+tO] Execメソッド以降が固まってしまうことがあって困っています。 調べたところ、どうやらコマンドの結果が4096バイトを超えると固まるようです。 (dos窓が開いたままの状態でMsgBox("cmd end")が実行されない) これを回避する手段はないでしょうか? コードは以下です。 Set objWshShell=WScript.CreateObject("WScript.Shell") Set objExec=objWshShell.Exec("C:\cygwin\bin\bash.exe --login -c /home/root/foo.sh") Do While objExec.Status = 0 WScript.Sleep(1) Loop MsgBox("cmd end") Do While Not objExec.StdOut.AtEndOfStream strRes=strRes & objExec.StdOut.Read(1) Loop MsgBox(strRes)
97 名前:名無し~3.EXE mailto:sage [2007/11/27(火) 22:37:18 ID:w29ICyU7] 単にSleepが短すぎるとかじゃないよなぁ?
98 名前:名無し~3.EXE [2007/11/27(火) 22:47:10 ID:dWqMnF1n] コマンド実行中に4096バイト溢れないように読み出したらどうかな。 Set objWshShell=WScript.CreateObject("WScript.Shell") Set objExec=objWshShell.Exec("C:\cygwin\bin\bash.exe --login -c /home/root/foo.sh") Do While objExec.Status = 0 WScript.Sleep(1) If Not objExec.StdOut.AtEndOfStream Then strRes=strRes & objExec.StdOut.ReadAll End If Loop MsgBox("cmd end") Do While Not objExec.StdOut.AtEndOfStream strRes=strRes & objExec.StdOut.Read(1) Loop MsgBox(strRes) もしくはファイルにリダイレクトしてから読み出すとか・・・
99 名前:名無し~3.EXE mailto:sage [2007/11/28(水) 00:34:39 ID:LYipxaXQ] 添削開始 Set objWshShell=WScript.CreateObject("WScript.Shell") Set objExec=objWshShell.Exec("C:\cygwin\bin\bash.exe --login -c /home/root/foo.sh") MsgBox objExec.StdOut.ReadAll 添削終了
100 名前:96 mailto:sage [2007/11/28(水) 23:35:18 ID:KdWjqQzh] >>97-99 レスありがとうございます。 99氏のReadAllで対処することができました。 ところで4096バイトというのはなにか制限があるのでしょうか?
101 名前:名無し~3.EXE mailto:sage [2007/11/29(木) 00:17:53 ID:83NzChea] pipeのバッファ長
102 名前:96 mailto:sage [2007/11/30(金) 00:22:06 ID:Fxl47CyX] >>101 なるほど。ありがとうございました。
103 名前:名無し~3.EXE mailto:sage [2007/12/02(日) 23:07:19 ID:TEBziwdN] WindowsXPProの質問です。 ドメインユーザーのSID(S-x-x-x....) から、ユーザーID(Domain\UserID)を知りたいんだけど、 ActiveDirectoryにどんな方法でアクセスすれば良いですか? ADSIを使うっぽいのですが、よくわかりません。
104 名前:名無し~3.EXE mailto:sage [2007/12/15(土) 09:24:53 ID:l9oY6uNQ] @Echo ほしゅ
105 名前:名無し~3.EXE mailto:sage [2007/12/26(水) 16:48:54 ID:ihpdP5iv] vbscriptで下のように FTP を実行するものを作りました。 ------------スクリプトファイル---------- Set objExec = objWshShell.Exec("ftp -s:ftptest.txt") Do Until objExec.StdOut.AtEndOfStream strLine = objExec.StdOut.ReadLine Wscript.Echo strLine Loop FTPの実行結果を取り出したく、標準出力を出しているのですが、 FTPサーバのレスポンスコード (226 BINARY Transfer complete. のような)をとることができません。 FTPのスクリプトファイルに記述したコマンド文字列(get 〜〜〜 など)は出力されます。 なにかレスポンスコードを取り出す方法はありませんでしょうか。
106 名前:名無し~3.EXE mailto:sage [2007/12/26(水) 17:42:45 ID:nPiR3OSS] ありますよ
107 名前:名無し~3.EXE mailto:sage [2007/12/30(日) 01:50:18 ID:yeQ7yJdx] >>105 それって普通に実行して>でリダイレクトした場合は取れるのか? 会話的な出力は無理なんじゃ?
108 名前:名無し~3.EXE mailto:sage [2007/12/30(日) 03:21:32 ID:cJTE6jYq] 2>
109 名前:名無し~3.EXE mailto:sage [2007/12/30(日) 17:30:58 ID:CtFMOrJV] システムのプロパティで 「このコンピュータのプライマリDNSサフィックス」 をスクリプト(VBScript)で設定したいのですがレジストリを書き換えるしかないでしょうか?(Windows2000:WSH5.1) レジストリ変更した場合本当にシステムのプロパティの 「DNSサフィックスと NetBIOSコンピュータ名」 から変更した場合と同じ効果が得られますかね。 'このコンピュータのプライマリDNSサフィックスに追加 SET WSHShell = CreateObject("WScript.Shell") WSHShell.RegWrite "HKLM\System\CurrentControlSet\Services\TCPIP\Parameters\Domain" , "example.local", "REG_SZ" SET WSHShell = CreateObject("WScript.Shell") WSHShell.RegWrite "HKLM\System\CurrentControlSet\Services\TCPIP\Parameters\NV Domain" , "example.local", "REG_SZ" 'ドメインのメンバシップが変更されるときにプライマリDNSサフィックスを変更するか SET WSHShell = CreateObject("WScript.Shell") WSHShell.RegWrite "HKLM\System\CurrentControlSet\Services\TCPIP\Parameters\SyncDomainWithMembership" , "0", "REG_DWORD"
110 名前:名無し~3.EXE [2007/12/31(月) 02:02:49 ID:lbRF296b] WMIなんだけど VistaだとCPUコアごと(デュアルコアCPU使用の場合)にCPU使用率取れないの? 会社のサーバ機(Win2003)だと普通に取れるのに。
111 名前:名無し~3.EXE mailto:sage [2008/01/15(火) 20:13:54 ID:NkT4qLhS] へ
112 名前:名無し~3.EXE [2008/01/21(月) 00:22:04 ID:wT0Wq3sL] >>110 VistaからWin32_Processorが変わったらしいぞ
113 名前:名無し~3.EXE mailto:sage [2008/01/29(火) 15:37:22 ID:QlYaExwt] ファイルに連番を振って、連番状態をtxtファイルに保存するスクリプトをくんだんだけど、 引数多いとエラーになるからファイラの10ファイルずつ何度かに別けて実行するようにしたら、 前のスクリプトがtxtに書き込む前に次のスクリプトが実行されてしまって 重複する連番が発生しまう問題が出てきた。 これをなんとか回避する方法ってない?
114 名前:名無し~3.EXE mailto:sage [2008/01/29(火) 16:39:09 ID:HWw+z0EO] pc11.2ch.net/test/read.cgi/tech/1197881068/158
115 名前:名無し~3.EXE mailto:sage [2008/01/29(火) 18:01:12 ID:Bx0GxAeQ] ロックシリアライズ
116 名前:名無し~3.EXE mailto:sage [2008/01/29(火) 18:05:33 ID:ioJc4Ok0] >>113 方法1 ファイラからわけて実行するときは、同期して順番に実行させる 方法2 txtファイルはセッションごとにユニークなものを用いる
117 名前:名無し~3.EXE mailto:sage [2008/01/29(火) 18:23:51 ID:i99yh1lQ] vistaの検索にもインデックスサービスのような スクリプトから扱えるインターフェイスはありますか? あれば教えてください。
118 名前:名無し~3.EXE mailto:sage [2008/01/29(火) 21:44:23 ID:QlYaExwt] >>116 方法1はやり方が判らん。 方法2は統一連番なので連番用のtxtファイルは一つにしたい。
119 名前:名無し~3.EXE mailto:sage [2008/01/30(水) 00:13:52 ID:hK8k2kJv] >>113 引数を減らすわけにはいかんの?フォルダを渡してその中全部のファイルに連番ふるとか。
120 名前:名無し~3.EXE mailto:sage [2008/01/30(水) 01:01:03 ID:mcJ6fxxT] >>115
121 名前:名無し~3.EXE mailto:sage [2008/01/30(水) 19:58:35 ID:4UJpZWZC] WSHからIEを触っていますが、 <SCRIPT src="a.js" type=text/javascript></SCRIPT> このa.jsの中身をどうしたらいじれるか悩んでいます。 IE.document.scripts.item(x).src にa.jsが入っているところまではわかりました。 しかし 〜.outerHTMLは「<SCRIPT src="a.js" type=text/javascript></SCRIPT>」 〜.innerHTMLは「」(中身なし) と中身がどこにあるのかわかりません。 最終的にはこのa.jsの中にあるconfirmを取り除くことが目標です。 ボタンの形をした画像のonclickでこのconfirmが呼ばれるため、 buttonimg.click()で処理が中断されてしまいます。(制御が戻ってこない) どなたかお知恵をお貸し下さい。
122 名前:名無し~3.EXE mailto:sage [2008/01/30(水) 20:03:21 ID:I8vGwQ/o] confirm = "うんこ" でいいじゃん。
123 名前:名無し~3.EXE mailto:sage [2008/01/31(木) 11:52:44 ID:zJJrJ/qA] 最初意味がわかりませんでしたが、最終的に div = IE.document.createElement("div") div.innerHTML = " <script defer='defer'>window.confirm = function() {return true;}</script>" IE..document.body.appendChild(div) で解決できました。 ありがとうございます。 ところで、上記のやり方ではなく、 IEオブジェクトから直接confirmを上書きする方法はあるのでしょうか? IE.document.window.confirm = "function() {return true;}" だとオブジェクトがないみたいだし、右辺もあやしい?
124 名前:名無し~3.EXE mailto:sage [2008/01/31(木) 17:29:05 ID:gHRDlEQ4] >>121 スクリプトの中身はtextプロパティ >>123 ParentWindow使え あと右辺はもちろん関数
125 名前:名無し~3.EXE mailto:sage [2008/02/24(日) 23:45:43 ID:h5tbuJf2] あるアプリケーションへ, {TAB} {TAB} {ENTER} alt+W P という5つのキーを20回連続して入力したいのです。 かつ,5つのキーの間にそれぞれ1秒程度のwaitを入れたいのです。 で,以下のように記述したのですが,エラーが出ます。 どこをどう治せばいいのか教えてください。 var WShell = WScript.CreateObject("WScript.Shell"); For i=1 to 20 Step 1 WShell.Sendkeys("{TAB}{TAB}{ENTER}%WP"); Next スクリプト: **** 行: 5 文字: 5 エラー: ';' がありません。 コード: 800A03EC ソース: Microsoft JScript コンパイル エラー
126 名前:名無し~3.EXE mailto:sage [2008/02/24(日) 23:59:31 ID:sysKnAbW] JScript for ステートメント 次のコードは、for ループの使用例です。 /* 初めに i は 0 に設定され、繰り返し処理の最後に 1 ずつインクリメントされます。 ループは、繰り返し処理の前に i が 10 かまたはそれ以上になったときに終了します。*/ var myarray = new Array(); for (i = 0; i < 10; i++) { myarray[i] = i; }
127 名前:名無し~3.EXE mailto:sage [2008/02/25(月) 00:06:21 ID:4AkMnxLm] さすがに言語の区別が付かん奴ってのは珍しいな
128 名前:名無し~3.EXE mailto:sage [2008/02/25(月) 00:32:29 ID:u4dXLMq0] JVB折衷か〜 爆笑じゃ〜
129 名前:名無し~3.EXE [2008/02/25(月) 17:51:14 ID:36gDupYt] こりゃひどい。前代未聞。ここまでひどいのは初めて見た。
130 名前:名無し~3.EXE mailto:sage [2008/02/25(月) 18:07:39 ID:4AEiq/3J] 自演乙
131 名前:名無し~3.EXE mailto:sage [2008/02/25(月) 20:47:32 ID:1tRpIHdF] >>125 です。 下記を見て,記述してみたのですが,爆笑・前代未聞レベルでしたか・・・ あきらめます。ありがとうございました。 Windows Scripting Host 2.0 キーを他のアプリに送る homepage3.nifty.com/aya_js/wsh/wsh205.htm
132 名前:名無し~3.EXE mailto:sage [2008/02/25(月) 21:42:24 ID:kuHyV/Zj] >>131 一度、スクリプトの拡張子を.vbsに変えて実行してみたらどうだろう。 爆笑させてもらったお礼だ。
133 名前:名無し~3.EXE mailto:sage 126 [2008/02/25(月) 21:47:14 ID:gUIMLeH3] あきらめなくても、素人らしく20回コピペしたらいいだろ。 バグがあろうが、セキュリティ上の穴があろうが、羅列で見苦しかろうが 「自分だけがわかって使う」なら「最強だ」という考えもありかと@業務で使わないのなら まぁ、自分で作っても記憶は忘却する一方だから、コメントぐらいは入れとけよ。
134 名前:名無し~3.EXE mailto:sage [2008/02/26(火) 01:28:07 ID:2F5HbqQP] WSFにすればいいよ <job> <script language=jscript> var WShell = WScript.CreateObject("WScript.Shell"); </script> <script language=vbscript> For i=1 to 20 Step 1 WShell.Sendkeys("{TAB}{TAB}{ENTER}%WP"); Next </script> </job>
135 名前:名無し~3.EXE mailto:sage [2008/02/26(火) 02:12:37 ID:6OUqc6/u] >>131 > var WShell = WScript.CreateObject("WScript.Shell"); JScriptの構文 > For i=1 to 20 Step 1 VBScript > WShell.Sendkeys("{TAB}{TAB}{ENTER}%WP"); JScript > Next VBScript
136 名前:名無し~3.EXE mailto:sage [2008/02/26(火) 12:21:55 ID:rD2tWwy5] 未練がましいなぁ・・・ 本人がもういいって言ってるんだからあきらめたら?
137 名前:名無し~3.EXE mailto:sage [2008/02/26(火) 12:32:27 ID:Tapss4Ha] >>125 var WShell = WScript.CreateObject("WScript.Shell"); var title = "無題 - メモ帳" function sendkeysleep (app,key,wait) { WShell.AppActivate(app); WShell.Sendkeys(key); WScript.Sleep(wait); } for (i=0; i<20 ; i++){ sendkeysleep(title,"{TAB}",1000); sendkeysleep(title,"{TAB}",1000); sendkeysleep(title,"{ENTER}",1000); sendkeysleep(title,"%W",1000); sendkeysleep(title,"P",1000); }
138 名前:名無し~3.EXE mailto:sage [2008/02/28(木) 22:28:08 ID:yEaqSwG0] My Documentsのターゲットフォルダの場所を ログオフせずに変更することはできませんか? レジストリのどこを修正するかはわかっていますが ログオフするまで有効になりませんでした。 SendKeyを使うしか方法はないでしょうか?
139 名前:名無し~3.EXE mailto:sage [2008/03/02(日) 18:43:06 ID:6e1kCfg7] >>138 shutdown -l
140 名前:名無し~3.EXE mailto:sage [2008/03/05(水) 22:31:46 ID:kBstZgxh] taskkill /im explorer.exe
141 名前:名無し~3.EXE mailto:sage [2008/03/25(火) 16:38:20 ID:9kazgLaF] すみません。初心者です。(オブジェクト指向もあやふやです。) 例えばファイルのコピーをしたいとき fs.CopyFile "aaa.txt", "bbb.txt" を使うために、前もって Set fs = WScript.CreateObject("Scripting.FileSystemObject") を宣言(かな?)しておかなくてはならないんですよね? それでmin メソッドの、 Math.min([number1[, number2[. . . [,numberN]]]]) を使いたいんですが、何を宣言するのかもわからないのです。 ヘルプやwebをいろいろ見て回ったのですがどうしてもわかりません。 どなたか、min メソッドを使用した最小限のプログラムの例を 教えていただけませんか。お願いします。 (もちろん、minメソッドなんか使わずに最小値を取り出すプログラムを 書いてもいいのですが、後学のためにもよろしくお願いします。)
142 名前:名無し~3.EXE mailto:sage [2008/03/25(火) 17:00:14 ID:1IL1Ctz1] 宣言せずに使えるが?
143 名前:141 mailto:sage [2008/03/25(火) 21:44:36 ID:qBx7ORss] 例えばaaa.vbsなるテキストファイルを Dim J J=Math.min(1,2,3) MsgBox J と作って、このaaa.vbsをダブルクリックすると 行:2 文字:1 エラー:オブジェクトがありません。:’Math’ コード:800A01A8 ソース:Microsoft VBScript 実行時エラー とエラーが出るのです。何が足りないのでしょうか。 かなり、アホな質問だとは思いますがどうかお願いします。
144 名前:名無し~3.EXE mailto:sage [2008/03/25(火) 21:51:41 ID:hNdtb4Xa] 予想外の展開w
145 名前:名無し~3.EXE mailto:sage [2008/03/25(火) 22:06:03 ID:8WiypEE9] MathってJScript組み込みオブジェクトじゃないか?
146 名前:名無し~3.EXE mailto:sage [2008/03/25(火) 22:07:52 ID:ixyG0PvK] Mathって.NET Frameworkのオブジェクト(クラス)だろ WSHで使えるのはCOM(ActiveX)オブジェクトだけ まあCOMを通してWin32APIとか.NET Frameworkとかを使うことも出来るけど 元からそれらに対応している言語を使う方がいいだろ
147 名前:141 mailto:sage [2008/03/25(火) 22:27:53 ID:qBx7ORss] ガーーーーーーーーーーーーーーーーーーーーン!! お騒がせしてすみませんでした。あのヘルプはWSHだけのヘルプじゃないのね。 トホホ(;_;)
148 名前:名無し~3.EXE mailto:sage [2008/03/25(火) 22:38:43 ID:/YWxmjp7] VBS+VistaでGetFolder メソッド使ってプロファイルフォルダのSize取得しようとすると エラー: 書き込みできません。 コード: 800A0046 ソース: Microsoft JScript 実行時エラー で落ちる。2000やXPだと落ちないんだけど、これVista特有の現象ですか? Vistaでも普通のフォルダはSize取れるんですけど。
149 名前:名無し~3.EXE mailto:sage [2008/03/26(水) 00:14:49 ID:t+afEoKa] >>147 > あのヘルプはWSHだけのヘルプじゃないのね。 いや、WSHだけのヘルプ。言っとくけど、WSHは言語の名前じゃないからね。 で、MathはJScriptのオブジェクトだから、VBScriptでは使えない。
150 名前:名無し~3.EXE mailto:sage [2008/03/26(水) 01:24:26 ID:KNcsBXpS] 使えるだろ?
151 名前:名無し~3.EXE mailto:sage [2008/03/26(水) 01:54:14 ID:KNcsBXpS] <job> <script language=javascript> </script> <script language=vbscript> msgbox Math.max(1,2) </script> </job>
152 名前:名無し~3.EXE mailto:sage [2008/03/26(水) 04:57:05 ID:7LNLMS+G] >>151 それはVBScriptでJScriptのオブジェクトと使ってるのとは違うだろ。
153 名前:名無し~3.EXE mailto:sage [2008/03/26(水) 13:24:45 ID:KNcsBXpS] <job> <script language=JScript> </script> <script language=VBScript> msgbox Math.max(1,2) </script> </job>
154 名前:名無し~3.EXE mailto:sage [2008/03/26(水) 15:51:20 ID:7LNLMS+G] いやそういう意味ではなくて… それはWSFでVBScriptとJScriptを使っているだけであってVBSじゃないだろって話。
155 名前:名無し~3.EXE mailto:sage [2008/03/26(水) 17:03:49 ID:KNcsBXpS] <job> <script language=JScript> </script> <script language=VBS> msgbox Math.max(1,2) </script> </job>
156 名前:名無し~3.EXE mailto:sage [2008/03/26(水) 18:06:43 ID:POgtdwah] 目的ありきなのか手段ありきなのかってことだよな。
157 名前:名無し~3.EXE mailto:sage [2008/03/26(水) 18:52:46 ID:KNcsBXpS] set sc=createobject("scriptcontrol") sc.language="jscript" msgbox sc.CodeObject.Math.max(1,2)
158 名前:名無し~3.EXE mailto:sage [2008/03/26(水) 21:11:00 ID:TWV1SvVz] 解ってないなぁ
159 名前:名無し~3.EXE mailto:sage [2008/03/26(水) 23:08:35 ID:uMAj67np] んじゃきっちり分かるように説明しる
160 名前:名無し~3.EXE mailto:sage [2008/03/27(木) 12:00:42 ID:2KaXxIPc] HOGE.VBS WScript.Echo (Math.max(1,2))
161 名前:名無し~3.EXE mailto:sage [2008/03/27(木) 23:04:46 ID:ycxHXFId] >>157 なら完全に使えてるな
162 名前:名無し~3.EXE mailto:sage [2008/03/27(木) 23:09:38 ID:2KaXxIPc] >>160 の実行結果も --------------------------- Windows Script Host --------------------------- 2 --------------------------- OK --------------------------- なんだけど? HOGE.VBS //e:jscript
163 名前:名無し~3.EXE mailto:sage [2008/03/28(金) 17:53:53 ID:2JmwkR4J] 解ってるなぁ
164 名前:名無し~3.EXE mailto:sage [2008/03/28(金) 21:54:09 ID:2RJ4tWHs] そうでもないか
165 名前:名無し~3.EXE mailto:sage [2008/03/29(土) 02:07:35 ID:cjLqnGDe] なにか悔しいことでもあったの?
166 名前:名無し~3.EXE mailto:sage [2008/03/31(月) 02:14:48 ID:RCtIg5di] 質問です。 wshでドライバの有効無効を切り替えられますか? 可能ならばコード例をいただければと
167 名前:名無し~3.EXE mailto:sage [2008/03/31(月) 07:49:26 ID:J1B1LuSu] >>166 WSHでは出来ません COM使えば出来ないこともないので どうしてもやりたければWSHではなくCOMについて調べましょう
168 名前:名無し~3.EXE mailto:sage [2008/03/31(月) 17:56:54 ID:Ra0SLpc1] >WSHでは出来ません SendKeys使えば出来ないこともないので どうしてもやりたければWScript.ShellのSendKeysについて調べましょう
169 名前:kuchigakusaiossan mailto:sage [2008/04/05(土) 15:47:53 ID:pZPHR3rd] マルチポストですぅぅ 悩みすぎて口がくさいですぅぅ H友達の同僚のサキちゃんにもきらわれそうですぅぅ ヨロピク 891 名前: kuchigakusaiossan 投稿日: 2008/04/04(金) 11:47:41 すいません、スレ異かな。WSHの言葉だけで来ました。 悩んでます。だれか教えぇぇぇぇ〜〜て EXCEL2003 VBAで www.happy2-island.com/vbs/cafe02/capter00711.shtml あたりに WScript.Sleep 5000 っていうのがさりげにつかってありますが オブジェクトが必要です というエラーが出ますうううぅぅぅぅぅ 私はどうすればいいのでしょうか。 悩みと疲労で歯槽膿漏がますますひどくなりますうううぅぅぅ ぐぐると以下の同じような人もいます。だれか愛の手を win32のsleepじゃなくって、Wscript.echo もつかいたいし >Excel VBA質問スレ Part5 878 :デフォルトの名無しさん:2008/03/02(日) 23:54:52 物凄く基本的な事で申し訳ないのですが・・・、処理待ちでスリープを掛けたく、 WScript.sleep (250) と記述していますが、エラー424 オブジェクトが必要です というエラーが出るのです。 何か参照設定が足りないんでしょうか。。 879 :デフォルトの名無しさん:2008/03/02(日) 23:56:42 ググれよ・・・ 880 :デフォルトの名無しさん:2008/03/03(月) 00:01:10 >>878 WScript.exeを参照設定しろー 895 名前: デフォルトの名無しさん [sage] 投稿日: 2008/04/04(金) 19:36:53 実際問題としてVBAならDeclareが一番楽だと思うんだ 896 名前: デフォルトの名無しさん [sage] 投稿日: 2008/04/04(金) 21:11:06 Application.Waitのほうが簡単
170 名前:名無し~3.EXE mailto:sage [2008/04/05(土) 16:25:23 ID:Zt+/0iY1] VBAからWScript.Echoってどんな使い道があるの?
171 名前:名無し~3.EXE mailto:sage [2008/04/05(土) 17:29:10 ID:opCsAdvJ] 正解は Shell "WScript.exe ..." だな
172 名前:名無し~3.EXE mailto:sage [2008/04/06(日) 05:20:20 ID:nlrXvzZ0] >>170 MsgBoxのほうが簡単
173 名前:kuchigakusaiossan mailto:sage [2008/04/06(日) 13:07:46 ID:Ax1XoNQY] >>170 Debug.Print と同じ用途と考えたけど echo ではログ的に出力できそうじゃないみたいな
174 名前:kuchigakusaiossan mailto:sage [2008/04/06(日) 13:51:08 ID:Ax1XoNQY] >>169 お騒がせしてます。一応自己解決しました。 サキちゃんもよろこんでますぅ。 誤った解釈は、www.happy2-island.com/vbs/cafe02/capter00711.shtml はVBAじゃなくWSHのスクリプトそのもらしい。 VBAではWscriptのスクリプトは実行できないが、オブジェクトは動作できる(みたい) Wscript.sleep × sleep はオブジェクトではない Wscript.run ○ runはWscriptのオブジェクト 質問は wscript.run("sleep 3") とか wscript.run("echo test") にすれば動きますがrunコマンド相当になり意味ナイスネ Sub VBA_WScrit_test() Dim WSH Set WSH = CreateObject("WScript.shell") ’wscript のshellを指定 WSH.Run ("sleep 3") WSH.Run ("echo test") End Sub
175 名前:名無し~3.EXE mailto:sage [2008/04/06(日) 13:59:10 ID:AOV8Fp3G] 先生、どこから突っ込んでいいのか分かりません!
176 名前:名無し~3.EXE mailto:sage [2008/04/06(日) 18:02:36 ID:sJp4hCiu] 175よ、お前のスルー力が試されておる。
177 名前:名無し~3.EXE mailto:sage [2008/04/06(日) 20:25:55 ID:PLT0SKwU] やむを得ず、sendkeys主体のvbsを使うことに なったんだけど、sendkeys中にユーザー操作を 無効化しておくような方法ってないかな? やっぱムリ?
178 名前:名無し~3.EXE mailto:sage [2008/04/08(火) 14:03:59 ID:+YeUwmcX] WSHとは関係無いけどUWSCにそんな関数あったな。
179 名前:名無し~3.EXE mailto:sage 126 [2008/04/16(水) 19:21:44 ID:3BqZSYGn] ho
180 名前:名無し~3.EXE mailto:sage [2008/05/12(月) 15:02:59 ID:idT6RCfS] Xp質問スレから誘導されてきました。 下記の動作を自動化したいと考えています。 具体的な実現方法をご教授ください。 1.ディレクトリA内にある全フォルダ及び全ファイルをディレクトリBに移動する。 (ディレクトリA内にフォルダ及びファイルが存在しない場合はこのスクリプトを停止) 2.ディレクトリBに移動したファイルをデータベースに取り込む。 3.ディレクトリAディレクトリBからディレクトリC内の実行年フォルダ内の実行月フォルダ内の実行日フォルダに移動する。 (フォルダが無い場合は作成) という処理を毎日8時半、12時、18時に行います。 ※2番に関してはデータベース側のスクリプトになりますので、実現したいのは1番と3番です。 よろしくお願い致します。
181 名前:名無し~3.EXE mailto:sage [2008/05/12(月) 18:37:47 ID:yJOtbab4] 1.で全部AからBに移動したのに、3.でAになんか残ってるの?
182 名前:名無し~3.EXE mailto:sage [2008/05/12(月) 20:25:39 ID:uCZ4KO0T] >>180 ファイル・フォルダの移動や作成はFileSystemObject使えば良い 年月日の取得はDateからYear関数などで取得すれば良い ここはスクリプト作成依頼所ではないので、あとは自分で調べて書こう
183 名前:名無し~3.EXE mailto:sage [2008/05/16(金) 09:23:35 ID:zqGee6pu] >>182 情報ありがとうございます。 試してみます!
184 名前:名無し~3.EXE [2008/05/26(月) 13:02:19 ID:ZJjr1srY] makewin.exeでexe化したvbsのexeファイルが savce@5/26定義パターンで木馬として片端から検出・検疫されたわ ふざけんなSAV!!!!!!!!!!ヽ(`Д´)ノ
185 名前:名無し~3.EXE [2008/05/27(火) 23:28:44 ID:5IR62930] >>184 ウチも! 自作アプリのインストーラを、いつも wsh で作成して exe 化して配布してたんだが いきなりオレのソフトは全部ウイルスに認定されてしまったよ! かといって、マイクロソフトの Visual Studio に付いてるクソなインストーラ作成ソフトは使いたくないし InnnoSetup なんて、まるでキンタマみたいな恥ずかしい名前のソフトも抵抗あるし。 どうしよう・・・orz
186 名前:名無し~3.EXE mailto:sage 126 [2008/05/28(水) 18:02:22 ID:U+POFhbu] そこで、MAOIXですよ。
187 名前:名無し~3.EXE mailto:sage [2008/05/28(水) 20:45:49 ID:ijLb+QnG] カッコ付けてexe化なんてしなければいいじゃんw
188 名前:名無し~3.EXE mailto:sage [2008/05/28(水) 22:05:22 ID:lcT2TWdz] exeにするならvb.netだな
189 名前:名無し~3.EXE mailto:sage [2008/05/29(木) 00:42:34 ID:swFNcekc] >>185 ところでWSHの.exe化ってのは、WSHやOSのバージョン毎の差を吸収できるもんなの? できないのならWSHのまま配布するほうが良いと思うんだが。
190 名前:名無し~3.EXE [2008/05/29(木) 18:18:57 ID:DTlmIJ8o] >>189 exe化の原理は簡単。単純に、ローダとvbsスクリプトを COPY コマンドで物理的に結合してるだけ。 COPY /B ローダ.exe+SETUP.VBS SETUP.EXE ローダが実行時にスクリプト部分をファイルに書き出して、子プロセス wscript.exe で実行させる。 OSのバージョンに依存するような事は絶対に無い。
191 名前:名無し~3.EXE [2008/05/30(金) 10:51:12 ID:PIzZnjDJ] ttp://www.microsoft.com/japan/technet/scriptcenter/resources/scriptshop/shop0305a.mspx をまんま使って、ワークグループ環境下で、リモートのOSのバージョン等を採取する スクリプトを作成しています。 Set objWMIService = GetObject("winmgmts://" & "remotehost") Set colOSes = objWMIService.ExecQuery _ ("SELECT * FROM Win32_OperatingSystem") For Each objOS in colOSes Wscript.Echo "OS Version: " & objOS.Version Wscript.Echo "Service Pack: " & objOS.ServicePackMajorVersion & _ "." & objOS.ServicePackMinorVersion Next Windows Server 2003に対しては、普通に動作するのですが、 Windows XP SP2のPCに関しては Microsoft VBScript runtime error: The remote server machine does not exist or is unavailable: 'GetObject' で、拒否られてしまいます。 Google先生経由で色々調べて、XP側のファイアーウォールをOffにしたり、 wmimgmt.mscで、root\cimv2のパーミッションをいじったりしてみたり、 getObjectの引数をいじってみたり、色々やったのですが、ですが、状況は 変わりません。 orz すごく基本的な点を見落としているような気がするのですが、どなたか、 アドバイスいただけませんか?
192 名前:名無し~3.EXE [2008/06/02(月) 08:02:20 ID:xPO8zd5Z] 前に、「ネットワーク接続の有効・無効をするスクリプト」を見たことがあって、 仕事で使いたいと思ってるんだけれど、あの手段は「コントロールパネル」を開いたりを自動化してるっぽくて オレの会社だとコンパネが開けないようになってるから使えなかったんだわさ。 マイネットワークを右クリックしてプロパティとかでネットワーク接続の画面は普通に出せるんだけど、 コンパネは開けない仕様になってて。 そういう場合はどうすればいいと思う?レジストリは権限ないし・・・
193 名前:名無し~3.EXE mailto:sage [2008/06/02(月) 08:18:12 ID:GIIWqOyj] ローカルエリア接続・無線LANをコマンドラインから有効/無効にする方法 ttp://tech.ironhearts.com/blog/archives/74
194 名前:名無し~3.EXE mailto:sage [2008/06/02(月) 18:50:53 ID:uGSz20SA] WSHを自由に使わせてるくせに、コンパネやレジストリへのアクセス権限無しとかgdgdだな セキュリティーの概念を解ってないヘボ会社にはありがちだけどw
195 名前:名無し~3.EXE [2008/06/04(水) 10:19:34 ID:DZ08xA0B] >>191 の自己フォローです。 結局、 コンパネ→管理ツール→ローカルセキュリティポリシー →セキュリティオプション ネットワークアクセス:ローカルアカウントの共有とセキュリティモデル をクラシックに変更 で、解決いたしました。参考サイトは、以下の通りです。 ttp://dendoubako.cocolog-nifty.com/blog/2006/09/post_f08b.html お騒がせいたしました。 (なんだかんだで、三日間もハマッテしまった。orz)
196 名前:名無し~3.EXE [2008/06/13(金) 16:15:06 ID:uYaVuoGG] 4行目でエラーとなるんですが どこか間違っていますでしょうか? --- Dim f Set oMsg = CreateObject("CDO.Message") Set objFs = CreateObject("Scripting.FileSystemObject") Set objText = objFs.OpenTextFile(WScript.Arguments(0)) myText = objText.ReadAll objText.Close oMsg.From = "送信アドレス" oMsg.To = "宛先アドレス" oMsg.Subject = WScript.Arguments(0) oMsg.TextBody = "件名" & vbCrLf & myText ' 添付したい場合使用 'oMsg.AddAttachment WScript.Arguments(0) oMsg.Configuration.Fields.Item _ ("schemas.microsoft.com/cdo/configuration/sendusing ") = 2 oMsg.Configuration.Fields.Item _ ("schemas.microsoft.com/cdo/configuration/smtpserver ") = _ "メールサーバアドレス" oMsg.Configuration.Fields.Item _ ("schemas.microsoft.com/cdo/configuration/smtpserverport ") = 25 oMsg.Configuration.Fields.Update oMsg.Send
197 名前:名無し~3.EXE mailto:sage [2008/06/14(土) 05:59:54 ID:J9SnL1u9] >>196 引数がたりないんでは? Set objText = objFs.OpenTextFile(WScript.Arguments(0),1,False) としたらどうだろう?
198 名前:名無し~3.EXE mailto:sage [2008/06/15(日) 01:00:26 ID:blTLCOLk] >>196 エラーの内容が分からんとな。
199 名前:名無し~3.EXE mailto:sage [2008/06/15(日) 14:34:01 ID:loKPXSjn] スクリプト単体で引数入れずに起動してるとかいうのは無いだろな。
200 名前:197 mailto:sage [2008/06/15(日) 19:32:28 ID:jcYRz71J] >>199 たぶんそれだ。やってみたらわかった。 それか可能性としては、 WScriptの使えない場所(なんかのマクロとかで)で使おうとしているのかもしれない。 しかし、面白いな。"CDO.Message"か。 受信は、"MAPI.Session"らしい。 昔、BASP21でやったことあるけど、当時はこんなのしらなかった。
201 名前:名無し~3.EXE [2008/06/16(月) 11:10:05 ID:oNTE9LVr] ありがとうございます >>197 ただそうすると oMsg.TextBody = "件名" & vbCrLf & myText がSubjectに挿入されず,添付ファイル名が挿入してしまいます。 前起動したときはそうならなかったのですけど。 何度もお手数おかけします。
202 名前:名無し~3.EXE mailto:sage [2008/06/16(月) 14:40:47 ID:vFGvsFla] 自分でデバッグ出来ない奴はスクリプト書くなよ これは交通法規も知らない(免許のない)奴は車で公道を走るなってのと同じだ エンジン掛けてギヤ入れてアクセル踏んでハンドル切れば車は動くが それだけでは公道で車を運転する資格にはならない スクリプトもとりあえず書くだけなら小学生でも出来るし、そのままで動くこともあるが 問題が起きたときにデバッグ出来ない奴は、スクリプト書けるとは言えないし書く資格もない 車の運転でも、公道を走る前にまず交通法規や運転技術を身に付けるように スクリプトでも実用コード書く前に、まず構文規則とデバッグを身に付けなきゃならない と、最近のあまりにも無気力な丸投げ質問に渇を入れてみました
203 名前:名無し~3.EXE mailto:sage [2008/06/16(月) 14:52:48 ID:ykhvW0pF] 突っ込み所が満載な例えを出さないの。
204 名前:名無し~3.EXE mailto:sage [2008/06/16(月) 15:31:18 ID:SHT72aOI] そうでもないか。
205 名前:名無し~3.EXE mailto:sage [2008/06/16(月) 18:09:59 ID:BCDUeaPm] とりあえず何でもいいから書かないと身に付かないよ。 デバッグ出来ない奴は書くななんて言っちゃったらずーっとそのまんま。 最大限自分でなんとかするって心構えは必要だと思うけど。 最終的に他人に聞いて解決するにしても、それ以前の試行錯誤がないと 経験値にならないし、伸びる見込みもない。そういう奴は書いても無駄。
206 名前:名無し~3.EXE mailto:sage [2008/06/16(月) 22:00:00 ID:uMi9mtpF] 書くだけじゃなにも身に付かんよ 君も言ってるが、「それ以前の試行錯誤」ってのがデバッグなわけで そうやって、書いた上で「考えないと」身に付かん 例えば Set objText = objFs.OpenTextFile(WScript.Arguments(0)) なら WScript.Arguments.Count で、1つ以上の引数が渡されてるか objFs.FileExists で、その引数をパスとするファイルが存在するか そういうのを確認してからOpenTextFileする、そういう試行錯誤(デバッグ)が必要なわけよ その後のReadAllも、ファイルが空だとエラーになるから、AtEndOfStreamで確認する そうやってただ書くだけではなく、面倒がらずに処理を一つ一つ追っていけば どの行ではなくどの処理がエラーになってるか解るし、そこまで解れば 質問するまでもなく解決する話かも知れない そういった最低限のデバッグには、手間は要るがたいした知識は要らない >>196 のコードが書けるなら、WScript.Arguments.Countや objFs.FileExistsに行き着くのはそう難しいことではないはず なのにエラーが出たらそこで思考停止して他人に丸投げし 自分で試行錯誤する気が全くない、そういうところがダメなわけで
207 名前:名無し~3.EXE mailto:sage [2008/06/17(火) 06:41:32 ID:vvTweahD] >>196 のコードが書けるなら それ、どっかのホームページからのコピペでしょ。 こんだけのコードが書けるヤツがデバッグすらできないはずは無い。 デバッグって言っても、ただ print 文や echo 文を入れまくるだけなのにね。 まるごとコピーしただけで理屈が分かってないから 何を print させればいいのかがわからない。だからデバッグできない。
208 名前:名無し~3.EXE mailto:sage [2008/06/17(火) 10:48:55 ID:563mmLYl] ところで、4行目というのは Set objText = objFs.OpenTextFile(WScript.Arguments(0)) のことで良いのかな。 もしそうなら、ファイルをドロップして引数に与える分にはエラーになる箇所じゃない罠。 ただ、メールの件名(WScript.Arguments(0))にファイルのフルパスを与えるとは考えにくいから、 コマンドラインから手入力でファイル名だけ引数に与えているのだとすると、 その場合、カレントディレクトリを変更していない為のエラーはありえるかも。
209 名前:名無し~3.EXE [2008/06/19(木) 21:14:00 ID:PbO/hOTC] >>196 下のスクリプトは動いたので、問題はないように見えますが・・? 'Dim f 'Set oMsg = CreateObject("CDO.Message") Set objFs = CreateObject("Scripting.FileSystemObject") Set objText = objFs.OpenTextFile(WScript.Arguments(0)) myText = objText.ReadAll objText.Close WScript.echo myText Set objFs = Nothing Set objText = Nothing ドラッグしたファイルはtest.txtで中身は あいうえお。 かきくけこ。 あいうえお。 かきくけこ。 と表示されました。 上の皆様がおっしゃっている内容を確かめてみるとよいかと。 なんの助けにもなってませんねー
210 名前:名無し~3.EXE [2008/06/19(木) 21:25:25 ID:PbO/hOTC] 209です。 おれも皆様の力を借りたいことがあります。 Vistaでインストールされた更新プログラムのリストを表示させるスクリプトを作ろうと思ったのですが、よい方法はないでしょうか? 難しいのはアプリケーションのリストではなく、MicroSoftからの更新プログラム(KB〜みたいな)であるという点です。 XPではレジストリの以下の場所から一覧を取得するだけなので楽だったのですが、 HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\ VistaではUninstallのキーはあってもその中に更新プログラムのキーがない。 同じ方法では取得できません。 レジストリがダメならWMI?WindowsInstallerオブジェクト? よい方法を知りませんか?
211 名前:名無し~3.EXE mailto:sage [2008/06/20(金) 15:40:25 ID:GKZ2+8+R] >>210 ttp://www.microsoft.com/japan/technet/scriptcenter/scripts/srvpacks/spvb01.mspx この辺は?
212 名前:名無し~3.EXE [2008/06/21(土) 10:49:13 ID:m1Ys5slR] ありがとうございます。 >>211 上のURLを参考に、Vistaのhotfixを取得することができました。 ・・でも少し抜けてるんですよね。ServicePack(KB936330)とか。 URLのコードにあった、Win32_QuickFixEngineeringを参考に調べていたら ttp://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/sept05/hey0930.mspx でなんかいけるかもなのでがんばってみます。 ありがとうございました! 今回試したスクリプトは以下 '--------------------------------- strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colQuickFixes = objWMIService.ExecQuery _ ("Select * from Win32_QuickFixEngineering") Set objFSO = CreateObject("Scripting.FileSystemObject") Set TextFile = objFSO.OpenTextFile("C:\test.txt", 2, True) TextFile.Write "Computer,Description,Hot Fix ID,Installation Date,Installed By" & vbCrLf For Each objQuickFix In colQuickFixes TextFile.Write objQuickFix.CSName & "," & objQuickFix.Description & "," & objQuickFix.HotFixID & ","_ & objQuickFix.InstallDate & "," & objQuickFix.InstalledBy & vbCrLf Next TextFile.Close
213 名前:名無し~3.EXE mailto:sage [2008/07/15(火) 14:01:02 ID:MSaMbScD] コマンド実行unixの xx.sh > /dev/null 2>&1 にあたるリダイレクトってWindowsで出来ますか?
214 名前:名無し~3.EXE mailto:sage [2008/07/15(火) 14:07:31 ID:THmV8Aue] >>213 それはどうなるの?UNIXをあんまり使ったことが無いから判らないけどヌル箱の代わりはNULっていうデバイスがあるよ。 というより、スクリプトを出したほうがやりたいことが判りやすくてよいのではないかと。
215 名前:名無し~3.EXE mailto:sage [2008/07/15(火) 15:25:38 ID:I42WGyiI] 要するに標準出力を捨てて標準エラー出力を標準出力として出力したいってことでしょ
216 名前:名無し~3.EXE mailto:sage [2008/07/15(火) 15:39:11 ID:THmV8Aue] そういうことはスクリプト内部を変更しちゃうからわからないなぁ。 ためしに今cscriptでNULにリダイレクトしてみたらハンドルが無効だぞハゲって言われちゃったよ。
217 名前:名無し~3.EXE mailto:sage [2008/07/15(火) 19:21:02 ID:+Z+QfLmA] >>215 違う。標準出力と標準エラー出力をまとめて捨てる。 >>213 コマンドプロンプト上で hoge.bat > nul 2>&1 ってのはできるけど、 リダイレクトはシェルの機能だから、WSHで出来るのかどうかは わからないな。 Execメソッドで "cmd.exe /c hoge.bat > nul 2>&1" みたいに やれば動くかもしれないけど、今試せる環境がないので未確認。
218 名前:名無し~3.EXE mailto:sage [2008/07/15(火) 19:26:35 ID:THmV8Aue] プロンプトを見たくないならRunの第二引数を0にすれば良いんじゃないかな。
219 名前:名無し~3.EXE mailto:sage [2008/07/15(火) 21:10:44 ID:xfeqMLQj] cscript >NUL 2>NUL ふつうにできますが何か?
220 名前:名無し~3.EXE mailto:sage [2008/07/18(金) 08:57:51 ID:m/LYbVKS] >>219 StdOutやStdErrを使ったスクリプトでやってみてよ。
221 名前:名無し~3.EXE mailto:sage [2008/07/18(金) 09:21:37 ID:/qFN6kNU] w2kだが5.6 jpが入ってるところへ5.7をインストールしたら 日本語リソースそのまま使うみたいで5.7が日本語になった
222 名前:名無し~3.EXE mailto:sage [2008/07/18(金) 15:14:06 ID:XFnK5WyO] >>220 wscript.stdout.writeline 1 wscript.stderr.writeline 2 できるけど?
223 名前:名無し~3.EXE mailto:sage [2008/07/18(金) 15:30:19 ID:m/LYbVKS] >>222 >>216 の時には出来なかったのだけど、今やったらなぜか出来た。 訳がわからんがまあいいか。
224 名前:名無し~3.EXE mailto:sage [2008/07/22(火) 14:37:12 ID:1x3O0bQO] >>216 はwscript.exeだろ?
225 名前:名無し~3.EXE mailto:sage [2008/07/22(火) 16:04:02 ID:m8H9p6l1] いんや、CSCRIPTだったよ。 そうしたら(null) ハンドルが無効ですってコンソールに出た
226 名前:名無し~3.EXE mailto:sage [2008/07/23(水) 13:29:19 ID:H4TSZYUl] CScript の標準入出力は、バージョンによってちょっとずつ挙動が違うよ 自宅のVistaで試したコードが、職場の2kだと動かないとかザラ
227 名前:名無し~3.EXE mailto:sage [2008/07/23(水) 18:55:12 ID:kx1E3i+M] そりゃさすがにバージョンダウンは無理やろ
228 名前:名無し~3.EXE mailto:sage [2008/07/26(土) 15:54:20 ID:saqPtqJr] あるフォルダの中のその週に作業されたファイルを集計したいんですけど、ファイル属性で第何週目とかないんでしょうか? あるいはロジックで上手いこと検出する方法はないでしょうか?
229 名前:名無し~3.EXE mailto:sage [2008/07/26(土) 16:06:55 ID:xOhG5Vbs] >CScript の標準入出力は、バージョンによってちょっとずつ挙動が違うよ そうかぁ?標準入出力は内蔵FilsSystemObjectだから変わらんと思うが
230 名前:名無し~3.EXE mailto:sage [2008/07/26(土) 17:08:58 ID:elGRh4zI] >>229 日付で見ればいいじゃん 週ごとにするなら年ごとに第一週が何日あるかデータベース作れば 簡単に何周目かが分るし、つうか年またぎどうすんだ
231 名前:名無し~3.EXE mailto:sage [2008/07/26(土) 17:20:43 ID:WB4RWxle] >>228 今週作業したファイルを抽出したいって話なら、 ファイルの更新日時が何日前かを取得して、その値がWeekday(Now)以下なら今週。
232 名前:228 mailto:sage [2008/07/26(土) 18:25:58 ID:kbSenNqx] >>230-231 ありがとうございます。今週分が必要なので>>231 でいけそうです。 何日前かを計算するのは日付からNOWを引いて、答えの整数部分で考えればいいですよね?
233 名前:名無し~3.EXE mailto:sage [2008/07/26(土) 19:02:39 ID:icWXyyQo] >229 変な動きするのもある。 StdIn.Read(1)すると、一行読み込んだ上で先頭の1文字返す (なので、その時点ではおかしくないのだが、次のReadの際には残りが捨てられている) とか、そんな変な挙動をするものがある。
234 名前:名無し~3.EXE mailto:sage [2008/07/26(土) 19:09:23 ID:WB4RWxle] >>232 >何日前かを計算するのは日付からNOWを引いて、答えの整数部分で考えればいいですよね? それだと誤差が出るはずなので、いったんそれぞれをDAYで丸めてから引き算した方がいい。
235 名前:名無し~3.EXE mailto:sage [2008/07/26(土) 23:47:05 ID:yRWXnRv/] >233 それは単なるバグじゃないのか? 「古いバージョンには○○なバグがある」 って言えば、「ふうんなるほど」 で話が終わるものを 「バージョンによってちょっとずつ挙動が違う」 なんて書くから誤解される。
236 名前:名無し~3.EXE mailto:sage [2008/07/27(日) 02:20:08 ID:EoLlJkI3] WScript.StdInの実装バグなので Set StdIn=WScript.StdIn StdIn.Read(1) とすればよかったような
237 名前:名無し~3.EXE mailto:sage [2008/08/04(月) 17:45:05 ID:qtSSqajn] IE自動操作してるんだけども、 input type= file にはPCから wsh 実行しても入力出来ないのですか? せっかく本まで買ってvbs覚えようとしてるのに、困った…(´・ω・`)
238 名前:名無し~3.EXE mailto:sage [2008/08/04(月) 18:56:19 ID:IyBaEu56] 金玉ウィルスでも作るつもりか?
239 名前:名無し~3.EXE mailto:sage [2008/08/04(月) 20:27:14 ID:qtSSqajn] (`・ω・´)金玉なんて作るわけないでしょ!
240 名前:名無し~3.EXE mailto:sage [2008/08/04(月) 22:34:43 ID:tB95YHdp] つSendKeys
241 名前:名無し~3.EXE mailto:sage [2008/08/04(月) 23:53:35 ID:qtSSqajn] >>240 ありがとう、スマートじゃないけどその方法で取りあえず上手くいきました
242 名前:名無し~3.EXE mailto:sage [2008/08/05(火) 05:36:14 ID:gDmp4m0n] 金玉ウイルスって何? 玉筋ウイルスなら知ってるが。
243 名前:名無し~3.EXE mailto:sage [2008/08/05(火) 17:42:33 ID:KazUXVcD] 球筋ウイルスってなに? キンタマウイルスなら知ってるが。
244 名前:名無し~3.EXE mailto:sage [2008/08/06(水) 09:28:25 ID:Wr7qdPjn] 以下for(;;)
245 名前:名無し~3.EXE mailto:sage [2008/08/06(水) 11:24:45 ID:aAYjTfjb] break;
246 名前:名無し~3.EXE mailto:sage [2008/08/13(水) 19:55:03 ID:6iS3g15e] POWERSHELLってこのスレの人的に見てどうなの? VBSで出来たことが全部出来るんですか?
247 名前:名無し~3.EXE mailto:sage [2008/08/15(金) 09:31:12 ID:B0JNZm6F] PowerShell はすばらしいですよ。 PowerShell を使えば、あなたの仕事がはかどります。 PowerShell ならシステムの管理が獲活に行えます。 例えて言うなら エスペラント語 みたいなもんです。
248 名前:名無し~3.EXE mailto:sage [2008/08/17(日) 13:31:35 ID:U69J/FrR] 獲活?
249 名前:名無し~3.EXE mailto:sage [2008/08/28(木) 22:26:26 ID:uWfeBCSV] たぶん円滑
250 名前:名無し~3.EXE [2008/08/30(土) 14:11:12 ID:d0tUT80M] 統合アーカイバプロジェクトのKBA.DLLをインストールして使ってみたのですが、複数ファイルをドロップした時に思うように動作してくれません。 例えば、 Set FSO = CreateObject("Scripting.FileSystemObject") Set oZIP = CreateObject("KBA.ZIP") For Each sArg in WScript.Arguments if FSO.FileExists(sArg) Then oZIP.OpenArc sArg MsgBox "1:" & sArg & "2:" & oZIP.ArcName oZIP.CloseArc End if Next 上記スクリプトに、zipファイルを1つドロップした場合、「1:ドロップしたファイル名2:ドロップしたファイル名」とメッセージが出るのですが、 2個以上のzipファイルをドロップすると、1個目のファイルは「1:ドロップしたファイル名2:ドロップしたファイル名」、 2個目以降は「1:ドロップしたファイル名2:」となってしまいます。 OpenArcメソッドを使わなければ、それ以外のメソッド、ArcCmd(圧縮・解凍などの各種操作)・FileCount(格納されているファイルの総数を返す)などは複数のファイルでも正しく処理できます。 書庫の情報を取り出したり書庫内ファイルを検索するために書庫ファイルを指定するのがOpenArcメソッドですが、呼び出すと2個目以上のファイルの処理に問題が出るようです。 CloseArcメソッド(リファレンスには「OpenArcで結びつけたハンドルを解放する」とあります。)も機能していない?ようです。 更新日も古く、使っている人が少ないのか、googleでもほとんど情報を得られませんでした。どなたか、助言お願いします。
251 名前:名無し~3.EXE mailto:sage [2008/08/30(土) 21:28:30 ID:Oes8pJ1M] 知らんけど、毎回オブジェクト作成→解放してみるとか
252 名前:名無し~3.EXE mailto:sage [2008/08/30(土) 21:44:45 ID:4ib5BU+k] jscriptでIEを操作して、「フォームを送信して結果の本文を取得する」 ってのをやろうとしています。 debug用に IE.Visible = true; で試しているところですが、 IE.Navigate2 でPOSTしてフォームの送信に成功し、結果が表示されるところ まではできています。 しかし、その後 IE.document.body.innerhtmlや.innertextはもちろん、 IE.locationnameすらも取得できません。(nullが返る) もちろん IE.ReadyState == 4 である事は待ってから取得しています。 こんなことってあるんでしょうか。 本文など情報を取得するにはどうすればよいのでしょう。
253 名前:252 mailto:sage [2008/08/30(土) 22:57:59 ID:4ib5BU+k] IE.locationnameは取得できていることがわかりました。 たまたまデバッグしていたページのタイトルが空だっただけでした。 やはりIE.document.body.innerhtml, .innertextは取得できません。
254 名前:名無し~3.EXE mailto:sage [2008/08/30(土) 23:26:37 ID:sDyQKTTJ] 間違ってるだけ
255 名前:名無し~3.EXE mailto:sage [2008/08/30(土) 23:47:47 ID:DSTdld3c] innerHTML innerText VBじゃないんだから正しく書け。
256 名前:252 mailto:sage [2008/08/31(日) 00:00:23 ID:Vnde2TRN] >>254-255 う… その通りでした。ありがとうございます。 存在しないプロパティならエラーになるはずだと思っていたので、エラーに ならない以上そういう問題はないと思いこんでしまっていました。
257 名前:名無し~3.EXE mailto:sage [2008/08/31(日) 22:46:35 ID:6Tzy7HL9] 質問です PowerShell というのはつまり なんちゃって Perl なわけですか?
258 名前:名無し~3.EXE mailto:sage [2008/08/31(日) 23:08:58 ID:EaFSdaSA] CGI=Perlと思っていたあの頃・・・
259 名前:名無し~3.EXE [2008/09/02(火) 22:39:04 ID:/oXppw8S] 下のVBSとJScriptは同じ動作をするんですが、なぜJScriptのほうで var objSys = enumSys.item(); という手間がひとつ多く必要なのかがよくわからんのです。 どなたか教えてプリーズ。 -----VBS Set wmi = GetObject("winmgmts:") Set SystemSet = wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem") for each System in SystemSet WScript.Echo "Caption: " + System.Caption WScript.Echo "Version: " + System.Version WScript.Echo "Memory: " + System.TotalVisibleMemorySize next -----JScript var wmi = GetObject("winmgmts:"); var SystemSets = wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem"); for(var enumSys = new Enumerator(SystemSets); ! enumSys.atEnd(); enumSys.moveNext()) { var objSys = enumSys.item(); WScript.Echo("Caption: " + objSys.Caption); WScript.Echo("Version: " + objSys.Version); WScript.Echo("Memory: " + objSys.TotalVisibleMemorySize); } あと、JScriptでWMIとかをいじる時に、オブジェクトの中身を見られるメソッドみたいなものがあれば教えて欲しいです。 enumSys.toSource() だと「実行時エラー: オブジェクトでサポートされていないプロパティまたはメソッドです。」と言われてしまいます。
260 名前:名無し~3.EXE mailto:sage [2008/09/02(火) 22:53:39 ID:UTiA0o1v] enumSysはEnumeratorオブジェクトだから オブジェクトの中身って何
261 名前:名無し~3.EXE mailto:sage [2008/09/02(火) 23:20:06 ID:uJm2pAsf] >>259 自分でtoSourceをr定義する
262 名前:259 [2008/09/03(水) 00:23:11 ID:JepG4paN] >>260 言われてみたら new Enumerator でオブジェクトを作ってた。 全然目が届いてなかったぜ。ありがとう >>261 が自分で作れと言ったので9割コピペで捏造した。 function printProperty(obj) { for (var prop in obj){ WScript.Echo(prop + " -> " + obj[prop]); } } <略> for(var enumSys = ... var objSys = enumSys.item(); printProperty(objSys); だけど、なにも表示されない。 >>259 のコードで少なくとも .Caption と .Version と .TotalVisibleMemorySize は在るのがわかってるので、printProperty の for ループは最低3回はまわるはず(だよね?) 「->」だけの表示でもいいから3回は表示されると思ったんだけどその表示も無し。 神よ添削してくだされ。
263 名前:259 [2008/09/03(水) 01:01:10 ID:JepG4paN] 当初の目的は達成できました。 .Properties_ ってなんだよ!そんなの知らなきゃわかんないよ!って気分になりました。 moz-addon.g.hatena.ne.jp/ZIGOROu/20071101/1193945908 さんありがとう。 for(var enumSys = new Enumerator(SystemSets); ! enumSys.atEnd(); enumSys.moveNext()) { var objSys = enumSys.item(); for(var enumProp = new Enumerator(objSys.Properties_); ! enumProp.atEnd(); enumProp.moveNext()) { WScript.Echo(enumProp.item().name + " -> " + objSys[enumProp.item().name]); } } 「こんな局面のときは .Properties_ ってのが使えるぜ」みたいな知見は経験を積むしかないんだろうか? あるいは体系的に学習すれば身につくレベルの話?
264 名前:名無し~3.EXE mailto:sage [2008/09/03(水) 01:27:09 ID:rs8DnNaP] 経験かな エンジンのバージョンごとにバグがあって それに気が付かずに悩んだりすることもあるし
265 名前:名無し~3.EXE mailto:sage [2008/09/04(木) 19:27:26 ID:l2+9WVFc] WSH(JavaScript)でIEを操作するスクリプトを書いています。 IE = new ActiveXObject("InternetExplorer.Application"); IE.Visible = false; IE.Navigate("www.google.com/ "); てなことをやっていると、全く操作ができなくなることがある。 IE.Visible = true; にして確認してみると、 「セキュリティの警告」 「セキュリティで保護されたページを表示しようとしています」 というポップアップが出ていて、OKをクリックしてやらない限りWSHからは 操作できないようだ。 こういうダイアログが出ているかどうかを確認して、出ていたらOKを押す、 というのはどうすればいいですかね。
266 名前:名無し~3.EXE mailto:sage [2008/09/04(木) 19:51:14 ID:2bJj6jy/] >>265 IE.Visible = true; で、いいんじゃね?
267 名前:名無し~3.EXE mailto:sage [2008/09/04(木) 19:53:27 ID:l2+9WVFc] trueにすれば ポップアップが開いたことをスクリプトから調べる方法 そのポップアップのOKを押す方法 はあるということ?どうすればいい?
268 名前:名無し~3.EXE mailto:sage [2008/09/04(木) 19:58:57 ID:2bJj6jy/] 「スクリプトから」はしらない。
269 名前:名無し~3.EXE mailto:sage [2008/09/04(木) 20:13:30 ID:l2+9WVFc] あぁ、人が見てOKすればいいってことですか? うーん、自動化したいということと、人がOK押してる間に IE.ReadyState == 4で先に進んじゃうのよね。操作できないのに。 IE.Navigate("どっか"); while(IE.ReadyState != 4) { WScript.Sleep(250); } ほげほげ; IE.Navigate("べつのどっか"); while(IE.ReadyState != 4) { WScript.Sleep(250); } ふがふが; ってなことをしていて、"どっか"の時点で警告が出ると、さくっとほげほげの 処理を通り過ぎて"べつのどっか"へのNavigateを実行するけど失敗して、 かつReadyStateは4のままだから、人がOKを押す前にふがふがまで行ってしまう。 というわけで、(ほんとはやだけど)最悪OKは人が押すとしても、警告のせいで IEの処理が止まってる事をスクリプトから把握できないと困るのよ。 できないとなると、こういうのを回避する別のいい方法はないかなあ。
270 名前:名無し~3.EXE mailto:sage [2008/09/04(木) 23:43:29 ID:xy3FNoG2] If .AppActivate(ダイアログのタイトル) Then .SendKeys "OKのショートカットキー"
271 名前:名無し~3.EXE mailto:sage [2008/09/05(金) 00:11:56 ID:ymZX69/d] トンクス、明日やってみる if WScript.Shell.AppActivate("ダイアログのタイトル") { WScript.Shell.Sendkey("ショートカット"); } JavaScriptだからこうかな。 VBScriptはオブジェクト名を省略できるの?
272 名前:名無し~3.EXE mailto:sage [2008/09/05(金) 00:14:55 ID:+9TG1vLi] VBScriptでもJScriptでもwith
273 名前:名無し~3.EXE mailto:sage [2008/09/05(金) 14:11:28 ID:8iLTXUTa] >>265 たぶんみなさん確実に私より詳しそうだから、全然はずしていたら読み飛ばしてください。 IEを操作するときは、どこかで、objIE.Navigate("about:blank") でブランクページを 作ってから目的のページに飛ぶほうがいい、って書いてあって(ように思う) 私は何も考えずにそうしてます。そういう問題ではないですか? (っていうか、一旦ブランクにする理由はすっかり忘れてしまって、ググッたけど、 見つけられなかった。どういう意味なのか知っている人がいたら解説してほしいです....)
274 名前:名無し~3.EXE mailto:sage [2008/09/05(金) 14:48:19 ID:+9TG1vLi] しないほうがよい
275 名前:265 mailto:sage [2008/09/05(金) 17:03:26 ID:VTJ1fL7j] >>273 IE.Navigateの問題ではなくて、モーダルダイアログに阻まれて元アプリの コントロールができなくなる話なので、本質的にはIEに関係ないと思う。 たぶんIE.Visible = false;なのにGUIからしかコントロールができない API設計のへぼさが問題だと思うけどしょーがないみたいね。 とりあえず>>270-271 でうまくいったのでそれでいい事にする。 ところで、ActiveXObject()でオブジェクトを作るとエラーの判定ができる けど、 wsfで<object />を使って作ると判定できないのかな。 ScriptPW.Passwordを使ってスクリプトを書いていたらscriptpw.dllが無い 環境でエラーになる事がわかったから判定したいけど、<object />で 作っていたので返り値で判断ができない。 <object />を使う場合は絶対失敗しない事を確信できる状況でしか使うな ってことなのかな。 使えば使うほどかゆいところに手が届かない感じがしてくるなー。 ちょっとしたことに使うなら便利なんだけどさ…。
276 名前:名無し~3.EXE mailto:sage [2008/09/05(金) 18:13:47 ID:+9TG1vLi] <object id=hoge /> TypeName(hoge)で確認
277 名前:名無し~3.EXE mailto:sage [2008/09/05(金) 19:29:24 ID:VTJ1fL7j] >>276 すまん、俺が悪かった。 問題はそれ以前に、エラーになったらその時点で実行が止まっちゃう事にあった。 オブジェクトを作成できなくても実行を続けるにはどうすればいいかな。
278 名前:名無し~3.EXE mailto:sage [2008/09/07(日) 09:27:05 ID:F9Z8qgIn] HTAStopとNoScript(Firefoxのアドオンではない)で無効に設定しているので使ってません。
279 名前:名無し~3.EXE mailto:sage [2008/09/07(日) 21:28:33 ID:Bfr7d4al] >>274 IEなんて使わないで直接取りに行ったら? POSTもできるし Function PrintHttpDocSimply(url,param) Dim oXmlHttp Set oXmlHttp = CreateObject("MSXML2.XMLHTTP.4.0") oXmlHttp.Open "POST", url , False oXmlHttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded" oXmlHttp.send param PrintHttpDocSimply = oXmlHttp.responseText End Function paramは ”hoge=hoho&baka=kaba&momar=hiroyuki” とか入れておけばいい
280 名前:名無し~3.EXE mailto:sage [2008/09/07(日) 21:38:59 ID:TQSameT9] なぜ全角文字を混ぜる
281 名前:265 mailto:sage [2008/09/08(月) 02:45:23 ID:K462bD72] >>279 >>274 じゃないけど反応してみる さっぱりわからんので教えてくらはい。 再帰してるのはなぜ? PrintHttpDocSimplyの引数が(url, param)なのにoXmlHttp.responseTextだけ 渡すのでいいの? つーかそもそもoXmlHttp.responseTextはどこで定義されているの?
282 名前:名無し~3.EXE mailto:sage [2008/09/08(月) 06:42:42 ID:L5IL5s6b] VBScript Function でぐぐれ
283 名前:265 mailto:sage [2008/09/08(月) 16:13:17 ID:TQKBbcaA] ぐぐった。 VBScriptにはreturnが無いのね。 もしかして再帰できないの?と思ったら再帰の呼び出しはcallを使うのか…。 >>279 サンクス。 >>275 にも書いたように>>270-271 でなんとかしちゃったけど、後で試してみる。 あと>>277 は、try {} catch() {}すればいい事に気がついた。
284 名前:名無し~3.EXE [2008/09/10(水) 00:05:22 ID:nQEAey34] wshとは直接関係無いけど Windowsのシステム内でのレジストリとWMIの位置付けの違いがよくわからん レジストリは設定の保存場所だろ? WMIも設定の保存場所…なのか?
285 名前:名無し~3.EXE mailto:sage [2008/09/10(水) 01:11:02 ID:+SACXhEc] >>282 MSXML2.XMLHTTP.4.0 というObjectでいろいろ定義されている 古いOSならいざ知らずたいがいの環境で使えるのが吉
286 名前:名無し~3.EXE [2008/09/10(水) 01:20:16 ID:bhv+KmqL] 昔作ったBATを置き換えようかと思ってるんだけど %~dpnx1とか%~n1とかどう取得するの?
287 名前:名無し~3.EXE mailto:sage [2008/09/10(水) 01:59:46 ID:VUGKxJpv] >>286 コマンドラインパラメータの取得なら WshArguments オブジェクト msdn.microsoft.com/ja-jp/library/cc364463.aspx パスの分解なら FileSystemObject のメソッド msdn.microsoft.com/ja-jp/library/cc428078.aspx 各種 Get****Name なげーよカスと思っても口にしてはいけないよ。
288 名前:名無し~3.EXE mailto:sage [2008/09/10(水) 15:55:55 ID:TB/+ZEHL] サーバーのデスクトップ画面をリモートから保存したい クライアントでATバッチ実行してサーバにBATのrunasでadmin権限取得用vbsをechoで作成して実行するようにスケージュル 指定時間になったら、サーバで上で自動作成されたadmin.vbsが実行されてクライアントの中のcap.batが実行される cap.batでサーバのデスクットプ画面を保存するadmin.vbsは実行後にadmin.vbsで削除される 一応動いたけどサーバでcap.bat実行中の画面が保存されるので困っている runasでsendkeys使っているので非表示でbatを起動することはできないのでsendkeyが終った後にcap.batの最小化又はウィンドウサイズを位置を変更したい ↓の方法も試しましたがコマンドプロンプトの画面はaltキーが反応してないみたいで使えませんでした ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1210643057 wshで実行中のコマンドプロンプトの最小化又はウィンドウサイズを位置を変更する方法はありませんか?
289 名前:名無し~3.EXE mailto:sage [2008/09/10(水) 20:49:57 ID:xOxjqnd6] わざわざそんなことせずともできると思うが、具体的に
290 名前:286 mailto:sage [2008/09/11(木) 07:01:11 ID:KjAck0oQ] >>287 thx
291 名前:at.bat part1 mailto:sage [2008/09/11(木) 08:49:14 ID:xAqasSGI] >>289 @echo off @REM 実行するアプリとスケジュール時間 set RUNBAT=\\%COMPUTERNAME%\z$\bat\リモート\run_remote_pc.vbs set RUNTIME=7:30 call :time_run echo PC名 ping 内容 時間%h%時%m%分%s%秒>>atlog.txt @REM ---------------------------------------------------------- for /F "tokens=1" %%a in (pclist.txt) do call :sub1 %%a GOTO :EOF @REM ---------------------------------------------------------- :sub1 SET LIST=%1 :PING SET PING=ERR_LAN ping /n 1 %LIST% | find "Reply" >tmp1.txt for /F "tokens=1" %%a in (tmp1.txt) do SET PING=%%a del tmp1.txt IF NOT %PING%==Reply GOTO NGLAN :OKLAN echo Dim WshShell>\\%LIST%\c$\at_admin_run.vbs echo Set WshShell = CreateObject(^"WScript.Shell^")>>\\%LIST%\c$\at_admin_run.vbs echo WshShell.Run ^"runas.exe ^/user:megaoak\kanazawa ^"^"c:\at_admin_run.bat^"^" ^", 2 >>\\%LIST%\c$\at_admin_run.vbs echo WScript.Sleep(100)>>\\%LIST%\c$\at_admin_run.vbs echo WshShell.AppActivate(^"runas.exe^")>>\\%LIST%\c$\at_admin_run.vbs echo WScript.Sleep(1)>>\\%LIST%\c$\at_admin_run.vbs echo WshShell.SendKeys(^"kanazawa{ENTER}^")>>\\%LIST%\c$\at_admin_run.vbs echo Set objFSO = WScript.CreateObject(^"Scripting.FileSystemObject^")>>\\%LIST%\c$\at_admin_run.vbs echo objFSO.DeleteFile ^"c:\at_admin_run.vbs^">>\\%LIST%\c$\at_admin_run.vbs
292 名前:at.bat part2終り mailto:sage [2008/09/11(木) 08:54:52 ID:xAqasSGI] echo start wscript //nologo ^"%RUNBAT%^">\\%LIST%\c$\at_admin_run.bat echo Del c:\at_admin_run.bat>>\\%LIST%\c$\at_admin_run.bat AT.exe \\%LIST% %RUNTIME% /interactive c:\at_admin_run.vbs echo %LIST% %PING% 接続OK %h%時%m%分%s%秒>>atlog.txt GOTO :EOF @REM ---------------------------------------------------------- :NGLAN call :time_run echo %LIST% %PING% 接続NG %h%時%m%分%s%秒>>atlog.txt GOTO :EOF @REM ---------------------------------------------------------- :time_run @REM --/現在時刻のHとM取得/--start for /F "tokens=1,2,3 delims=:" %%a in ("%TIME%") do set h=%%a&set m=%%b&set s=%%c @REM 秒先頭の2桁 set s=%s:~,2% echo -%h%時%m%分%s%秒- @REM 先頭の0を取り除く if %h% LSS 10 set h=%h:~1,1% if %m% LSS 10 set m=%m:~1,1% if %m% LSS 10 set s=%s:~1,1% @REM --/現在時刻のHとMとS取得/--end GOTO :EOF ↑↑これで一応動くようになったけど、テストしたらサーバで下のメッセージがでて5台しか成功してなかった スクリプト"\\クライアントPC\z$\bat\リモート\run_remote_pc.vbs""(コンピュータへの接続数が最大値に達しているため、これ以上このリモートコンピュータに接続できません。)。
293 名前:名無し~3.EXE mailto:sage [2008/09/11(木) 18:03:54 ID:oxo2U/u+] minimizeall
294 名前:名無し~3.EXE mailto:sage [2008/09/11(木) 18:08:49 ID:WF6Xi3UD] >>293 全部のウィンドウが最小化するとサーバで起動中のアプリの画面をスクリーンキャプチャーできない 特定のウィンドウのみを最小化,移動,サイズ変更したい なぜかわからないが、runas使わなくても動いたのでソースがシンプルになりました また明日検証してみる
295 名前:名無し~3.EXE mailto:sage [2008/09/11(木) 18:13:23 ID:oxo2U/u+] >全部のウィンドウが最小化するとサーバで起動中のアプリの画面をスクリーンキャプチャーできない ??? >↓の方法も試しましたがコマンドプロンプトの画面はaltキーが反応してないみたいで使えませんでした コマンドプロンプト以外には使えるんだろ?
296 名前:名無し~3.EXE mailto:sage [2008/09/11(木) 20:10:09 ID:WF6Xi3UD] コマンドプロンプトの画面のみを最小化,移動,サイズ変更したい
297 名前:名無し~3.EXE mailto:sage [2008/09/11(木) 21:57:27 ID:z48R5mCN] > コンピュータへの接続数が最大値に達しているため、これ以上このリモートコンピュータに接続できません。 Windows Server使え
298 名前:名無し~3.EXE mailto:sage [2008/09/11(木) 22:49:58 ID:WF6Xi3UD] >>297 windowsクライアントからwindowsサーバに対して実行してるから無理です その問題はsambaサーバにキャプチャーしたpngファイルを保存する事にして解決しました
299 名前:名無し~3.EXE mailto:sage [2008/09/11(木) 23:17:17 ID:oxo2U/u+] start /min 続きバッチ
300 名前:名無し~3.EXE mailto:sage [2008/09/12(金) 06:57:04 ID:DXz7uta5] >>299 startで最小化あるんですね ありがとう試してみます
301 名前:名無し~3.EXE mailto:sage [2008/09/16(火) 21:31:25 ID:OqBWXUZ3] 301
302 名前:名無し~3.EXE mailto:sage [2008/09/19(金) 11:28:54 ID:9tqS9cEB] atでサーバをリモートでキャプ取るのできた キャプソフトはccap.exe スクリーンセーバキャンセルできてPNG保存可能で197KB exeやvbsをアクセス権フリーな状態のsambaに置いて後は普通にATコマンドのスクリプト書くだけだった
303 名前:名無し~3.EXE mailto:sage [2008/10/17(金) 19:19:30 ID:XaGw/LzA] 職場でノートパソコンの更新があったが ひきづつきwshは使えるようだ、よかった。
304 名前:名無し~3.EXE mailto:sage [2008/10/31(金) 22:10:39 ID:pltrwarm] webでツールバーとかアドレスバーとか戻るボタンがないブラウザ画面がポップアップすることがありますが、vbsであの状態のIEを呼び出せないでしょうか?
305 名前:名無し~3.EXE mailto:sage [2008/10/31(金) 22:25:34 ID:hqP79kIz] MenuBarとかToolBarとか ttp://msdn.microsoft.com/en-us/library/aa752084(VS.85).aspx
306 名前:名無し~3.EXE mailto:sage [2008/10/31(金) 22:37:56 ID:pltrwarm] おおこんな便利なページがあるんですか!ありがとうございますいろいろ遊んでみます
307 名前:名無し~3.EXE mailto:sage [2008/10/31(金) 22:48:15 ID:pltrwarm] あははは楽しいです。 美しくないコードかもしれないけど結果は良好です。 Set IE = CreateObject("InternetExplorer.Application") ie.menubar=false ie.AddressBar=false ie.toolBar=false ie.visible = true ie.navigate2 "www.google.co.jp/ "
308 名前:名無し~3.EXE mailto:sage [2008/11/08(土) 16:14:45 ID:CSQUIZij] そういう書き方しかないべさ
309 名前:名無し~3.EXE [2008/11/16(日) 12:13:26 ID:jsDDDVhU] IEで動くVBSを書いていますが、 Setinterval で Subプロシージャを呼び出すときに 引数をSubプロシージャに渡したいのですが、エラーになります。 Googleも調べてみたのですが、解決できていません。 今書いている(エラーになる)コードは Sub First ID = window.setInterval("chk(" & a & ")", Time, "vbScript") End Sub Sub chk(b) 処理 End Sub です。引数にはIPアドレスが入っています。 エラーは ')'がありません です。 エラーダイアログの"ライン"は 1 ですが、ソースの1行目はまったく関係ない内容(Dim定義)です。 おそらく、Setintervalの書き方の問題だと思うのですが、どなたかお解かりになりますか?
310 名前:名無し~3.EXE mailto:sage [2008/11/16(日) 14:52:18 ID:frYs1RTI] "chk(""" & a & """)"
311 名前:名無し~3.EXE mailto:sage [2008/11/30(日) 11:30:40 ID:42N27sG3]
312 名前:名無し~3.EXE [2008/12/01(月) 02:28:06 ID:tUazuBOQ] 質問させてください。 vbsからbatファイルを起動させて、当該batファイルの戻り値を取得したいです。 Set WshShell = CreateObject("WScript.Shell") Set oExec = WshShell.Exec("return.bat") return.batは正常時0、異常時1を返します。 このbatをvbsから起動させた場合、戻り値はどのように取得できるのでしょうか。 よろいしくお願いいたします。
313 名前:名無し~3.EXE mailto:sage [2008/12/01(月) 18:29:13 ID:YhZLL2V/] ExitCode
314 名前:名無し~3.EXE mailto:sage [2008/12/01(月) 18:32:18 ID:SxqUT20G] >>312 msdn.microsoft.com/ja-jp/library/cc364359.aspx
315 名前:名無し~3.EXE mailto:sage [2008/12/03(水) 15:22:38 ID:ZqYgpyCA] Runを使えよ
316 名前:名無し~3.EXE mailto:sage [2008/12/04(木) 23:56:02 ID:mdmbOzTn] そんなのしRun
317 名前:名無し~3.EXE mailto:sage [2008/12/14(日) 13:59:58 ID:vsQqgwYe] 今日初めてVBSを触りました。 IEのコンテキストメニューからパスワード生成を行えるように したいのですが(ググったらコードでてきたのでそのまま利用) 実行するとInputBoxに書けませんというエラーが出ます。どうしてでしょうか? メニューに登録したファイルの内容は↓ <SCRIPT LANGUAGE="VBScript"> <拾ったコード> </SCRIPT> 拡張子はhtmにしてあります。 このファイルを直接ダブルクリックした場合は実行されますが、 右クリックからの起動はうまくいきません。
318 名前:名無し~3.EXE mailto:sage [2008/12/14(日) 14:09:33 ID:Pv8LMZtA] >>317 <SCRIPT LANGUAGE="VBScript"> <修正済みコード> </SCRIPT>
319 名前:名無し~3.EXE mailto:sage [2008/12/14(日) 15:36:33 ID:pZTS1TIH] InputBoxは使えんよ promptに変えろ
320 名前:名無し~3.EXE mailto:sage [2008/12/14(日) 17:05:33 ID:vsQqgwYe] むぅ・・・そうなのですか。 やってみます。
321 名前:名無し~3.EXE mailto:sage [2008/12/31(水) 13:16:01 ID:rgPn1704]
322 名前:名無し~3.EXE mailto:sage [2009/01/06(火) 18:31:56 ID:/SR1ia3E] WScript.Echo("あけおめ");
323 名前:名無し~3.EXE mailto:sage [2009/01/09(金) 06:16:49 ID:QF8xGOdd] そんなに言うなら・・・ほら、開けましたよ \ 毛 / 腿 \_ | _/ 彡彡彡 ミミミミ クリトリス ミミミミ / ̄ ̄ ̄ ̄ ノ σ ヽ 尿道 / / ゚ヽ ̄ ̄ ̄ ̄ 大陰唇 / //\\ \  ̄ ̄ ̄ ̄ ( ( ) ── 錠前 \ \\// / ` \/ ' \ *──肛門 \_____/\_____/
324 名前:名無し~3.EXE mailto:sage [2009/01/09(金) 16:03:23 ID:Mg2wGxpw] ドメインに参加しているクライアントPC側で、パスワードの変更をすることはできるのでしょうか? Ctrl+Alt+Del で出てくる「パスワードの変更」と同等の処理をしたい。
325 名前:名無し~3.EXE mailto:sage [2009/01/09(金) 17:01:35 ID:Mg2wGxpw] >>324 です。 自己解決しました。 ttp://www.vector.co.jp/soft/winnt/util/se248538.html これで、やりたいことはできました。
326 名前:名無し~3.EXE [2009/01/09(金) 22:38:41 ID:xLY5sfUA] あげ。 >>215 念のために言うと、213は標準出力も標準エラー出力も/dev/nullに落ちるぞ。
327 名前:名無し~3.EXE mailto:sage [2009/01/09(金) 23:17:31 ID:lsbTOzQV] うしゅ
328 名前:名無し~3.EXE mailto:sage [2009/01/10(土) 01:18:20 ID:NcbVfhx+] >>326 >>217
329 名前:名無し~3.EXE mailto:sage [2009/01/15(木) 12:48:53 ID:j2IRk/B4]
330 名前:名無し~3.EXE mailto:sage [2009/01/21(水) 13:20:20 ID:ngdCDsJZ] ほ
331 名前:名無し~3.EXE mailto:sage [2009/02/02(月) 11:51:14 ID:g/gk+65f] ho
332 名前:名無し~3.EXE [2009/02/06(金) 01:53:11 ID:QaTxAdVH] 抽選プログラムを作るのだが、さっぱりです。 配列作って、名前格納して、ランダム数を返してとやろうと思うが、 プログラミング知識がないからどの関数、オブジェクト等使ったらいいかわからない。 わかる人みてたら教えてください。
333 名前:名無し~3.EXE mailto:sage [2009/02/06(金) 02:08:13 ID:RtieZEZ2] >>プログラムを作るのだが、 まず、ここが間違ってね?
334 名前:名無し~3.EXE mailto:sage [2009/02/06(金) 05:19:21 ID:P6lp/+Jv] >>332 Array、Randomize、Int、Rnd、UBound 変数を宣言するならDim、結果をダイアログ表示するならMsgbox とりあえずこれで事足りるはず ここはコード作成依頼所ではないのであとは自分で頑張りましょう まぁ頑張るのが嫌だから諦めるってなら構わないが 頑張るのが嫌だから全部教えてってのは無しの方向で
335 名前:名無し~3.EXE [2009/02/06(金) 14:14:09 ID:92cdMgwW] >>334 ちゃんと教えてやれや
336 名前:名無し~3.EXE mailto:sage [2009/02/06(金) 22:17:43 ID:+iF1QBvo] ちゃんとやれよ。 以上。
337 名前:名無し~3.EXE [2009/02/06(金) 23:00:35 ID:92cdMgwW] んこ
338 名前:名無し~3.EXE mailto:sage [2009/02/07(土) 14:45:14 ID:TgO/tMu7] はいよ。 けっぱれ、VBScript! Dim arrRes: arrRes = Array("大吉", "中吉", "小吉", "凶", "豚") Dim iMax: iMax = UBound(arrRes) + 1 Randomize(Second(Time)) Do If MsgBox(arrRes(Int(iMax * Rnd)), vbOKCancel) = vbCancel Then Exit Do Loop
339 名前:名無し~3.EXE mailto:sage [2009/02/07(土) 15:11:11 ID:3rhOouhW] ありがとうございました
340 名前:名無し~3.EXE [2009/02/09(月) 23:20:19 ID:+sxPMNu/] WSHってバッチのGOTOみたいに処理って飛べない?
341 名前:名無し~3.EXE mailto:sage [2009/02/09(月) 23:43:05 ID:zHc9nJdI] 使う言語次第だな まあ大抵の言語はサポートしてるんじゃないか
342 名前:名無し~3.EXE mailto:sage [2009/02/10(火) 12:32:38 ID:K3mAHF4Y] ↓この辺に、アンチ後藤
343 名前:名無し~3.EXE [2009/02/10(火) 23:03:08 ID:s6VWMy5j] URLエンコードをJscriptでやろうと思っているのですが pc8.2ch.net/test/read.cgi/win/1126543183/156 のスクリプトを拝借したところURL全部がエンコードされてしまいます www.tagindex.com/tool/url.html でURLを変換した時のような 「://」や「/」だけをエンコードすることはできないでしょうか↓ http%3a%2f%2fpc11%2e2ch%2enet%2ftest%2fread%2ecgi%2fwin%2f1190548945%2f
344 名前:名無し~3.EXE mailto:sage [2009/02/10(火) 23:59:22 ID:e11qerpL] URLエンコードをなんだと思(ry 目的がはっきりしているなら置換すりゃいいだけでしょ。
345 名前:名無し~3.EXE mailto:sage [2009/02/11(水) 12:41:23 ID:ooGgBaiE] フォルダを指定してコマンドプロンプトを開きたいのですがどのように記述すればよいのでしょうか?
346 名前:名無し~3.EXE mailto:sage [2009/02/11(水) 13:08:59 ID:tgWaCZf2] >>345 WshShell のカレント・ディレクトリを指定してから cmd を Run 。
347 名前:名無し~3.EXE mailto:sage [2009/02/11(水) 15:49:08 ID:ooGgBaiE] ありがとうございます。 一発のコマンドではできないんですね
348 名前:名無し~3.EXE mailto:sage [2009/02/11(水) 16:35:20 ID:CvOFcaSe] 1行でってこと?
349 名前:名無し~3.EXE mailto:sage [2009/02/11(水) 18:10:18 ID:rw23u0Y9] WScript.CreateObject("WScript.Shell").Run "cmd /C start /D ""C:\Program Files""" ・・・なんかアホっぽい
350 名前:名無し~3.EXE mailto:sage [2009/02/11(水) 21:41:53 ID:18BMTdnd] cmd.exe "/K pushd {ディレクトリ}"
351 名前:名無し~3.EXE [2009/02/11(水) 22:47:23 ID:bH/mfyuf] 入力された値が全角と半角の区別と、数値と文字の判定はどうやってするんだ? 文字で入力された場合にエラーとなるように表示したいんだが、判定がわからないからIf文で制御できないでいる…
352 名前:名無し~3.EXE mailto:sage [2009/02/11(水) 23:21:04 ID:ooGgBaiE] >>346-350 ありがとうございました DOSの奥深さを知りました
353 名前:名無し~3.EXE mailto:sage [2009/02/12(木) 00:14:53 ID:nInNR6uz] AscB(MidB(文字, 2, 1))で2バイト目をチェックすれば分かる。 0なら半角 255なら、 1バイト目を判定して、ある範囲なら半角カナ、それ以外は全角英数。 それ以外は全角 数値判定はIsNumeric使えば?
354 名前:名無し~3.EXE mailto:sage [2009/02/12(木) 18:46:38 ID:BS0CoEcR] プロポーショナルフォントのときはどするんだよ
355 名前:名無し~3.EXE mailto:sage [2009/02/12(木) 19:00:14 ID:s5GtsH1h] ∩___∩ | | ノ\ ヽ | / ●゛ ● | | | ∪ ( _●_) ミ j 彡、 |∪| | J / ∩ノ ⊃ ヽ ( \ / _ノ | | .\ “ /__| | \ /___ /
356 名前:名無し~3.EXE mailto:sage [2009/02/12(木) 19:13:16 ID:Qshlqz+a] どうせなら、シフトJIS以外の文字はどうするの?とか聞きゃいいのにw
357 名前:名無し~3.EXE mailto:sage [2009/02/12(木) 19:53:58 ID:6AmfxfN0] ADODB.Stream とかつかって、 Shift-JISに変換してバイトをチェック。
358 名前:名無し~3.EXE mailto:sage [2009/02/12(木) 20:11:14 ID:Qshlqz+a] だめだめシフトJIS以外の文字が?に化けちゃう
359 名前:名無し~3.EXE mailto:sage [2009/02/12(木) 20:17:06 ID:6AmfxfN0] ?は全角としてよいのでなくて?
360 名前:名無し~3.EXE mailto:sage [2009/02/12(木) 20:58:32 ID:Qshlqz+a] ?が全角でよいのか?
361 名前:名無し~3.EXE mailto:sage [2009/02/12(木) 22:15:21 ID:yGo0O3rT] 日中韓以外には半角文字しかないよ。全角なんて概念ない。 本格的に考えだしたら、ギリシャ文字やキリル文字はどっち (現地では半角相当なわけだ)という問題にぶち当たるが。
362 名前:名無し~3.EXE mailto:sage [2009/02/12(木) 22:17:16 ID:14FRFwWR] 残念!ここは日本でした!
363 名前:名無し~3.EXE mailto:sage [2009/02/12(木) 22:38:23 ID:6AmfxfN0] >>357 の方法での変換は、確かにShift_JISで当てはまらない文字は?になってしまう。 そもそもシフトJIS以外の文字の全角半角というのがいまいち微妙なのだが。 例えばどういう文字がどう判定されればいいの?
364 名前:名無し~3.EXE mailto:sage [2009/02/12(木) 22:43:48 ID:Qshlqz+a] シフトJIS以外の文字と判定されればいいんじゃない?
365 名前:名無し~3.EXE mailto:sage [2009/02/13(金) 00:46:46 ID:GyB/HYmf] 文字集合と文字符号化形式の区別から始めるのか
366 名前:名無し~3.EXE mailto:sage [2009/02/13(金) 01:01:42 ID:em1rkTtF] 静聴、静聴、パチパチ
367 名前:名無し~3.EXE mailto:sage [2009/02/13(金) 15:27:59 ID:em1rkTtF] どうぞ? せいぜい蘊蓄を傾けてくだされ
368 名前:名無し~3.EXE mailto:sage [2009/02/13(金) 16:27:27 ID:TOy+BjMd] 薀蓄は続けるんじゃないの? 耳を傾けるってこと?
369 名前:名無し~3.EXE mailto:sage [2009/02/13(金) 16:35:27 ID:em1rkTtF] ぐぐれば?
370 名前:名無し~3.EXE [2009/02/15(日) 00:08:45 ID:Kr0N6mCn] InputBox等でOKやキャンセルボタンを表示させないやり方ってありますか? OKだけ表示とか。 PopUpメソッドだといろいろ表示ボタンがあるみたいですが、 非表示についてはなかったので。
371 名前:名無し~3.EXE [2009/02/15(日) 06:05:49 ID:N0kUIzB/] windowのソフトAを画面上半分、ソフトBを画面半分に並べるというこ とはできますか? たとえばエクセルとワードのときを例にプログラム例を 教えてもらえませんか?
372 名前:名無し~3.EXE mailto:sage [2009/02/15(日) 06:08:32 ID:s0W7pGqf] 無いよ 欲しければ作るしかない ScriptFormなどのGUIが作れるCOMでWSHから作るか お望みのGUIダイアログを持つCOM自体を自作するかはお好みで そもそもWSHは、目的ドンピシャのことをやるものではなく、 とりあえず結果的に目的が果たせれば良いって時に使う簡易言語なので 足りないならまだしも余分だというのは許容するのが筋ですよ GUIにも拘って開発したいなら、まともな開発言語使うがよろし
373 名前:名無し~3.EXE mailto:sage [2009/02/15(日) 16:32:00 ID:G5QYYO1i] >>371 タスクバーを右クリック→上下に並べて表示
374 名前:名無し~3.EXE mailto:sage [2009/02/26(木) 13:40:21 ID:74qHNQ1Q] なるほど ありがとうございました
375 名前:名無し~3.EXE mailto:sage [2009/03/01(日) 21:51:18 ID:gOSlt3Kv] メモ帳がCOMとして扱えるようになると地味に便利なのではなかろうか、とふと思う
376 名前:名無し~3.EXE mailto:sage [2009/03/01(日) 23:44:20 ID:3NzW+Snc] ActiveX.exeのテキストエディタなら既にあるが Win標準のメモ帳でないとダメか?
377 名前:名無し~3.EXE mailto:sage [2009/03/02(月) 22:26:34 ID:arqPendI] >>376 メモ帳だとなんかロマン感じるやん?みたいな
378 名前:名無し~3.EXE mailto:sage [2009/03/03(火) 13:12:03 ID:BcrRQftY] >375 禿同、カーソル位置とかだけでも取得できればね〜
379 名前:名無し~3.EXE mailto:sage [2009/03/03(火) 13:32:14 ID:f8ZUsgB3] WSHから、他のアプリケーションを起動して、キー入力を送るときに Sleep 100 のようにアバウトな方法で立ち上がるのを待つのではなく、 目的のアプリケーションがしっかり立ち上がった上でキーを送りたいんですが そういうのを確認?というか通知してくれる機能とかはないですか?
380 名前:名無し~3.EXE mailto:sage [2009/03/03(火) 19:29:47 ID:8wLn83/t] >379 ie以外はプロセス監視でcpu使用率みるとかかな
381 名前:名無し~3.EXE mailto:sage [2009/03/03(火) 19:36:09 ID:L/JNpHyI] とりあえずAppActivateでウィンドウが立ち上がってることだけは確認できるが 入力を受け付ける段階に達してるかまで調べる手段は無い CPU使用率も、アテになるものもあれば、アテにならないものも数多く存在する そもそも、立ち上がり方ってのはアプリによって千差万別なんだから 汎用的な確認方法が有ると思う方が間違いだ まともなプログラム言語使う場合でも、確認方法は対象に合わせて変えるものだ
382 名前:379 mailto:sage [2009/03/04(水) 09:37:02 ID:cFHD5IR4] >>380-381 レスありがとうございます。 自分が対象とするアプリケーションでは、 ウィンドウが立ち上がって、且つCPU使用率が0になったら大丈夫そうなので、 その組み合わせでやってみます。
383 名前:名無し~3.EXE [2009/03/04(水) 21:31:08 ID:Pr9L9Uwr] WSHではSub以外に呼び出すコマンドある? Runだと引数渡せないから処理を任せれないんだよね。
384 名前:名無し~3.EXE mailto:sage [2009/03/04(水) 22:09:46 ID:mhRd9Fi7] ShellExecute
385 名前:名無し~3.EXE [2009/03/04(水) 22:40:02 ID:Pr9L9Uwr] For文で繰り返しの中にIf文で条件付けて、Subを呼び出すと、 Subの処理が終わるとFor文の続きからになるから、自分の思うようにできない。 For文の初期化や、抜けるコマンドってありますか?
386 名前:名無し~3.EXE [2009/03/04(水) 22:41:17 ID:Pr9L9Uwr] ShellExecuteですか、調べてみます。 ありがとうございます。
387 名前:名無し~3.EXE mailto:sage [2009/03/04(水) 22:52:03 ID:KsZ3PBdL] >>385 Exit For
388 名前:名無し~3.EXE [2009/03/04(水) 23:46:37 ID:Pr9L9Uwr] Subの中でExit forつかえない!?
389 名前:名無し~3.EXE mailto:sage [2009/03/05(木) 00:02:44 ID:kdsQQi4S] Subの中で使うのではない Subが終わってからForの中で使うのだよ Subの中の条件によってExit Forする場合は SubではなくFunctionにして、返した値によって Exit Forするようにすれば良いだけの話
390 名前:名無し~3.EXE [2009/03/05(木) 01:07:30 ID:kiioCP+g] 同じプログラム内で、SubとFunctionの併用は可?
391 名前:名無し~3.EXE mailto:sage [2009/03/05(木) 01:30:26 ID:lTIYg1zm] 出来ないわけないじゃん
392 名前:名無し~3.EXE [2009/03/05(木) 01:39:45 ID:kiioCP+g] 単純に構文ミスじゃね?
393 名前:名無し~3.EXE mailto:sage [2009/03/05(木) 01:45:47 ID:lTIYg1zm] もしかして、 > 同じプログラム内で、SubとFunctionの併用 ではなく > 同名のプロシージャを、SubとFunctionの併用 なんてバカげたことしてるのでは?
394 名前:名無し~3.EXE mailto:sage [2009/03/05(木) 20:57:05 ID:KZRYQf4w] >379 AutoItX の ControlSend を試してみるテもあるかな?
395 名前:名無し~3.EXE [2009/03/10(火) 01:05:58 ID:xAIJZTrp] var CN = WScript.CreateObject("ADODB.Connection"); CN.Open("DRIVER=SQLite3 ODBC Driver;Database=C:\\test.db"); CN.Execute("CREATE TABLE table1 (id, value);"); CN.Execute(".mode tabs table1;"); CN.Execute(".import import.txt table1"); CN.Close; CN = null; SQLITEを使ってtest.db・table1を作成してタブ区切りのデータの入ったimport.txtから データをインポートしようとしていますのですが、上記コードでは4行目で near".":syntax error(1)のエラーが出てしまいます コマンドプロンプトから3行目以下のSQL文と同じことをしてもエラーは出ません どなたか助言をお願いします
396 名前:名無し~3.EXE mailto:sage [2009/03/10(火) 08:43:22 ID:j332ggtn] こういうソース見るたびにPowerShellにいけばいいのに、って思ったり
397 名前:名無し~3.EXE mailto:sage [2009/03/10(火) 16:54:27 ID:ihqAJi46] >>395 それならコマンドプロンプトを叩いたほうが早くないか?
398 名前:名無し~3.EXE mailto:sage [2009/03/10(火) 17:11:24 ID:fEB3/UWG] 名前付きオブジェクトのオブジェクト名を省略してるからでねえの?
399 名前:名無し~3.EXE mailto:sage [2009/03/11(水) 12:05:01 ID:vW724bJL] >>396 そのソースに関してどのへんがPowerShellのほうに優位性があるのかkwsk
400 名前:名無し~3.EXE mailto:sage 126 [2009/03/11(水) 19:40:59 ID:twyHq6vM] 400
401 名前:名無し~3.EXE [2009/03/11(水) 19:54:07 ID:1yMJqijd] >>398 すみませんちょっと詳しくお願いします・・・ >>397 この先にだらだら他のこともするつもりなので・・・
402 名前:名無し~3.EXE mailto:sage [2009/03/12(木) 00:01:37 ID:SOq4v93w] >>401 コマンドプロンプトを叩くというのは、exec/runするってこと 対話的に実行したいならstdin/outを使えばいいし、シンプルでかまわないならコマンドに入出力(入力に関してはあらかじめスクリプトから出力)を指定してもいい ttp://itpro.nikkeibp.co.jp/article/COLUMN/20080805/312155/?ST=develop&P=2
403 名前:名無し~3.EXE [2009/03/18(水) 18:29:56 ID:1TDARhEw] Set objWSHShell = CreateObject("WScript.Shell") objWSHShell.Run "notepad.exe まいでーた.txt" ↑を実行するとファイルが無い旨表示され新たにファイルを作るかどうか聞かれます。 これを、聞かれないようにする方法を教えてください
404 名前:名無し~3.EXE mailto:sage [2009/03/18(水) 18:32:32 ID:lUi0VL8q] 中身は空でいいから先にファイルを作っておけばいい。
405 名前:名無し~3.EXE [2009/03/18(水) 18:34:05 ID:1TDARhEw] >>404 ありがとうございました。
406 名前:名無し~3.EXE mailto:sage [2009/03/18(水) 19:10:54 ID:mFXZ2vvQ] >>404 objWSHShell.CurrentDirectory =を実行しておく必要がないか?
407 名前:名無し~3.EXE mailto:sage [2009/03/18(水) 22:26:49 ID:8Qf0t6c/] 別に無いけど
408 名前:名無し~3.EXE mailto:sage [2009/04/02(木) 14:38:26 ID:QbNgX8wt] なるほど
409 名前:名無し~3.EXE mailto:sage [2009/04/02(木) 16:55:40 ID:+fKY4eWZ] なるほど っていいたいだけだろ
410 名前:名無し~3.EXE mailto:sage [2009/04/02(木) 18:58:56 ID:QbNgX8wt] なるほど
411 名前:名無し~3.EXE [2009/04/02(木) 23:43:54 ID:qVgeHPAh] ファイル書き込みテストをしたいのですが、 タイムスタンプと書き込み成功、失敗をログに書き出したいのですが、 よいサンプル教えていただけませんか?
412 名前:名無し~3.EXE mailto:sage [2009/04/02(木) 23:56:44 ID:gu6GB/nX] >>411 最初からサンプルソースクレクレではなく 自分で書いて、解らないところを質問しろ
413 名前:名無し~3.EXE mailto:sage [2009/04/03(金) 00:44:12 ID:APA4RBWO] >>411 Hey, Scripting Guy! - アーカイブ ttp://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/default.mspx
414 名前:名無し~3.EXE mailto:sage [2009/04/03(金) 10:38:18 ID:NpKi9nyK] VBSで引数で受け取った文字列にユニコードが含まれていた場合に その部分を削除するにはどうしたらいいんでしょうか? ♠スペード ♣クラブ ♥ハート ♦ダイヤ ↓ スペード クラブ ハート ダイヤ
415 名前:名無し~3.EXE mailto:sage [2009/04/03(金) 19:38:06 ID:1ttVetc2] VBSって正規表現なかったけ?まさかね
416 名前:名無し~3.EXE mailto:sage [2009/04/03(金) 19:45:37 ID:mozVT+aj] yes
417 名前:名無し~3.EXE mailto:sage [2009/04/03(金) 21:00:30 ID:OSCytWtJ] >>414 ユニコード文字を削除したら 「♠スペード ♣クラブ ♥ハート ♦ダイヤ」 ↓ 「」 になるよ 「ス」はUnicode:0x30B9だし、「ペ」はUnicode:0x30DAと、どちらもユニコードの文字。 はっきり言えば「♠スペード ♣クラブ ♥ハート ♦ダイヤ」全体がユニコードの文字列。 おそらく、君がやりたいのは 「文字列にユニコードが含まれていた場合にその部分を削除する」 ではなく 「文字列にShift_JISに存在しない文字が有ったらその部分を削除する」 なんじゃないの? 後者の場合は、Shift_JISには存在しない 「♠♣♥♦」が削除され、 Unicode文字ではあるが、Shift_JISにも存在する 「スペード クラブ ハート ダイヤ」が残ることになる。
418 名前:名無し~3.EXE mailto:sage [2009/04/03(金) 21:11:23 ID:lHKXNTuI] >>417 それぐらいエスパーしろよ・・・。
419 名前:名無し~3.EXE mailto:sage [2009/04/03(金) 21:32:00 ID:mozVT+aj] >>418 >それぐらいエスパーしろよ・・・。 それおかしいだろ? スキーヤしろって言うか?スキーしろって言うだろ?
420 名前:名無し~3.EXE mailto:sage [2009/04/03(金) 21:51:46 ID:n9mseU0m] アナルレイパーします。
421 名前:名無し~3.EXE mailto:sage [2009/04/03(金) 23:55:00 ID:qJkg0oeA] >>418 エスパー(意図の酌み取り)は後半でしてるじゃん。 単に前半で要求仕様通りだとこうなるって説明を入れてるだけで。
422 名前:名無し~3.EXE mailto:sage [2009/04/04(土) 01:24:53 ID:I1MEWlLr] なるほど
423 名前:名無し~3.EXE mailto:sage [2009/04/04(土) 16:44:40 ID:iSitawJj] >>422 アナルレイパーって何?
424 名前:名無し~3.EXE mailto:sage [2009/04/09(木) 04:20:14 ID:GTF3L2c8] 分からないならレスしないでください
425 名前:名無し~3.EXE mailto:sage [2009/04/09(木) 07:35:35 ID:oUfTSnN8] このスレ開くと脳内にジャッカー電撃隊のOPが流れる・・・
426 名前:名無し~3.EXE [2009/04/09(木) 20:30:56 ID:GA22GXlP] WScript.ShellのPopupで第二引数を指定すると、n秒後に閉じることが出来ますよね? これと同じようなことをInputBoxでやりたいんですが、どうすれば良いですか? OKが押された場合、キャンセルが押された場合、どちらも押されずに指定秒数が経過した場合 の3通りでその後の処理を分岐したいです。 WinXP/WSH5.6で、dllなどの新規インストールは出来ない環境です。
427 名前:名無し~3.EXE mailto:sage [2009/04/09(木) 20:33:03 ID:awHYC9DT] ほかの方法を考える。
428 名前:名無し~3.EXE [2009/04/09(木) 21:46:13 ID:GA22GXlP] 他の方法って何でしょうか? WinXP標準環境のVBSで使えるGUI入力 表示位置、初期入力値指定可能 OK、キャンセル、指定秒数が経過、の分岐が可能 の条件を満たしていれば、InputBoxじゃなくてもいいんですけど 他の方法でこれらを満たす物がありますか?
429 名前:名無し~3.EXE mailto:sage [2009/04/09(木) 22:30:28 ID:GTF3L2c8] WScript.ShellのExecで子を起こしてそっちでInputBox出しな
430 名前:名無し~3.EXE mailto:sage [2009/04/09(木) 23:52:12 ID:Q72d+ivs] ClassとTimeOut使えば出来るな TimeOutしてもClassのデストラクタは実行されるから
431 名前:426 [2009/04/10(金) 00:45:11 ID:jnrC655t] >>429 ありがとうございます。 その方法でも目的は達っせそうですが、処理を書くファイルが分散するのは 好ましくないので、今回は>>430 の方法でやることにします。 >>430 出来ました。 こんな方法があったなんて目から鱗です。 ありがとうございました。
432 名前:名無し~3.EXE mailto:sage [2009/04/10(金) 08:36:09 ID:wD95lKKk] w
433 名前:名無し~3.EXE mailto:sage [2009/04/10(金) 20:31:43 ID:cPEXIVrz] vbscriptの Property Let について、できるかぎり調べたんですが 複数の引数を渡す方法がわかりません どうしたらいいですか?
434 名前:名無し~3.EXE mailto:sage [2009/04/10(金) 20:53:40 ID:YxXQFkOF] >>433 Script56.CHMに思いっきり書いてあるわけだけど・・・ 本当にできるかぎり調べたの? >arglist >Property Let プロシージャを呼び出すときに、Property Let プロシージャに渡される引数を表す変数のリストを指定します。 >複数の変数を指定する場合はカンマ (,) で区切ります。(ry
435 名前:名無し~3.EXE mailto:sage [2009/04/10(金) 20:53:46 ID:1fjQi+ry] >>433 ' 定義 Property Let PropertyName(arg1, arg2, value) WScript.Echo arg1 WScript.Echo arg2 WScript.Echo value End Property ' 代入 .PropertyName("引数1", "引数2") = "値"
436 名前:名無し~3.EXE mailto:sage [2009/04/10(金) 21:30:34 ID:cPEXIVrz] >>434 もちろんモニターぶち破るほど凝視しました > ' 定義 > Property Let PropertyName(arg1, arg2, value) > WScript.Echo arg1 > WScript.Echo arg2 > WScript.Echo value > End Property > > ' 代入 > .PropertyName("引数1", "引数2") = "値" 単一引数では .PropertyName = "値" ですよね? 引数が増えるたびに左辺側が増えていくんですか? 個人的感覚では .PropertyName = "値1", "値2", "値3" なんじゃないかと思ったんですが。
437 名前:名無し~3.EXE mailto:sage [2009/04/10(金) 22:10:23 ID:1fjQi+ry] > 引数が増えるたびに左辺側が増えていくんですか? そうだよ ヘルプの定義も [Public | Private] Property Let name ([arglist,] value) ってなってるでしょ? 先に省略可能不定数のarglistが来て、最後に単一必須のvalue > 個人的感覚では > .PropertyName = "値1", "値2", "値3" > なんじゃないかと思ったんですが。 プロパティってのはそもそも単一の値(value)を渡す概念だよ。 それ以外の引数(arglist)は値というよりは値の代入先への条件的なもの 例えばグリッド(升目)の3行6列目に"test"を入力する場合に Property Let GridValue(row, column, value) と定義して .GridValue(3, 6) = "test" って感じ 2chへの書き込みを行う場合で、名前、メール、本文を渡すみたいに、同列の値を複数渡すなら Sub Write2ch(name, mail, text) と定義して Write2ch "名無しさん", "sage", "テスト" だな 君の先入観とは食い違うのかも知れないが、そういうものだと納得して貰うしかない どうしても .PropertyName = "値1", "値2", "値3" 的なことがやりたいなら Property Let PropertyName(values()) WScript.Echo values(0), vbCrLf, values(1), vbCrLf, values(2) ' Join(values, vbCrLf) End Property と定義して .PropertyName = Array("値1", "値2", "値3")
438 名前:名無し~3.EXE mailto:sage [2009/04/10(金) 22:42:09 ID:cPEXIVrz] >>437 わかりました Property Letをメンバ変数群へのセッターとして使おうとしてましたが SubかFunctionを使うようにします。
439 名前:名無し~3.EXE mailto:sage [2009/04/14(火) 20:30:33 ID:xC/x9gm6] wshからPCをサスペンド(スタンバイ)状態にしたいんですけど、 %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState を使った方法では休止状態が有効な場合休止状態(ハイバネ―ション)になってしまい、どちらか選べなくて困っています 確実にサスペンド(スタンバイ)に移行できる方法はありませんか?ご教授願います。
440 名前:名無し~3.EXE mailto:sage [2009/04/15(水) 03:37:35 ID:HDTq4yYe] ttp://scripting.cocolog-nifty.com/blog/2007/04/post_5183.html
441 名前:439 mailto:sage [2009/04/15(水) 18:45:22 ID:WeeZsX7B] >>440 ありがとうございます でもこれだとエクセルの無い環境では使えませんよね・・・ そちらのタスクマネージャを使う方法も見ましたがこちらのOSがVistaなので利用できませんでした。 他の方法はないのでしょうか・・・
442 名前:名無し~3.EXE mailto:sage [2009/04/15(水) 19:16:40 ID:kP3+rv1F] >>441 Vistaならshutdown.exeコマンドを呼べばいいと思う。
443 名前:439 mailto:sage [2009/04/15(水) 20:55:52 ID:WeeZsX7B] >>442 なるほど!そういう方法があったのですね。 よろしければスタンバイに移行するコマンドを教えていただけないでしょうか?
444 名前:名無し~3.EXE mailto:sage [2009/04/16(木) 00:17:56 ID:NLAwaM+Q] shutdown/?
445 名前:名無し~3.EXE [2009/04/16(木) 00:33:25 ID:uDkOsXWB] タグがバラバラな複数のログを集計したいと思います。 最初の一行目がタグ情報となっており、2行目以降にデータがあります。 区切り文字は「,」です。 指定したタグの情報を取得出来るスクリプトを探していますがサンプルとか ないですか? 私自身、全くプログラミングの経験がなくて途方に暮れてます。 何していいかさっぱり分かりません・・ 自力でなんとかしたいものですが、おすすめのサイトとか 書籍があれば教えてください。
446 名前:名無し~3.EXE mailto:sage [2009/04/16(木) 00:50:04 ID:CA45KrUU] いきなりタグとかログとか汎用的な言葉出されても困る 区切り文字ってことはCSVなのか? タグ情報って列名のこと?
447 名前:名無し~3.EXE mailto:sage [2009/04/16(木) 01:34:22 ID:jAc01HJm] > 指定したタグの情報を取得出来るスクリプトを探していますがサンプルとか > ないですか? スクリプトは基本的に探すものではなく書くものだぞ 何処かにあることを知ってるなら、それを使うのもいいが 人に聞いてまで探すような物じゃない > 私自身、全くプログラミングの経験がなくて途方に暮れてます。 誰だって最初はそうですよ > おすすめのサイトとか 何のためにテンプレがあるんだかちょっとは考えよう>>2-5 あとは勉強して実際に書いてみて、どうしても行き詰まったら 具体的にどういう処理をしたくて、どういうコードを書いて、どういう不都合があるのか また質問においで ここはスクリプト作成依頼所じゃないので、丸投げでそういうの書いてとかは無しでよろしく
448 名前:名無し~3.EXE mailto:sage [2009/04/16(木) 01:55:33 ID:P+x7Pij7] カンマ区切りテキスト(CSV)形式なら、MS-Access/Excel とか OpenOffice.org Base/Calc で集計すりゃいいんじゃないの まぁしょっちゅうやるならモジュール作ったりした方がいいかもしれない 職場で運用するとかで、どうしてもWin標準添付のモノでしかやっちゃいけないとか、 運転中のシステムのログの集計結果を1時間毎に出す必要があるとか、 ってな制約があるならしょうがないけど、無理にスクリプトを使う必要は無いんじゃないかな (それならなおさら素人がやるもんじゃないとは思うが) 個人的にはスクリプトでそういうのやるなら perl が楽だと思う
449 名前:名無し~3.EXE mailto:sage [2009/04/16(木) 14:47:47 ID:a1NQuIWX] wshで何か一から書こうとするといっさいプログラム言語触ったことがない香具師にとってはハードル高い (使うだけならともかく) 少なくても素のVisualBasicよりは確実に難しい ファイル入出力はfso使うとか構造つかむまでそれなりに時間がかかった覚えがある
450 名前:439 mailto:sage [2009/04/16(木) 19:06:52 ID:sZceJi2u] >>444 ハイバネートのコマンドはあったんですがサスペンドのコマンドが見つからないんですが・・・ やっぱり不可能なんですか・・・?
451 名前:名無し~3.EXE mailto:sage [2009/04/16(木) 21:13:09 ID:NLAwaM+Q] vbc/?
452 名前:名無し~3.EXE mailto:sage [2009/04/16(木) 23:37:17 ID:gd9zV5VO] おお本当だsuspendにはサスペンドの選択肢がないね。 まあググってみるとこんな感じのコードがいっぱい見付かる。 Set sh = CreateObject("Shell.Application") sh.Suspend 肝心のMSは実装してねえぞと主張しているのが気掛かりではあるが。 ttp://msdn.microsoft.com/en-us/library/bb774100.aspx
453 名前:名無し~3.EXE mailto:sage [2009/04/16(木) 23:57:29 ID:Xx+Mg3lY] っていうか>>440 をExcel無しで実行する方法で良いのでは?
454 名前:439 mailto:sage [2009/04/17(金) 00:19:26 ID:ykM6yz16] >>452 ありがとうございます 試してみましたが反応なしでした・・・ >>453 Excelを使わない方法とはタスクマネージャを使う方法のことですか? Vistaではメニューにシャットダウンの項目がないんで使えませんでした・・・
455 名前:名無し~3.EXE mailto:sage [2009/04/17(金) 01:29:48 ID:qPzkE+HH] > Excelを使わない方法とはタスクマネージャを使う方法のことですか? 違う
456 名前:名無し~3.EXE mailto:sage [2009/04/17(金) 02:19:42 ID:eS4a/KzE] CreateObject("Shell.Application").shutdownwindows
457 名前:439 mailto:sage [2009/04/17(金) 17:41:05 ID:ykM6yz16] >>455 具体的にどういった方法のことですか・・・? >>456 こっちは反応がありましたが、終了のダイアログが出るだけですね・・・
458 名前:名無し~3.EXE mailto:sage [2009/04/17(金) 19:55:59 ID:eS4a/KzE] sendkeys
459 名前:名無し~3.EXE mailto:sage [2009/04/21(火) 01:04:56 ID:sxyqTq+t] suspend.exe
460 名前:名無し~3.EXE mailto:sage [2009/04/26(日) 12:57:52 ID:hN24fcsP] Set colOperatingSystems = GetObject("winmgmts:{(Shutdown)}").ExecQuery("Select * from Win32_OperatingSystem") For Each objOperatingSystem in colOperatingSystems ObjOperatingSystem.Win32Shutdown(1) Next Wscript.Echo "シャットダウン処理を実行しています。" これを実行して"シャットダウン処理を実行しています。"と表示されるのに、 実際にはシャットダウンされない場合があります。 何が原因と考えられますか? OSはXPSP2です。
461 名前:名無し~3.EXE mailto:sage [2009/04/26(日) 20:36:12 ID:JZHCdzJZ] >>460 引数がまずい。それだと未保存のメモ帳があるだけで止まる。 あとはWScript.EchoじゃなくてWScript.Shellのpopupメソッドで 時間経過したら閉じるようにすべきかも知れない。 しかし仮にスクリプトが正しかったとしても、そもそもWindowsの シャットダウンがスクリプトからそんなに確実に実行できるもんなのか という疑問もあるけどね。
462 名前:名無し~3.EXE mailto:sage [2009/04/26(日) 21:11:02 ID:6hbGqw4a] >>460 単純シャットダウンごときにわざわざWMI使う香具師初めて見た いくつか他の方法あるのに
463 名前:名無し~3.EXE mailto:sage [2009/04/26(日) 21:24:18 ID:YxEmjG2Q] >>462 > 単純シャットダウンごときにわざわざWMI使う香具師初めて見た なんてわざわざ言う香具師初めて見た
464 名前:名無し~3.EXE mailto:sage [2009/04/26(日) 22:54:07 ID:lJ+cDE8H] いくつかあるんならひとつくらい挙げる心遣いが欲しいぜ
465 名前:名無し~3.EXE mailto:sage [2009/04/26(日) 23:00:40 ID:YxEmjG2Q] 代替法でなく、理由を知りたいんだろ
466 名前:名無し~3.EXE mailto:sage [2009/04/27(月) 01:10:28 ID:nVE9eCMf] なるほど
467 名前:460 mailto:sage [2009/04/27(月) 08:22:11 ID:RCPGHJ3a] >>461 ありがとうございます 調べてみます >>462 文法の意味を理解せず スクリプト丸写しでやってるからです 参考にしたURL ttp://www.microsoft.com/japan/technet/scriptcenter/scripts/desktop/state/dmstvb08.mspx
468 名前:名無し~3.EXE mailto:sage [2009/04/28(火) 00:42:11 ID:xpBMK336] msdn.microsoft.com/en-us/library/aa394058.aspx msdn.microsoft.com/ja-jp/library/cc429713.aspx
469 名前:名無し~3.EXE mailto:sage [2009/05/03(日) 00:30:35 ID:nT+UO9ic] なるほど
470 名前:名無し~3.EXE mailto:sage [2009/05/04(月) 19:08:31 ID:pB9NsdJr] お前ら、PowerShell使ってますか?
471 名前:名無し~3.EXE mailto:sage [2009/05/06(水) 01:12:29 ID:IVrMxyMV] じぇーんじぇーん
472 名前:名無し~3.EXE mailto:sage [2009/05/06(水) 01:19:38 ID:i9i6Zpew] わしゃ今や PowerShell 9割、WSH 1割
473 名前:名無し~3.EXE mailto:sage [2009/05/06(水) 18:53:58 ID:aMrhoeJz] そんな便利なんか。使ってみるか
474 名前:名無し~3.EXE [2009/05/06(水) 23:45:14 ID:z83QDpCi] ほとんどのPCにまともにインストールもされていないものを覚えるのはどうも気が進まない。
475 名前:名無し~3.EXE mailto:sage [2009/05/07(木) 00:28:08 ID:iycG5mAd] 先月からXPとVistaのビジネス系エディション向けには自動更新配布始まったな
476 名前:名無し~3.EXE mailto:sage [2009/05/07(木) 00:38:47 ID:zrBTZ2eF] WSHが自動削除されたら考えるよ。
477 名前:名無し~3.EXE mailto:sage [2009/05/07(木) 00:44:44 ID:xlSN69wH] GnuWin32を置き換えるために暇な時に勉強中。 grep -r hoge * イコール Get-ChildItem -recurse * | Select-String hoge だけは覚えた。
478 名前:名無し~3.EXE mailto:sage [2009/05/07(木) 00:52:15 ID:zrBTZ2eF] スレあるよ。 Windows PowerShell 2.0 pc12.2ch.net/test/read.cgi/win/1221046998/
479 名前:名無し~3.EXE mailto:sage [2009/05/07(木) 01:20:52 ID:9lIDUGpx] WSHでDynaWrap使わんでもいいようにさえしてくれれば それでよかったんだがなぁ。GUIはHTAで我慢できるし。 MSにはいまあるものをもっと大事に育ててほしいもんだ。
480 名前:名無し~3.EXE mailto:sage [2009/05/07(木) 01:28:17 ID:iycG5mAd] 俺はScriptoMatic使わんでもいいようにさえしてくれればそれで
481 名前:名無し~3.EXE mailto:sage [2009/05/07(木) 04:33:33 ID:5VRTlytH] ○Scriptomatic ×ScriptoMatic
482 名前:名無し~3.EXE mailto:sage [2009/05/07(木) 23:11:01 ID:m087N9RP] PowerShellはWSHを完全に置き換えるものじゃない。 PowerShellからWSHを利用するのもありだし それに
483 名前:なんだ?オレに振られたのか? mailto:sage [2009/05/07(木) 23:40:21 ID:D2qIMiSw] PowerShellはWSHと違って、保存済みスクリプトファイルを実行することが既定ではできない。 ポリシー(=どーせレジストリ)で解除できるが。
484 名前:名無し~3.EXE mailto:sage [2009/05/07(木) 23:46:00 ID:cF08cEzM] まあ名前自体シェルとしか名乗ってないわけだしな
485 名前:名無し~3.EXE mailto:sage [2009/05/08(金) 15:04:23 ID:XEPp6UuS] なるほど
486 名前:名無し~3.EXE mailto:sage [2009/05/08(金) 19:04:02 ID:JrXQqf3G] で、PowerSHELLのデメリットは ・ほとんどのWindowsPCでインストールされていない。 ・使える人も少ない。 ・資料も少ない。 ・保存済みスクリプトを実行できない・・・なんたらかんたら ということですね。 それでは、PowerSHELLにはどんなメリットがあるのか? CM明け、>>483 さんに説明してもらいます。 じゃあCM!
487 名前:名無し~3.EXE mailto:sage [2009/05/08(金) 19:59:26 ID:52AvfZLw] まあ、.NET の機能をまるまる使えるんだから強力だわな
488 名前:名無し~3.EXE mailto:sage [2009/05/08(金) 20:27:29 ID:XEPp6UuS] なるほど
489 名前:名無し~3.EXE mailto:sage [2009/05/08(金) 20:46:52 ID:htxwcXFB] Windows7にPowerShell V2が標準搭載されるから Windows7が普及してからだな
490 名前:名無し~3.EXE mailto:sage [2009/05/12(火) 17:49:17 ID:IqMqd3mw] なるほど
491 名前:名無し~3.EXE [2009/05/16(土) 21:31:26 ID:Rz66M/nY] プリンタのドライバインストール、設定ってWSHでできる?
492 名前:名無し~3.EXE mailto:sage [2009/05/16(土) 21:52:22 ID:/SzwN6cr] ドライバ関係なんて具体的には知らないが C:\WINDOWS\system32\driversにファイルコピーして ドライバ登録と設定情報をレジストリに書き込みするだけだよな? そのくらいなら出来るけど素直にinfとかbat+reg使えよって言いたくなるな
493 名前:名無し~3.EXE mailto:sage [2009/05/18(月) 16:41:43 ID:1yzJEIC7] なるほど
494 名前:名無し~3.EXE [2009/05/23(土) 13:49:22 ID:b8XZakyb] WSHに管理者権限で実行するコマンドってありますか?
495 名前:名無し~3.EXE mailto:sage [2009/05/23(土) 16:15:09 ID:aVsYeng2] WSHにはないけど、COMを使うことでWSHで実現することは可能 ググれば情報有るから頑張って勉強しな
496 名前:名無し~3.EXE mailto:sage [2009/05/24(日) 15:48:57 ID:qyvwJUMs] WSHで、Volume control かWave のミュートを操作するサンプルってどっか落ちてない? 勤務先PCで User権限のみのXPSP3でつ。
497 名前:名無し~3.EXE mailto:sage [2009/05/24(日) 16:45:02 ID:QYLRzYcY] 落ちてるものを拾うな
498 名前:名無し~3.EXE mailto:sage [2009/05/24(日) 17:14:06 ID:pl1xOw8Z] DirectXが入っていれば ' VBS CreateObject("MSWebDVD.MSWebDVD").Mute = True 'でミュート、Falseでミュート解除 //JS new ActiveXObject("MSWebDVD.MSWebDVD").Mute = false;//でミュート解除、trueでミュート で出来るようだが。
499 名前:名無し~3.EXE mailto:sage 496 [2009/05/24(日) 23:27:39 ID:qyvwJUMs] >>498 とりあえず、自PCのwin2kSP4 Power User権限では逝けました。 目的は達成させられそうです。ありがとうございました。 Part4からこのスレにいるのに調べれれないヘタレな俺。
500 名前:名無し~3.EXE mailto:sage [2009/05/26(火) 20:08:44 ID:YWv8ag1/] 500
501 名前:名無し~3.EXE mailto:sage [2009/05/28(木) 18:55:09 ID:0aB6alpl] VBScript と JScript を交配させるたったひとつの方法 ttp://d.hatena.ne.jp/hasegawayosuke/20090516/p1
502 名前:名無し~3.EXE mailto:sage [2009/05/28(木) 19:47:35 ID:HudDQAtG] で? 使い道は?
503 名前:名無し~3.EXE mailto:sage [2009/05/28(木) 23:59:16 ID:6LvlcjwU] そこに山があるからさ
504 名前:名無し~3.EXE mailto:sage [2009/06/04(木) 15:20:12 ID:U2shAX9E] OutlookにコマンドラインからTODOなタスクを追加したいんだけど どこかにサンプルないですか? addtasktooutlook /high 腹筋1000回! みたいなかんじで
505 名前:名無し~3.EXE mailto:sage [2009/06/04(木) 15:35:37 ID:jKnWPmzV] なんで解説ではなくサンプルを探すの? そういう思考は浅はかな初心者の悪い癖だよ サンプル探してその場を凌ぐのではなく 解説探して理解を深めようね で、OutlookならコマンドラインではなくCOMとしてアクセスな
506 名前:名無し~3.EXE mailto:sage [2009/06/07(日) 17:53:10 ID:WTeLPH6o] VBSを使ってhtmlのソースから文字列を抜き出して使いたいのですが 文字参照で書かれた部分をちゃんと変換した後の形にする方法がわかりません Replace関数で変換ということも考えたのですが、さすがに対応しなくてはいけないパターンが多すぎるので 何かいい方法ってないでしょうか?
507 名前:名無し~3.EXE mailto:sage [2009/06/07(日) 18:09:02 ID:nV3JrBhv] いったんDOMオブジェクトにするとか
508 名前:名無し~3.EXE mailto:sage [2009/06/07(日) 19:17:10 ID:d05Qikdv] set d=createobject("htmlfile") d.innerHTML="{" msgbox d.innerText
509 名前:名無し~3.EXE mailto:sage [2009/06/08(月) 06:20:18 ID:oqXReFxD] でも実際の所、常用されれる文字実体参照なんてそんなないよね
510 名前:名無し~3.EXE mailto:sage [2009/06/08(月) 12:10:20 ID:rvmZQbAH] だからなに?
511 名前:名無し~3.EXE mailto:sage [2009/06/08(月) 12:38:27 ID:ieBvgEr1] 置換のほうが速いって
512 名前:名無し~3.EXE [2009/06/08(月) 12:42:16 ID:YSvVXFgQ] 楽なのが一番だろ
513 名前:名無し~3.EXE [2009/06/08(月) 16:49:37 ID:ANWjb6BD] selectで一致したら変数に変換後のパターン放り込んどいて 最後にその変数使ってReplace関数かけるのが結局一番わかりやすくない?
514 名前:名無し~3.EXE mailto:sage [2009/06/09(火) 00:56:26 ID:mt6Snbpi] そんなに遅いのか?
515 名前:名無し~3.EXE [2009/06/09(火) 23:47:32 ID:n59VtdgS] >>513 >>508 みたいにスクリプト書いてくれれば他の人の役に立つよ
516 名前:名無し~3.EXE mailto:sage [2009/06/11(木) 12:35:34 ID:pvxygoc6] なるほど
517 名前:名無し~3.EXE mailto:sage [2009/06/21(日) 03:06:07 ID:pQN87Jvn] コンピュータのロック解除後やスタンバイ復帰後に、スクリプトの命令を実行するにはどのような方法があるでしょうか? PCが一定時間操作されなかった場合に、既存のロックアプリを起動して解除後にダイアログ表示したいため、自作SCRファイル経由でロックアプリを起動し、その際にVBS(WSH)ファイルをキックしています。 ところが、ロックやスタンバイ時にプロセス(wscript.exe)が、SCRともどもロックやスタンバイ時に終了してしまうので、困っています。 通常(notepad.exeなど)は、ロック前にDo〜Loopで待機させ、WMIのイベント(当該アプリの起動と終了)を監視しておくことで、WSHの命令を実行できています。 ロックの場合、起動時間は処理の順番や実行待機によって解決できなくもないですが、いずれにしても終了時間の取得とダイアログ表示はほぼ失敗してしまいます。 ちなみにWSH側でやりたいことは、ロックやスタンバイの開始時間と解除(終了)時間をイベントログに書き込んで、解除後にダイアログに表示する、という処理です。 長くなりましたが、識者の方、アドバイスをお願いいたします。
518 名前:名無し~3.EXE mailto:sage [2009/06/21(日) 05:37:33 ID:9AsxSuL8] 一番手っ取り早いのは別言語で作る方法だな WSHでやりたいとしても、目的の部分はCOMとして作る必要があるから 別言語使わなきゃならないことには変わらないので だったら別言語でCOM作ってWSHで動かすより そのCOMを作れるような言語で直接アプリを作った方がいい
519 名前:名無し~3.EXE mailto:sage [2009/06/21(日) 14:02:20 ID:YkrwZ8hC] >>517 .scrから呼び出すwscriptを単なるWScript.ShellオブジェクトのRun()だけ 書いてるヤツにすればいい。そんでRun()の引数を終了を待たないヤツにして 本来のwscriptを呼び出せば失敗する可能性は低くなる。 あと注意点は次のものがあるな。 ・その処理だと、ユーザーに気づかれない必要があるんじゃないの? ・Windows2000だとWMIが入ってない場合もある。 ・そのときのログオンユーザーの権限が低いと、イベントログに書き込むのが エラーを出す可能性がある(気づかれる)。
520 名前:517 mailto:sage [2009/06/21(日) 16:34:28 ID:hZdAyqNW] >>518 COMを自作するには、知識も時間も足りないし、専門職じゃないので運用・メンテ面からも難しいです。。 スレ違いかもだけど、今後のために(こういった連携においてWSHと相性のいい)お勧めの開発環境や言語があれば教えてください。 >>519 scr→WSH(WScript.ShellオブジェクトのRun())→WSH(ログ記録&通知)の3重にするってことですか。 ロックアプリは会社のものなので、処理だけ考えて後日検証してみます。 しかし、Run()だけで引数なしだと、キックされる側は「WScript.Arguments.Count = 0」で単独起動させない策は、確かにできないですね。 数行なら保守性は変わらなそうだし、そちらはVBEで配布するかな。。 Win2Kやログオンユーザ権限は、XP&administratorsグループのアカウント対象で問題ないです。 おっしゃるように最低限の隠蔽策を講じつつ、件の状況で処理を実現したいために、ややこしいことになってます。 あと一歩なだけに悔しいです。
521 名前:名無し~3.EXE mailto:sage [2009/06/25(木) 15:49:01 ID:qQpWklfp] vista + JScript で特殊フォルダ「ミュージック」のパスを取得する方法はありますでしょうか? Shell.SpecialFolders でマイドキュメントは取得できるのですが・・・
522 名前:名無し~3.EXE [2009/06/25(木) 15:52:02 ID:V72CWr8X] おれもついでにイイか? Xp + Jscriptで隣の奥さんの使用済みパンティーを取得する方法はありますでしょうか? 買い物のときにベランダ沿いに侵入すれば洗ったパンティーは取得できると思うのですが・・・
523 名前:名無し~3.EXE mailto:sage [2009/06/25(木) 16:03:25 ID:TkrEyaw6] new ActiveXObject('shell.application').Namespace(13).Path
524 名前:名無し~3.EXE mailto:sage [2009/06/25(木) 16:29:13 ID:qQpWklfp] >>523 早速試してみたところ・・・ なぜか undefined になります。 var x = new ActiveXObject('shell.application').NameSpace(13); WScript.Echo("path="+x.path); x.title には「ミュージック」がセットされていました。
525 名前:名無し~3.EXE mailto:sage [2009/06/25(木) 16:33:43 ID:TkrEyaw6] Path
526 名前:名無し~3.EXE mailto:sage [2009/06/25(木) 16:34:46 ID:TkrEyaw6] .Self.Path
527 名前:名無し~3.EXE mailto:sage [2009/06/25(木) 16:35:10 ID:01tMvTm9] new ActiveXObject('yourfilehost.application').Namespace(mature).Panty
528 名前:名無し~3.EXE mailto:sage [2009/06/25(木) 16:37:04 ID:qQpWklfp] self.path でいけました! ありがとうございました(^^
529 名前:名無し~3.EXE mailto:sage [2009/06/25(木) 16:39:30 ID:01tMvTm9] used.Panty でいけました ありがとうございました(^^
530 名前:名無し~3.EXE mailto:sage [2009/06/26(金) 21:34:25 ID:CNF38epp] 哀しいものを見た^^
531 名前:名無し~3.EXE mailto:sage [2009/07/15(水) 16:25:30 ID:B2XAn6wr] xmlhttpを使用して、リファラーを送ってデータを取得したいのですがうまくいきません set http = WScript.CreateObject("microsoft.xmlhttp") http.open "GET", "taruo.net/e/ ", false http.setRequestHeader "Referer", "テストテスト" http.send WScript.Echo http.responseText 診断君で試してみたところ、やっぱり送れていないみたいなんですが何か間違っているんでしょうか?
532 名前:名無し~3.EXE mailto:sage [2009/07/15(水) 17:08:41 ID:GKwZ01/x] >>531 pc11.2ch.net/test/read.cgi/tech/1220874815/48-51 ということらしいよ
533 名前:名無し~3.EXE mailto:sage [2009/07/15(水) 17:27:02 ID:j+tCnxTF] >>532 WindowsUpdateでその辺の仕様が変わるんだな。 これからも起き得るのかね?あぶねえな。 前にやったときは、さっさとCurl.exe使って逃げたわ。
534 名前:名無し~3.EXE mailto:sage [2009/07/15(水) 18:21:02 ID:GKwZ01/x] IEでも動かせるオブジェクトなんだからある程度は仕方なかんべ
535 名前:名無し~3.EXE mailto:sage [2009/07/15(水) 18:39:51 ID:7vBKI4Qq] さすがMS、酷い変更だ。リファラすら指定できないなんて。 4.0 5.0 がフルパス吐くのは、別の意味でセキュリティーの問題じゃないか? ユーザー名に実名使ってる環境の場合、フルパスに実名含まれてしまったり・・・w
536 名前:531 mailto:sage [2009/07/15(水) 23:13:42 ID:G8m72XGt] >>532 そういうことだったんですね とりあえずMsxml2.XMLHTTP.5.0にしてみたら送れたのでよかったのですが 何だかcookie送る方にもバグがあるんですね・・・・ 対策ページを見てみましたがうまくいかず xmlhttpを使うのはあきらめました
537 名前:名無し~3.EXE mailto:sage [2009/07/16(木) 23:48:35 ID:s9Fi+J+f] 自分の環境には5.0入ってないんで、Msxml2.XMLHTTP.6.0で試してみたが、Referer送れない。orz
538 名前:名無し~3.EXE mailto:sage [2009/07/17(金) 00:25:49 ID:MIUEZcIb] PowerShellへの移行策の一つと言うことか
539 名前:名無し~3.EXE [2009/07/19(日) 11:53:25 ID:BSXTI/Xi] wsh(≒jscript)はwineで使い物になる?PowerShellはwineで使い物になる? 詳しい人教えてくれ。
540 名前:名無し~3.EXE [2009/07/29(水) 01:05:20 ID:nmGF194p] 使用言語はJavascriptで、他のファイルの関数を使うにはどうすればいいでしょうか? wsfでインクルードするしかないでしょうか
541 名前:名無し~3.EXE mailto:sage [2009/07/29(水) 01:12:57 ID:U3tVg9DC] テキストとして読み込んでeval
542 名前:名無し~3.EXE [2009/07/29(水) 01:22:33 ID:nmGF194p] ありがとうございます!これでできました。 cwashington.netreach.net/depo/view.asp?Index=44&ScriptType=jscript
543 名前:名無し~3.EXE mailto:sage [2009/07/31(金) 11:39:46 ID:Gyufjk11] アプリの設定がメニューの深いところにあって、 いちいちメニュー階層を順に開いていくのが面倒なので SendKeysで自動的にやろうとおもったのですが、 IMEがオンの状態ではメニュー項目がうまく選択できませんでした。 強制的にIMEをオフにしたいのですが、 vbsでIMEの制御は可能でしょうか?
544 名前:名無し~3.EXE [2009/07/31(金) 15:34:40 ID:fPLWy6Es] 不要
545 名前:名無し~3.EXE mailto:sage [2009/07/31(金) 23:54:08 ID:f/yjxAXd] ウィンドウ操作はそれ用のCOMを覚えた方が先々便利
546 名前:名無し~3.EXE mailto:sage [2009/08/02(日) 18:03:13 ID:yp9Titym] Sever 2008 x64でオブジェクトが作成できませんと怒られてbasp21が動かない 何か方法はあるんでしょうか?
547 名前:名無し~3.EXE mailto:sage [2009/08/02(日) 18:11:53 ID:TBxPfJAM] 32bit版のwscript/cscriptで実行する
548 名前:546 mailto:sage [2009/08/03(月) 07:14:19 ID:rN5JviGQ] >>547 あっさり解決できました 本当にありがとうございました
549 名前:名無し~3.EXE mailto:sage [2009/08/03(月) 08:20:08 ID:G3uibfz0] WSH & 周辺環境は、32bit版さえ使えば、この先もしばらく使えそうなのか? ますますPowerShellを覚える気力がなくなってきた。どうしよう・・・。
550 名前:名無し~3.EXE mailto:sage [2009/08/03(月) 08:46:05 ID:d466V8k7] だったら使わなければいいんじゃね?
551 名前:名無し~3.EXE mailto:sage [2009/08/03(月) 23:32:17 ID:19p30T4e] だったら覚えなければいいんじゃね?
552 名前:名無し~3.EXE mailto:sage [2009/08/04(火) 00:04:23 ID:DXguE6Su] わかりました。しばらくはJScriptで行きます。 Webでもローカルでもマクロでも一番使い勝手がよさそうなんで。
553 名前:名無し~3.EXE [2009/08/07(金) 19:33:38 ID:E5uAjbVg] xmlhttp = new ActiveXObject("Msxml2.ServerXMLHTTP"); xmlhttp.setTimeouts(20000, 20000, 20000, 20000); xmlhttp.Open("GET", "www.google.co.jp/ ", false); xmlhttp.Send(); タイムアウト設定が必要なのでServerXMLHTTPを使おうと思ったのですが、 3行目でオブジェクトがプロパティかメソッドに対応していないとエラーがでます。 どこが間違っているのか教えてください
554 名前:名無し~3.EXE mailto:sage [2009/08/07(金) 19:43:20 ID:x3CcgWEQ] Openじゃなくてopen ttp://msdn.microsoft.com/en-us/library/ms754586.aspx
555 名前:名無し~3.EXE [2009/08/07(金) 20:10:07 ID:E5uAjbVg] ありがとうございました。ついでに4行目もsendなんですね・・・
556 名前:名無し~3.EXE mailto:sage [2009/08/07(金) 21:02:15 ID:uHcZtJ30] vbscriptにしろよ
557 名前:名無し~3.EXE [2009/08/10(月) 13:32:44 ID:4SR4aBtB] いまさらVBSCRIPTはねえだろうw JSCRIPTなら他の言語にもすぐに応用が利くからわからんでもないがw
558 名前:名無し~3.EXE mailto:sage [2009/08/10(月) 18:16:35 ID:Qzycj5VH] 解ってない奴現るw
559 名前:名無し~3.EXE mailto:sage [2009/08/10(月) 18:21:23 ID:1VenD9zg] VBはいまだによく使うよ。
560 名前:名無し~3.EXE mailto:sage [2009/08/10(月) 19:21:04 ID:MjZIyAdN] >>559 その書き方だと、VBとVBScriptを混同しているように読めるが……。
561 名前:名無し~3.EXE mailto:sage [2009/08/10(月) 19:26:52 ID:1VenD9zg] 別に混同しちゃいないけどさ、JSより、 VBの文法はいまだによく使うよってこと。
562 名前:名無し~3.EXE mailto:sage [2009/08/10(月) 20:20:50 ID:RqyYDiuX] WebのJSとwshのJSって文法ほぼ一緒だけど 使うオブジェクト違うから書き方変えるしね だったらVBSで文法レベルから完全に違うほうがわかりやすかったりする
563 名前:名無し~3.EXE mailto:sage [2009/08/10(月) 23:11:57 ID:67y+NCjl] 別に金が掛かる訳でもなし、適材適所で両方使えばええがな
564 名前:名無し~3.EXE mailto:sage [2009/08/11(火) 00:14:32 ID:7Q2C1XtL] EnumeratorだらけならVBSの方が簡潔に書ける。ぐらいしか思い付かない。
565 名前:名無し~3.EXE mailto:sage [2009/08/11(火) 00:17:18 ID:ihFQei8Z] たまにby Refの受け取りとかあったりするぐらい。
566 名前:名無し~3.EXE mailto:sage [2009/08/11(火) 11:55:36 ID:5VgQAFGn] MsgBox Inputbox 使えないだろ>JScript
567 名前:名無し~3.EXE mailto:sage [2009/08/11(火) 15:01:44 ID:2Se6dKOv] Grepしたらこんなのが出てきた。すっかり忘れていたwww function input(){ /***** JScript で VBScript の InputBox() 関数を使う関数 *****/ var scVB, VBarg, fvartype, i;VBarg = ''; scVB = new ActiveXObject('ScriptControl'); for (i = 0; i < Math.min(arguments.length, 7); i++){ fvartype = typeof(arguments[i]); if (i > 0){VBarg += ', ';} if (fvartype == 'number' || fvartype == 'object' && arguments[i] instanceof Number){ VBarg += arguments[i].toString(); } else if (fvartype != 'undefined'){ VBarg += '\"' + arguments[i].toString().replace(/[\"]/g, '\"\"') + '\"'; } else if (i < 3 || i == 5){ VBarg += '\"\"'; } } VBarg = VBarg.replace(/[\r\n]+/g, '\" \& $&\"').replace(/[\r]/g, 'Chr\(13\) \& ').replace(/[\n]/g, 'Chr\(10\) \& '); scVB.Language = 'VBScript'; return(scVB.Eval('InputBox\(' + VBarg + '\)')); } var ret=input("説明文","タイトル","デフォルト100"); WScript.Echo(ret);
568 名前:名無し~3.EXE mailto:sage [2009/08/11(火) 15:27:19 ID:tCC4Lofi] そりゃActiveXObject使えばどうにでもなるさ そんなのは皆知ってるし、ActiveXObject使うなら わざわざVBSのGUIに拘る必要もないだろw
569 名前:名無し~3.EXE mailto:sage [2009/08/11(火) 18:03:52 ID:qMEHxjWM] COMは全て別途DLLが必要とでも思ってるんだろうか。
570 名前:名無し~3.EXE mailto:sage [2009/08/11(火) 19:53:02 ID:5VgQAFGn] EXEもあるが?
571 名前:名無し~3.EXE mailto:sage [2009/08/11(火) 21:25:54 ID:tCC4Lofi] >>569 なに勘違いしてるの?
572 名前:名無し~3.EXE mailto:sage [2009/08/11(火) 21:50:26 ID:5VgQAFGn] ちょっとCOM乱してる?
573 名前:名無し~3.EXE mailto:sage [2009/08/11(火) 22:00:53 ID:tCC4Lofi] だれが上手いこと言えとw
574 名前:名無し~3.EXE mailto:sage [2009/08/15(土) 07:46:06 ID:avxpvV7T] xmlhttpを使って同じURL(情報に変化有り)をループ処理で取得しようとすると キャッシュを使ってるみたいで、1回目に取得したもののコピーしか取得出来ないのだけど そのつど新しいデータを取得するにはどうしたらいいんでしょうか?
575 名前:名無し~3.EXE mailto:sage [2009/08/15(土) 08:01:54 ID:9s7XDhMw] HTTPリクエストに(ここではスレ違い)ついて勉強しましょう
576 名前:名無し~3.EXE mailto:sage [2009/08/15(土) 10:09:44 ID:avxpvV7T] >>575 送るヘッダなんかもいじってみたけどうまくいかなかったのですが 不可能ってことなんでしょうか?
577 名前:名無し~3.EXE mailto:sage [2009/08/15(土) 11:15:57 ID:qvpOcgUD] ブラウザだって[Ctrl]+[F5]で強制再読込できるんだ。出来ないわけ無い。 これ以上は、スレ(板)違い。
578 名前:名無し~3.EXE mailto:sage [2009/08/15(土) 12:04:35 ID:avxpvV7T] スクリプトでxmlhttpを使い、同一URLを連続で取得した場合に データを新たに取得に行かないという問題なのですが・・・
579 名前:名無し~3.EXE mailto:sage [2009/08/15(土) 12:38:57 ID:7WPexxIz] xmlhttp キャッシュ でググれ
580 名前:名無し~3.EXE mailto:sage [2009/08/15(土) 16:26:37 ID:5dfMd7fo] 「スレ違い」「板違い」と指摘されてるのに質問を続ける奴って何なの?
581 名前:名無し~3.EXE mailto:sage [2009/08/15(土) 17:41:19 ID:avxpvV7T] >>579 ありがとうございました、出来ました >>580 上のほうでも同じようにxmlhttpの挙動に対する質問などもありますし スレ違いだとは思わなかったので続けました 純粋に疑問なのですがどのあたりがスレ違いなんでしょう? ここがwshのスレならば、範囲内だと思うのですが?
582 名前:名無し~3.EXE mailto:sage [2009/08/15(土) 22:23:22 ID:IaztbDhN] xmlhttpの質問をここでするのは、トヨタの車にSonyのカーナビ付けてる状況で カーナビの操作不良トラブルでトヨタに問い合わせるようなものだ xmlhttpはwsh用でもなんでもなく、 いろんな言語(車)に使える汎用コンポ(カーナビ)だってことを覚えて置いて
583 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 00:51:24 ID:OrGIf2da] 過疎ってんだからいいじゃん 無駄に細けーよ
584 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 01:44:42 ID:kXw4hMGI] 気分いい人を見つけるか、気分良くさせる話術を身に付けろってことさね
585 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 07:40:28 ID:y/oOeE3m] むしろそれをスレ違いと言ったらこのスレには何が残るというのか
586 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 08:34:22 ID:wWl4IgK0] wshの話題 つーか、そもそもここはそういうスレだろ? それじゃ話題が少ないとか言う奴も居るかも知れないが、 少ないと何か問題あるのかと問いたいね 2chの鯖(とcgi)が弱かった頃は、話題(書き込み)が少ないと すぐに圧縮で落とされたから、無理にでも話題作りをしなくちゃならなかったが そういう問題が無くなった今となっては、無理に話題広げるより、 少ないながらもスレタイに沿った濃密な話題のみの方が断然良いからね
587 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 11:11:34 ID:92sq03tG] なんだ、クレクレ厨か
588 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 13:22:32 ID:RY/92RaQ] どのオブジェクトからがスレ違いで 何が許容範囲なのか明確に例題を挙げてもらいたいわw
589 名前:名無し~3.EXE [2009/08/16(日) 13:34:08 ID:Ep6+8lZw] 俺様基準ってことだろ
590 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 16:03:44 ID:r1QiDn9d] >>588 オブジェクト単位でどれがいい悪いじゃなく、内容がwsh特有の問題なのかどうかという話だと思うんだけど。 例えば、あるオブジェクトがwshで使ったときのみ違う動作をする、というような話しならこのスレ向き、 というか他所でしても「こっちいけ」って誘導されるような話だと思うし、 そうではなく、どの言語・環境で使っても同じ動作をするものを「こうさせたい」って話しなら それはそのオブジェクトか、それが対象とする規格の話題を扱うスレのほうが適しているだろうと思う。
591 名前:名無し~3.EXE [2009/08/16(日) 16:17:49 ID:92sq03tG] 言葉にならない 私の想い けれど いつかあなたに きっと・・・
592 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 16:26:31 ID:xjMN8GP2] スレ違いを指摘する奴は移行先を示さない法則
593 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 16:35:30 ID:UwvoqxIq] なんでスレ違いの奴に、わざわざこっちが移行先を探してやらなきゃならないんだ?
594 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 17:56:05 ID:aQFRMbgr] FileSystemObjectの文字コードはどうやって決まってるの? 外国じゃシフトJISじゃないよね?
595 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 19:12:33 ID:Y/yZE8LX] >>594 wikipedia >マイクロソフト(日本法人)元会長の古川享によると、Shift_JISの制定には、 >アスキー、マイクロソフト(米)、三菱電機、マイクロソフトウェア・アソシエイツ、デジタルリサーチ(米)が関わり、
596 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 21:59:49 ID:kXw4hMGI] そんなことはどうでもいいから Scripting.FileSystemObject なんつう 長くて打つのがめんどいProgIDをどうにかしてくれ
597 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 22:03:45 ID:92sq03tG] ひらがな4文字にするべき。
598 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 22:04:22 ID:2HQFAnKG] >>596 自分のPC上でなら、設定次第でいくらでも短くできるけど? というか、初心者はコードの文字数や行数的な短縮に躍起になる次期があるが コードは読解性や最適化(意味としての短縮)の方が重要だよ
599 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 22:07:49 ID:kXw4hMGI] 環境依存の少なさも大事
600 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 22:13:00 ID:2HQFAnKG] もちろん だからこそ「自分のPC上でなら」と その重要な点が犠牲になることを明記した
601 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 22:15:29 ID:2Jv4So8E] >>597 すくぷり
602 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 22:39:29 ID:gcXO2ZEs] VB2005以降みたいにスニペットでホイホイと行かないのはしょうがない話
603 名前:名無し~3.EXE mailto:sage [2009/08/16(日) 22:53:08 ID:jevHYVxW] 入力補完機能があるエディタを使えば問題ない。
604 名前:名無し~3.EXE mailto:sage [2009/08/17(月) 19:38:25 ID:QtOZzW/u] >>590 じゃぁFileSystemObjectやWScript.Shellなんかもスレ違い?
605 名前:名無し~3.EXE mailto:sage [2009/08/18(火) 19:49:10 ID:kMLD2t0b] FileSystemObjectスレやWScript.Shellスレがあるのか?
606 名前:名無し~3.EXE mailto:sage [2009/08/18(火) 20:13:47 ID:S2hFvVkz] FileSystemObject を引き合いにだして、ディレクトリ構造とかファイル属性について質問してるようなもんだろ。 それらは、FileSystemObject や xmlhttp の固有の問題じゃない。 FileSystemObject だけでなく コマンドプロンプトやエクスプローラなどファイル管理共通の話題だし、 今回の例だとhttpヘッダの話題で、ブラウザやAjaxを使ったアプリ、telnetでhttpで鯖と対話するときとか、 あとはオミトロンなどでも、利用っつーか知らないと上手く扱えないもんだ。 httpヘッダの解説ページでも見ればすぐに解決するだろうし、さらっと答えても差し支えないけど、 答えたばっかりに、教えて君的にどんどんと質問レスばかりで埋まるようだと 完全にスレ違いになるし、それが嫌なんだろう。
607 名前:名無し~3.EXE mailto:sage [2009/08/18(火) 20:16:17 ID:p71GJEvH] 大丈夫だよ、埋まるほども人いないから
608 名前:名無し~3.EXE mailto:sage [2009/08/18(火) 21:01:59 ID:rhBQ6KVW] というか>>590 は一行目でオブジェクトが何かでなく内容の問題だって書いてるのに それに対してこのオブジェクトはどうですかとレスする>>604 が不明。
609 名前:名無し~3.EXE mailto:sage [2009/08/19(水) 10:29:33 ID:WGg2VE8w] ま、まさか、オマイらエディタの入力補完機能使わんで、全部手打ちにしてるんか? そりゃ無茶だw キーボードも早く壊れるし、指も疲れる、可読性も良くない。 入力補完機能は日本語辞書と違って64文字の制限ないから、長い文を登録できるんだぜ。 フリーのメジャーなエディタならたいていは使える機能だわな。 関数やプロトタイプも余裕で登録できるんで、ぜひ使ってやってください。
610 名前:名無し~3.EXE mailto:sage [2009/08/19(水) 12:13:40 ID:qMq0YoQ5] 全部手打ちだ。
611 名前:名無し~3.EXE mailto:sage [2009/08/19(水) 16:28:50 ID:oyXIXNnQ] >>594 Asc/ChrはSetLocaleで変わるがFSOは変わらんね DLLで固定じゃないか
612 名前:名無し~3.EXE mailto:sage [2009/08/19(水) 17:38:16 ID:R8jmqPSw] notepad最高
613 名前:名無し~3.EXE mailto:sage [2009/08/24(月) 00:47:36 ID:UhNbx6kV] WSHでスキャナとカメラの中のフォルダって扱えませんか?
614 名前:名無し~3.EXE mailto:sage [2009/08/24(月) 08:24:31 ID:jZ03yQcV] 無理 そもそもWSH自体には、ローカルであってもファイルやフォルダを操作する機能など無い
615 名前:名無し~3.EXE mailto:sage [2009/08/24(月) 18:11:44 ID:1pBOD32x] >>614 ?? ファイルフォルダ操作は簡単だろ。スキャナダメはそうなんだけど。
616 名前:横レス mailto:sage [2009/08/24(月) 18:39:02 ID:LAYapniR] >>614 は「FSOはWSHの一部ではないよ派」だと思われ
617 名前:名無し~3.EXE mailto:sage [2009/08/24(月) 19:11:57 ID:R5rjUpeC] wscript.exeにはfsoが内蔵されてるが?
618 名前:名無し~3.EXE mailto:sage [2009/08/24(月) 23:02:22 ID:gGokT/cL] wscript.exeにはfsoが内蔵されてないが? WScript5.6パッケージには、FSOが『同梱』されてはいるが 数種入ってるサンプルCOMのひとつがFSOってだけの話で 別にFSOがWSHという実行ホストと直接関係有るわけではないし
619 名前:名無し~3.EXE mailto:sage [2009/08/24(月) 23:19:39 ID:urIpYgAU] MS-Windowsってなんなの?
620 名前:名無し~3.EXE mailto:sage [2009/08/25(火) 00:23:25 ID:hoDlDin+] wscript.stdin.readlineとかは内蔵fsoだが?
621 名前:名無し~3.EXE mailto:sage [2009/08/25(火) 01:04:38 ID:F2Ajuss/] 内蔵fsoってなによ ていうかFSOって何か分かってるか
622 名前:名無し~3.EXE mailto:sage [2009/08/25(火) 01:13:22 ID:TXbKnVvq] どうでもいい
623 名前:名無し~3.EXE mailto:sage [2009/08/25(火) 03:18:31 ID:hoDlDin+] >>621 >>621 分ってないみたいだから、wscript.exeをobject browserで見てみるとよいよ
624 名前:名無し~3.EXE mailto:sage [2009/08/25(火) 06:13:40 ID:O29bAjvd] なんだ、ただ勘違いしてるだけかw
625 名前:名無し~3.EXE mailto:sage [2009/08/25(火) 15:11:31 ID:/GJjTGNi] ほれ Library IHost Windows Script Host (Ver 5.6) Class FileSystemObject IHost のメンバ
626 名前:名無し~3.EXE mailto:sage [2009/08/26(水) 05:38:00 ID:B2LpVl9D] ┐(゚〜゚)┌
627 名前:名無し~3.EXE mailto:sage [2009/09/04(金) 17:03:19 ID:jKjPpgpi] >>620 VBSでこんなクラスを作ったとする Class Hoge Public fso Private Sub Class_Initialize Set fso = CreateObject("Scripting.FileSystemObject") End Sub End Class このHogeクラスはFileSystemObjectを内蔵している?
628 名前:名無し~3.EXE mailto:sage [2009/09/04(金) 17:31:08 ID:fqDq7lDU] 粘着馬鹿が居る scrrun.dllを削除して使えるかどうかで判定できるだろ?
629 名前:名無し~3.EXE mailto:sage [2009/09/04(金) 18:10:05 ID:jKjPpgpi] >>628 「(null): 指定されたモジュールが見つかりません。」って言われた たぶんXPのWindows File Protectionが削除されたscrrun.dllを 速攻で復活させてるだけじゃ?
630 名前:名無し~3.EXE mailto:sage [2009/09/04(金) 18:23:58 ID:ELlrcgTf] 標準でそのオブジェクトが使えるなら、どうでもいい話じゃないのか? Windowsでしか使えないんだし。
631 名前:名無し~3.EXE mailto:sage [2009/09/04(金) 18:45:43 ID:fqDq7lDU] regsvr32 /u scrrun.dll
632 名前:名無し~3.EXE mailto:sage [2009/09/04(金) 18:49:46 ID:CBscgCCx] つまりwscript.exeはFileSystemObjectを持ってて実装はscrrun.dllに丸投げ ただしCOM経由じゃなく直接dllをロードする てことでいいのか まあ何でも良いが
633 名前:名無し~3.EXE mailto:sage [2009/09/04(金) 19:18:57 ID:fqDq7lDU] なにを根拠に妄想をたくましくしてんだ?ぼけ
634 名前:名無し~3.EXE mailto:sage [2009/09/04(金) 19:29:53 ID:CBscgCCx] もちろん629からだが 是非ご高説賜りたいもんだね
635 名前:名無し~3.EXE mailto:sage [2009/09/07(月) 09:49:49 ID:niBBT+9B] この雰囲気、好きくない
636 名前:名無し~3.EXE [2009/09/09(水) 06:43:01 ID:mKiDYFp0] 質問:WSHまたはWindows Scripting Component で任意のインターフェースをImplementsしたクラスを作成する方法はありませんか? ■経緯 Excel VBAで、外部COM DLLを使ってスクリプト作成しているのですが、 これをWSHに移植しようとしています。 しかし、問題は外部COM DLLで定義されているインターフェースのImplementsが必要な事です。 WSHではImplementsは非対応のようなので、困っています。 ググって見たところ、Windows Scripting Component にはImplementsを指定する箇所がありますが、 指定してみても「インターフェイスハンドラを作成できません」というエラーになります。 (hoge.wsc の中に <implements type="dhRichClient3.IFunction" /> <implements type="IFunction" /> のように記述) どうも、このImplementsに指定できるインターフェースは、ASPとBehaviourというもののみのようです。 (何か勘違いをしている可能性が大ですが…) 任意のインターフェースをImplementsする方法はないでしょうか。 ■やろうとしていること SQLiteを使った、SQL文中でのユーザ定義関数の定義。 外部COM DLLは「dhRichClient3」、インターフェースは「IFunction」 リファレンスマニュアル:www.datenhaus.de/RC-Help/dhRichClient3.htm ■ASP,Behaviour以外のインターフェースを実装しようとしている人の質問(回答なし) www.palm-jp.net/cgi-bin/ml/palm-tech-ml/msg00383.html
637 名前:名無し~3.EXE [2009/09/10(木) 19:09:44 ID:Rxuv3x7H] XP-SP3ってデフォ5.7なのね 今までI漏れのPCにIE7入れたからかと思ってたわ つーことはXPSP3-IE6-WSH5.7の環境もあるってことか
638 名前:名無し~3.EXE mailto:sage [2009/09/11(金) 00:00:23 ID:jfkxOInx] 俺も知らんかった
639 名前:名無し~3.EXE mailto:sage [2009/09/11(金) 10:52:35 ID:mRbnvINb] つーか俺が先日買ったばかりのWinXPインストール済マシンが、最初からXPSP3-IE6-WSH5.7だったよ。
640 名前:名無し~3.EXE mailto:sage [2009/09/11(金) 12:27:43 ID:SdwA2vDJ] Win7のVerはいくつだろね
641 名前:名無し~3.EXE mailto:sage [2009/09/11(金) 14:55:05 ID:XbLP+/qN] InternetExplorer.ApplicationでzipファイルにNavigate2すると 「ファイルのダウンロード」ダイアログが出るのですが、 これを自動で保存する方法はないでしょうか?
642 名前:名無し~3.EXE mailto:sage [2009/09/11(金) 14:58:31 ID:cqrP63L1] sendkeys
643 名前:名無し~3.EXE mailto:sage [2009/09/11(金) 18:15:43 ID:iWeyg2oG] >>631 オートメーション サーバーはオブジェクトを作成できません。 www.dotup.org/uploda/www.dotup.org129589.jpg.html
644 名前:名無し~3.EXE mailto:sage [2009/09/11(金) 19:57:50 ID:oH1Rk1Zr] >>640 IE8だから最低でも5.8だろ多分。 IE7だから5.7ってわけでもないんだが。
645 名前:名無し~3.EXE mailto:sage [2009/09/11(金) 21:53:14 ID:cqrP63L1] 5.7になって何かよかったことがあるのか?
646 名前:名無し~3.EXE mailto:sage [2009/09/12(土) 01:16:59 ID:lalkaeIA] 細々とでもアップデートしてくれること自体がいいんじゃん 番号だけかもしれんけど とりあえず捨て去ることはないという証明にはなる
647 名前:名無し~3.EXE mailto:sage [2009/09/12(土) 03:33:40 ID:WpoHmTYS] >>640 System32のjscript.dllのプロパティを見ると5.8.7100.0となっている。 Windows 7 RCの64ビット版。
648 名前:名無し~3.EXE mailto:sage [2009/09/12(土) 11:50:44 ID:lalkaeIA] >>647 ありがとう よかった
649 名前:名無し~3.EXE mailto:sage [2009/09/12(土) 19:13:12 ID:WNZ2NMuP] cmd.exeはアップデートないけど、ちっともなくならないな んでも、cmd.exeをアップデートしてほしいな
650 名前:名無し~3.EXE mailto:sage [2009/09/12(土) 21:24:04 ID:uHTfzOPd] ちゃんとコマンド増えてるだろ
651 名前:名無し~3.EXE mailto:sage [2009/09/12(土) 22:49:33 ID:WNZ2NMuP] なんちゅう内部コマンド?
652 名前:名無し~3.EXE mailto:sage [2009/09/12(土) 22:53:14 ID:VYRMYvSC] norip oshio komuro
653 名前:名無し~3.EXE mailto:sage [2009/09/13(日) 00:31:00 ID:mwzFyCze] dictionary オブジェクトの item に配列を入れた場合、直接値の変更はできないんですか? Set d = CreateObject("Scripting.Dictionary") d.Item("hoge") = Array("bing", "bang") d.Item("hoge")(0) = "ting" ' bing が出力される。 WScript.Echo d.Item("hoge")(0)
654 名前:名無し~3.EXE mailto:sage [2009/09/13(日) 00:48:58 ID:GSibjpcz] だな
655 名前:名無し~3.EXE mailto:sage [2009/09/13(日) 00:50:35 ID:E0QFUGQF] VBSの配列の代入は値のコピー。 だから、 d.Item("hoge")(0) = "ting" は Dim x x = d.Item("hoge") x(0) = "ting" に分割され、このときxへの代入時に配列丸ごとコピーされて d("hoge")が持ってる配列とxが持ってる配列は別物になる。 めんどくさい仕様だなぁ。
656 名前:名無し~3.EXE mailto:sage [2009/09/13(日) 22:57:18 ID:GSibjpcz] だね
657 名前:名無し~3.EXE mailto:sage [2009/09/14(月) 14:12:31 ID:ym3DmcgO] で、どうする?
658 名前:名無し~3.EXE mailto:sage [2009/09/16(水) 12:46:23 ID:O8adoxSh] そういう質問じゃないので不要
659 名前:名無し~3.EXE mailto:sage [2009/09/22(火) 17:47:22 ID:f8eHyCtX] Vista/7でスクリプトが管理者権限で実行されてるかどうかを調べる方法ってある?
660 名前:名無し~3.EXE mailto:sage [2009/09/22(火) 23:43:20 ID:ua4fgPA7] >>659 まず管理者権限かどうかを調べるってのはVistaより前でも結構難しいのよ。 そりゃローカルのユーザでログオンしてて自分が管理者かどうかを調べるなら WMIで簡単だけど、ドメインのユーザだとドメインに聞かないとダメだろ? だから簡単じゃない。 それにVista/7だと、それ以前にUACが有効になってたりそのUACがデフォルト より厳しい設定になってる可能性もあるだろ。そうすると、たとえ本当に管理者で 入っていたとしてもスクリプトのチェックが蹴られたり、チェックで通っても 実際にしたい処理のときにUACに蹴られる可能性もある。 だから何をしたいのかをまず絞り込んでから個別に作るべきだな。
661 名前:名無し~3.EXE mailto:sage [2009/09/24(木) 22:24:17 ID:xUyLc6Jz] 最近のヘイ スクリプティング ガイ! がPowerShellばっかりな県
662 名前:名無し~3.EXE mailto:sage [2009/09/25(金) 00:40:04 ID:rKkYwStT] さすがにネタ切れだろ
663 名前:名無し~3.EXE mailto:sage [2009/09/25(金) 17:40:03 ID:04nmuvJP] むしろMS的にPowerShellよりWSHを推してたら驚く
664 名前:名無し~3.EXE mailto:sage [2009/09/25(金) 19:19:58 ID:rKkYwStT] その程度のことでは別に驚かないが?
665 名前:名無し~3.EXE mailto:sage [2009/09/27(日) 17:59:32 ID:TzLFyzEj] もしPINVOKEのCOMが標準提供されたらWSHの時代だな
666 名前:名無し~3.EXE mailto:sage [2009/09/27(日) 18:20:18 ID:kSF/I/Bf] まあ、諦めよう。
667 名前:名無し~3.EXE mailto:sage [2009/09/28(月) 10:00:42 ID:kC4ZBQjl] VBS - FSWikiLite tuka.s12.xrea.com/index.xcg?p=VBS#p27
668 名前:名無し~3.EXE mailto:sage [2009/09/28(月) 10:34:11 ID:kC4ZBQjl] Markopee::Notebook: ドライブレターのないボリュームの容量を取得する markopee.blogspot.com/2008/03/blog-post.html
669 名前:名無し~3.EXE mailto:sage [2009/09/28(月) 17:06:27 ID:2vo3Sj9E] PINVOKEのCOMをどっとねっとで書いて、WSH実行時に動的コンパイルして インストールしないで使えばええんじゃね
670 名前:名無し~3.EXE mailto:sage [2009/09/29(火) 20:31:00 ID:nRCW7wUP] そこまでするなら素直にPowerShell使ったほうがいいような
671 名前:名無し~3.EXE mailto:sage [2009/09/29(火) 20:52:12 ID:2osslqGd] PowerShellのPINVOKEもめんど
672 名前:名無し~3.EXE [2009/09/29(火) 21:21:02 ID:BcdCkTRc] PowerShellなんてのも有るんだ。 なんかでこのスレ覗いて、そのままずっと自動レス取得にしといて良かった。 ちょっとtechnet読んでくる。
673 名前:名無し~3.EXE mailto:sage [2009/09/29(火) 23:26:16 ID:w+WE5kvG] PowerShellの方はAdd-Typeのお陰で随分楽になった まあPythonのctypesみたいなのが元からあるのが理想だけど
674 名前:名無し~3.EXE mailto:sage [2009/09/30(水) 04:27:48 ID:VE3quA4g] 367 :名無し~3.EXE:2008/02/19(火) 21:38:37 ID:qK/Wztn/ おれはこのVBSを作って自作ソフトからファイル渡ししてるけど DoLoopとかforで回せばいいじゃん、めんどくさがりだなあ 'IrvineQueueFolder.vbs 'キューフォルダを指定してURLやURLリストファイル郡を登録 'IrvineQueueFolder.vbs 引数1 引数2 引数3 ... '引数は、[キューフォルダ]または[URL]または[URLリストファイル名]で混在可 'キューフォルダは"/"で始まるように絶対指定する QueueFolder="/Default/dorothy2/Auto" 'キューフォルダの指定(デフォルト) ' Set Irvine = WScript.CreateObject("Irvine.Api") Set arg = WScript.Arguments 'コマンドラインの引数郡 For i=0 to arg.Count - 1 If Left(arg(i), 7)="http://" Then 'URL Url = arg(i) Irvine.AddQueueItem QueueFolder, Url 'アイテム登録 ElseIf Left(arg(i), 1)="/" Then 'キューフォルダ指定 QueueFolder = arg(i) 'キューフォルダの指定(指定以降はこのフォルダになる) Else 'URLリストファイル Set fso = CreateObject("Scripting.FileSystemObject") FileName = arg(i) Set TextFile = fso.OpenTextFile(FileName) ' テキストファイルのオープン Do Until TextFile.AtEndOfStream Url = TextFile.ReadLine ' 1行読み込み Irvine.AddQueueItem QueueFolder, Url 'アイテム登録 Loop End If Next Set irvine = Nothing 368 :名無し~3.EXE:2008/02/19(火) 21:40:43 ID:qK/Wztn/ ああスマン、リファラ必要だったか、間違えた ほんとごめん、無かった事にしてくれw
675 名前:名無し~3.EXE mailto:sage [2009/09/30(水) 18:59:30 ID:yNSminJl] IE の clipboard.GetData("text") を使ってるんですけど クリップボードの中身が文字列でないときにエラーが出るんですけど これどうして対処したらいいですか? クリップボードの中身の sDataFormat が何か分かるプロパティとかあるんですか? それがあればtextであった場合のみ実行できるんですが…。
676 名前:名無し~3.EXE mailto:sage [2009/09/30(水) 19:07:10 ID:uvZrgPLl] エラーを握り潰せばいいんじゃね?
677 名前:名無し~3.EXE mailto:sage [2009/09/30(水) 19:42:46 ID:yNSminJl] >>676 ありがとう。 エラー処理するのはあまり本位ではないのですが… try で組もうと思います。
678 名前:名無し~3.EXE mailto:sage [2009/09/30(水) 20:48:09 ID:eF+M6xuO] それはあまりにも自分本位じゃまいか
679 名前:名無し~3.EXE mailto:sage [2009/11/08(日) 19:21:35 ID:7qQVL7wO] エラーにも言い分があるはず。こっちも心を開かないと エラーも心を開くはずがない。
680 名前:名無し~3.EXE mailto:sage [2009/11/18(水) 10:55:25 ID:+QJ44J2l] CかC++で普通の旧式の非ウィンドウアプリケーション書いて、 データ入力部分だけhtaでGUIもどきのことをしたいと思っています。 質問1、execでstdinとstdoutだけを読み書きして stderrはコンソールにそのまま出力ということは出来るのでしょうか? これが出来ると本当に安直なプログラムが書けそうなんですが 質問2、exec のstdoutにデータが来てるかどうか読まずに確かめる方法はあるのでしょうか? これが出来ないと予期しない出力は結局ファイルで合図しなければならないかと思っています 以上2点、レベルの低い質問かもしれませんが、自分で検索しても出来るかどうかよく分かりませんでした 特に1が出来ないと結局ファイルでやり取りしたほうが今作ろうとしているプログラムは書きやすいかと 思っています
681 名前:名無し~3.EXE mailto:sage [2009/11/18(水) 12:30:35 ID:m1LVyF2l] exec "cmd /c hoge 2>con"
682 名前:名無し~3.EXE mailto:sage [2009/11/18(水) 12:46:03 ID:+QJ44J2l] >>681 質問1は、できるのですね。やってみました。本当にありがとうございました 質問2は、できるのでしょうか?
683 名前:名無し~3.EXE mailto:sage [2009/11/18(水) 14:13:26 ID:m1LVyF2l] パイプはnon blocking readがないので無理 ファイルならatendofstreamで可能
684 名前:名無し~3.EXE mailto:sage [2009/11/18(水) 14:38:19 ID:+QJ44J2l] >>683 回答ありがとうございます。 用語がよく分かっていませんが、それで調べてみます。
685 名前:名無し~3.EXE mailto:sage [2009/11/21(土) 19:12:00 ID:q2jqgO7W] ノートPCに付いている専用アプリケーションキーを押す都度に 内蔵スピーカーからの出力と、外付けUSBスピーカーからの出力を 交互(トグル)に切り替えるにはどういったスクリプトを書けばよいでしょうか? 出来れば切り替えた際にダイアログを表示して確認出来ると尚良いです。 アプリケーションキーからスクリプトを起動させるところまでは 方法がわかっているのですが、肝心のスクリプトがわかりません。 ぶしつけなお願いとはわかっていますが、どうか宜しくお願いします。
686 名前:名無し~3.EXE mailto:sage [2009/11/21(土) 21:20:19 ID:l4Atd+m7] ここ( ttp://hp.vector.co.jp/authors/VA008065/ )の SetPlayDevice とかを叩けばいいんじゃない Vista, 7 じゃ無理みたいだけど。
687 名前:名無し~3.EXE mailto:sage [2009/11/21(土) 22:00:31 ID:q2jqgO7W] >>686 ありがとう それを元に調べてみるとVista、7からはサウンド関係の仕様に 変更があったようで使えないのですね そうとは知らずにOSを書いてなくてすみませんでした 今のところVista以降に関してMSからも情報提供が乏しいようですね
688 名前:名無し~3.EXE mailto:sage [2009/11/22(日) 01:40:11 ID:uq5f84wJ] select caseって数値の比較とか出来ないんでしょうか? a = 1 のとき a > 0が引っかからないのですが・・・ 完全な決めうちしか出来ないって事ですか?
689 名前:名無し~3.EXE mailto:sage [2009/11/22(日) 13:32:21 ID:cCLt2wk9] >>688 頭を使え
690 名前:名無し~3.EXE mailto:sage [2009/11/22(日) 14:54:21 ID:HA1psbZl] 3>a>=1なら b=1にしてSelect bにするとか mod使ってSelect 計算式 にするとかいくらでもやりようがあるだろうに (;一_一)
691 名前:名無し~3.EXE mailto:sage [2009/11/22(日) 15:27:40 ID:cCLt2wk9] >>690 頭を使った? select case true case a>0
692 名前:名無し~3.EXE [2009/11/23(月) 00:08:54 ID:Nzh7T0tA] select caseって、caseって書くくらいだから、決め打ち有りきだと思ってたけど、そう思わない人も居るんだな。 つか、a=1の時、a=1の処理がしたいのかa>0の処理がしたいのかを誰が決めるんだろ? i7?pen3?
693 名前:名無し~3.EXE mailto:sage [2009/11/23(月) 11:22:05 ID:1SNAy8LO] 「VBAみたいに『Is > 0』って書ければ良かったのに」って >>688 は言いたいんじゃないの?
694 名前:名無し~3.EXE mailto:sage [2009/11/23(月) 19:28:11 ID:8m8LyL5s] a = 1 Select Case a Case a > 0 MsgBox "引っかからない" Case Else End Select ってことだろ VBSはIsもToもサポートしてない
695 名前:名無し~3.EXE mailto:sage [2009/11/23(月) 19:36:49 ID:8m8LyL5s] Is > 0 だった
696 名前:名無し~3.EXE mailto:sage [2009/11/25(水) 14:37:08 ID:vRBOSPMC] エクスプローラの"ファイル名でソート"と同じ規則でソートする方法はありませんか エクスプローラの表示だと あ,txt ア,txt い,txt イ,txt wshでファイルリストを出力すると あ,txt い,txt ア,txt イ,txt となってしまいます
697 名前:名無し~3.EXE mailto:sage [2009/11/25(水) 14:45:05 ID:QJTE9W/a] scripting.cocolog-nifty.com/blog/2007/12/post_3680.html
698 名前:名無し~3.EXE mailto:sage [2009/11/25(水) 23:51:49 ID:vRBOSPMC] >697にある三番目のスクリプトをJscriptに書き換えたけどうまく動きません。添削をお願いします。 for文のループが実行されません。 FolderName="フルパス"; var fso=new ActiveXObject("Scripting.FileSystemObject"); var ie=GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}"); ie.Navigate(FolderName); do {WScript.Sleep(100);} while ((ie.Busy) || (ie.ReadyState!=4)); var Folder=ie.Document.Folder; for (var i=0; i < Folder.Count; i++){ var FolderItem=Folder.Items(i); if (FolderItem.Type=="ファイル フォルダ"){ if(toLowerCase(fso.GetExtensionName(FolderItem.Path))=="txt"){ WScript.Echo(fso.GetFileName(FolderItem.Path)); } } } //ie.Quit;//エラーが出る
699 名前:名無し~3.EXE mailto:sage [2009/11/25(水) 23:59:57 ID:TDrkyoKp] Document.Folderで手に入るのがコレ ttp://msdn.microsoft.com/en-us/library/bb787868.aspx Countというプロパティは無い Itemsメソッドは引数を取らない
700 名前:名無し~3.EXE mailto:sage [2009/11/26(木) 00:46:36 ID:O7jscl7L] プロパティとメソッドの区別がついてないんじゃないの?
701 名前:名無し~3.EXE mailto:sage [2009/11/26(木) 21:57:55 ID:N/S5kwhR] 本質的な違いはない
702 名前:名無し~3.EXE mailto:sage [2009/11/27(金) 00:40:22 ID:ZUJwRQCx] //ie.Quit;//エラーが出るだろぼけ
703 名前:名無し~3.EXE mailto:sage [2009/11/28(土) 23:53:27 ID:oniuazYX] だまれクズ豚
704 名前:名無し~3.EXE mailto:sage [2009/11/29(日) 13:26:33 ID:0uSg2Cxv] VBScriptとJScriptの区別がついてないんじゃないの?
705 名前:名無し~3.EXE mailto:sage [2009/11/29(日) 20:55:52 ID:0uSg2Cxv] シンタクス以外に本質的な違いはない
706 名前:名無し~3.EXE mailto:sage [2009/11/30(月) 18:37:23 ID:xUEhOJNz] 動詞と名詞の区別がついてないんじゃないの?
707 名前:名無し~3.EXE mailto:sage [2009/12/01(火) 22:01:40 ID:yDXwDcOy] Cscriptで起動したスクリプトからコンソールアプリケーションを起動した場合に その標準出力をスクリプトで受け取るような事ってどうやっても無理なんでしょうか?
708 名前:名無し~3.EXE mailto:sage [2009/12/01(火) 22:11:59 ID:lsMwusSy] >>707 関係ないけどWindows3.1のころは「ヘルプのヘルプ」ってのがあった。 最近は初心者切捨てでかわいそうだね。
709 名前:名無し~3.EXE mailto:sage [2009/12/01(火) 22:12:48 ID:HwFSNddt] どうやってもってなんか極めて困難かであるかのように WshScriptExec使えばいいっしょ
710 名前:名無し~3.EXE mailto:sage [2009/12/01(火) 22:13:19 ID:WdXqZ7eU] >>708 いまだにPC初心者っているんだな。全国民に行き渡ったと思ってたぜ。
711 名前:名無し~3.EXE mailto:sage [2009/12/01(火) 23:45:51 ID:bXIPT5f9] 誰に教わるでもなくいきなり車ができたり 英語が話せたり そんなすごい人がいたら教えてください
712 名前:名無し~3.EXE mailto:sage [2009/12/02(水) 10:56:22 ID:ZUy7XsN4] 単数と複数の区別がついてないんじゃないの?
713 名前:名無し~3.EXE [2009/12/03(木) 16:49:20 ID:rN3MSJ1f] hta アプリケーションのウインドウに、ファイルのドラッグドロップって出来ましたっけ? ドラッグドロップしたファイルのパスをhtaで利用したいんですが。 可能ならどうやってイベントを拾えばいいですか?。
714 名前:名無し~3.EXE mailto:sage [2009/12/03(木) 20:44:12 ID:ThJuUPaj] すれっち pc12.2ch.net/test/read.cgi/tech/1220874815/
715 名前:名無し~3.EXE mailto:sage [2009/12/05(土) 17:35:36 ID:/VdO4Ha3] XPとWScriptのJscriptで、manifest使ってレジストリ登録なしでAutoItXが使えたんでメモしとく。 まずWScript.ExeとCScript.Exeをコピーして適当なフォルダに入れとく。 AutoItX3.dllも同じところに入れとく。 同じ場所にテキストファイルを3つ作る。 wscript.exe.manifest cscript.exe.manifest AutoIt.AutoItX3.manifest
716 名前:名無し~3.EXE mailto:sage [2009/12/05(土) 17:36:31 ID:/VdO4Ha3] AutoIt.AutoItX3.manifest の中身 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.1" processorArchitecture="x86" name="AutoIt.AutoItX3" type="win32" /> <file name="AutoItX3.dll"> <typelib tlbid="{f8937e53-d444-4e71-9275-35b64210cc3b}" version="1.0" helpdir="" resourceid="0" flags="HASDISKIMAGE" /> <comClass clsid="{1a671297-fa74-4422-80fa-6c5d8ce4de04}" threadingModel="Apartment" tlbid="{f8937e53-d444-4e71-9275-35b64210cc3b}" progid="AutoItX3.Control.1" description="AutoItX3 Class" /> </file> </assembly>
717 名前:名無し~3.EXE mailto:sage [2009/12/05(土) 17:37:29 ID:/VdO4Ha3] wscript.exe.manifest の中身 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.1" processorArchitecture="x86" name="AutoIt.wscript.exe" type="win32" /> <description>WScript.exe</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="AutoIt.AutoItX3" version="1.0.0.1" processorArchitecture="x86" /> </dependentAssembly> </dependency> </assembly>
718 名前:名無し~3.EXE mailto:sage [2009/12/05(土) 17:38:19 ID:/VdO4Ha3] cscript.exe.manifest の中身 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.1" processorArchitecture="x86" name="AutoIt.cscript.exe" type="win32" /> <description>WScript.exe</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="AutoIt.AutoItX3" version="1.0.0.1" processorArchitecture="x86" /> </dependentAssembly> </dependency> </assembly>
719 名前:名無し~3.EXE mailto:sage [2009/12/05(土) 17:43:52 ID:/VdO4Ha3] // この test.js をコピーしたWScript.exeにドラッグして実行させると、画面の中央にツールチップが現れるはず。 // スクリプト起動時にこっちのWScript.Exeを選ぶスクリプト書いておけば、ポータブルでもAutoItXの機能が使える。 oAutoIt = new ActiveXObject( "AutoItX3.Control.1" ); oAutoIt.ToolTip("WSH★★★こんばんみ★★★Part7",500,500); WScript.Echo(100); oAutoIt.Sleep(3000); WScript.Echo(200);
720 名前:名無し~3.EXE mailto:sage [2009/12/05(土) 18:51:16 ID:/VdO4Ha3] マニュフェストは下のように1つにまとめても動いたわw。分けなくてもよかったようだ。 wscript.exe.manifest の中身 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="wscript.exe" version="1.0.0.0" type="win32" /> <file name="AutoItX3.dll"> <typelib tlbid="{f8937e53-d444-4e71-9275-35b64210cc3b}" version="1.0" helpdir="" resourceid="0" flags="HASDISKIMAGE" /> <comClass clsid="{1a671297-fa74-4422-80fa-6c5d8ce4de04}" threadingModel="Apartment" tlbid="{f8937e53-d444-4e71-9275-35b64210cc3b}" progid="AutoItX3.Control.1" description="AutoItX3 Class" /> </file> </assembly>
721 名前:名無し~3.EXE mailto:sage [2009/12/05(土) 19:26:28 ID:/VdO4Ha3] // sample自動的に隣のマニフェスト付きCscriptExeを使うmanifest.js var s="cscript.exe.manifest と Cscript.Exe と \n"; s+="AutoItX3.dll が揃ったフォルダに、このスクリプトを置いておく。\n"; s+=" もしAutoItX3が登録されていればシステムの Cscript.Exe を使ったまま処理は続行する。\n"; s+=" 無ければ、このスクリプトは一旦終了し、\n"; s+="隣にある Cscript.Exe を使って起動する。引数も引き継ぐ。"; new ActiveXObject("WScript.Shell").Popup(s,0,'test',0); var sArg='';for(var iii=0;iii<WScript.Arguments.length;iii++){sArg+=" "+"\""+WScript.Arguments(iii)+"\"";};;; try{oAutoIt = new ActiveXObject( "AutoItX3.Control.1" );}catch(e){ new ActiveXObject('WScript.Shell').Run(new ActiveXObject('Scripting.FileSystemObject').GetParentFolderName(WScript.ScriptFullName) + "\\" + 'cscript.exe //E:Jscript //nologo ' + "\"" + WSH.ScriptFullName + "\"" + ' ' + sArg,1,0);;; WScript.Quit();}; oAutoIt.ToolTip("WSH★★★こんばんみ★★★Part7",500,500); var n=3000; WScript.Echo("AutoItXのSleepを使ってみる " + n + " ミリ秒"); oAutoIt.Sleep(n); WScript.Echo(3000); oAutoIt.Sleep(3000);
722 名前:名無し~3.EXE mailto:sage [2009/12/05(土) 23:46:56 ID:/VdO4Ha3] とりあえず、ポータブルのJScriptでもAutoItXでアプリ制御、SeraphyScriptDialogでGUIフォーム、SFCminiでWin32API、いくつかは動いたんで最後のまとめ。 cscript.exe.manifest の中身。 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="cscript.exe" version="1.0.0.0" type="win32" /> <file name="scrdlg.dll"> <comClass clsid="{86893BFE-A779-4685-8FC9-D63C8827C4C9}" threadingModel="Apartment" tlbid="{86893BFE-A779-4685-8FC9-D63C8827C4C9}" progid="SeraphyScriptDialog" description="scrdlg Class" /> </file> <file name="AutoItX3.dll"> <typelib tlbid="{f8937e53-d444-4e71-9275-35b64210cc3b}" version="1.0" helpdir="" /> <comClass clsid="{1a671297-fa74-4422-80fa-6c5d8ce4de04}" threadingModel="Apartment" tlbid="{f8937e53-d444-4e71-9275-35b64210cc3b}" progid="AutoItX3.Control.1" description="AutoItX3 Class" /> </file>
723 名前:名無し~3.EXE mailto:sage [2009/12/05(土) 23:48:35 ID:/VdO4Ha3] つづき、AMD は sfcminii.dll を sfcminia.dll に変える。 <file name="sfcminii.dll"> <comClass clsid="{1303599D-3028-4EAC-97BB-D9370B88B2DA}" threadingModel="Apartment" tlbid="{1303599D-3028-4EAC-97BB-D9370B88B2DA}" progid="SfcMini.DynaCall" description="sfcminii Class" /> <comClass clsid="{F5B4E399-F606-41FC-B049-D247156F8F3E}" threadingModel="Apartment" tlbid="{F5B4E399-F606-41FC-B049-D247156F8F3E}" progid="SfcMini.Structure" description="sfcminii Class" /> <comClass clsid="{4D2C1575-A55B-418F-A25C-ECEB45FC5FD2}" threadingModel="Apartment" tlbid="{4D2C1575-A55B-418F-A25C-ECEB45FC5FD2}" progid="SfcMini.MachineCode" description="sfcminii Class" /> <comClass clsid="{DC430254-87C0-4800-8C45-8B0C2BED1A53}" threadingModel="Apartment" tlbid="{DC430254-87C0-4800-8C45-8B0C2BED1A53}" progid="SfcMini.ClassEx" description="sfcminii Class" /> <comClass clsid="{6F5E1721-E8A4-48BB-B29F-A549EDA82CC7}" threadingModel="Apartment" tlbid="{6F5E1721-E8A4-48BB-B29F-A549EDA82CC7}" progid="SfcMini.tools" description="sfcminii Class" /> </file> </assembly>
724 名前:名無し~3.EXE mailto:sage [2009/12/07(月) 00:20:21 ID:nBnCs4W2] //やべえ。銚子に乗って書いたが、設定がうまく遺憾人は無限ループになる可能性がある。 //1回で打ち切りにするテスト用スクリプトをカキコ。スマン。 // sample自動的に隣のマニフェスト付きCscriptExeを使うmanifest無限ループ回避.js var s="cscript.exe.manifest と Cscript.Exe と \n"; s+="AutoItX3.dll が揃ったフォルダに、このスクリプトを置いておく。\n"; s+=" もしAutoItX3が登録されていればシステムの Cscript.Exe を使ったまま処理は続行する。\n"; s+=" 無ければ、このスクリプトは一旦終了し、\n"; s+="隣にある Cscript.Exe を使って起動する。引数も引き継ぐ。"; var objshl=new ActiveXObject('WScript.Shell'); if(objshl.Environment('process').item('senvstopscript')!=1){ try{oAutoIt = new ActiveXObject( 'AutoItX3.Control.1' );}catch(e){ objshl.Popup("この後RUNする\n\n"+s,0,'test',0); var sArg='';for(var iii=0;iii<WScript.Arguments.length;iii++){sArg+=" "+"\""+WScript.Arguments(iii)+"\"";};;; objshl.Environment('process').item('senvstopscript')=1; objshl.Run(new ActiveXObject('Scripting.FileSystemObject').GetParentFolderName(WScript.ScriptFullName)+ "\\" + 'cscript.exe //E:Jscript //nologo ' + "\"" + WSH.ScriptFullName + "\"" + ' ' + sArg,1,0);;; WScript.Quit();}; }; WScript.Echo(s,0,'test',0); WScript.Sleep(2000); oAutoIt = new ActiveXObject( 'AutoItX3.Control.1' ); var n=3000; oAutoIt.ToolTip("AutoItXのSleepを使ってみる " + n + " ミリ秒",500,500); oAutoIt.Sleep(n);
725 名前:名無し~3.EXE mailto:sage [2009/12/07(月) 01:28:35 ID:WsLj3zGr] ウチでも動いた。 また入れなおしたけど。
726 名前:名無し~3.EXE mailto:sage [2009/12/09(水) 15:51:14 ID:LISCbfE6] 面白そうだからPortableSleipnir、LunaPocketでも試したがmanifestでは駄目だった。 でPortableSleipnirでScriptのほうに手を加えて、 起動するときにmanifest付きのwscript.exeから 起動しなおすようにしたらSleipnirやAutoItXのオブジェクトも使えた。 もちPortableはsleipnirからxmlをコピーしてメニューにスクリプトが出るようにしてからだがな。
727 名前:名無し~3.EXE mailto:sage [2009/12/09(水) 15:54:58 ID:LISCbfE6] // pWScriptExeでパスを決める。 // もしくはbinフォルダにマニフェストとDLL、exeを入れる。 objfso=new ActiveXObject("Scripting.FileSystemObject"); objshl=new ActiveXObject("WScript.Shell"); pnir = new ActiveXObject("Sleipnir.API"); if(objshl.Environment("process").item("senvstopscript")!=1){ //wscript.exeのパスを決め内する場合 pWScriptExe="U:\\wscript.exe"; //もしbinフォルダにwscript.exeがあればそれを使う。 if(objfso.FileExists(pnir.AppPath + "wscript.exe")){ pWScriptExe=pnir.AppPath + "wscript.exe"; }; objshl.Environment("process").item("senvstopscript")=1; objshl.Run("\"" + pWScriptExe + "\"" + " //E:Jscript //nologo " + "\"" + WSH.ScriptFullName + "\"" ,1,0);;; WScript.Quit(); } str = pnir.AddressBarString; str+="\n"+pnir.AppPath; WScript.Echo(str); WScript.Echo("test"); WScript.Sleep(2000); oAutoIt = new ActiveXObject( "AutoItX3.Control.1" ); var n=3000; oAutoIt.ToolTip("AutoItXのSleepを使ってみる " + n + " ミリ秒",500,500); oAutoIt.Sleep(n);
728 名前:名無し~3.EXE mailto:sage [2009/12/09(水) 19:38:19 ID:vX1/pBxQ] Luna4Pocket、 PortableSleipnir、 どっちでも外部のDLLは使える。 Luna.exeと同じ場所に、wscript.exe、 wscript.exe.manifest、 AutoItX3.dll、 etc dll を 置いておけばこっちの wscript.exe を優先するんで Dll も動く。
729 名前:名無し~3.EXE mailto:sage [2009/12/09(水) 22:39:03 ID:Yhsi9HCt] いつの間にかJScriptのファイルのアイコンが白地に箱のアイコン になってたんですが、デフォルトの黄色のパンチカード?のアイコンに戻し たいです どうしたらいいですか? プロパティの関連付けを確認すると「Console Based Script Host」に なってるんで関連付けは間違っていないと思います。
730 名前:名無し~3.EXE mailto:sage [2009/12/09(水) 22:53:17 ID:5hilr/mv] 普通Console Based(cscript.exe)じゃなくてWindows Based(wscript.exe)に関連づけられてるはずだが?
731 名前:名無し~3.EXE mailto:sage [2009/12/10(木) 13:50:34 ID:Mq0kj3tj] regsvr32 wshext.dll
732 名前:名無し~3.EXE mailto:sage [2009/12/11(金) 19:38:39 ID:sMPK5/7s] どうでもいいが、むだ口さんの掲示板が宣伝ばっかりだ。
733 名前:名無し~3.EXE mailto:sage [2009/12/12(土) 19:42:43 ID:ZndgYDwX] 生活かかってんだろ?買ってやれよ
734 名前:名無し~3.EXE mailto:sage [2009/12/15(火) 00:57:14 ID:XWk31MKA] wscript.exe.manifest basp21.dll capicom.dllの一部が動きました。全部試してません。 ポータブル環境やエディタでの暗号処理も簡単そうです。 ttp://www.microsoft.com/downloads/details.aspx?FamilyID=860ee43a-a843-462f-abb5-ff88ea5896f6&displaylang=ja msi を解凍すればcapicom.dll が入手できます。 msiexec /a capicom_dc_sdk.msi targetdir="z:\hogehoge" /qn <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="wscript.exe" version="1.0.0.0" type="win32" /> <file name="capicom.dll"> <typelib tlbid="{BD26B198-EE42-4725-9B23-AFA912434229}" version="1.0" helpdir="" /> <comClass clsid="{A440BD76-CFE1-4D46-AB1F-15F238437A3D}" threadingModel="Apartment" tlbid="{BD26B198-EE42-4725-9B23-AFA912434229}" progid="CAPICOM.EncryptedData.1" description="CAPICOM.EncryptedData Class" /> </file> <file name="Basp21.dll"> <typelib tlbid="{607E85A1-3B9C-11D1-863C-00000E4E0AD6}" version="1.0" helpdir="" /> <comClass clsid="{5A99A823-3B97-11D1-863C-00000E4E0AD6}" threadingModel="Apartment" tlbid="{607E85A1-3B9C-11D1-863C-00000E4E0AD6}" progid="Basp21.1" description="Basp21 Class" /> </file>
735 名前:名無し~3.EXE mailto:sage [2009/12/15(火) 01:10:52 ID:XWk31MKA] objBasp=new ActiveXObject('basp21.1'); sOriginal='basp21.1こんばんは'; sEnc = objBasp.Base64(sOriginal,0); sDec = objBasp.Base64(sEnc,1); WScript.Echo(sOriginal +"\n"+ sEnc +"\n"+ sDec); sOriginal = 'CAPICOM.EncryptedData.1こんばんは'; sKey='Password'; objCapicom = new ActiveXObject('CAPICOM.EncryptedData.1'); objCapicom.SetSecret(sKey); objCapicom.Content = sOriginal; sEnc = objCapicom.Encrypt().replace(/\s$/,''); objCapicom.Decrypt(sEnc); sDec = objCapicom.Content; WScript.Echo(sOriginal + "\n" + sKey +"\n" + sEnc + "\n" + sDec);
736 名前:名無し~3.EXE mailto:sage [2009/12/16(水) 10:27:34 ID:BQc3xGqm] すみません。教えてください。 >cscript.exe hoge.vbs としてvbsを実行した場合、hoge.vbsで実行時エラーが発生した場合に cscript.exeが終了コード0以外を返すようにするには どうしたらよいでしょうか? よろしくお願いいたします。
737 名前:名無し~3.EXE mailto:sage [2009/12/16(水) 12:02:16 ID:0CWXvG5X] WScript.Quit 1
738 名前:名無し~3.EXE mailto:sage [2009/12/16(水) 12:35:25 ID:BQc3xGqm] >>737 ありがとうございます。 やはりvbs側の修正が必要なんですね。
739 名前:名無し~3.EXE mailto:sage [2009/12/18(金) 00:03:33 ID:hmFH5f4H] on error ?
740 名前:名無し~3.EXE [2009/12/18(金) 07:19:38 ID:5pMA288l] こんにちは テキストファイルから文字列の抽出をしたくて、できる方法を探してます。 やりたいのは 1.アプリケーションA.exeを終了させる 2.B.txtの「通信」という語句がある行の、""に囲まれた文字列を 抽出し、C.txtの末尾に追加する 3.B.txtの内容を全消去し保存する 4.10秒後にA.exeを再起動する という作業です。これをWSHでやることは可能でしょうか? 宜しかったら、どういうコマンドを使えばできるかざっとでも教えて頂けないでしょうか?
741 名前:名無し~3.EXE mailto:sage [2009/12/18(金) 07:28:48 ID:kF8+V9so] まず服を脱ぎます
742 名前:名無し~3.EXE mailto:sage [2009/12/18(金) 07:30:33 ID:Dsca2BJb] 次に綿棒を用意します
743 名前:740 [2009/12/18(金) 11:20:12 ID:5pMA288l] Set fs = WScript.CreateObject("Scripting.FileSystemObject") Set f = fs.OpenTextFile("A.log") Set B = fs.OpenTextFile("B.lst", 8, False) Do Until f.AtEndOfStream l = f.ReadLine If InStr(l, "達成") <> 0 then ret = ret & l & vbCrLf Loop f.Close B.Write ret B.Close とりあえず、行を抽出することはできたんだけど、行の中の""に囲まれた部分 だけを抽出するにはどうしたらいい? ∧__∧ (´・ω・` ) (⊃⌒*⌒⊂) /__ノωヽ__)
744 名前:740 [2009/12/18(金) 12:32:41 ID:5pMA288l] Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator") Set Service = Locator.ConnectServer Set oProcs = Service.ExecQuery _ ("Select * From Win32_Process Where Description=""A.exe""") For Each oProc In oProcs oProc.Terminate Next Set fs = WScript.CreateObject("Scripting.FileSystemObject") Set f = fs.OpenTextFile("B.txt") Set B = fs.OpenTextFile("C.txt", 8, False) Do Until f.AtEndOfStream l = f.ReadLine If InStr(l, "通信") <> 0 then ret = ret & l & vbCrLf Loop f.Close B.Write ret B.Close fs.DeleteFile "B.txt" fs.CreateTextFile "B.txt" WScript.Sleep 10000 Set shell = WScript.CreateObject("WScript.Shell") shell.Run "A.exe", 3, true いろいろつぎはぎしてここまでできたんですが、""の中だけを抽出する方法が分からない... テキストの内容のクリアの方法も分からなかったので消去+新規作成で代用しました(;^ω^) ""の中だけの抽出はどうやったらいいでしょう?
745 名前:740 mailto:sage [2009/12/18(金) 15:18:42 ID:5pMA288l] と、思ってたら、できちゃった。。。。 言われたのは「服を脱いで綿棒用意しろ」とだけか。。。。ほんと有益なスレだtったぜwwww
746 名前:名無し~3.EXE [2009/12/18(金) 15:42:26 ID:HOC6ISom] 用意したんだろ?( ´∀`)σ)Д`)
747 名前:名無し~3.EXE [2009/12/18(金) 16:57:51 ID:TYK9wCb8] >>1 はい、使ってます。
748 名前:740 mailto:sage [2009/12/18(金) 17:48:38 ID:5pMA288l] 作ったvbsファイルを直接クリックすると実行できるんですが、 「ファイル名を指定して実行」から、wscript.exe "パス\ファイル名.vbs" で実行すると、「行17 ファイルが見つかりません 実行時エラー」とかいうのが出てきます。 なんで????(´・ω・`)
749 名前:名無し~3.EXE mailto:sage [2009/12/18(金) 18:33:21 ID:JaPpW35G] >>748 カレントディレクトリ
750 名前:740 mailto:sage [2009/12/19(土) 03:55:38 ID:bRRSIC4A] なるほど〜。やっとできたよ〜∩(^ω^)∩バンジャーイ
751 名前:名無し~3.EXE mailto:sage [2009/12/22(火) 19:28:26 ID:BZ2YAM4c] ファイルを削除したいのに、たまーに「ファイルが見つかりません」とか出る... ファイルがあるのに「ない」とか出るのは何故なのかな(#^ω^)ピキピキ ...
752 名前:名無し~3.EXE mailto:sage [2009/12/22(火) 19:51:16 ID:OXMFkspi] パスが違う・カレントディレクトリが違う
753 名前:名無し~3.EXE mailto:sage [2009/12/22(火) 20:13:09 ID:qKuvUzNL] If fso.FileExist(file) Then fso.DeleteFile file
754 名前:名無し~3.EXE mailto:sage [2009/12/22(火) 20:28:03 ID:6G2Mlzun] こういう奴がスクリプトでファイル削除して惨事を招くんだろうな。
755 名前:名無し~3.EXE mailto:sage [2009/12/22(火) 22:36:45 ID:BZ2YAM4c] WSHの実行履歴ってどっかで見れないかな... なにやら3つぐらい同時に実行されてるぽい。二重起動防止が役にたってなひよ(-_-) …
756 名前:名無し~3.EXE mailto:sage [2009/12/22(火) 22:42:36 ID:qKuvUzNL] wscript.shell logevent
757 名前:名無し~3.EXE mailto:sage [2009/12/22(火) 23:28:39 ID:BZ2YAM4c] ありがとん。wshっていろいろできるんだねえ。おもしろくなってきたよ
758 名前:名無し~3.EXE mailto:sage [2009/12/23(水) 00:53:33 ID:9A0fdYTt] これ絶対おっさんだよな。 なのに平日(12/18)一日中 2ch してるとか、変な顔文字とか・・・・
759 名前:名無し~3.EXE mailto:sage [2009/12/23(水) 03:20:36 ID:+DPP5Qk7] 役に立たないくせにつまんない突っ込みばっかりするのなオマエwwwwwwwwwwwwwwww( ゜д゜)、ペッ
760 名前:名無し~3.EXE mailto:sage [2009/12/23(水) 08:20:58 ID:OOKcm36S] ニートのキモッサンきめえw
761 名前:名無し~3.EXE mailto:sage [2009/12/23(水) 09:12:01 ID:PXJi6MOV] >>759 レベル低すぎ ここはググって出てくるような事を書き込むスレじゃないんで、お引取りください
762 名前:名無し~3.EXE mailto:sage [2009/12/23(水) 15:19:38 ID:HBBFKBYL] >>761 では、レベルの高い話をハイどうぞ↓
763 名前:名無し~3.EXE mailto:sage [2009/12/24(木) 14:14:07 ID:i6+2D8Nd] DOSの業務用ソフトをWSHで動かすことはできますか?
764 名前:名無し~3.EXE mailto:sage [2009/12/24(木) 14:26:52 ID:6hCJv+1N] バッチファイルの代わりにはなるだろうけど、それ以上は期待するだけ無駄
765 名前:名無し~3.EXE mailto:sage [2009/12/24(木) 20:21:32 ID:Q7u0QeqE] WSHからアプリをIntegrity Level Lowで動かすことはできますか?
766 名前:名無し~3.EXE mailto:sage [2009/12/24(木) 22:17:35 ID:bSJyJDZo] >>765 プロセスの優先度のことならstart /lowでいいだろ。 WSHでもできないことはないけどWin2000じゃ使えない。
767 名前:名無し~3.EXE mailto:sage [2009/12/25(金) 01:13:25 ID:9mIsp81e] >>765 気になったので、ググってみた。何とかなりそうだ。 ttp://scripting.cocolog-nifty.com/blog/2009/10/run-application.html
768 名前:名無し~3.EXE mailto:sage [2009/12/27(日) 23:24:47 ID:j8YGjmed] テキストファイルの最後の2行を読み込みたい場合に どういうふうに処理するのがスマートんなんでしょうか? ReadLineで始めの行から 常に二行分を変数に避難させながら最後の行まで読み込む 一度に全部読んでからSplitで分割 最初に一度すべてを読み込んで行数を調べてから ReadLineで最後の2行まで読み飛ばして取得 と、考えてみたのですがどれもなんか無駄な動きがあるような気がして
769 名前:名無し~3.EXE mailto:sage [2009/12/27(日) 23:35:30 ID:Szvprv8w] 悩んでる時間とスクリプトの処理時間を天秤にかけて見るといいんじゃないだろうか。
770 名前:名無し~3.EXE mailto:sage [2009/12/27(日) 23:40:04 ID:mNLBddrF] 現在行の内容を格納する変数(X)と、1個前の行の内容を格納する変数(Y)を用意。 Xの内容をYにコピーしてから新しい行を読む。
771 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 00:06:10 ID:r7K75E4h] >>769 実際にはもう問題なく動くスクリプトは作れているんだけど ふと、使い慣れてる人はもっといい方法とか 細かい処理速度やメモリの使い方?とかの違いとかその辺も考えて どういう方法が一番いいかとか知ってるんじゃないかな、と思って >>770 今はちょうどその方法でやってるんですが 最後の2行だけほしいのに、テキストの先頭からずっとその作業をやるのは 最善の方法なのだろうか?と不安になってしまって
772 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 00:17:00 ID:0M12J26z] 全然試しもしないで想像だけで書いてるけど 同じテキストファイルを2つのオブジェクトとして開いて 片方を一回だけSkipLineで先行させてからループで先行してる方のAtEndOfLineがtrueになるまで SkipLineで飛ばすとか。
773 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 00:19:26 ID:KqC6OI6J] 実行行数が少ないほうが速いよ。
774 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 00:43:14 ID:5FOgda0r] ファイルが巨大じゃなきゃ全部読み込んで、 Ar=s.split("\n"); で改行で分割して、 でAr.length>=2で2行以上の場合と、 そうでない場合で処理を分けるのが簡単だと思った。 最後の行とそのまえってAr[Ar.length-1]とAr[Ar.length-2]だし。
775 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 01:01:40 ID:duOTUlKt] >>771 FileSystemObject (テキスト ファイルの操作に使用するスクリプティング オブジェクト) が、前方という、1 つの方向だけを認識している点です。 ファイルの先頭から開始して、ファイルの最後に向かって進む必要があります。 別の開始場所を指定することも、最後から先頭に向かって後方から読み取ることもできません。 www.microsoft.com/japan/technet/scriptcenter/resources/qanda/mar06/hey0303.mspx 最終行だけ欲しいのに先頭から検索って無駄じゃねっていう意見に、一万行有ったってすぐに終わるって返しのあるページがあったはずだけど見つからなかった
776 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 01:09:10 ID:Z+1i2G4O] アルゴリズム的にスマートに書きたいという欲求もあるもんだ 仕事でなければそれを追求するのもいい勉強になるしさ 時間的制約を考えれば769のいうことも一理あるというところだね
777 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 01:21:45 ID:0M12J26z] バイト単位で読む場所わかってりゃadodb.streamとかでもいいんだろうけど
778 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 01:51:45 ID:TV4cU58X] 処理するデータが何十万件もあったらかなり違うけどな 少なくとも常にアルゴリズムを意識してるやつとそうでないやつでは 数年で大きな差がつくよ
779 名前:768 mailto:sage [2009/12/28(月) 03:33:13 ID:r7K75E4h] とりあえず単純に速度的な比較をしてみようと 300万行のテキストで試してみたところ自分のマシンでは >>770 さんの方法で 35秒前後 >>772 さんの方法で 45秒前後 1度SkipLineで行数を調べてからもう一度開き最後の2行だけ取得で 55秒前後 >>774 さんの方法は、やはり大きなファイルには向いていないようで 10分以上たっても処理が終了する気配がありませんでした >>775 そういうものなんですね 速度的にも普通に読み込むのが一番早いようだし 公式にここまではっきり書いてあると、この方法でいいのだと安心出来ました どうもありがとうございました
780 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 04:50:11 ID:PyWDz6+t] 300万行とか膨大な桁を前提にするなら、もっと効率的な方法はあると思うけどね。
781 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 06:35:12 ID:B5iJEHMd] たとえば?
782 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 10:49:07 ID:2hmBKvKS] tailコマンドをwshで叩く
783 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 12:01:36 ID:FVimMGRy] 300万行試してみた。1行は小さめ。 >>770 で10秒くらい。 ADODB.Streamでファイルの最後から1文字ずつ読んで、 2行確保したら終わり、だと一瞬だった。
784 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 12:10:56 ID:rMWa9Z10] tailでも0.2秒だったわ。>>783 おおざっぱでいいからサンプルで教えてくれ。 objexec = objshl.Exec("\"" + objfso.GetParentFolderName(WSH.ScriptFullname)+"\\tail.exe" + "\"" + " -2 \"" + filetxt +"\""); do{WScript.Sleep(100);}while(objexec.Status==0);sret=objexec.stdout.ReadAll();WScript.Echo(sret);
785 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 18:00:41 ID:FVimMGRy] var start = new Date().getTime(); var filename = 'list.txt'; var Stream = WScript.CreateObject('ADODB.Stream'); var c, text = '', lf = 0; Stream.Type = 2; Stream.Charset = 'Shift_JIS'; Stream.Open(); Stream.LoadFromFile(filename); var i = Stream.Size - 1; read : for ( ; i != -1; i-- ) { Stream.Position = i; c = Stream.ReadText(1); if ( c == '\r' ) continue; if ( c == '\n' ) { switch ( lf ) { case 0 : break; case 1 : last1 = text; text = ''; break; case 2 : last2 = text; break read; } lf++; } else { text = c + text; } } Stream.Close(); WScript.Echo(new Date().getTime() - start + 'ミリ秒'); WScript.Echo(last2); WScript.Echo(last1);
786 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 18:06:17 ID:FVimMGRy] 改行を色々対応させると更にめんどいね。 普通に1行ずつ読んで負担にならない程度のファイルサイズなら、 保守性とかでそっちのがいいよ。
787 名前:名無し~3.EXE mailto:sage [2009/12/28(月) 18:58:36 ID:rMWa9Z10] こりゃ早いわ。 これくらい早いと 後ろから大雑把に500バイト読み込んで 適当な処理してもいいかもしんないね。 非常に参考になった。ありがと。 var i = Stream.Size - 500; Stream.Position = i; sAr=Stream.ReadText(500).split("\n"); Stream.Close(); WScript.Echo("-2 = " + sAr[sAr.length-3] +"\n" + "-1 = " + sAr[sAr.length-2] +"\n" + " 0 = " + sAr[sAr.length-1] +"\n" + (new Date().getTime() - start) + 'ミリ秒');
788 名前:名無し~3.EXE mailto:sage [2010/01/01(金) 16:46:22 ID:6ywjnZF6] 実行一つでマルチスレッドで通信したい。 xmlhttp.open("POST", "〜〜", false); で第3引数をfalseにすると xmlhttp.onreadystatechangeで受けるときもあるが、受けないときもあって終了してしまう。 第3引数をtrueにすると非同期になるらいしけど、 xmlhttp.onreadystatechangeで受ける前に処理が終わって終了してしまう。 どうしたらいいんだろう。WSHでtrueにする使い方ってもしかして使えない?
789 名前:名無し~3.EXE mailto:sage [2010/01/01(金) 18:43:45 ID:NNSFaVEC] WSHでマルチスレッドはちょっと難しいんじゃないすか? スクリプトを同時に複数起動する(マルチプロセス)なんて のは何ともないけど、1つのプロセスでスレッドを複数 立ち上げたいならPerlの方がいいと思いますけど。
790 名前:名無し~3.EXE mailto:sage [2010/01/01(金) 19:55:56 ID:uK4WgJZ0] wsh で使えるかどうかは知らないけど、 マルチスレッドライブラリ Concurrent.Thread とか。
791 名前:名無し~3.EXE mailto:sage [2010/01/01(金) 20:46:14 ID:U1BEAdsB] マルチスレッドが必要?
792 名前:名無し~3.EXE mailto:sage [2010/01/02(土) 01:36:42 ID:ao/59EuU] そうだな、我慢するか。ありがと
793 名前:名無し~3.EXE mailto:sage [2010/01/07(木) 01:18:14 ID:GcxiHLHM] >788 MSDNによると「WScript.Sleepで止めといて、WScript.Quitで抜ければOK」 ttp://msdn.microsoft.com/ja-jp/library/ms974564.aspx
794 名前:名無し~3.EXE mailto:sage [2010/01/07(木) 13:27:44 ID:VssB+QEa] >>788 XHRに限れば 通信完了後にコールバック関数が呼ばれるようにして 通信中にごにょごにょはできるけど、 その落としたデータを処理したいなら 結局は通信完了後じゃないと触れない マルチスレッド以前の話だと思うが
795 名前:名無し~3.EXE mailto:sage [2010/01/12(火) 18:26:19 ID:Dwa4qtcE] echoやpopupでは一つのウィンドウに一つのテキストしか表示できないけれど 一つのウィンドウを使って刻々とテキストを更新して表示する方法はないですか
796 名前:名無し~3.EXE mailto:sage [2010/01/12(火) 18:51:57 ID:3thoTjT8] msagent ie hta inputboxに貼り付け powershell
797 名前:名無し~3.EXE mailto:sage [2010/01/12(火) 21:08:01 ID:6y7tc9j+] コマンドプロンプト(cscript)で動かす
798 名前:名無し~3.EXE mailto:sage [2010/01/12(火) 21:14:39 ID:BzW3pbKY] 自分は拡張子jse、vbeをCscriptで動かすようにしちゃったよ。暗号化なんて使わないし。
799 名前:名無し~3.EXE mailto:sage [2010/01/12(火) 22:04:14 ID:HEnaLojO] ウィンドウ操作系のCOM使えば既存ウインドウのテキスト変更はできるから、 うまく組み合わせればどうにかなるんじゃね。
800 名前:名無し~3.EXE mailto:sage [2010/01/13(水) 02:12:06 ID:3721OXm1] HTAがいちばんかんたん
801 名前:名無し~3.EXE mailto:sage [2010/01/15(金) 19:41:04 ID:TCjMpnYM] ieのstatustextがいちばんかんたん
802 名前:名無し~3.EXE [2010/01/17(日) 10:04:44 ID:Ix5w7yDX] rocketeer.dip.jp/sanaki/free/free42.htm ↑ここにあったスクリプトなんですが、次のように改変して使いたいのですが動きません どこに何が足りないのか、どなたかご教授くださいませ (※ターゲットファイルはUTF-8なのでそのままで保存したいです)
803 名前:名無し~3.EXE [2010/01/17(日) 10:05:26 ID:Ix5w7yDX] Dim FI Dim FO Dim Obj Dim beforeStr Dim afterStr Dim FileName Dim R FileName = "C:\Windows\system.ini" beforeStr = "MailBox" afterStr = "MailBox=d:\mailbox" Set Obj = CreateObject("Scripting.FileSystemObject") Set FI = Obj.OpenTextFile(FileName,1,0) Set FO = Obj.OpenTextFile(FileName & ".bak",2,True,0) While Not FI.AtEndOfStream = True R = FI.ReadLine If Left(R,Len(beforeStr)) = beforeStr Then R = afterStr End If FO.WriteLine (R) Wend FI.Close FO.Close Obj.DeleteFile FileName Obj.MoveFile FileName & ".bak",FileName Set Obj = Nothing Set FI = Nothing Set FO = Nothing Set Param = Nothing WScript.Quit よろしくおねがいします
804 名前:名無し~3.EXE mailto:sage [2010/01/17(日) 13:11:12 ID:sXZj+Qn6] 'FileSystemObjectではUTF-8の読み書き出来ない。ADODBを使う。 '置換は正規表現でやった方が楽。 'C:\Windows\system.iniを読み込んで全置換してout.txtに書き出す例 Dim inStream, outStream Dim regEx, Match, Matches, rep Set inStream = CreateObject("ADODB.Stream") Set outStream = CreateObject("ADODB.Stream") Set regEx = New RegExp regEx.Pattern = "\r\nMailBox" regEx.Global = True regEx.IgnoreCase = False inStream.Open inStream.Charset = "UTF-8" inStream.LoadFromFile "C:\Windows\system.ini" outStream.Open outStream.Charset = "UTF-8" str = inStream.ReadText(-1) rep = regEx.Replace(str,vbCrLf & "MailBox=d:\mailbox") outStream.WriteText rep inStream.Close outStream.SaveToFile "out.txt", 2 outStream.Close
805 名前:名無し~3.EXE mailto:sage [2010/01/17(日) 13:20:08 ID:sXZj+Qn6] さっきのじゃファイル先頭は置換されなかったわ。 > regEx.Pattern = "\r\nMailBox" regEx.Pattern = "(^|\r\n)MailBox" > rep = regEx.Replace(str,vbCrLf & "MailBox=d:\mailbox") rep = regEx.Replace(str,"$1MailBox=d:\mailbox")
806 名前:名無し~3.EXE mailto:sage [2010/01/17(日) 13:35:24 ID:a2aY4UhM] > FileName = "C:\Windows\system.ini" > Set FO = Obj.OpenTextFile(FileName & ".bak",2,True,0) > Obj.DeleteFile FileName > Obj.MoveFile FileName & ".bak",FileName この辺Vista以降ならただの管理者じゃ動かないぞ
807 名前:名無し~3.EXE [2010/01/17(日) 22:34:26 ID:Qq5UNecS] >>804 早速のご教授ありがとうございます。ぶしつけながらもうひとつ質問があるのですが、、、 置換したい文字列はMailbox→Mailbox=d:\mailboxだけでなく "Dustbox"→"Dustbox=e:\dustbox"もあるとしたらどうでしょうか? 3行目から最後尾までコピーしてつなげるのでは二つ目の処理がされませんでした Mailbox用、Dustbox用と二つ用意してやるところを一枚のVBSファイルで行いたいのです 重ね重ねで恐縮ですがよろしくおねがいします
808 名前:名無し~3.EXE mailto:sage [2010/01/17(日) 22:38:34 ID:sXZj+Qn6] 宿題丸投げ? ヘルプのRegExpオブジェクトの所位見ろよ… ぶっちゃけ書き加えるのは2行位だよ。
809 名前:名無し~3.EXE [2010/01/17(日) 23:30:26 ID:Qq5UNecS] >>808 お叱りごもっともです、今Googleで調べてるところです Set regEx2 = New RegExp regEx2.Pattern = "Dustbox" rep2 = regEx2.Replace(str,"$1Dustbox=e:\dustbox") outStream.WriteText rep2 ↑現段階での知識ではこれくらいしか思いつかない・・・ しかも動かないw
810 名前:名無し~3.EXE mailto:sage [2010/01/18(月) 01:16:54 ID:M1A4s4VQ] Replaceに使う正規表現と置換後をArrayに入れておいて回せば追加にも強いだろう てか>>804 だと1行目を置換したいとき無理じゃね Multilineもつけて^$使え
811 名前:名無し~3.EXE mailto:sage [2010/01/18(月) 08:59:33 ID:QEJpbXI0] >>810 そこは>>805 ですぐ修正入れてるって 1レス後位見てくれよ('A`) >>809 新しいオブジェクト作る必要無い。 パターンだけ変えて、前の置換結果にまた置換実行するだけ。 ヘルプ見てメソッドの引数と戻り値の意味位調べようぜ。
812 名前:名無し~3.EXE mailto:sage [2010/01/18(月) 09:05:09 ID:QEJpbXI0] >>810 ちなみにMultilineはVBScriptには無いのよ。
813 名前:名無し~3.EXE mailto:sage [2010/01/18(月) 09:18:09 ID:QEJpbXI0] ごめんあった。ヘルプに無いだけだったorz しかしMSDN見ててもVBScriptに関するmultilineのドキュメント見つからん…
814 名前:名無し~3.EXE mailto:sage [2010/01/18(月) 13:24:49 ID:b+w7CHXS] ttp://msdn.microsoft.com/ja-jp/library/cc427982.aspx
815 名前:名無し~3.EXE [2010/01/18(月) 22:17:50 ID:TN5cwPWT] とりあえず>>804 に↓をつなげることで目的の結果は得られましたので質問を終了したいと思います inStream.Open inStream.Charset = "UTF-8" inStream.LoadFromFile "out.txt" outStream.Open outStream.Charset = "UTF-8" str = inStream.ReadText(-1) regEx.Pattern = "(^|\r\n)DustBox" regEx.Global = True regEx.IgnoreCase = True rep = regEx.Replace(str,"$1Dustbox=e:\dustbox") outStream.WriteText rep inStream.Close outStream.SaveToFile "out.txt", 2 outStream.Close 引数なんかは一応検索で調べたのですが初心者の私としてはこれで上出来としたいところです・・・ これをきっかけにスクリプトの勉強を始めました 今回はおつかれさまでしたw
816 名前:名無し~3.EXE mailto:sage [2010/01/19(火) 02:15:25 ID:wzldd/2a] どうせ勉強するならこっち 3行で書けるよ ttp://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/jan08/hey0117.mspx
817 名前:名無し~3.EXE mailto:sage [2010/01/19(火) 06:44:28 ID:9fLESZf0] >>816 XP以降限定じゃん
818 名前:名無し~3.EXE mailto:sage [2010/01/19(火) 15:02:00 ID:HLTLxXJY] wshだって98以降限定じゃん
819 名前:名無し~3.EXE mailto:sage [2010/01/19(火) 18:37:12 ID:PfKPChkB] >>817 それで困ることはもうほとんどないだろ。
820 名前:名無し~3.EXE mailto:sage [2010/01/19(火) 21:15:45 ID:f0FqX8pV] リネームツールとかUWSCとかでWSH使うから無いと困る。 powershellって他のツールからの利用ってある? 他から利用出来ないなら要らない子なんだが。
821 名前:名無し~3.EXE mailto:sage [2010/01/19(火) 21:26:57 ID:2KRU5yQk] >>820 powershell.exeを起動するだけだぞ?
822 名前:名無し~3.EXE mailto:sage [2010/01/20(水) 12:21:41 ID:nVMFUHnA] wsh(=jscript)ならjavascriptとかぶるとこも多い。 htmlや、ほかの似た文法のScript言語でも応用が利く。 powershellってどこまで他に応用聞くんだろ? 潰しが利くなら覚えよう思うんだが、背中押してくれw
823 名前:名無し~3.EXE mailto:sage [2010/01/20(水) 13:45:02 ID:VX+ha+rY] やめとけ
824 名前:名無し~3.EXE mailto:sage [2010/01/20(水) 23:19:36 ID:wLmohyzc] ADSI(VBS+LDAP)で、ADのコンピュータのoperatingSystemを取って配列にぶっ込んだ後、 For each NextループでwriteLineするとVistaのとこまで来たら落ちる。 データ型はXpもVistaもDirectorystringなんだけど、VistaTMと、TMが右肩に ついてるから? 明日もうちょっと時間取って調べてみるつもり。
825 名前:名無し~3.EXE mailto:sage [2010/01/21(木) 01:20:11 ID:0RCGnhqV] //U
826 名前:名無し~3.EXE mailto:sage [2010/01/21(木) 22:52:28 ID:i5BvdjIA] >>825 ありがとう!今頃なんのことかわかったよ。 とりあえず値はUnicodeだとわかったので、明日また試してみる。
827 名前:名無し~3.EXE [2010/01/22(金) 10:27:46 ID:fhX6W0TP] 潰しとか応用とか互換性とか言ってたら新しい物は生まれて来ない 3行で書けるんなら、3行で書いちまった者勝ちだろ?
828 名前:名無し~3.EXE mailto:sage [2010/01/22(金) 11:21:15 ID:tUYhcla4] PowerShellはごく一部のマニアだけが覚えておけばいい技術。 javascript=jscriptは時間の無い人が、出来るだけ多くのリターンを 得るために使う技術。 極めたい人はPowerShellに時間と金を投資するといい。 きっとそれなりの見返りがあるはず。
829 名前:名無し~3.EXE mailto:sage [2010/01/22(金) 14:52:26 ID:HBcO/6iY] >>768-787 powershellなら1行で書けるのにwshでちんたらやってられるか? get-content $filepath | select-object -Last 2
830 名前:名無し~3.EXE mailto:sage [2010/01/22(金) 16:37:00 ID:v63o3WgQ] ほとんどの環境で標準装備ってのならいいんだけどね。 環境揃えて…っていうんならpowershellじゃなくても他にも色々あるわけだし。
831 名前:名無し~3.EXE mailto:sage [2010/01/23(土) 11:01:56 ID:HKm8upzI] Windows2000あたりから標準装備なら状況はちがったんだろうけどなぁ。残念。
832 名前:名無し~3.EXE mailto:sage [2010/01/23(土) 15:26:57 ID:SgH8LXDj] MS-DOSあたりから標準装備なら状況はちがったんだろうけどなぁ。残念。
833 名前:名無し~3.EXE mailto:sage [2010/01/31(日) 19:53:03 ID:mXB3Bqel] MS-DOSからおなじみのバッチファイルは 今流行ってないけどな。
834 名前: ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ [2010/01/31(日) 22:38:01 ID:CcQLQSx7] ∧_∧ ヒソ… <丶`∀´> ∧_∧ / \/ )<丶`Д´>ウンウン、さすがは我が同胞。鋭いニダ! / \___// \ __ .| | / /\_ _ \ \_____ \  ̄ ̄ ̄ ̄ ̄ ̄(__ノ \ \__) \ ||\ \ .||\ \ ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄ ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
835 名前:名無し~3.EXE mailto:sage [2010/02/03(水) 23:03:12 ID:cRYBsWZ2] msgboxなどのダイアログ系は作業を中断されるので他の方法を考えています マウスポインタのデザイン変更はVBSで可能でしょうか?
836 名前:名無し~3.EXE mailto:sage [2010/02/04(木) 01:40:41 ID:/5PVW4aL] VBAでも使ってろよと思う
837 名前:名無し~3.EXE mailto:sage [2010/02/04(木) 12:07:19 ID:YNWxT22I] D:\aaaaa\bbbbb\cccccを環境変数%abc%として登録して D:\aaaaa\bbbbb\ccccc\d.exe を%abc%にカレントを移してから実行したいのですが CurrentDirectoryで環境変数ってどう使ったらいいのでしょうか?
838 名前:名無し~3.EXE mailto:sage [2010/02/04(木) 12:35:15 ID:/5PVW4aL] 質問の意味が読み取れないけど、 環境変数の展開ならWScript.ShellのExpandEnvironmentStringsとか
839 名前:名無し~3.EXE mailto:sage [2010/02/04(木) 17:30:12 ID:WSu/UyEi] >>837 こういうことでいいのかな Set objShell = WScript.CreateObject("WScript.Shell") Set colEnv = objShell.Environment("User") colEnv.Item("abc") = "D:\aaaaa\bbbbb\ccccc" '環境変数%abc%に登録 objShell.CurrentDirectory = colEnv.Item("abc") '%abc%にカレントを移動 objShell.Run(".\d.exe") 'd.exeを実行
840 名前:名無し~3.EXE mailto:sage [2010/02/04(木) 18:41:05 ID:qbYhdWoJ] >>835 スクリプトの終了は知りたいけどポップアップはうぜぇ、ということ? スクリプトでBeep音を鳴らすことなら出来るよ
841 名前:名無し~3.EXE mailto:sage [2010/02/04(木) 20:33:39 ID:YNWxT22I] >>839 ありがとうございます >objShell.CurrentDirectory = colEnv.Item("abc") '%abc%にカレントを移動 こっちにもItemが必要なことに気が付きませんでした おかげさまで希望の動作になりました >>838 ありがとうございました
842 名前:名無し~3.EXE mailto:sage [2010/02/06(土) 02:11:44 ID:N6DMGysY] >>835 処理中メッセージでぐぐれ maglog.jp/pueblo-del-script/index.php?module=Article&action=ReaderDetail&article_id=133140
843 名前:名無し~3.EXE mailto:sage [2010/02/09(火) 11:20:45 ID:9vTb+OVv] IEを使ってファイル名を得るスクリプトを取りあえず検索して 次のようなのを見つけましたが 初期のフォルダを設定する方法が分かりません どうやったらいいのでしょうか? Set Ie = CreateObject("InternetExplorer.Application") Ie.Navigate( "about:blank" ) Do While Ie.Busy Wscript.Sleep 10 Loop Ie.document.getElementsByTagName("BODY")(0).innerHTML = "<INPUT id=FilePath type=file>" Ie.document.getElementById("FilePath").click if ie.document.getElementById("FilePath").value = "" then WScript.Echo "ファイルは選択されませんでした" WScript.Quit end if WScript.Echo ie.document.getElementById("FilePath").value Ie.Quit Set Ie = Nothing
844 名前:名無し~3.EXE mailto:sage [2010/02/09(火) 16:03:31 ID:8BqPaL3i] 初期のフォルダを設定する type=file でぐぐれ
845 名前:名無し~3.EXE mailto:sage [2010/02/09(火) 17:01:00 ID:8BqPaL3i] どこかに覚えているみたいだから、レジストリを検索して、書き換えれば?
846 名前:名無し~3.EXE mailto:sage [2010/02/09(火) 17:40:17 ID:9vTb+OVv] >844 hta の雛形に付け加えたので異様に長くなってしまったけど 取りあえず初期値がカレントのフォルダになる hta file はできた カレントじゃなくて自由なフォルダになるのはまだ分からない <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>雛形</title> <script Language="VBScript"> <!-- Option Explicit ' 変数に対して、明示的な宣言を強制します。 dim exit_proc_flag initialize_all '**************************** 全体的な構成 ******************************** sub initialize_all exit_proc_flag=false end sub
847 名前:名無し~3.EXE mailto:sage [2010/02/09(火) 17:41:15 ID:9vTb+OVv] '終了処理 sub exit_proc msgbox Document.testfrm.example.value exit_proc_flag=true end sub sub HtaFinalExit if not exit_proc_flag then exit_proc end if end sub Sub all_exit_OnClick '<OK>ボタンのOnClickイベントプロシージャ exit_proc window.close End Sub '****************************************************************************** --> </script> </head> <body onUnload="HtaFinalExit()"> <FORM name="testfrm"> <input type="file" name="example" size="90"> <br> <input type="button" name="all_exit" value="終了"> </body> </FORM> </html>
848 名前:名無し~3.EXE mailto:sage [2010/02/09(火) 18:28:58 ID:8BqPaL3i] それってカレントのフォルダなのか? htaの場所じゃないのか?
849 名前:名無し~3.EXE mailto:sage [2010/02/09(火) 18:32:07 ID:9vTb+OVv] >>848 hta の場所って意味で言ってる 言い方が曖昧だったかな
850 名前:名無し~3.EXE mailto:saga [2010/02/09(火) 19:09:32 ID:8BqPaL3i] そんなことないよ 明確に間違ったこと言ってるだけだよ
851 名前:名無し~3.EXE mailto:sage [2010/02/14(日) 17:05:40 ID:9nnubjX9] FileOpenDialog使えば?
852 名前:名無し~3.EXE mailto:sage [2010/02/19(金) 22:29:31 ID:LDuD38Q5] wshShellのRunをコードに書いて保存しようとしただけでトロイ認定されてソースが消えたお・・・・
853 名前:名無し~3.EXE mailto:sage [2010/02/20(土) 01:47:37 ID:qEf0FvLR] まぁ世の中の9割以上の人には、wshをとろい認定しても問題は無いんだけどな 一部のソフトのインスコ・設定でwsh・hta使ってるのも見なくもないけど
854 名前:名無し~3.EXE mailto:sage [2010/02/20(土) 10:43:48 ID:8rPqr8jG] VS2008 Express Editionのインストーラが HTAを使ってるぜ。
855 名前:名無し~3.EXE mailto:sage [2010/02/25(木) 21:39:30 ID:gk2IrG8J] ie.navigateみたいなことって他のブラウザでもできますか? マイクロソフト以外のブラウザはそもそもどうやって情報集めたらいいの?
856 名前:名無し~3.EXE mailto:sage [2010/02/25(木) 21:57:08 ID:OS5Whsth] できるものもあればできないものもあるだろな
857 名前:名無し~3.EXE mailto:sage [2010/02/26(金) 18:22:28 ID:cT5sOvCi] COMインターフェイスがなきゃダメだから クロスプラットホーム対応のブラウザにWindows版だけ実装することは考えにくい
858 名前:名無し~3.EXE mailto:sage [2010/02/26(金) 22:23:09 ID:DbpCfW0J] コントロールしたいときは我慢してIEを使えってことですかね?
859 名前:名無し~3.EXE mailto:sage [2010/02/26(金) 22:29:24 ID:TVISpBki] 無理に使わんでもええよ
860 名前:名無し~3.EXE mailto:sage [2010/02/28(日) 14:58:34 ID:h+sfVlse] Sleipnirなら、COMインターフェイス作っているぽいよ 他は地道にググるか、自分でoleviewとかで確認してくれ もし、起動させて特定のURL開くだけなら Shellで起動時にコマンドライン引数で指定するのが簡単 できないブラウザもあるかもしれないけど
861 名前:名無し~3.EXE mailto:sage [2010/02/28(日) 23:44:27 ID:eIRa0akU] 男は黙って SendKeys
862 名前:名無し~3.EXE mailto:sage [2010/03/01(月) 21:44:05 ID:FmfygmuX] test
863 名前:名無し~3.EXE mailto:sage [2010/03/04(木) 22:14:49 ID:FL0aWnTL] いまさらながら 64bits版 windowsにもwshって入ってるの?
864 名前:名無し~3.EXE mailto:sage [2010/03/04(木) 22:26:49 ID:o4aSa0C3] 入れない理由がないし実際入ってる
865 名前:名無し~3.EXE mailto:sage [2010/03/04(木) 22:32:57 ID:FL0aWnTL] 失礼しました。
866 名前:名無し~3.EXE mailto:sage [2010/03/07(日) 00:39:46 ID:yMMDGSK4] WSHではADODB.Streamを使うことでバイナリファイルを読み込み、 バイナリファイルの中に潜んでいる文字をテキストファイルに 保存できると知って、今日の夕方に入門書を買ってきました。 最終目標はnamazu用のfilterを自作したいと思ってます。 よろしくお願いします!
867 名前:名無し~3.EXE mailto:sage [2010/03/07(日) 01:11:56 ID:yMMDGSK4] だいたい出来ました、ありがとうございました!
868 名前:名無し~3.EXE mailto:sage [2010/03/07(日) 01:56:16 ID:zmuLo5KI] これは新しい自己解決のパターン・・・
869 名前:名無し~3.EXE mailto:sage [2010/03/07(日) 02:04:34 ID:ehbFBfeC] 入門書ってなにだろ?
870 名前:名無し~3.EXE mailto:sage [2010/03/07(日) 02:51:12 ID:qV0qSi+H] 大型新人キター
871 名前:名無し~3.EXE [2010/03/08(月) 10:01:54 ID:qhL2N4DK] JSでTerminateを使いプロセスを強制終了させていますが、 強制ではない方法で終了させることはできないでしょうか?
872 名前:名無し~3.EXE mailto:sage [2010/03/08(月) 10:58:50 ID:reTc7xAA] 「ユーザー名およびパスワードの保存」画面で管理される ユーザー、パスワードの情報をwshで追加、削除する事はできますか? (「ファイル名を指定して実行」から「control keymgr.dll」を実行して表示する内容) 別ドメインのサーバの共有フォルダにアクセスしたいのですが、 ネットワークドライブを設定する方法では、再度パスワードを入力する必要がありました。 この画面で登録しておくと再入力せずアクセスできたので 限られたユーザーにwshで配布したいと考えています。
873 名前:名無し~3.EXE mailto:sage [2010/03/08(月) 14:35:46 ID:N4hgDfir] >>871 JSにTerminateがあるのか?VBSにはあるが?
874 名前:名無し~3.EXE mailto:sage [2010/03/08(月) 19:55:15 ID:qhL2N4DK] var WMIService = GetObject('winmgmts:' + '{impersonationLevel=impersonate}!\\\\' + computer + '\\'+computer_name+'\\cimv2'); var processList = WMIService.ExecQuery('Select * From Win32_Process Where Name = "calc.exe"'); var processEnumerator = new Enumerator(processList); while (!processEnumerator.atEnd()) { processEnumerator.item().Terminate(); processEnumerator.moveNext(); } こんな感じで使用しています
875 名前:名無し~3.EXE mailto:sage [2010/03/08(月) 23:49:45 ID:N4hgDfir] >>874 それはJSのでなくWMIのWin32_ProcessのTerminateだろ それなら"taskkill /pid " & processEnumerator.item().IdをCreateすればよい
876 名前:名無し~3.EXE mailto:sage [2010/03/09(火) 00:17:04 ID:W+HEZzDA] ありがとうございます。 出来ました。
877 名前:名無し~3.EXE mailto:sage [2010/03/09(火) 07:31:07 ID:Ox6yGdZE] VBSをCOM化して実行したら「メモリーが不足してプログラムを実行できません」と出ました。
878 名前:名無し~3.EXE [2010/03/09(火) 11:20:33 ID:6ivRnBQq] プログラム板のwshスレからこっちに流れてきました。マルチごめん。 WMI使ってリモートPCのIP変更したいんだが、変更後にRPCエラー待ちが発生して自動処理できない。 エラー待ち時間を短縮するとか、なんかいい方法知ってる人がいたら助けて。 On Error Resume Next strComputer = "10.1.1.1" Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") For Each objNetAdapter in colNetAdapters errEnable = objNetAdapter.EnableDHCP() Next
879 名前:名無し~3.EXE mailto:sage [2010/03/09(火) 16:37:00 ID:lGaT6Nz1] >>877 CMD化しろよ
880 名前:名無し~3.EXE mailto:sage [2010/03/09(火) 19:14:46 ID:1jHU3iwO] >>878 相手にスクリプトを産み付けて自分のプロセスとして処理させるってのはどうだ? pstoolsの出番かも知れないが。
881 名前:名無し~3.EXE mailto:sage [2010/03/09(火) 19:15:07 ID:Ox6yGdZE] >>879 産休です。明日会社のサーバで試してみます
882 名前:名無し~3.EXE mailto:sage [2010/03/11(木) 00:16:55 ID:aOKfiRUH] ctrlキーが起動時に押されていたら処理を替えるようにしたいんですが、どうすればいいですか?
883 名前:名無し~3.EXE mailto:sage [2010/03/11(木) 02:48:28 ID:CgyxwHxo] スクリプトからシフトキー類の押し下げ状態を調べる。
884 名前:名無し~3.EXE [2010/03/11(木) 19:28:02 ID:z4Y3vV8Y] >>880 WshController使ったリモート実行じゃろうか? これは試していたんだが、「致命的エラー」が出てNGだった。 リモートPCのレジストリを設定した後、「wscript -regserver」を実行したんだがやっぱりダメだった。 「pstools」はしらんかった。ちょっと調べてみる。 うまくいったら結婚してあげてもいい。
885 名前:名無し~3.EXE [2010/03/12(金) 09:53:05 ID:N9db+s4y] WSHオワタ・・・ PowerShellの概要 − @IT www.atmarkit.co.jp/fwin2k/operation/pshsys01/pshsys01_01.html 例えば、テキスト・ファイルに現在時刻を書き込むという処理をWSHスクリプト(言語はVBScriptを使用)で書くと次のようになる。 Option Explicit Dim objFSO, objTextStream Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objTextStream = objFSO.CreateTextFile("test.txt") objTextStream.WriteLine Date & " " & Time objTextStream.Close() Set objFSO = Nothing Set objTextStream = Nothing このように、ファイルの読み書きというシステム管理では基本となるようなことでも、 COMオブジェクトを呼び出すなど非常に多くの記述が必要になる。 ところがPowerShellで同様の処理を書くと1行で済む。 Get-Date | Set-Content test.txt
886 名前:名無し~3.EXE mailto:sage [2010/03/12(金) 13:10:53 ID:QFmuvE6T] バッチファイルでも1行で済むが? echo %date% %time% > test.txt
887 名前:名無し~3.EXE [2010/03/12(金) 13:23:01 ID:nsgGjLNb] >>884 自己レス。 psexec使ってのwsh送り込みはできなかったが、batファイルならいけた。 これなら10秒ほどのタイムアウト待ちなのでなんとかなりそう。 >>880 無限の愛を貴方に。
888 名前:名無し~3.EXE mailto:sage [2010/03/13(土) 00:20:18 ID:/FMALwnt] >886 その手法は確かWindows95/98/Me/NT4.0では使えないんだったな。
889 名前:名無し~3.EXE mailto:sage [2010/03/13(土) 00:22:32 ID:gC28eAby] >>888 PSのこと?
890 名前:名無し~3.EXE mailto:sage [2010/03/13(土) 01:55:56 ID:4tIVLF1Y] >>885 そういうのって例えば、 日付の書式をちょっと変えて書き込みたいな・・・ とか考え出すとあっという間にコード量の差がなくなってしまうからなぁ。 >>886 つまり、それをWSHから呼び出せばもっと簡潔にできるわけだな! ・・・って、件のWSHのスクリプトも宣言とか開放を省略すればもっと行数減るなw
891 名前:名無し~3.EXE mailto:sage [2010/03/13(土) 17:14:55 ID:8P3J/gMj] CreateObject("Scripting.FileSystemObject").CreateTextFile("test.txt").WriteLine Date & " " & Time 1行で済みましたww
892 名前:名無し~3.EXE mailto:sage [2010/03/13(土) 18:33:24 ID:KBOSrb+k] >>885 の執筆者より>>891 の勝ち
893 名前:名無し~3.EXE mailto:sage [2010/03/13(土) 20:04:42 ID:M3Neakab] 無駄口は Now も知らん(忘れた)のか・・・・
894 名前:名無し~3.EXE [2010/03/14(日) 13:54:28 ID:lYWxxKnc] 1時間ごとにランダムに一曲再生するというコードを動かしているんだけど その時WMPが既に何か再生中だったらキャンセルするというコードはどう書けばいいですか?
895 名前:名無し~3.EXE mailto:sage [2010/03/14(日) 15:16:43 ID:wewHDlVc] プロセスのCPU使用状況を調べてwmpのCPU使用率ゼロを判別する
896 名前:名無し~3.EXE mailto:sage [2010/03/14(日) 15:39:50 ID:jU9VRU0u] つまんね
897 名前:名無し~3.EXE [2010/03/14(日) 18:30:33 ID:voCmsmxq] WSHから特定のアプリケーションにSendmessageできる公開されたDLLってあります? または直接EXEを起動したり、regsvr32登録されてないDLLの関数を呼び出す方法はありませんか? 自作のDLLがRegsvr32で登録できずCreateobjectできません
898 名前:名無し~3.EXE mailto:sage [2010/03/14(日) 18:43:39 ID:+Lvh+6MO] powershell
899 名前:名無し~3.EXE mailto:sage [2010/03/14(日) 18:55:33 ID:u5NEBbCg] ActivexPosh
900 名前:名無し~3.EXE mailto:sage [2010/03/16(火) 16:18:13 ID:ohYW6Imb] AutoItXの各種メソッドが128文字以上扱えるようになってたヽ(´ー`)ノ
901 名前:名無し~3.EXE mailto:sage [2010/03/18(木) 18:15:26 ID:iM/YKp6K] スレ違い
902 名前:名無し~3.EXE mailto:sage [2010/03/25(木) 23:54:26 ID:PC4a+bWW] WSHのCMD化の方法を教えてください。
903 名前:名無し~3.EXE mailto:sage [2010/03/26(金) 00:30:35 ID:ey1DdaEX] js2cmd
904 名前:名無し~3.EXE mailto:sage [2010/03/27(土) 23:21:50 ID:AeDranBW] IEの右クリックからJavaScriptを呼び出し、現在閲覧しているページのタイトルを所得することは できるんでしょうか?右クリックする対象はページ上の画像を考えてます。
905 名前:名無し~3.EXE mailto:sage [2010/03/27(土) 23:36:21 ID:4iD/8n0I] できるがスレ違い ぐぐれ menuext
906 名前:904 mailto:sage [2010/03/28(日) 10:22:48 ID:mhne3zrz] レジストリ書き足して、htmにJavaScript記載して画像の情報は取得できました。 閲覧中のhtmlのタイトルを取得する方法はあるのかなと思いまして、この場合のオブジェクト対象は画像なんですよね? 現在閲覧中のページのタイトルを取得、みたいな関数があれば
907 名前:名無し~3.EXE mailto:sage [2010/03/28(日) 11:01:19 ID:/xGuJN49] >>906 external.menuArguments.document.title スレチだから他行け
908 名前:名無し~3.EXE mailto:sage [2010/03/28(日) 11:36:22 ID:mhne3zrz] >>907 できました、ありがとうございます。 WSHで合ってると思ったんですがスレチだったんですか? 理解不足ですみません
909 名前:名無し~3.EXE mailto:sage [2010/03/28(日) 15:44:41 ID:4WEbf+FX] 閲覧中のウェブページをwshを使って自分のアドレスに送りたいのですが どういう風にしたら良いですか?
910 名前:名無し~3.EXE mailto:sage [2010/03/28(日) 15:45:43 ID:4WEbf+FX] 追記。アドレスだけじゃなくてページの中身そのものをメールとして送りたいということです。
911 名前:名無し~3.EXE mailto:sage [2010/03/28(日) 16:52:47 ID:z/Q5yi5P] >>910 ブラウザのURL拾って、mhtファイル作って、 ttp://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/nov04/hey1129.mspx じゃね? メールの作成もmhtもCDO.Messageで出来るんだな・・・mhtの出自がそうなんだから 当たり前といえば当たり前か。
912 名前:名無し~3.EXE mailto:sage [2010/03/28(日) 17:02:47 ID:4WEbf+FX] 回答ありがとうございました。そのページを参照にちょっと頑張ってみます。
913 名前:名無し~3.EXE mailto:sage [2010/04/01(木) 00:21:13 ID:CuuAcOhW] ショボくてすまんが[windows]+[←]or[→]キーで使えるwindows7の機能は、 どうやってスクリプト書いたらいい?
914 名前:名無し~3.EXE mailto:sage [2010/04/01(木) 01:01:22 ID:+U1Gw17B] つAHK
915 名前:名無し~3.EXE mailto:sage [2010/04/10(土) 22:14:58 ID:wPmAPdMC] 今はNILScriptの方がいいんじゃない?
916 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 13:24:09 ID:Yl41pEjS] なにそれ
917 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 22:47:49 ID:adH92DlF] 【JavaScript系】 NILScript 【AutoHotkey風】 pc12.2ch.net/test/read.cgi/tech/1270139718/
918 名前:名無し~3.EXE [2010/04/11(日) 23:11:58 ID:1lpeBxiT] NILは2000では動かないよ。XP32bitだけだな。 ただAutoItXやSFCMiniなどのDLLを入れたあとのWSH環境に比べるとどうなんだろうね? マニフェストや後付のDLLを使わずにDmonkeyやUWSC、AutoHotKey以上のことをやりたいらしいが。 javascriptの文法でキーカスタマイズからアプリ制御までなんでも出来るスクリプト環境を つくろうってのは正しい方向性だと思うけど。
919 名前:名無し~3.EXE mailto:sage [2010/05/13(木) 21:56:55 ID:m6OaNJxa] ほう
920 名前:名無し~3.EXE [2010/06/03(木) 17:53:48 ID:iUihJw3M] var ie;var url,login_id,login_pw;function wait() { while(ie.Busy || ie.ReadyState!=4){ WScript.Sleep(100); }} function browser() { ie=new ActiveXObject('InternetExplorer.Application');ie.Visible=true;ie.Navigate(url);wait(); } function post() { ie.document.forms[0].exec.click();wait(); } function reload() { ie.Navigate(url);wait(); } try{ url='★';browser();for (i = 0; i < 5; i++) { post();reload();}} catch(e){ } finally{ ie.Quit(); } これのtry{}にあるurlに書かれたURLに飛んだあと別のURLに飛ぶようにできないのだろうか var ie;var url,login_id,login_pw;function wait() { while(ie.Busy || ie.ReadyState!=4){ WScript.Sleep(100); }} function browser() { ie=new ActiveXObject('InternetExplorer.Application');ie.Visible=true;ie.Navigate(url);wait(); } function post() { ie.document.forms[0].exec.click();wait(); } function reload() { ie.Navigate(url);wait(); } try{ url='★';browser();url='★';for (i = 0; i < 5; i++) { post();reload();}} catch(e){ } finally{ ie.Quit(); } これだと飛ばぬ・・・
921 名前:名無し~3.EXE mailto:sage [2010/06/03(木) 18:23:45 ID:iUihJw3M] >>920 にあともう一つ IEタブを2つ表示させて 1つ目のタブにURL1を 2つめのタブにURL2を飛ばしたいけどどうしたらいいのかわからない
922 名前:名無し~3.EXE mailto:sage [2010/06/09(水) 14:11:04 ID:iwdCkyf4] >>921 navOpenInNewTab
923 名前:名無し~3.EXE mailto:sage [2010/06/09(水) 19:47:37 ID:dzSkViOB] >>922 それvbsだよね? JavaScriptでは無理なのか?
924 名前:名無し~3.EXE mailto:sage [2010/06/09(水) 19:56:48 ID:jlgSYqLi] 言語には関係ない
925 名前:名無し~3.EXE mailto:sage [2010/06/10(木) 14:14:01 ID:kJViM8Jd] ExecWBでソースの表示ってできない?
926 名前:名無し~3.EXE mailto:sage [2010/06/10(木) 15:22:23 ID:6Q2g02au] ブラウザそのものにはソースとかないしなぁ
927 名前:名無し~3.EXE mailto:sage [2010/06/11(金) 12:21:04 ID:uxlvNz01] >>925 IOleCommandTarget::Exec
928 名前:名無し~3.EXE mailto:sage [2010/06/11(金) 23:26:51 ID:biU9CjCk] JScriptをコンパイルしたいんだが、 WScriptオブジェクトなんてしらねって弾かれてもうた(´・ω・`) Wscriptオブジェクトを引っ張ってくる方法か、 QUITとADODB.Streamの代替手段をおしえてくだせえ
929 名前:名無し~3.EXE mailto:sage [2010/06/12(土) 00:31:54 ID:tGmfb7H0] SendKeysで今までWebブラウザや2chブラウザOffice関連やその他の色んなソフトで自動化に成功してきましたが、 ゲームのエミュレータにだけはなぜか、ウィンドウをアクティブにした状態であってもキーを送れないです。(反応しないので送れているかわからない) nnnesterやsnes9kやMAMEなどで試しましたが、どれもSendKeysで送ったキーでゲーム内のキャラが動いてくれませんでした。 エミュレータは(SendKeysが可能な)他のアプリケーションとは入力の受付方法が違うのでしょうか またそのようなソフトに対してはWSHではキーを送って操作することは不可能ですか?
930 名前:名無し~3.EXE mailto:sage [2010/06/12(土) 00:58:38 ID:tGmfb7H0] 調べたところ、SendKeysの問題ではなく、アプリケーション側のDirectInputの方の問題でした。 解決したのですみません。お邪魔しました
931 名前:名無し~3.EXE mailto:sage [2010/06/12(土) 21:51:27 ID:RtlbTOqz] win7でIE起動しようと思ったら動かない Option Explicit Dim objIE Set objIE = CreateObject("InternetExplorer.Application") Set objIE = Nothing
932 名前:名無し~3.EXE mailto:sage [2010/06/13(日) 01:10:20 ID:Czl7gJkW] そりゃだめだ
933 名前:名無し~3.EXE mailto:sage [2010/06/13(日) 01:42:07 ID:O+PAYz4/] Win XPの標準機能のみでパスワード付きZIPファイルを作りたいのですが、 VBScriptで実現させるにはどうやったらよいのでしょうか? (できればSendKeys未使用で) 用は↓にパスワード機能を追加したいのです・・・ www.vector.co.jp/soft/winnt/util/se355605.html
934 名前:名無し~3.EXE mailto:sage [2010/06/13(日) 07:43:33 ID:ejrpzprv] >>933 unzip32.dllを実行する.exeってなかったっけ? そいつに引数を渡す、つまり単純なWScript.ShellのRunってのはダメなのか?
935 名前:名無し~3.EXE mailto:sage [2010/06/13(日) 11:42:29 ID:h7K8R6ZR] 会社のPCとかで、DLLやexeを勝手に入れられない環境なのかも。 ところで、Win XPの標準機能でパスワード付きZIPって作れたっけ?
936 名前:名無し~3.EXE mailto:sage [2010/06/13(日) 13:08:28 ID:OOuLiq/a] >>935 zipファイルをフォルダとして開いて、その中で右クリックして「パスワードの追加」を選ぶ >Windows XP で圧縮 (zip) フォルダーを作成および使用する方法 >support.microsoft.com/kb/306531/ja Shell.ApplicationのNameSpaceでzipファイルを開いて InvokeVerbで出来ないかな・・・と思ったんだが、 どうも通常のコンテキストメニューじゃないっぽい。 というわけで漏れはあきらめて、7-zip.exe経由のスクリプトにした罠
937 名前:名無し~3.EXE mailto:sage [2010/06/14(月) 02:59:19 ID:Shk6x1Ga] SendKeysでできるならそれでいいじゃないか
938 名前:名無し~3.EXE mailto:sage [2010/06/15(火) 16:20:48 ID:U7q+ETSX] >>928 var Wscript=new Object();
939 名前:名無し~3.EXE mailto:sage [2010/06/27(日) 20:05:44 ID:519MlYZh] ScriptControlについて詳しく解説してるページはないでしょうか MSのページ以外で
940 名前:名無し~3.EXE mailto:sage [2010/07/06(火) 18:27:24 ID:/FuRxImU] はい