1 名前:デフォルトの名無しさん [03/06/08 21:31] ( ´ゝ`) 無ので立ててみた。 誰か詳しい情報キボンヌ
671 名前:デフォルトの名無しさん [2006/09/25(月) 17:26:19 ] WshShell,RUNの第二、第三パラメーターのデフォルト値って いくつっすか? www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_02.html 第三パラメータのデフォルトはFALSEっぽいんだけど、第二がよくわからん。0?
672 名前:デフォルトの名無しさん mailto:sage [2006/09/25(月) 20:31:34 ] まあ普通に考えると 5 (SW_SHOW) だと思うよ
673 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 00:16:52 ] 今ではまったく使い物にならなくなった第1版が大幅改訂するらしい ----------------------------------------------------------- 『WSHクイックリファレンス 第2版』 羽山 博 著 ISBN4-87311-309-1 定価3,990円 ■ロングセラー書の改訂版。最新のWSH 5.6対応に対応して大幅改訂!■ WSH(Windowsスクリプトホスト)を使えば、従来のWindowsバッチファイル よりも複雑なバッチ処理が可能です。OSレベルで管理されているデータにも アクセスできるので、システム管理やネットワーク管理にも重宝します。 本書は、WSHの本格的な活用に役立つリファレンスです。Windowsスクリプト ホストの初歩から応用までを豊富なサンプルとともにていねいに説明します。 最新のWSH5.6対応。 ============================================================
674 名前:デフォルトの名無しさん [2006/09/27(水) 12:41:25 ] HSPで中空扇形を書いて中も塗りつぶしたいのですが、どうすりゃいいっすか?
675 名前:デフォルトの名無しさん mailto:age [2006/09/27(水) 19:47:33 ] いろいろなサイトを閲覧して、ローカルPCに溜まったCookieファイルを、VBScriptで定期的に自動消去する処理は、どうすれば良いでしょうか? ttp://www.happy2-island.com/vbs/cafe02/capter00210.shtml ファイルの削除を参考にしてみましたが、Cookieファイルの指定がうまくできませんでした。
676 名前:デフォルトの名無しさん mailto:sage [2006/09/27(水) 19:53:47 ] >675 ブラウザで設定する方が早くね?
677 名前:デフォルトの名無しさん mailto:sage [2006/09/27(水) 19:54:12 ] うまくできないとは?
678 名前:デフォルトの名無しさん mailto:sage [2006/09/27(水) 22:23:42 ] 別にWSHでやらなくても、既存のソフトが山ほどあるような。 それをタスクスケジューラに登録すればいいじゃない。
679 名前:デフォルトの名無しさん mailto:sage [2006/09/28(木) 03:44:07 ] pc8.2ch.net/test/read.cgi/hp/1018858947/214
680 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 14:31:08 ] 台形の面積を求めたいんだけど、 Option Explicit Dim A, B, C, D A = InputBox("上底 cm","値を入力してください") B = InputBox("下底 cm","値を入力してください") C = InputBox("高さ cm","値を入力してください") D = (A + B) * C / 2 MsgBox D & " 平方cm" これだと、(A + B) のところが2桁の数字の左数字と右数字という文字の関係になってしまい、 計算式として認識してくれないんだが、A + B をどう囲えばいい?
681 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 14:42:28 ] CInt とか CCur とか
682 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 14:44:38 ] >>680 A,B,CそれぞれCDbl関数で括れば?
683 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 15:01:32 ] A か B どちらか一方を数値にすればおk
684 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 15:20:22 ] A = CDbl(InputBox("上底 cm","値を入力してください")) こうすることで、解決できました。 ありがd
685 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 23:27:59 ] 例外処理きちんとしようぜ。 IsNumericっていう便利な関数あるんだから。
686 名前:デフォルトの名無しさん [2006/10/02(月) 10:17:57 ] A=A+0 っていうのでどうでしょ?
687 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 10:43:37 ] 洒落で言ってるの?
688 名前:デフォルトの名無しさん [2006/10/02(月) 12:34:41 ] >>687 どれがしゃれ?
689 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 13:10:26 ] いや、君に聞いてるんだけど。
690 名前:デフォルトの名無しさん [2006/10/02(月) 19:40:26 ] "って、chr(34)で入れるしかないですか? """とか"^""とか"\""とか、だめ?
691 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 19:47:59 ] WScript.Echo('"');
692 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 22:06:20 ] >>690 VBScript の場合は、Chr() 関数を使うしかない。 JScript の場合は、シングルクォーテーションで囲っても良いし エスケープシーケンスを使って \" と書いても良い。 "\""って発想が出てくる喪前に JScript 。
693 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 22:11:47 ] """" 1 文字列囲い開始 2 ダブルクォーテイションのエスケープ文字 3 ダブルクォーテイション 4 文字列囲い閉じ
694 名前:680 mailto:sage [2006/10/03(火) 08:39:28 ] >>685 IsNumericの存在を始めてしったが、使いこなせないのが鬱 Or=z__ 修行に出るわ
695 名前:690 [2006/10/03(火) 10:38:54 ] >>693 さんくす。うまくいきました。 それ、どっかにドキュメントがありますか?
696 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 18:34:07 ] ソースだせやゴルア!ってこと?
697 名前:690 [2006/10/03(火) 19:16:06 ] >>696 そんな言い方はしてないw
698 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 19:40:06 ] >>690 Visual Basic における文字列の基本 ttp://msdn2.microsoft.com/ja-JP/library/ms234766.aspx
699 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 08:38:01 ] SeraphyScriptTools を使って、GUI画面作っているのですが… www.vector.co.jp/soft/win95/prog/se177026.html CommonDialogオブジェクトの MultiOpenFileDialog メソッドで配列を取得するんだけどVBのVariant配列が帰ってくるんです。 それでこれをJScript上で取得したいんだけど、方法を知っている方いらっしゃらないでしょうか?
700 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 09:38:03 ] >>699 つ ttp://hp.vector.co.jp/authors/VA017626/
701 名前:690 [2006/10/04(水) 10:35:54 ] >>698 だんけ
702 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 16:02:23 ] d.hatena.ne.jp/xAloe/20061001
703 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 17:09:48 ] >>699 varName = new VBArray(safeArray)
704 名前:699 mailto:sage [2006/10/04(水) 20:24:45 ] >703 サンキュ! 解決した!
705 名前:デフォルトの名無しさん [2006/10/04(水) 23:31:31 ] 初心者です。初めて質問します。C#からWshを使おうと思っています。 現在、既に開かれているIEのテキストを取得しようと試みています。 そのため、IEのWindowのIEオブジェクトを取得しようと 思っているのですが、その取得方法が分かりません。 Set Shell = Wscript.CreateObject("Shell.Application"); //既に開かれているWindowからIEを探す処理 //IEオブジェクトからテキストを抜き出す処理 DocumentプロパティからIHTMLDocumentを取得するとよい?? 大体このような流れだと思うのですが、詳細が分かりません。 どなたかご教授願います。 ちなみにIE6.0.0系を使おうと思っています。
706 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 23:55:48 ] >>705 つSystem.Runtime.InteropServices.Marshal.GetActiveObject 流れはおおよそ間違っていないが、WSHは全く関係しない。
707 名前:デフォルトの名無しさん [2006/10/05(木) 00:08:36 ] >706 素早い回答、真に有難う御座います。 この方法を使うとC#から直接COMオブジェクトを利用できると思ってイイですか?
708 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 00:17:37 ] >>671 wShell.Run(strCommand, [intWindowStyle], [bWaitOnReturn]) のintWindowStyleのデフォルトを調べてみました。 関連付けのコマンドラインに、%Sを指定すると、ここに、WindowStyleが入ります。 ダブルクリック 1 ドロップ 5 wShell.Run 1 CMD.EXE /C 1 START /MIN 7 START /MAX 3 でした。
709 名前:690 [2006/10/12(木) 10:42:56 ] >>708 ってことは、1ですかね?どうもありがとうございまs
710 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 12:23:32 ] 10 ではないだろうか
711 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 16:36:50 ] 10じゃなくて1のようです。
712 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 00:15:06 ] WindowsのGUIからではなくコマンドまたはスクリプトを用いて 各インターフェイスの「Microsoft ネットワーク用ファイルとプリンタ共有」 のチェックを外す事は可能でしょうか? ローカルエリア接続が出来れば結構です。 netshやサービスのコマンドを見てみてもそれらしき、項目はありませんでした。 どなたか教えてくださいm(_ _)m
713 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 02:21:10 ] >>712 Windows XP SP2なら netsh firewall set service FILEANDPRINT DISABLE とやればWindowsファイヤウォールの設定によって 同等の効果が得られそうだけど、 スクリプトでやるとしたらWMI使ったりレジストリ操作したりで面倒そう。
714 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 21:17:37 ] >>713 ありがとうございます。 OSはWinXPSP2ですが、各インターフェイスごとというのが難しいようですね。 例えば無線LANでは有効、有線LANでは無効といった使い方をしたいんです。
715 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 13:59:22 ] うろおぼえなのですが、マウスの右クリックと同じ動作をさせるInvokeとかなんとかっていう機能があったような。 あんまり関係ないでしょうか?
716 名前:デフォルトの名無しさん [2006/10/25(水) 01:01:48 ] wshでセットした変数をバッチスクリプトで使うには environmentを使えばいいのでしたっけ?
717 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 01:38:14 ] >>673 これってどうなの?
718 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 11:10:37 ] 全然ダメ
719 名前:デフォルトの名無しさん [2006/10/25(水) 19:49:07 ] sendkeysは左右のshiftとctrl(各々個別に)が使い分けられない事を知った。 Sendinputやらkeyeventやらのモノがあるらしいが、どこ見ても難しい;; ぶっちゃけ↓だけメモ帳にいれて.vbsにすると、実行されるじゃない? msgBOX "aaaaa" ま、ここまで簡単でなくとも、も少し簡単な例はないですか?
720 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 18:02:16 ] ようやくHTAの引数の読み込み方が分かった…
721 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 18:03:21 ] シマタ誤爆。
722 名前:デフォルトの名無しさん mailto:e_e [2006/10/26(木) 23:46:40 ] ( ´_ゝ`)フーン
723 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 21:44:40 ] >>720 ちなみに、WSHと同じく、Arguments で取得できたりするの?
724 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 22:42:40 ] >>723 資料読めばわかるけど、HTA の設定をするための <HTA:APPLICATION /> タグってのがある。 これに id 属性を設定すると、設定した id を使って スクリプト中からこのタグを表したオブジェクトにアクセスできるようになる。 <HTA:APPLICATION id="app" applicationname="MyApplication" /> こうすると、例えば JS では app.applicationName で "MyApplication" が参照できる。 んで、このオブジェクトの commandLine プロパティに起動時のコマンドライン文字列が入ってる。 調べた限りでは、引数が取得できるのはこのプロパティを通してのみで、 自動的に Arguments のように配列にわけてくれたりはしない。
725 名前:723 mailto:sage [2006/10/29(日) 00:15:11 ] >>724 丁寧にありがとう。
726 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 00:20:36 ] 誤爆っていってんだから紛争地域にいってやれよ pc8.2ch.net/test/read.cgi/tech/1124559962/
727 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 13:09:19 ] いや向こうのスレからネタ拾ってきたんでしょ。 それに紛争している訳でもないし。
728 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 00:18:45 ] 外部からVBスクリプトで書かれた関数を呼び出すにはどうしたらよいでしょうか? 例として、 cscript hoge.vbs foo (hoge.vbsのモジュール的な箇所は実行しつつもfoo関数を呼び出す)
729 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 00:25:45 ] モジュール的な箇所にfoo関数を呼び出すコードを書く
730 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 00:27:11 ] .vbs でなく .wsf にVBSを書くようにして cscript hoge.wsf //job:foo のようにする。
731 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 00:46:50 ] コマンドラインの第1引数に少し文字列付け足して、Evalに渡す。
732 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 00:49:01 ] >>729 ,730 貴重な情報ありがとうございます。 どちらの方法もよさそうなのでとりあえず両方作ってみようと思います。 ありがとうございました。
733 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 00:50:37 ] >>731 引数を渡して内部で関数を呼び出すカンジですよね。 勉強も兼ねているので色々試してみたいと思います。 ありがとうございました。
734 名前:デフォルトの名無しさん [2006/11/02(木) 01:37:53 ] >>733 完成したら、さらしてね
735 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 21:48:05 ] >>728 VBscriptハッカーズマニュアルの続編の本に、 Executeメソッド内に、他のvbsプログラム(←関数の集まりを入れておく) を実行するコードを書いておくっていう裏技を紹介してた。 これで、vbsから、別のvbs内の関数を使える。 でも、呼び出されるvbsコード内に、不要なコードが入ってると、それも実行されてしまうみたいなので、 >>730 のように、wsfとか、htaから呼び出すのが、基本みたい。
736 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 21:55:39 ] WshShortcut オブジェクトのRelativePathってどう使うんでしょう? 設定は出来ても、参照はできず、実行もできないみたい。
737 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 18:42:49 ] >>736 ちゃんと実装されてないのでは
738 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 18:52:42 ] バッチファイルにJScriptを埋め込む例(※参照)。 バッチファイルの拡張子は .cmd で。 @if (0)==(0) echo off setlocal set me=%0 cscript.exe //nologo //e:jscript %me:.cmd=%.cmd %* goto :eof @end // ここからJScript var args = WScript.Arguments; for (var i = 0; i < args.length; i++) WScript.Echo(i, args(i)); ※↓ pc8.2ch.net/test/read.cgi/tech/1123842575/100 pc8.2ch.net/test/read.cgi/tech/1148485555/72
739 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 19:23:08 ] そんな枯れた情報をいきなり書かれてもねぇw
740 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 21:09:03 ] しかも、情報が劣化してる。変なことせずとも、 CScript.exe //NoLogo /E:JScript "%~f0" でよい。
741 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 21:14:11 ] あれ、//Eでなくても通るのね。訂正。 CScript.exe //NoLogo //E:JScript "%~f0"
742 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 21:30:18 ] では、こんなのも。バッチでクリップボードを処理する例。 @ECHO OFF FOR /F "delims=" %%0 IN ('MSHTA.EXE "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();"') DO ECHO %%0 でも、これ、WSHじゃないな。
743 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 21:45:40 ] FileSystemObject ObjectのGetStandardStreamって日本語版の Windows Script V5.6 ドキュメント(Script56.CHM)には載ってないよね
744 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 21:47:57 ] MSDNライブラリ参照
745 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 21:57:22 ] MSDN見ても日本語では載ってないから英語版のscript56.chmでいいや
746 名前:デフォルトの名無しさん [2006/11/07(火) 02:01:01 ] wscript実行時に窓に表示される バージョン情報と、〜All rights reserved の文字を 表示させないようにすることはできますか? ご教示ください。
747 名前:746 mailto:sage [2006/11/07(火) 02:20:21 ] すいません。解決しました。 //nologo ですね。
748 名前:デフォルトの名無しさん [2006/11/13(月) 02:26:09 ] WScript.ShellのRegWriteメソッドで、バイナリ値で「00 00 00 00」を書き込む方法を教えてください。 .regに書き出して結合するとかreg.exeやWMIを使うとかではなくRegWriteでの方法です。 WinXP/WSH5.6
749 名前:デフォルトの名無しさん [2006/11/13(月) 09:10:43 ] >>748 var WshShell = WScript.CreateObject("WScript.Shell"); WshShell.RegWrite ("HKCU\\Software\\company\\application\\bin_value", 0, "REG_BINARY");
750 名前:748 [2006/11/13(月) 17:49:22 ] >>749 回答ありがとうございます。しかし、それだと「00 00」になるんです。 そして第二引数をCByte(0)にすると、「00」になります。 この板の方なら、同じ0でも、「00 00」と「00 00 00 00」の意味が違うことは 解ってると思いますが、望む結果は「00 00 00 00」なんです。 WMIだとArray(0,0,0,0)を書き込むことで「00 00 00 00」になるんですが これと同じ結果をRegWriteで行いたいと言うことです。 引き続きよろしくお願い合います。
751 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 19:20:09 ] >>750 やってみれば簡単に理解できると思いますがJScriptなら 4バイトになるぞ。 しかし、CByte()を知ってるのにCLng()を思いつかないとは・・・
752 名前:デフォルトの名無しさん [2006/11/13(月) 21:38:12 ] イメージ名で指定して、そのプロセスが動いているかどうか判定したいのですが、 wshでできるでしょうか。 できるならその方法を教えていただきたいです。
753 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 21:50:21 ] WMI 使えば出来るな。 Win32_Process
754 名前:752 mailto:sage [2006/11/13(月) 22:38:52 ] ありがとうございます
755 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 14:23:49 ] etc3.2ch.net/test/read.cgi/charaneta2/1133239288/
756 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 20:55:41 ] Windows PowerShell Version 1.0 www.microsoft.com/technet/scriptcenter/topics/msh/download.mspx www.microsoft.com/windowsserver2003/technologies/management/powersh ell/default.mspx
757 名前:デフォルトの名無しさん [2006/11/18(土) 00:22:30 ] VBscriptもしくはVB6.0でバイナリデータのファイル操作ってできますか?
758 名前:デフォルトの名無しさん mailto:sage [2006/11/18(土) 00:25:41 ] っOpen
759 名前:デフォルトの名無しさん mailto:sage [2006/11/19(日) 00:20:45 ] IEを起こして取れますが、遅いので、 Set Document=CreateObject("htmlfile") Document.write "<input type=text id=xxx>" Document.all.xxx.value="ほげほげ" MsgBox Document.all.xxx.scrollWidth で、文字列の表示幅を取ろうとしたのですが、0しか返って来ません。 "htmlfile"は、ウィンドウを持たないので、〜Widthなどは取れないってことでしょうか?
760 名前:デフォルトの名無しさん mailto:sage [2006/11/19(日) 00:49:40 ] >>759 <INPUT>エレメントの持つプロパティで、 それっぽいのは offsetWidth かな? scrollWidthやめて、offsetWidth にしたらどう?
761 名前:デフォルトの名無しさん [2006/11/19(日) 18:13:52 ] VBscriptで A=150 Dim B(A) Dim C(A) Dim D(A) というふうに配列宣言時、添え字の数字に変数を使いたいのですが、エラーになります。 解決方法を教えて下さい。
762 名前:デフォルトの名無しさん mailto:sage [2006/11/19(日) 18:33:39 ] Dim A A = 150 ReDim B(A) ReDim C(A) ReDim D(A)
763 名前:デフォルトの名無しさん mailto:sage [2006/11/19(日) 20:52:54 ] >>762 俺もそう思ったw
764 名前:761 [2006/11/19(日) 21:53:39 ] >>762 そうやってもエラーになります
765 名前:761 mailto:sage [2006/11/19(日) 21:56:40 ] すいません勘違いでした。無事できました。
766 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 22:30:28 ] StrCnvさえ使えたら
767 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 22:49:45 ] うちではVBSで使ってるよ。>>VBランタイム内のStrCnv
768 名前:デフォルトの名無しさん [2006/11/21(火) 23:24:09 ] >>767 kwsk
769 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 00:32:32 ] >>766 >StrCnvさえ使えたら なにがしたいの?なくても困ること特にないけど。
770 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 11:45:18 ] そんなこと言ったらWSH自体使わなくても(r
771 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 15:48:49 ] >>767 VBで、VBの内部オブジェクトを公開するCOMを作ったことあるけど、 MSはそういう使い方保証してないし、開発ライセンスのないひとに そのCOMを提供するのはどうかなというのと、 どうしても必要ということがなくてやめた。 >>766 VB持ってたら作ってみたら。 EXCELなど持ってたらVBAでも同様のことできるのでは。