1 名前:デフォルトの名無しさん [2007/04/16(月) 13:48:54 ] ( ´ゝ`) 誰か詳しい情報キボンヌ ●過去スレ WSH(・∀・)スレッド! pc11.2ch.net/test/read.cgi/tech/1055075469/ ●関連スレ お前ら、wsh使ってますか? part6 pc11.2ch.net/test/read.cgi/win/1155040873/ 【イケメン】阿龍スレ避難所@自己紹介【彼女募集中!】 life8.2ch.net/test/read.cgi/intro/1171897814/ ●個人サイト Windows Scripting Host Laboratory www.roy.hi-ho.ne.jp/mutaguchi/wsh/ Windows Script Wiki winscript.s41.xrea.com/wiki/index.php 音楽 winscript.mine.nu/music/ キャラネタ板・なな板のための何か charaneta.mine.nu/
626 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 21:42:52 ] var colMonitoredEvents = objWMIService.ExecNotificationQuery( "SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE " + "Targetinstance ISA 'CIM_DirectoryContainsFile' and " + "TargetInstance.GroupComponent= " + "'Win32_Directory.Name=\"c:\\\\\\\\scripts\"'");
627 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 22:38:22 ] wwww
628 名前:621 mailto:sage [2008/01/15(火) 17:17:28 ] >>626 ありがとう
629 名前:デフォルトの名無しさん [2008/01/18(金) 06:33:04 ] CreateObject("ADODB.Stream") 上記でエラーがでます。 おそらく、ファイルが必要だと思うのですが、 それはどうやったら手に入りますか?
630 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 07:29:28 ] >>629 とりあえずエラーの内容書いてみ
631 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 21:42:53 ] >>629 MSからダウンロードに決まってるだろ
632 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 22:22:49 ] 標準で入ってない環境、まだあったっけ?
633 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 09:49:15 ] FileSystemObjectとか称してテキストファイルの読み書きしか出来ないの? fread,fwriteとかseekのメソッドを提供してるクラスって無いの?
634 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 09:59:08 ] 出来ない ADODB.Stream
635 名前:デフォルトの名無しさん [2008/01/19(土) 15:46:30 ] ADODB.Stream ってファイル全体をいっぺんに読み込んでしまうよね? デカイ動画ファイルの 最初の数バイトだけ 読み込んで処理したいけど ファイル全体を読み込んでしまうため時間がかかってしょうがない。 何か良い手は無いですか?
636 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:18:25 ] FileSystemObjectで読む
637 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 22:25:52 ] PowerShellやC#に逃げる
638 名前:デフォルトの名無しさん [2008/01/20(日) 01:04:11 ] ↑ 自分の殻に閉じこもる現実逃避型。
639 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 01:25:31 ] debugでダンプする
640 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:01:36 ] 殻=shell
641 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:13:18 ] basp21
642 名前:デフォルトの名無しさん [2008/01/20(日) 22:46:52 ] 客先のPCにbasp21がインストールしてあれば苦労しないよ
643 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:24:23 ] スクリプトをインストール(=使用準備なので何処かのディレクトリにスクリプト置くだけでインストールになる)は可能なのに COMコンポーネントのインストールは不可なんて馬鹿げたことを言い出すような低レベルな奴など相手にするな こんなこと言い出すのは、嫌レジストリ厨とか"インストール"の意味を分かってない奴とか、相当な初心者の類だが、 もし"客先"ってのが会社なら、そんな奴がシステム管理においての権限を持ってるなんてゾッとしないねw まあそれ以前にWSHスクリプトを外注する会社ってのもアレだけどw
644 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:37:16 ] FileSystemObjectなら使えるだろうに、なぜ使わん?
645 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:12:46 ] スクリプトの中で COM みつからなかった初回のみ regsrvr32 すれば?
646 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:14:43 ] >>635 > デカイ動画ファイルの 最初の数バイトだけ 読み込んで処理したいけど とのことだ。 バイナリは無理だろ。
647 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:15:20 ] >>646 は >>644 へのレスね。
648 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 01:28:09 ] OpenBinaryFile()
649 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 01:50:38 ] > バイナリは無理だろ。 何が?
650 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 01:55:19 ] FSOでってことだろ
651 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 04:47:12 ] ForBinaryReading
652 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 10:21:14 ] それは今回の用途とは違うわけで
653 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 16:21:14 ] baspをbase64してwsfに入れて実行時に登録
654 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 16:36:19 ] すなおにVBで作って納品46
655 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 01:59:20 ] VBSファイルごとにアイコン変える方法おすえて
656 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 02:11:42 ] >>655 ショートカット作って、ショートカットのアイコン変えるとか
657 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 21:41:26 ] そういうアイコンハンドラを使えばいいんじゃね なければ作ればいいんじゃね
658 名前:sage [2008/01/31(木) 00:57:14 ] 1.WSHを使って指定URLをIEから立ち上げる 2.(1)のURLのHTMLに含まれるjavascriptを解析して 自動で実行したい WSHで1.はできると思うのですが、2はできますでしょうか? できるのであればヒントを教えていただけぬか
659 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 00:59:05 ] HTMLDocument
660 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:30:46 ] 最近 WSH を始めた者です。 WSHShell の Run メソッドでアプリを起動して使おうとしているんですが、 普通にアイコンをダブルクリックして起動した場合と挙動が違って困っています。 とりあえずわかったことは、そのアプリは ¥Document and Settings¥ユーザ名¥ Application Data¥アプリ名 以下に一時ファイルを作るんですが、WSH から 起動した場合ファイルが生成されないようです。 WSH の場合でもちゃんと走るようになる為には何か別途設定がいるのでしょうか? 今は基本的に WSHShell.Run(アプリのバス, 4, True) を呼んでるだけです。
661 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 21:42:20 ] >>660 カレントディレクトリを設定しろ 設定仕方はWSHヘルプに載ってるので嫁
662 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 07:34:31 ] >>661 どうもです。 >WSHヘルプ すみません、実はこれが何を指すのか分からん程度なんですがw >カレントディレクトリを設定しろ ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wslrfcurrentdirectory.asp によると CurrentDirectory というプロパティがあるそうなのでこれを適宜セット する、で正解ですか? で、できたらどんな値にセットするかも教えていただけると助かるのですが... もしかしたらWSHヘルプというものにそれが書いてあるんでしょうか。 逆に考えると、普通にダブルクリックで起動したアプリではカレントディレクトリが 適宜セットされているから動く、ということでしょうか? もしそうなら一体どんな値になって いる? という疑問がわきますが...
663 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 08:38:11 ] 右クリック-プロパティ
664 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 09:38:40 ] 通常はダブルクリックしたものがあるディレクトリがカレントディレクトリとなる。
665 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 11:10:49 ] >>662 で言ってる CurrentDirectoryって Windows2000にデフォルトで入ってるWSHでは 動きませんよねぇ。なんか代替のメソッド無いですかね?
666 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:14:22 ] >>665 Win2Kでも、WSH5.6なら、("Wscript.Shell").CurrentDirectryが使える。 インストール直後のバージョンは、どうだったかな‥ 古いWSHでも、("Wscript.Shell").Run """ショートカットファイル.lnk""",,False なら 問題ない。False設定しか使えなくなっちゃうけども。 Wscript.ScriptFullName のほうは今回無関係ですかね。
667 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 16:33:34 ] そのスクリプトファイルのショートカットを作って作業フォルダを設定しろ
668 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 02:07:27 ] WSHでファイルを読み取り専用に変えることはできますでしょうか?
669 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 02:20:08 ] readonly属性をつけることならできるな
670 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 03:43:53 ] >>669 それです。教えてください。
671 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:41:54 ] Attributes=1
672 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:09:40 ] ヘルプみろ
673 名前:662 mailto:sage [2008/02/04(月) 06:06:35 ] >>664 なるほど。その値でうまくいくようです。ありがとうございます、
674 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:53:29 ] 質問です。 現在、VBSCriptで各ディレクトリのアクセス権限を テキストに書き出す仕組みを作成しています。 コマンドは下記のようになっております。 CACLS <ディレクトリ名> >> <出力ファイル> ディレクトリ名、出力ファイル名はパラメータとして受け取り、 文字列を結合してWshShell.Runに渡しております。 ・・・【1】 ここで問題なのですが、【1】の文字列をコピペして DOSプロンプトで実行すると、正しく出力がされているのですが、 WshShell.Runにて実行すると、正しく出力されません。 この部分のコードは下記のようになっております。----------* Command = "CACLS " & DIRName & " > " & ExportFileName objShell.Run Command ' WShellオブジェクトは生成済み --------------------------------------------------------* 恐れ入りますが、どなたかこのような現象を経験されておりましたら、 解決策の指南のほどよろしくお願いいたします。
675 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:26:05 ] >WShellオブジェクトは生成済み ソース全部貼るべき 「・・・【1】」って違う場所に書いてない?
676 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:27:44 ] >WshShell.Runにて実行すると、正しく出力されません。 とはどうなるのだ?
677 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:11:25 ] Set objShell = WScript.CreateObject("WScript.Shell") Command = "CACLS %cd% > out.txt" objShell.Run Command これで試してみたけど、うまくいかないね。 Command = "cmd /c cacls〜 ではうまくいくけど。
678 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:04:10 ] %windir%\system32\cacls.exeと指定したらどう?
679 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:50:01 ] リダイレクトはシェル(cmd.exe)の機能。
680 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 06:34:50 ] フルパス指定でも無理
681 名前:674 mailto:sage [2008/02/07(木) 09:15:53 ] 皆さんご回答ありがとうございます。 >>WshShell.Runにて実行すると、正しく出力されません。 >とはどうなるのだ? パラメータ無しで実行したCACLSのように、ヘルプが表示されます。 経過ですが、 >>677 さんの"cmd /c cacls〜"で試してみたところ、うまくいきました。 大変お世話になりました。
682 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:25:55 ] タクススケジューラの引数について質問です。 Windowsタクススケジューラで設定した引数が渡ってこない(WScript.Arguments.Count = 0)のです。 同じパス(コマンドライン)で作ったショートカットを実行すると引数が渡ってくる(WScript.Arguments.Count > 0 )のです。 実際に試した記述は、「c:\test.vbs abc」と「c:\test.vbs "abc"」と「"c:\test.vbs abc"」です。 何か特別な記述方法などあるのでしょうか? 先輩方、よろしくご教授ください。
683 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 13:36:44 ] cmd /c c:\test.vbs abc
684 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:31:49 ] 先輩!ありがとうございました!
685 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:29:01 ] ファイルをドラッグアンドドロップしたらパスを表示するスクリプトが動きません。 どこを直せばよいか教えてください。 var strArgument = new Array(); if ( WScript.Arguments.count() == 0 ) { WScript.Echo ("コマンドライン引数が指定されていません。"); } else { for ( strArgument in WScript.Arguments ) { WScript.echo ( strArgument[i] ); } }
686 名前:685 mailto:sage [2008/02/08(金) 21:37:42 ] スクリプトをダブルクリックした時は正常作動しますが ファイルをドロップすると何も表示されません。 スクリプトエラーも出ないので困っています。
687 名前:デフォルトの名無しさん [2008/02/08(金) 22:03:46 ] コマンドライン引数が指定されているからに決まってるだろ
688 名前:デフォルトの名無しさん [2008/02/08(金) 22:04:54 ] var strArgument = new Array(); if ( WScript.Arguments.count() == 0 ) { WScript.Echo ("コマンドライン引数が指定されていません。"); } else { WScript.Echo ("コマンドライン引数が指定されました。"); }
689 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:18:40 ] for ( strArgument in WScript.Arguments ) { WScript.echo ( strArgument[i] ); } これ、なにしてるの?
690 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:42:40 ] >>688 var strArgument = new Array(); これ、なにしてるの?
691 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:52:48 ] msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wsproarguments.asp
692 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:25:21 ] >>685 // var strArgument = new Array(); if ( WScript.Arguments.count() == 0 ) { WScript.Echo ("コマンドライン引数が指定されていません。"); } else { for (i = 0; i < WScript.Arguments.length; i++ ) { WScript.echo ( WScript.Arguments(i) ); } } .vbsファイルしか作った事がないけど、なんとなく.jsファイルはこれで動くんじゃないかなぁと・・?
693 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:56:38 ] >>692 > if ( WScript.Arguments.count() == 0 ) { count はメソッドじゃなくプロパティ。
694 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:10:28 ] >>693 えー?
695 名前:685 mailto:sage [2008/02/09(土) 00:12:24 ] >>692 動きました。ありがとうございます。 只今WSHをJScriptで書こうと、vbsのスクリプトを翻訳しながら勉強中です。 でもJSのサンプルコードが少なくて困ってました。 今回は元コードに配列を使っているように見えたので、それらしく書き換えたけど動きませんでした。 なんでここまで違いが出るのか、まだ理解してませんw ↓元のサンプルコード Option Explicit Dim strArgument If WScript.Arguments.Count = 0 Then WScript.Echo "コマンドライン引数が指定されていません。" Else For Each strArgument In WScript.Arguments WScript.Echo strArgument Next End If
696 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:28:24 ] >>695 実際にはいろいろな書き方ができるので、余計に混乱してるのかも。 元のスクリプトになるべく忠実に対応させるなら、以下のような書き方もできる。 if (WScript.Arguments.length == 0) { WScript.Echo("コマンドライン引数が指定されていません。"); } else { var e = new Enumerator(WScript.Arguments); for (; !e.atEnd(); e.moveNext()) { WScript.Echo(e.item()); } }
697 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:31:07 ] for (var e = new Enumerator(WScript.Arguments); !e.atEnd(); e.moveNext()) { すっきり
698 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:41:48 ] >只今WSHをJScriptで書こうと、vbsのスクリプトを翻訳しながら勉強中です。 なぜ?遅いのに。いろいろ細かいことにうるさいのに。などなど
699 名前:デフォルトの名無しさん [2008/02/09(土) 01:35:29 ] マイクロソフトの公用言語はBASIC ゲイツはBASIC長者 java には裁判で負けた恨みが有る
700 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:13:38 ] WSHは使うけど、今はもうVBScriptでは書かないなあ。 JavaScript(JScript)のある意味変態的な言語仕様に慣れてしまったら戻れない。
701 名前:デフォルトの名無しさん [2008/02/09(土) 14:37:22 ] ↑ 変態
702 名前:693 mailto:sage [2008/02/09(土) 15:58:20 ] >>694 > >>693 > えー? といわれてMSDN見てきた。 msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wsobjWshArguments.asp プロパティとメソッド、両方あるな……。 ふだんはJScriptで length 使うか Enumerator にして扱ってるんで、 確認不足で適当に書いてしまった。スマソ
703 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:38:49 ] >プロパティとメソッド、両方あるな……。 プロパティを見るとメソッドになってて、メソッドしかないような
704 名前:デフォルトの名無しさん [2008/02/09(土) 17:18:48 ] 動きさえすればどっちでもいいよ
705 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:22:03 ] with (WScript.Arguments) { WScript.Echo(Count()); WScript.Echo(length); WScript.Echo(Count); // エラー }
706 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:48:58 ] basp21のsocketって非同期通信できませんか? データ取得できたらコールバック関数を呼びたいんですが。 接続できなかった場合とかタイムアウトになるまで 他の処理ができない
707 名前:685 mailto:sage [2008/02/09(土) 23:10:36 ] 昨日教えてもらったスクリプトを、テキストに出力しようとしたら働きません。 また教えてください。 var objFso = new ActiveXObject("Scripting.FileSystemObject"); var objFile = objFso.OpenTextFile("testdirlist.txt", 8, true); var path String(); objArgs = WScript.Arguments; for (i = 0; i < objArgs.length; i++) { path = path + objArgs(i) + "\n"; } //WScript.Echo(path);//←働く objFile.WriteLine(path);//←働かない objFile.Close();
708 名前:685 mailto:sage [2008/02/09(土) 23:13:59 ] ×var path String(); ○var path = String();
709 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:46:55 ] 絶対パスにすれば
710 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:18:19 ] var path = ""; で
711 名前:685 mailto:sage [2008/02/10(日) 00:30:39 ] >>709 動きました!
712 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 12:28:54 ] WSH 5.1(Win2k)環境でカレントディレクトリを変更したいのですが Set foo = WScript.CreateObject("WScript.Shell") foo.CurrentDirectory = と言った.CurrentDirectoryプロパティはWSH 5.6(WinXP)以降の環境でしか動作しません。 もちろんWin2kのWSHをバージョンアップすれば動くのですが、それは手間がかかる為 やらずに解決したいと思っています。 やりたい事は、WSHスクリプトファイル(仮にhoge.vbs)と同じ階層に scriptと言うフォルダがあり、 そのフォルダの中に var.bat と言うファイルがあるとして Set objShell = WScript.CreateObject("WScript.Shell") Set fs = WScript.CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(".") objShell.Run f.path & "\script\var.bat" 等として、他のフォルダ内の実行ファイルを実行したいのです。 しかし実際にコレをやると、指定されたファイルが見つかりません とエラーが表示されて実行できません。 確かにファイルは存在しますし、WScript.Echo f.path & "\script\var.bat" とかやってパスを確認しても 正しいパスです。 なので、カレントディレクトリを実行ファイルのある場所に移動しないと実行できないのかなと 考え、CurrentDirectoryを変更する方法を考えているのですが・・・ 普通に考えてCurrentDirectoryを変更せずとも実行できるはずですよねぇ・・アドバイス頂けませんか?
713 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 12:37:49 ] パスをだぶるくぉーてーしょんで囲みなさい
714 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:26:29 ] >>713 レスありがとうございます。 strDrv = strCurrent & "driver\install.bat" ↑これで、カレントディレクトリ\driver\install.bat がstrDrv に入ります。 その後 objWshShell.Run strDrv で、今までは出来ませんでした。なのでこれを" " で囲みます objWshShell.Run "strDrv" しかしこうすると、strDrvと言う文字列を起動しようとしてしまい、strDrvが変数として扱われず 単なる文字列として扱われるため動作しません。 objWshShell.Run ""strDrv"" として、"をエスケープしてみてもだめ〜 とか考えてたら strDrv = strCurrent & "driver\install.bat" strDrv = """" & strDrv & """" WScript.Echo strDrv objWshShell.Run strDrv これでいけました。最初の"が文字列の開始、 中2つの"が 文字列としての純粋な"を表し (""で"を単なる文字列としてエスケープ)、最後の"が文字列の終了を表すダブルクォート・・・ 結局 """" となり、非常に分かりにくいというか、混乱する形になったのですが、こんなもんなんでしょうか?
715 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:47:54 ] こんなもんです
716 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:13:45 ] >>714 Python がお勧め
717 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:15:22 ] strDrv = Chr(18) & strDrv & Chr(18)
718 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 17:42:26 ] >Set f = fs.GetFolder(".") >objShell.Run f.path & "\script\var.bat" objShell.Run ".\script\var.bat"
719 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:10:32 ] >>716 >>712
720 名前:デフォルトの名無しさん [2008/02/11(月) 23:38:48 ] >>714 C言語やjavaだって "\"" みたいな、「たいへん分かりにくい混乱する表記」 になるから、こんなもんです。 もし、コードをスッキリさせたかったら、 Const QQ = """" strDrv = QQ & strDrv & QQ もしくは strDrv = Q( strDrv ) Function Q(ByVal str) Return """" & str &"""" End Function みたいな方法がありますよ。(自分は後者をよくつかう)
721 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:25:32 ] Chr(34)は?
722 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 07:40:18 ] "自分は後者をよくつかう"って、使えるの、それ?
723 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:41:25 ] うん
724 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:56:37 ] >みたいな コードはイメージです
725 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:18:12 ] >>724 実際のコードとは異なる場合があります。
726 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:24:57 ] >>722 使えない
727 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:32:48 ] 使わない
728 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:43:08 ] 使われない
729 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:07:38 ] こんばんです。1つ質問させてください。 vbsでプログラムを組んでいるのですが、vbs親プログラムからvbs子プログラムを 起動は出来ないのでしょうか? 〜〜〜〜〜vbs親プログラム内〜〜〜〜〜〜〜〜〜 Set objWshShell = WScript.CreateObject("WScript.Shell") strCmdLine = "sub_program.vbs str01 str02 " objWshShell.Exec(strCmdLine) この記述で「sub_program.vbs」を引数2つ与えて起動できると思うのですが出来ません。 尚、コマンドプロンプトで[sub_program.vbs str01 str02]実行すると正常に起動します 修正点がありましたらお教えいただけないでしょうか。
730 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:16:04 ] >>729 strCmdLine = "cscript sub_program.vbs str01 str02 " または strCmdLine = "wscript sub_program.vbs str01 str02 " と記述する必要がある。 コマンドプロンプトでは、"たまたま" cscriptまたはwscriptが省略できる。
731 名前:729 mailto:sage [2008/02/13(水) 00:23:32 ] >>730 ありがとうございました。無事起動すること出来ました。 コマンドプロンプトでは"たまたま"省略可能なんですか・・・
732 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 07:49:15 ] という事はExplorerでアイコンをダブルクリックすれば起動するのも"たまたま"だね。
733 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 08:13:26 ] //H:でたまたまを切り替えられる。
734 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 09:19:40 ] どう考えても>>721 が正解
735 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:36:06 ] たまたまだけど、これもできる strCmdLine = "sub_program.vbs str01 str02 " objWshShell.Run(strCmdLine)
736 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 21:57:32 ] >>735 おまえ、何も解ってないな
737 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:12:08 ] そうだな、解るように言ってやれ
738 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 21:53:59 ] var fso= WScript.CreateObject("Scripting.FileSystemObject"); var d = fso.GetDrive(fso.GetDriveName("Q:\\")); if(d.IsReady){ ... とやってDVD-ROMドライブが準備できているかどうか調べているのですが、 DVDを入れて認識している最中にIsReadyが実行されるとウィンドウズ自体が数秒止まってしまいます バックグラウンドで動かしていてもフォアグラウンドアプリまで停止してしまうので困っているのですが これを回避するにはどうしたらいいのでしょうか?
739 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 22:14:09 ] FSOで問題あるときはShell.Applicationを使ってみるのが定石
740 名前:デフォルトの名無しさん [2008/02/16(土) 06:37:35 ] ドアラ グッドウィルドームに立つ! 再生:654,421 | コメント:123,256 | マイリスト:20,510 www.nicovideo.jp/watch/sm354359 凄い勢いで踊るドアラ 再生:482,525 | コメント:28,129 | マイリスト:17,837 www.nicovideo.jp/watch/sm1489303 ドアラが異端になった経緯 再生:424,284 | コメント:36,521 | マイリスト:9,417 www.nicovideo.jp/watch/sm378355 ドアラーズブートキャンプ 再生:241,338 | コメント:18,996 | マイリスト:7,229 www.nicovideo.jp/watch/sm409082
741 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:36:40 ] >>738 ドライブ認識動作中にエクスプローラとかでドライブにアクセスしても凍るから アクセスするタイミング悪いと凍るのは仕様じゃね? >>739 Shell.ApplicationにIsReadyはないけどな
742 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 17:20:40 ] Shell.Applicationで取れる情報で変化するものを見つければ?
743 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:30:09 ] Sub プロシージャとFunction プロシージャの違いって Function プロシージャが戻り値を返すのに対してSub プロシージャが値を返さないって言うだけですか?
744 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:51:11 ] End XXX Exit XXX がちがう
745 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 19:34:19 ] >>744 End Sub End Function が違うって言うのは分かりますし、Functionの場合のみ Function名 = 値 で値を返す事が出来る のも分かりますが(Javaで言うコンストラクタに値代入したらreturn文みたいな振る舞いすんのな) Exit Sub Exit Function というのがあるのですか?それはいったいどういう・・・? 単に終わらせるだけですか? 呼び出し元に戻りますか?
746 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:25:12 ] Javaなんかのreturnみたいにプロシージャの呼出元へ戻るだけ。
747 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:50:22 ] >>745 ヘルプも見れないのか
748 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:10:48 ] WSH(拡張子.vbsのファイル)で カレンダを表示するプログラムを作成しました。 出力はMsgBoxでしてます。 こんなかんじ MsgBox strResult, , "カレンダ" これを、携帯電話からも実行できるようにしたいと考えました。 携帯のカレンダがあるじゃないかと言われると困るのですが・・・ 便宜上カレンダと言っているだけで、実際は他の物を出力するので。 イメージ的にはカレンダというと一番伝わりやすいので・・・。 で、そのアイディアとして、サイト上に掲載すればいいと考えました。 携帯のブラウザからそのサイトにアクセスした際に.vbsで作ったのと同じような出力が 得られれば良いのですが、これを実現するのに簡単な方法は無いでしょうか? 今のところ私に考え付くのは JavaScriptを勉強してJavaScriptに書き直して やるぐらいかなぁと思っているのですが、そんな事しないとやっぱ出来ませんか? そうなると関数とか文法とかいろいろ勝手が違うでしょうから覚え直しですかね?・・。 .vbsファイルの出力のWeb版を作りたいみたいな感じです。よろしくお願いします。
749 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:16:13 ] 携帯もまだJavaScriptは実行できないぞ。 ASPと言って、Windowsサーバ上でVBScriptやJScriptをCGIのように実行する環境があった。 お前が欲しいのはきっとそれに違いない。 問題は、世間がASP.NETへ移行しつつあるということ。 ASP.NETはC#とかVB.NETとかを使うまた別物。
750 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:00:35 ] >>749 .vbsファイルを携帯に渡しても実行できるわけないし、じゃあ現状だと携帯でコレを実現 するのは難しいんでしょうか? 仮に携帯で実現するのが難しいとして、ブラウザに実装・・と言うか 第三者がWebブラウザでアクセスしてきた時に表示するようなのは JavaScriptになりますかね?
751 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:01:39 ] すれ違い よそへいけ
752 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:02:43 ] それって、なんか実行時に入力するパラメータあるんかな? ないんならタスクマネージャで定期的に実行して、 TXTかHTMLに出力したのをサーバに自動アップするような環境をつくって、 携帯でそれを見に行けばいいような気がするが。
753 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:12:23 ] >>752 おお!なんか凄いアイディア聴けた! えっとですね、1日に1回更新されるので、1日に1回実行してやればいいですね。 後はそれをTXT・・・には出来るのかなぁ・・・ ああ、そうか MsgBoxじゃなくてFileに出力 してやればいいんだ・・・ ああ、HTMLからそのTXTにリンクを貼るってのもありだし、 HTMLの中にそのTXTの内容を直接埋め込むのもありか!凄い!なるほど! ちょっと試行錯誤してみます。ありがとうございましたっ!
754 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:27:45 ] >>752 ありがとうございました! Dim objFso, txtFile Set objFso = WScript.CreateObject("Scripting.FileSystemObject") Set txtFile = objFso.OpenTextFile("hogehoge.txt", 2, True) txtFile.Write strResult txtFile.Close Set txtFile = Nothing Set objFso = Nothing こんなコードで生成できました!後はこの.txtファイルにHTMLでリンク貼れば完璧! 本当にお世話になりました〜
755 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:57:23 ] >>753-754 ただのテキストを吐き出すついでにHTMLにすればいいんじゃないの?
756 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 00:29:27 ] >>755 いやーそれが、やろうと思ったのですが、出来なくて・・・。 やろうと思ったらかなり大変だと思いますが、簡単に出来るもんでしょうか?
757 名前:756 mailto:sage [2008/02/20(水) 00:30:22 ] Replace strOutStrings, vbCrLf, "<br>" とかやって、改行を<br>に置き換えようとかやってみたんですが、うまくいきませんでした。
758 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 00:47:19 ] >>756 With txtFile .Write "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"" ""www.w3.org/TR/html4/loose.dtd "">" .Write "<html lang=""ja"">" ... End With こんな感じで書き出せばいいだけだろ。 >>757 そのテキストをpre要素の中に入れてしまうというのはどうだ?
759 名前:デフォルトの名無しさん [2008/02/20(水) 00:47:33 ] Dim objFso, txtFile Set objFso = WScript.CreateObject("Scripting.FileSystemObject") Set txtFile = objFso.OpenTextFile("hogehoge.htm", 2, True) txtFile.Write "<HEAD><TITLE>うんこやろ〜</HEAD></HEAD>" txtFile.Write "<BODY>" txtFile.Write "<CENTER>なんか文句あっか!</CENTER>" txtFile.Write "</BODY>" txtFile.Close Set txtFile = Nothing Set objFso = Nothing
760 名前:デフォルトの名無しさん [2008/02/20(水) 00:51:57 ] そういえばむかし、こんなんやってたな。 10 OPEN "INDEX.HTM" FOR OUTPUT AS #1 20 PRINT #1,"<HEAD><TITLE>ハナクソ</TITLE></HEAD>" 30 PRINT #1,"<BODY>" 40 PRINT #1,"<CENTER>うんこちんちん!</CENTER>" 70 PRINT #1,"</BODY>" 90 CLOSE #1 100 SYSTEM これを N88BASIC.EXE /T:RUN"HOGE.BAS" で定期的に動かして コンテンツを更新してた。 古きよき時代。
761 名前:756 mailto:sage [2008/02/20(水) 16:22:22 ] >>758 それやろうとしたんですが、HTMLファイル中の" を ""と置き換えないといけないのが面倒でした。 HTMLって意外と"を使いますし。 それに.txtファイルに出力してしまって HTMLからリンクを貼るだけの方がとても楽だったので・・。 それにしてもWithステートメントかぁ、ヘルプを見て初めて知りましたが、こんな便利なのが あったんですね。今までだったら txtFile. を何度も書かないといけなかったのに、これを知った おかげで完全修飾しなくてすむからもっとコードが楽にスッキリかけそうです。ありがとうございます。 >そのテキストをpre要素の中に入れてしまうというのはどうだ? これもまた素晴らしいアイディアだと思います。考え付きませんでした。 確かにそれなら簡単ですね。なるほどなるほど・・・。 しかしどうして>>757 のコードで 改行が <br> に置き換わらないのでしょうか? >>759 >txtFile.Write "<HEAD><TITLE>うんこやろ〜</HEAD></HEAD>" この行</HEAD>が2個あります。</TITLE>の間違いでしょうか(内側のHEAD) >>760 へぇ・・・そんな時代があったんですかぁ〜・・・。
762 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 16:34:20 ] Replaceは結果を戻り値に返すからこう使わないといけないはず。 strOutStrings = Replace(strOutStrings, vbCrLf, "<br>") ""がうざいのは、 ダブルクォーテーションではなくシングルクォーテーションを使うとか、 (属性はシングルでいい。でもDOCTYPEはわからない) 先頭(head要素が終わるまでくらい)をテキストに用意しておいて、 txtFileの頭にそれを書き出すとかでどう。 .Write objFso.OpenTextFile("c:\header.txt", 1).ReadAll
763 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 16:46:23 ] >HTMLって意外と"を使いますし。 ならJScriptつかえよ HTMLタグをつけるメソッドもあるし
764 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 17:58:02 ] >>763 DOMのことならVBScriptからでも使えるだろ。
765 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 18:18:23 ] Stringオブジェクトのことだろ
766 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 18:45:06 ] でもあまり使えるメソッドがないな
767 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:49:38 ] HTMLタグをつけるメソッドを付けた奴は、きっと浮かれ過ぎていたんだろうな。 後でcreat以上に恥ずかしい思いをしたに違いない。
768 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 20:09:23 ] JScriptだから好きなメソッドが追加できるよ .quote()なんてのもいいんじゃね
769 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 20:15:50 ] anchor(anchorString), big(), blink(). bold(), fixed(), fontcolor(colorVal), fontsize(intSize), italics(), link(linkstring), small(), strike(), sub(), sup() 確かに今更これらを使う気にならない
770 名前:756 mailto:sage [2008/02/20(水) 22:51:33 ] >>762 >strOutStrings = Replace(strOutStrings, vbCrLf, "<br>") あ、なるほど、確かにそうだ・・・失敗失敗・・・。 >先頭(head要素が終わるまでくらい)をテキストに用意しておいて、 txtFileの頭にそれを書き出すとかでどう。 なるほどねぇ・・・参考になります。 >>763 JScript使った事無いので全然知りません。 >>769 が言っている事がさっぱり分からない・・・
771 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 23:13:16 ] 俺もJScriptは使わないけど、ヘルプはあるんでJScriptのヘルプより抜粋。 > anchor メソッド参 照 > link メソッド| String Object メソッド | String Object プロパティ > > 対象: String オブジェクト > 必要条件 > バージョン 1 > String オブジェクトに格納されている文字列の前後に HTML の NAME 属性を指定する <A> タグを挿入します。 > > strVariable.anchor(anchorString) > 引数 > strVariable > 必ず指定します。String オブジェクトの名前またはリテラルを指定します。 > anchorString > 必ず指定します。アンカー タグの NAME 属性に挿入する文字列を指定します。 > 解説 > anchor メソッドを呼び出すと、String オブジェクトから名前付きアンカーが作成されます。anchor メソッドの使用例を次に示します。 > > var strVariable = "これはアンカーです"; > strVariable = strVariable.anchor("Anchor1"); > 2 つ目のステートメントの実行後、変数 strVariable は次の値になります。 > > <A NAME="Anchor1">これはアンカーです</A> > このメソッドの実行時には、<A> タグが既に元の文字列内にあるかどうかの確認は行われません。 後の関数も似たようなもんだろ。さすがにこれはどうかね・・・
772 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:32:49 ] BASP21のSpaceメソッドほどではない。 # あれは馬場さん自身「作者の無知からくる全くのゴミメソッド」なんておっしゃってたな...
773 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:43:06 ] |BASP21メソッド編 | 1. BASP21のSpaceメソッドはなんであるの | えーとこれは、作者の無知からくる全くのゴミメソッドです。 | HTML でスペースをあけるのに全角のスペースを使うことがありますが、 | IMEでなぜか入力できなかったから(IMEのプロパティが半角スペースになっていただけ)。 | たぶん、誰も使ってないと思いますがどうでしょう。 babaq さんオッチョコチョイ杉ワロタ せっかくだから今度どこかで無理矢理にでも使ってあげようっと
774 名前:デフォルトの名無しさん [2008/02/23(土) 12:50:03 ] あれはあれで便利だからなくさないで欲しい
775 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:30:14 ] 吉岡照雄のOn Error Resume Nextの正しい使い方とやらを読んだんだが、 こんな面倒なことをしないといけないのか・・・
776 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 15:11:12 ] >>775 On Error Resume Nextの正しい使い方教えて〜
777 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 15:23:10 ] Subプロシージャを毎回作るのはいいけど、さらに複数行の時は入れ子。。。 Subプロシージャだらけになって大変すぎ
778 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 16:39:25 ] ファイルの日付をデータベース(ACCESS)に格納できねぇーー strSQL = "INSERT INTO Log " & _ " (Name " & _ " ,Date " & _ " ,SIZE) " & _ "VALUES ('" & fol.Name & "'" & _ " ,#" & fol.DateCreated & "#" &_ '←ここがおかしいらしい " ," & fol.Size & ")" なんか 『Insert into ステートメント の 構文エラーです』 とか出るんだけどなにがおかしいのか・・・
779 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:27:26 ] 文字列にフォーマットし直してから渡せ
780 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:51:51 ] はぁー?
781 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:55:22 ] 問題はそのフォーマットだろ
782 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 19:22:20 ] SQLの構文に合った書式に変換されるとは限らないってこった。 一旦、年月日時分秒をバラバラにして、構文に合わせた書式に作り替えればいい。 書式は自分で調べてくれ。
783 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:40:43 ] #mm/dd/yyyy hh:mm:ss# で渡すといいよ。VBScriptはFormat関数ないから面倒だ。
784 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 21:39:48 ] コードそのままで[地域のプロパティ] を変更するといいよ
785 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 22:21:37 ] capicom.dllが再頒布可能かどうかが調べてもさっぱり分からないんだが
786 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 22:31:22 ] WSHってマウスクリックも出来ないし、.SendKeysメソッドで日本語扱えないしで やっぱりAutoHotKeyには到底かなわない?
787 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 22:40:13 ] >>785 www.microsoft.com/downloads/details.aspx?FamilyID=860ee43a-a843-462f-abb5-ff88ea5896f6&displaylang=ja このパッケージには、CAPICOM 2.1.0.1 の再頒布可能なファイルとそのサンプルが含まれています。
788 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 22:47:45 ] >>787 そこだけみると、間違いなく再頒布可能なファイル=CAPICOM.dllな気がするんだが、 DLしてライセンス(英語)を読むと、 再頒布可能なのは、REDIST.TXTに記載されたものと書いてあるが、 REDIST.TXTなんてどこにもない・・・ ググってもググってもはっきりどこにも書いてないorz
789 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:40:10 ] >>788 msdn2.microsoft.com/en-us/library/ms995332.aspx ここだと「再配布可能な CAPICOM ActiveX control」と表現してる。 Platform SDK で CAPICOM で ActiveX control なのは capicom.dll しかないので限定できる。 The Platform SDK contains CAPICOM samples, API documentation, and the redistributable CAPICOM ActiveX control. というか考えすぎと思う。 再配布して意味のあるものは capicom.dll しかないんだし。
790 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:43:07 ] >>779 #とか'とか何度もやったし >>781 Accessに設定したフォーマットは、yyyy/mm/dd hh:mm:ssで、 DateCreatedも書式一緒だからそのままにした >>782 ,783 Dim day, m, n, strDt, strEd strDt = "2090/02/23 00:00:00" day = Split(strDate, " ") m = Split(day(0),"/") n = Split(day(1), ":") strEd = m(1) & "/" & m(2) & "/" & m(0) & " " & n(0) & ":" & n(1) & ":" & n(2) WScript.Echo strCom 煩雑だ >>784 [英国]とか[米国]でもダメだけどorz フィールド名にDateはダメだったの? Dateから日付に直したらできたよ ふぉぉぉぉぉっふぉおおおっ!!
791 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:08:27 ] >>789 確かにそういうことですね。私の考えすぎでした。 これで、capicom.dllを一緒に配布できるってことか。 一緒に配布している例が見あたらなくって、 どうしてMicrosoftからDLさせるところばっかりなんだろう?と、思ってました。 どーもです。
792 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:26:28 ] >>791 >どうしてMicrosoftからDLさせるところばっかりなんだろう?と、思ってました。 これについてはセキュリティリスクが関係すると思う。 同梱は可能であっても、同梱してしまうとバグやセキュリティ問題で capicom が更新されたとき、 企業責任として製品自体の更新版を出すことを検討しなければならない。 別途ダウンロードさせる場合にはそれは必要ない。
793 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:28:06 ] >>786 の質問に答えてくだされ・・・・
794 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:34:26 ] そうです、WSHはうんこです。AHKの足元にも及びません。AHKが最高です。よかったね。
795 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:26:00 ] AHK >>>>>>>>>>>>>>>>>>>>> マウス操作がデフォでできない言語 こんな定義でおk?AHKってどんだけ凄いんだよ(w
796 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:40:34 ] 全盛期のAHK伝説でも貼る流れか?
797 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:05:09 ] AHKは本当に凄いですよ?AHKにWSHが勝てる点って デフォルトでWindowsに入ってる 標準環境っていうぐらいじゃないですかね?
798 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:24:06 ] デフォルトでWindowsに入ってる標準環境>>>(越えられない壁)>>>インストール
799 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:03:14 ] AHKのおかげで身長が2m伸びました
800 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:06:38 ] AHKから受信料の請求がきましたが、どうすればいいのでしょうか
801 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:29:44 ] >>800 テレビの横に古いパソコンを置いて「これはパソコンモニタです」って言い張れ。
802 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:43:11 ] >>786 >>793 >>797 暇でネタ振ってるんだと思うけど、それならそれで以下を回答してくれ。 ・WSHとは何か、具体的に。 ・どのように比較してその結論に達したか。
803 名前:デフォルトの名無しさん [2008/02/24(日) 15:12:23 ] A ア H ホ K か?
804 名前:797 mailto:sage [2008/02/24(日) 16:47:52 ] >>802 WSHとはWindows Script Hostingの事で、拡張子 .vbsのファイルにして実行できる Windowsのスクリプト(Batとは違うのだよ、Batとは!)です。 Linuxで言うShell Scriptみたいなものかと思っています。 比較は、やはりマウスクリックですね。操作の自動化をしたいので、GUIアプリケーションを操作 する際に、Alt + Key みたいな感じにキーが割り当てられてない、クリックでしか出来ない操作を 自動化しようとするときにWSHだと無理なんですよ。 それと .SendKeysメソッド。日本語を送信できないなんて論外です。 その点AHKなら日本語も送信できるしマウスクリックも出来るし、記述が簡単(インスタンス生成 とか面倒な事しなくても簡単な記述でいい、ただし引数の多さがたまに傷かな)な所が良いと思います。 こんな感じでしょうか?
805 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:22:37 ] WSHはオートメーションオブジェクトの操作がメインだったりする。 他のアプリの制御はアウトプロセスサーバとして制御してくれ、って方針。 Perlが標準入出力の扱いに最適化されているように、 ATKはGUIアプリの操作シミュレートによる制御に最適化されている、と。 ATKはWMIの制御やりにくいから糞、とか言われても困るだろ?
806 名前:797 mailto:sage [2008/02/24(日) 17:52:35 ] >>805 1行目、2行目、5行目の貴方の言っている事がスキルの低い私には理解できません・・・。 意味が分からないです・・・。すみません。
807 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:56:37 ] 操作自動化の方法論が違うから総合的な比較はできないってこと GUI操作のシミュレートならそりゃそれように作られたもの使うのが当然 WSHはそういう用には作られてないもの
808 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:06:30 ] >それと .SendKeysメソッド。日本語を送信できないなんて論外です。 日本語が送れるVBのSendKeysと送れないVBSのSendKeysは、 仕組み上でどういう違いがあるのでしょうか?
809 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:13:14 ] 直接Win32API呼び出してるかどうかじゃね
810 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:15:12 ] Win32API呼び出さないで、SendKeys作れるの?
811 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:22:31 ] つかってるAPIがちがうんだろ
812 名前:802 mailto:sage [2008/02/24(日) 21:37:27 ] >>804 WSHというのは、スクリプト言語からWindows操作をする為の手段(WSHオブジェクト) の提供と、そのスクリプト言語をデフォルトではVBScriptとJScriptを内包している。 君の比較しているのはVBScriptのようだけど、これは>>805 の言っている通り WSH以外のオブジェクトにもアクセスできる。例えば、IEやEXCEL、WMI....etc こういう事はAHKでは、どうやるの? というか、よく見たら>>807 が結論出してるね。 GUI操作だけで比較したら、その機能に特化しているAHKが優れているが、 それは総合的な比較じゃないでしょ。理解できた?
813 名前:797 mailto:sage [2008/02/24(日) 23:23:04 ] >>812 なるほど、適材適所でWSHもWSHが得意な場面で使えばAHKより使い勝手いいんだ・・・。
814 名前:デフォルトの名無しさん [2008/02/24(日) 23:59:03 ] 質問させてください。 ファイルが書き込み不能かどうかを検出するにはどうすればよいでしょうか? リードオンリ属性ではなく、ファイルを削除するとき稀に出てくる 「ほかのプログラムが使用しているため削除できません」ってやつの状態です。
815 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:01:04 ] >>814 自己レス。 try仕込むだけでよかったのね orz
816 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:18:15 ] >>812 > こういう事はAHKでは、どうやるの? AHK用ActiveXモジュールを使えば良いだけ 逆にWSHでのポインティング操作などは そういう機能を提供するCOMを使えば良いだけ このレベルのことなら、やり易さに違いはあっても 結果的に"出来ること"ではWSHもAHKも大差ない ポインティング操作に限って言えば WSHは最初からWindowsに入っているが、ポインティング操作機能は後付けになる AHKはWindowsに対して後付けで入れないと使えないが、ポインティング操作は最初から備えてる ってだけの違い
817 名前:797 mailto:sage [2008/02/25(月) 02:18:45 ] >>816 なんか凄くお詳しいですね・・なるほど、参考になります。 構文とかの簡単さはどちらの方に軍配が上がりますか? 情報量の多さでいくと、WSHの方が色々なところで解説されているだろうし メジャーだと思います。 AHKはもっと普及してれば敷居低くなるのになぁと思ったり。
818 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 02:49:55 ] AHKS
819 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 09:15:26 ] FileSystemObjectのTextStreamオブジェクトのReadAllメソッドって サイズ0のテキストファイルに対して実行するとどうしてエラーになるのかよくわからん 長さ0の文字列返せばいいのに なんで? あとVB6でFileSystemObjectのGetParentFolderNameメソッドを使うと親フォルダ名のみだけど VBScriptだと親フォルダのフルパスが返ってくるけどこれもなんでだろ? 同じFileSystemObjectでもVB6が使ってるのは別物なの? なんで?
820 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 20:06:21 ] ReadやReadLineとの仕様の一貫性かも DLLは同じなの?
821 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 21:57:16 ] ReadAll()する前にAtEndOfStreamを調べなきゃならないようですね var ForReading = 1, ForWriting = 2; var Fso = new ActiveXObject("Scripting.FileSystemObject"); var f = Fso.OpenTextFile("null.txt", ForReading); if (! f.AtEndOfStream) WScript.StdOut.Write(f.ReadAll()); f.Close();
822 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:01:31 ] たぶん、めんどくさかったんだと思う
823 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 23:17:11 ] WindowsXP、つまり最新のWSH 5.6だと使えるメソッドでもWindows2000、つまりWSH 5.6未満だと 使えないメソッド(例えば Execメソッドとか・・・)やプロパティがありますよねぇ? それらを調べたいのですが、何を見ればそういうことがまとまって書かれてありますか? WSHのヘルプファイルを見てみたのですが、見つけきれませんでした。 やりたい事はWindows2000のWSHを5.6にバージョンアップせずにWindows2000でもXPでも 動作するスクリプトを書きたいのです。だから予めどのメソッドが動作しないとか、 引数が違うとかそういうことを把握しておきたいのです。
824 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 23:46:07 ] 5.6のヘルプのバージョン情報
825 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 23:47:24 ] ただし、障害は載ってないからなぁ
826 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 08:26:53 ] 最新は5.7よ
827 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 13:02:12 ] >やりたい事はWindows2000のWSHを5.6にバージョンアップせずにWindows2000でもXPでも >動作するスクリプトを書きたいのです。 いまさらやめとけ それに2.0じゃたいしたことはできねー
828 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 16:42:46 ] >>825 5.0と5.1の挙動の違いすら、5.6のヘルプのバージョン情報だけでは分からなかったからなぁ・・・
829 名前:デフォルトの名無しさん [2008/03/19(水) 11:24:42 ] 5.7なんてあったっけ
830 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 12:40:52 ] >>829 最近出た。Vistaに標準搭載で、上から2000, XP, 2003英語版がダウンロード可。 www.microsoft.com/downloads/details.aspx?FamilyID=c03d3e49-b40e-4ca1-a0c7-cc135ec4d2be&DisplayLang=en www.microsoft.com/downloads/details.aspx?FamilyID=47809025-d896-482e-a0d6-524e7e844d81&DisplayLang=en www.microsoft.com/downloads/details.aspx?FamilyID=f00cb8c0-32e9-411d-a896-f2cd5ef21eb4&DisplayLang=en
831 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 15:47:18 ] ちがいは?
832 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 03:21:19 ] 0.1
833 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 03:37:06 ] >>831 不具合修正・セキュリティパッチの統合もあるが、 JScriptで大量のオブジェクトが生成された時のGC高速化がメインかと。 dramaticallyとまで書かれているあたり、結構凄いのかもしれない。
834 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:20:03 ] Msxml2.XMLHTTPなんだけど readyState=2や3の時、status取得できる? 4にならないとエラーになるんだけどこれ普通? Msxml2.ServerXMLHTTPなら2や3でできるんだよね・・・ 最近IEがおかしくなってきてるので どっか壊れてるんだろうか・・・? XP SP2+IE6
835 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 00:32:37 ] IEとalertがとじれません><
836 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 02:02:27 ] すれちがい
837 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 02:09:26 ] IE.Quit
838 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 15:04:13 ] Exec("iexplore.exe").Terminate
839 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 17:42:24 ] >>775-776 これ、気になるんですけど…
840 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 17:59:25 ] どんまい
841 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 18:41:22 ] ん?検索すれば出てくるだろ?
842 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 19:05:52 ] >>841 あれがベストなのか?
843 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 19:10:55 ] .wsfに読み込む.vbsファイルの一部の関数を非公開にするのってどうやるの? .vbs内部だけで使える関数を作りたいんだけど・・・
844 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 19:13:42 ] できない 代替するなら wsc class かな
845 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 19:18:08 ] >>842 ベストなのを教えて
846 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 23:13:48 ] 無理言うな、それが出来れば質問しないだろ?
847 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 23:45:48 ] >>843 Sub xxx_aaa() とかで凌げ
848 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 00:02:50 ] エラーが起きたら即終了でダイアログが出ないようには どうすればよろしいでしょうか?
849 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 00:07:35 ] try { …… } catch (e) { WScript.Quit(); }
850 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 00:37:04 ] On Error Resume Next
851 名前:デフォルトの名無しさん mailto:age [2008/03/30(日) 02:51:51 ] アニメ「めぐみ」ダウンロードページ www.rachi.go.jp/jp/megumi/index.html#ja
852 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 04:16:32 ] >>850 は即終了しないだろ?
853 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 13:45:44 ] vbeはwsfでは読み込めないのか…
854 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 16:10:59 ] んなことはない
855 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 17:01:16 ] vbsをvbeにエンコードしてから、読み込む側のコードの読み込み部分を <script language="VBScript" src="./hoge.vbs" /> から <script language="VBScript" src="./hoge.vbe" /> のようにしたんだが、 エラー: ステートメントがありません。 ソース: Microsoft VBScript コンパイル エラー になってしまって、あきらめていた。"VBScript"の部分を適切なものに変更すればいいのか? wsfの説明を読んでも分からない…教えてください。
856 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 17:02:55 ] VBScript.Encode
857 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 17:06:38 ] >>850 Try ... Catch ex As Exception WScript.Quit End Try
858 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 17:10:18 ] で、できた。今までできないと思っていたのに… いろいろ実験に使っていたファイルを使ってやってみたんですが、 vbeファイルの中にPrivate Subと宣言した関数(実験なのでそのままPrivateSubという名前) を使おうとすると エラー: 型が一致しません。: 'PrivateSub' ソース: Microsoft VBScript 実行時エラー となるんですが、これはたまたまですかね?それともPrivateの効果なのか・・・ vbsを読み込んでいた時はエラーは起こらなかったんですが。
859 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 18:49:01 ] >>848 //B
860 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 19:10:00 ] >>858 君は>>843 かな? Private(Public)宣言はオブジェクト(クラス)外に公開するか否かの宣言なので インクルード(wsfのscript要素のsrc属性指定)した場合は関係ないよ きっと偶々というよりプロシージャ名間違い等、君のミスだろう プロシージャ名間違いなら、読み込みでエラーにはならないが呼び出しではエラーになるし 一応確認してみたが、vbs内でPrivate宣言したSubプロシージャを そのvbsをインクルードしたwsf内で呼んでみたが、きちんと実行された
861 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 19:21:47 ] VBScriptでなく、JScriptにすれば? function a(){ WScript.Echo('a'); b(); function b(){ WScript.Echo('b'); } } a(); b();//エラー
862 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 22:40:14 ] MsgBoxをModelessに出して、後で閉じる方法を教えてください
863 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 00:41:20 ] WshShell.Run "MsgBox.vbs"
864 名前:デフォルトの名無しさん [2008/04/01(火) 22:03:55 ] あるサイトに含まれている文字列をカウントして出力する、 VBscript(HTA)を、作成しているのですが、 実際に試してみると、以下のダイアログが出現してしまいます。 「このスクリプトの実行を中止しますか?」 このページのスクリプトが、IEの実行速度を落としています。 このまま実行を続けても検索結果となる数字が出力されません。 この場合、どうしたらよいのでしょうか? 以下に、該当する処理を載せます。 strSerch = document.u_list.key.value i = 0 If strSerch="" Or strSerch=" " Then '検索フォームに何も入っていないとき Else Do While InStr(webtext,strSerch) '検索キーワードでサイト検索 i = i+1 '検索回数カウント Loop End If
865 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 22:22:47 ] >>864 無限ループにならないようにすると良いのです
866 名前:デフォルトの名無しさん [2008/04/01(火) 23:30:32 ] ひどいロジックだな。 最近は「フローチャート」とか書かなくなったせいか こんなのが増えたな。
867 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 23:37:41 ] フローチャートなんて日本で「マイコン」が出だした頃でも既に有用性が 否定されていたぞw
868 名前:デフォルトの名無しさん [2008/04/01(火) 23:50:25 ] ↑ 言うと思った。バカの一つ覚えw それは、ある程度、論理的な思考ができるヤツがいう事だよ。 >>864 みたいに未熟なヤツは、フローチャートから入らないとダメ。 今からやろうとすることを、目に見えるカタチにしてまとめる。 これは大事なことだよ。 >>867 は後輩を育てられないタイプだな。
869 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 00:15:04 ] i = UBound(Split(webtext,strSerch)) + 1 '検索キーワードでサイト検索 検索回数カウント
870 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 00:58:45 ] found = 0 i = 0 Do found = InStr(found+1,webtext,strSearch,vbTextCompare) i = i + 1 Loop While found i = i - 1 初心者だけど同じ関数で無理やりやってみた。>>869 みたいに綺麗に逝きたい…
871 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 01:10:39 ] あー、でもこれ"aaaaaaaaaaaa"から"aaa"を検索したいときどう解釈するべきなんだろ。 >>870 では10回、>>869 では4回?
872 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 01:16:13 ] あれ?検索文字列を区切りにしたなら検索された数は要素数-1でないの? UBoundに+1する必要ないような。
873 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 02:35:03 ] i = Len(webtext) - Len(Replace(webtext,strSerch,Mid(strSerch,2)))
874 名前:デフォルトの名無しさん [2008/04/03(木) 00:59:23 ] カッコつけて恥かいちゃったね
875 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 02:22:25 ] (恥)
876 名前:ドシロウト mailto:sage [2008/04/03(木) 11:45:22 ] >>870-872 が自分のレスだけど、それ以外の人にも、わかってる人は 罵倒レスじゃなくてなんでダメポなんか書いて欲しいな。 スレ見てても参考にならんわ。 >>873 は何したいのかわけわかめなんだけど。 i=全文字数-(ヒットした数x(検索文字列の字数-2)) でいいんかな? この2はどこから出たのやら? もしかして>>871 に対するレスか?
877 名前:ドシロウト mailto:sage [2008/04/03(木) 11:54:33 ] 連レスすまん。 カキコした瞬間に勘違いに気づいた。 webtextで検索文字列にマッチした部分を検索文字列の2文字目以降で全置換 →全文字数がマッチした回数x1文字減るから減った数をカウントすればマッチ数がわかる でOK?
878 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 17:49:57 ] i = (Len(webtext) - Len(Replace(webtext,strSerch,""))) / Len(strSerch)
879 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 17:54:58 ] found = 1 - Len(strSerch) i = - 1 Do found = InStr(found+Len(strSerch),webtext,strSearch,vbTextCompare) i = i + 1 Loop While found
880 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:28:22 ] ここ、PC初心者板じゃないよね?
881 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:34:37 ] >>880 ちがうよ スレタイも読めないの?
882 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:35:29 ] 何が言いたい? 煽るなら死ぬ気でやれよ
883 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:36:15 ] っちょ うざいな
884 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:51:50 ] >>880 凄いなぁ!尊敬。アッタマいい!かっこいい。 (などと言われてみたい。。。てか?
885 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:54:16 ] >>880 は例の基地外
886 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:57:19 ] >>864 正攻法はRegExpだろ?
887 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:17:17 ] >>880 にもチャンスをやろうよ RegExp使ったコード書いてみ?
888 名前:デフォルトの名無しさん [2008/04/03(木) 19:21:46 ] i = UBound(Split(webtext,strSerch)) すでに答えが出てるだろ。
889 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:38:52 ] >>868 あのなあ。。 フローチャートってのは「プログラミング言語以外で処理内容を表現するツール」 いうなれば「プログラマ以外の人間の方を向いたツール」であって(だから今でも ユーザーズマニュアル等には時々出てくる)プログラマが思考の整理に使う道具ではないんだよ。 もう30年も前から言われていることだが、フローチャートってのは 複雑性を縮減する機能が全くないだろう。 ただベタに処理をチャートで表現しただけだからな。 だったらそんなもの書いてる暇があったらとっととコード書けってw こんな人間が後輩の育成とか釣りではなく言ってるならどんだけ馬鹿なんだよw っていうかこんな人間に「育成」される人が可哀想だ。
890 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:42:38 ] >>887 正規表現で指定したい場合なら、何の変哲もないが With New RegExp .Pattern = strSerch '.IgnoreCase = False .Global = True found = .Execute(webtext).Count End With でいいんじゃね? IgnoreCaseプロパティは必要に応じて指定すれば良し >>871 の場合の結果は後者
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を参照設定しろー
892 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:05:48 ] すれちがい
893 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 17:04:30 ] ぐぐれもん
894 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 17:05:30 ] WScript.exeを参照設定しろ
895 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 19:36:53 ] 実際問題としてVBAならDeclareが一番楽だと思うんだ
896 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 21:11:06 ] Application.Waitのほうが簡単
897 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 21:15:39 ] >>887
898 名前:デフォルトの名無しさん [2008/04/05(土) 02:12:04 ] >>889 後輩つぶし必死だなwww そんなに若者に追い越されるのが怖いのかい? >そんなもの書いてる暇があったらとっととコード書け で書いたのが、>>864 だよ。 キミは後輩にこんなコードを書かせて満足してるんか?
899 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 03:26:18 ] いいぞもっとやれ
900 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 04:37:18 ] よそでやれ
901 名前:kuchigakusaiossan [2008/04/06(日) 14:14:28 ] >>891 自己レスですぅ 誤った解釈は、www.happy2-island.com/vbs/cafe02/capter00711.shtml はVBAじゃなくWSHのスクリプトそのもらしい。 www.atmarkit.co.jp/fwin2k/operation/wsh01/wsh01_01.html から考えましたが Wshスクリプトないでは wscriptは暗黙にオブジェクト化されそのまま参照可能である VBAからはwscript そのもののオブジェクト化はエラーになる Dim WSH Set WSH = CreateObject("WScript") ← エラーになる WSH標準オブジェクトはオブジェクト化できる Dim WSH Set WSH = CreateObject("WScript.shell") WSH.Run ("sleep 3") WSH.Run ("echo test") ↑ はOK sleep echo は意味ありませんが 以上の事で混乱していたみたいです なぜVBAからWscriptのオブジェクト化ができないのか?回避策は?などは 誰か〜〜 知ってる人おらんか。。。。。。 ヨロシク
902 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 14:30:59 ] だいたいそういうこと。 WScriptオブジェクトはwscprit.exe/cscript.exeがスクリプトへ与えるもので、 その大半はスクリプトを実行したときでいないと意味を成さない。 例えば、WScript.SleepならVBではWin32 APIのSleep関数を使えばいいという具合に別の方法がある。
903 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 16:24:34 ] スレ違い 【OLE】オートメーション総合スレ【ActiveX】 pc11.2ch.net/test/read.cgi/tech/1137771139/l5
904 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 16:33:35 ] ActiveScript絡みだしギリギリOKじゃね? OLEオートメーションは一寸戻り過ぎだ。
905 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 17:12:55 ] >なぜVBAからWscriptのオブジェクト化ができないのか? できるけど?
906 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 17:29:47 ] Set WScript=GetObject("WScript.exe")
907 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 17:38:31 ] WScript.exeをtlbimpした.NETアセンブリを作って、 それをregasmしてVBAから呼び出す。
908 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 20:34:49 ] なぜWSHからVBAの関数やステートメントが呼べないのか?回避策は?などは 誰か〜〜 知ってる人おらんか。。。。。。 ヨロシク
909 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 20:56:36 ] VBAは外部に公開されていないし、ステートメントは論外だろ。 よって回避策も無い。呼び出すこと自体が目的でないなら別だけど。
910 名前:デフォルトの名無しさん [2008/04/07(月) 02:23:47 ] >>905 どうやって作るのかコーディング例希望 ちなみに >>906 は excel2003VBA では 「オートメーションエラーです」になる。なにかおまじないが必要なら ご教授ねがいたい。くれぐれも実際に動作する説明でお願いしたい。
911 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 02:37:28 ] >>908 >>909 回避策でよいなら、Office経由で可能では? WSHからOfficeのオブジェクト作って、非表示のOfficeのドキュメント内にVBAのコード 動的に登録して実行すればよい とはいっても最近ではセキュリティの関係でOfficeの外部からVBAコード操作するとエラーになるけど、 これについては設定変えればいけると思う(たぶん)
912 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 17:19:56 ] >>910 WScriptは外部に公開されていないし、CreateObjectは論外だろ。 よって回避策も無い。呼び出すこと自体が目的でないなら別だけど。
913 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 17:22:25 ] >>910 回避策でよいなら、Office経由で可能では? WSHからOfficeのオブジェクト作って、非表示のOfficeのドキュメント内にWScriptのオブジェクトを 動的に登録して参照すればよい
914 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 17:27:23 ] >>908 Excel.Application.Run (Excel2002以降は不可) Access.Application.Eval (関数のみ) FoxPro...
915 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:05:58 ] htaなんて便利なものがあるのを初めて知った。 まだpowershellはいいや。
916 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 12:25:35 ] すれっち
917 名前:デフォルトの名無しさん [2008/04/10(木) 22:06:04 ] Set WSH = CreateObject("ほげほげ") は、 Set WSH = WScript.CreateObject("ほげほげ") の WScript を省略したもの。WScript はデフォルトで用意されているから。 >>901 Set WSH = CreateObject("WScript") ← エラーになる これを長く書くと、こうなる。 Set WSH = WScript.CreateObject("WScript") なんか変だよね。
918 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 22:11:34 ] > Set WSH = CreateObject("ほげほげ") > は、 > Set WSH = WScript.CreateObject("ほげほげ") > の WScript を省略したもの。WScript はデフォルトで用意されているから。 違うよ CreateObjectはVBSのグローバル関数(メソッド) > CreateObject(servername.typename [, location]) WScript.CreateObjectはWSH(WScriptオブジェクト)の関数(メソッド) > object.CreateObject(strProgID[,strPrefix]) 動作は似てるが引数(得に第二引数)の内容も違う
919 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 22:41:44 ] 違うよ ここでは CreateObjectはVBAのグローバル関数(メソッド) WScript.CreateObjectはWSH(WScriptオブジェクト)の関数(メソッド) なのでVBAでは使えない ちなみにWSHでは Set WSH= はエラー
920 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 01:14:52 ] ADOでExcelに接続してワークシートをテーブルに見立ててクエリ投げる、ってのあるじゃないですか、 Excelが2000・2002(XP)・2003の環境だと問題ないんだけど、今日同じソースでExcel2007で初めて動かしたら ADO接続のところでエラーになった。 もしてかして2007ってこれ使えない?
921 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 10:18:52 ] 当然
922 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 12:33:43 ] >>921 こういうレスって2007使ってない奴には何が当然かさっぱりわからんわな。
923 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 18:31:53 ] >>921 thx!
924 名前:デフォルトの名無しさん [2008/04/11(金) 21:49:08 ] >>922 kwsk
925 名前:デフォルトの名無しさん [2008/04/11(金) 22:08:45 ] >>919 ここでは、って言われても・・・ ここはWSHのスレだろ?VBAのスレじゃ無いよ。
926 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 23:34:51 ] 質問文の日本語を読めなかったの?
927 名前:デフォルトの名無しさん [2008/04/12(土) 01:45:37 ] 質問文の日本語を読めば、ここがVBAスレに変身するのか?
928 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 11:20:49 ] ここがWSHスレだから、元レスがWSHの質問文に変身したというのか?
929 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:12:30 ] >>910 WScript.exe /register
930 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:18:02 ] regsvr32 WScript.exe
931 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:38:59 ] >>910 WSC作って Set WScript=GetObject("script:WScript.wsc")
932 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:01:40 ] >>929-930 こういう小学生的なレスの意味は?
933 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:12:27 ] 他人の人生の意味なんか考えてても人生の無駄だぜ
934 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:05:43 ] 他人が以下に自分より劣ってるかというのは重要だぜ
935 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:14:35 ] 他人が恥を晒しているのが見れるのは重要だぜ
936 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 00:56:49 ] >>932 レベルを相手に合わせてるんじゃないの?
937 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 01:08:50 ] そう思ってるのは本人だけ。
938 名前:kuchigakusaiossan mailto:sage [2008/04/13(日) 13:15:30 ] WSHのソース作成&デバッグってみなさんどうしてるの? vbs をダブルクリック等で起動するようなスクリプトを VB(A)と同じようようなデバッグ環境でデバッグできますか? excel2003の Script Editor が使えるのかなと動かしてみたが これはWEBのVBS用なのかな。。? スッテップイン させてもブラウザが動いてステップしないし ぐぐるとWSHではそのままでは動かないような事もでてくるし ttp://www.sio.no-ip.com/mt/shio/archives/2005/05/wsh-os.html イミディエィトウィンドウがないみたいだし エクセルVBAで書いてるソフト(自己使用)のメイン部分をWSHにしてエクセルから外にだそうと 考えていいますが、すなおに VB(Visual studio ?)にでもしたほうがいいのかな。。。 よろしく〜〜〜〜〜〜
939 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 13:26:29 ] Msgbox デバックだろ。常考。
940 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 13:32:17 ] VisualStudio持ってるけど、VBS相手に使ったことないなぁ〜 使ってる/使ったことあるひと教えて〜
941 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 13:39:34 ] wscript //?
942 名前:デフォルトの名無しさん [2008/04/14(月) 02:35:34 ] VisualStudio 2005 Enterprise Edition は コード補間のできるVBSエディタとして使ってるけど デバッグは MsgBox や Wscript.Echo だな。 これは VBS に限らず、すべてのプログラミング言語に共通する 基本中の基本だな。
943 名前:デフォルトの名無しさん [2008/04/14(月) 08:30:01 ] MSがscript debugger とかいうの配布してなかったっけ? おれもmsgboxデバッグ派だけど。
944 名前:デフォルトの名無しさん [2008/04/14(月) 11:36:24 ] デバッガ使うよりメッセージ出力のほうがいい理由って何?
945 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 12:27:54 ] デバッガがある環境は限られるが、メッセージ出力はメモ帳があれば追記できる。
946 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 14:31:09 ] ScriptDebugger って生VBSで使えたんだっけ? たしかIEのオプション(?)でASPとか向けだった気がするんだけど。
947 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 16:00:59 ] >>941
948 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 01:00:37 ] VisualStudio だとVBSのステップ実行できないし変数ウォッチできないだろ
949 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 01:09:09 ] つまりScriptDebuggerならステップ実行&変数ウォッチができるってこと?
950 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 07:44:18 ] >948 できないよ
951 名前:デフォルトの名無しさん [2008/04/15(火) 08:34:13 ] そのdebuggerってフリーなの?
952 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 12:58:30 ] WSHってかvbsは外部コマンドも呼びづらくパイプ処理も面倒で かといってWin32APIも呼び出せず単体ではモジュール化もできないと制約だらけだな。 これほど使いづらい言語はお目にかかったことがない。
953 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 13:23:32 ] >WSHってかvbsは外部コマンドも呼びづらくパイプ処理も面倒で >かといってWin32APIも呼び出せず単体ではモジュール化もできないと制約だらけだな。 自分の無知を言語のせいにする典型だなw
954 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 13:57:29 ] 言語を使いこなせない狐が酸っぱい葡萄と言うんだって?
955 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 14:33:46 ] WSHでAPI呼べるの?
956 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 14:40:28 ] そういうCOM使って呼べる
957 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 14:44:20 ] >>955 WSHでもAPIは呼べるよ ActiveXって種類のAPIなら直接ね そしてWin32APIって種類のAPIはActiveXから呼べるので 結果WSHからWin32APIを呼ぶことも可能
958 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 14:47:25 ] よーするに呼べないってことですね。
959 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 14:53:11 ] 馬鹿には呼べないってことですね。
960 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 14:56:35 ] vbaは外部コマンドも呼びづらくパイプ処理も面倒で
961 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 15:20:27 ] 言語仕様もひどいもんだしな
962 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 15:24:15 ] >ステップ実行 1行ごとにStop文
963 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 20:40:33 ] >外部コマンドも呼びづらくパイプ処理も面倒 なのは"WScript.Shell"がへぼいせいで、もっといいCOMを作れっていうの
964 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 22:25:44 ] COM作れるんだったらそっちの開発環境で完結すればいいんじゃね なにもWSHなんぞ使わんでも
965 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 22:36:02 ] MSに文句を言ってるんだと思った
966 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 14:40:24 ] >なのは"WScript.Shell"がへぼいせいで、もっといいCOMを作れっていうの だれか作って コンソールを非表示にできる StdOut/StdErrにデータがあるかブロックしないで調べられる/取り出せる できればStdInにreadが掛かってるか分かる
967 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 14:42:39 ] WSHにのってるまともなスクリプト使えば一瞬で解決だろ
968 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 14:53:31 ] 追加 AppActivateでなくFindWindowどまりの機能 SendMessageもついでに
969 名前:デフォルトの名無しさん [2008/04/16(水) 21:02:45 ] >>952
970 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 21:05:45 ] COMに手を出す時点で、WSHに拘る理由がなくなるな。 そのまま他言語で書いた方が早い。
971 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 21:37:36 ] 一時的に目的を達成するだけならね しかしそういう状況のみではないんだよ もっと視野を広く持とう
972 名前:970 mailto:sage [2008/04/16(水) 22:00:06 ] むしろ、WSHに拘っている方が視野が狭いと思ったわけで。 >>966 や>>968 程度の機能でいちいちCOMコンポーネント書いて、 使うPC毎にいちいちregsvrして、って唯のギャグだろ。
973 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 22:12:48 ] そうでもないか
974 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 23:38:14 ] >>972 そうそう。 だから、WSH付属のコンポーネントがもっと高機能だったらよかったのにと思う。
975 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 09:25:24 ] 何故自分にレス?
976 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 13:27:53 ] 自意識過剰w
977 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 09:49:46 ] オプションって//じゃなくて/でもいいの? 1つでも動くっぽいんだけど cscript /nologo xxxxxxxxxxx って感じで
978 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 11:38:38 ] おk
979 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 13:49:30 ] /と//になんか違いはあるの?
980 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 15:53:43 ] スクリプトのファイル名の後にオプションを記述するときは //でなければならない。
981 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 16:28:44 ] へー
982 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 17:07:02 ] cscript -nologo xxxxxxxxxxx でもよい
983 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 18:05:11 ] どうでもよい