05/06/16 19:19:11
JScriptはほぼ同じ方法で取り込める
だがwsfを取り込むってのは出来ないハズ
wsfにコードを書くと再利用するときに困るから
私の場合、コードは全てvbsに書き、wsfは取り込むのみで使う
264:260
05/06/16 23:55:51
>>261
ちょっとあせってたのさ。
>>262
おいっす。落ち着きます。で。対象のvbsファイルをFileSystemObjectで開いて、
ReadAllメソッド使ってソースをひとつの変数に突っ込んでExecute関数で実行っていう方法なら見つかった。
vbsには正式なインクルードはないみたい。wsfにはあるけど。
↓詳しくは見てください。
URLリンク(www.trickpalace.net)
>>263
やっぱりそうなるのね orz
再利用できる共通コードの中で、別の共通コード使いたい場合で困りますよね。
265:デフォルトの名無しさん
05/06/17 05:46:46
まずはここの情報は全て押さえとくとヨロシ。
MS社員の有志というか暇というか。一応純正だからw
URLリンク(groups.msn.com)
FAQやDOWNLOADに情報満載。
266:デフォルトの名無しさん
05/06/17 13:24:19
>>265
Σ(゚д゚lll)ズガーン。英語!?www
(´∀`;)ゝいやぁ。漏れ純正の日本人だから英語ダメスwww
と思ったけど、FAQはクリックすればサンプルコード出てくるだけだからわかりやすいね。アリガタス
267:デフォルトの名無しさん
05/07/18 02:39:27
ホス
268:デフォルトの名無しさん
05/07/20 01:42:04
ホシュホシュ
269:デフォルトの名無しさん
05/07/25 22:41:51
ホシュホシュ
270:デフォルトの名無しさん
05/07/27 16:45:29
Windows2000にて
WSH使って、タスクスケジューラへ
自動的にタスクを追加するには
どうすればいいか御存知の方いますか?
昔、どこかで出来るような発言してる人がいたので
結構ググッたけど、見つからなかった・・・
271:デフォルトの名無しさん
05/07/27 17:22:24
XPだったらschtasks使えば楽そう
Win32_ScheduledJobはATコマンドと同等だったはずだし、
IScheduledWorkItemとかITaskScheduler辺りを使えばどーだろ・・・
272:270
05/07/28 15:13:25
>271
調べてみたけど、使い方よくわかんなかったので
ATコマンドで妥協しました。('A`)
XPはschtasksがあるからいいですね。
273:デフォルトの名無しさん
05/07/28 15:29:52
ATコマンドってモデムのアレですか?
274:デフォルトの名無しさん
05/07/28 15:36:55
>>273
釣りなのか、マジなのか、なんかの揚げ足取りなのか知らないけど
コマンドプロンプト開いて、「at /?」と入力してみれ
275:デフォルトの名無しさん
05/07/28 15:41:41
ああ、UNIXのat相当なんですね。大文字で書かれると分からんもんですね。
276:デフォルトの名無しさん
05/07/28 15:55:30
>>274
いや、モデムの方だろ
277:デフォルトの名無しさん
05/07/29 02:35:30
schtasksはユーザー権限でログオンしている時
管理者アカウントでタスクを実行しようとしても
拒絶されるから嫌いだ。
そのくせ10回に1回うまくいったりするあたり、
単なるバグなんじゃねぇかと。
278:デフォルトの名無しさん
05/07/31 12:46:54
>>277
うほっタイムリーなネタ
だから実行できなかったのか!
なんかいい解決方法ないのかな。
XPでATコマンドってまだ使えたっけ?
279:デフォルトの名無しさん
05/07/31 14:39:24
>>278
そう実行できない。
2002年から2003年にかけて死ぬほど検証したし
海外までググったしMSプレミアムサポートに問い合わせもした。
結局使えそうで使えないコマンドなんだわ。<schtasks
XPでもATコマンドは使える。
ただ管理者アカウントでログオンしてないと
コマンドが受け付けられないので注意。
これはNT4時代からずっとそうなので諦めるしかない。
管理者アカウントでログオンするなら
schtasksだって使えるんだよね。。。
> なんかいい解決方法ないのかな。
これまで携わったプロジェクトでは
配布ソリューション(SMSやその類似品)を使って
バッチを配布して管理者権限でキックしたり、
管理端末から(ドメインAdminでログオン)から
目的の端末にリモート実行させたりしてた。
あとはスタートアップスクリプトに仕掛けたりとかそういう感じ。
あとはサーバーに「特定のテキストファイルがあれば
ファイル名と同名のユーザーの端末上でコマンド実行」
という趣旨の定期監視タスクを仕掛けておいて、
ユーザーがバッチを起動すると、
サーバー側で監視してるフォルダに
テキストファイルが作られるみたいな構成とか。
わずかな事やるのに結構遠回りしてるなぁ。orz
280:デフォルトの名無しさん
05/07/31 16:07:05
>>279
>海外までググったし
そうか。プログラミングのノウハウは国内にはあまり無いから
ググる時にも必ず「ウェブ全体」を選んでたけど
まだそういう時代じゃないんだな
281:デフォルトの名無しさん
05/07/31 16:26:33
>>280
や、失礼。
ググった結果(主に英語サイト)から
海外サイトを延々見てまわり、の方が正確。
お詫びして訂正します。ゴメンチャイ。
どうでもいいがヘブライ語みたいなサイトも見たよ。
チンプンカンプンだっつーの。
282:デフォルトの名無しさん
05/08/04 22:35:08
(・∀・)アゲ!!
283:デフォルトの名無しさん
05/08/06 22:53:34
WSHで起動中の特定の名前のウィンドウの
存在の有無を確認する方法ってありますか?
284:デフォルトの名無しさん
05/08/07 09:40:02
>>283
WMIでWin32_Processをクエリーするしかないんじゃねーの?
でもこの方法、WindowsXP以外はWMICoreのインスコが必要だったと思うが。
285:283
05/08/07 13:10:15
>>284
レスありがとうございます。自己解決しました。
VBScriptのappactivate("ウィンドウ名")=Falseで
判定することができました。
286:デフォルトの名無しさん
05/08/08 14:53:27
リンクリストみたいなコレクションありませんか?
ハッシュ(Scripting.Dictionary)と配列はあったのですが・・・。
やりたいことは、文字列をコレクションに溜め込んで、最後にJoinで一つの文字列にしたいのですが、
ハッシュだと溜め込むことはできそうですが、最後にJoinしたときに順番がバラバラになりそうで利用できません。
要素の追加にコストが掛からず、最後に文字列結合できるコレクションなどはないでしょうか。
287:デフォルトの名無しさん
05/08/08 16:55:07
>>286
Arrayではコストがかかりすぎるのでしょうか。
288:デフォルトの名無しさん
05/08/08 17:53:42
>>286
そりゃあデータ構造を考えれば普通に不可能だろう。
289:デフォルトの名無しさん
05/08/16 20:39:16
みんなデバッグ環境はナニを使ってる?
290:デフォルトの名無しさん
05/08/16 21:56:50
jsファイル ダブルクリックして
テキストファイル出力で変数の値みる
291:デフォルトの名無しさん
05/08/21 01:11:37
var WShell = new ActiveXObject("WScript.Shell");
WShell.Run("c:\\******\\hoge.exe");
のように実行ファイルを動かし、hoge.exeからJScriptの変数に何らかの値を代入することは可能でしょうか?
292:デフォルトの名無しさん
05/08/22 13:25:15
>>291
こんな感じでしょうか。
この例ではHello, world!の後の改行までsに代入されてしまってますが。
----------
D:\>type hello.js
print("Hello, world!");
D:\>type hello2.js
var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec("d:\\hello.exe");
var s = oExec.StdOut.ReadAll();
WScript.StdOut.Write("[" + s + "]");
D:\>jsc /nologo hello.js
D:\>hello.exe
Hello, world!
D:\>cscript //nologo hello2.js
[Hello, world!
]
D:\>
----------
293:デフォルトの名無しさん
05/08/22 13:49:53
>>289
//X オプション + VSでデバグ。
294:291
05/08/24 16:04:26
>>292
ありがとうございます。
解決しました。
295:286
05/08/30 16:39:36
>>287-288
レスありがとう。
やりたいことは Java のStringWriterクラスでしたが、
writeメソッドで受け取った文字列を溜め込んで、
toStringメソッドで結合して返すってことをやりたかったのです。
それで実際に Scripting.Dictionary で、試してみたら
Joinしたときに順番がバラバラになるかと思ったんですが、
追加した順番に文字列が結合されたので大丈夫でした。
なんかラッキーでした。ありがとう。
296:デフォルトの名無しさん
05/09/05 12:59:10
vbsやりはじめて3日目です
Subプロシージャに引数としてオブジェクトを渡したいのですが
渡されたオブジェクトのプロパティをSubプロシージャ内で参照しようとすると
オブジェクトがありませんと言われます
ぐぐってもVBの事例はいくつか出てきたのですがVBSの事例は見つけられませんでした
どのようにしたらいいんでしょう
297:デフォルトの名無しさん
05/09/05 19:38:27
>>296
書け
298:名無しさん@そうだ選挙に行こう
05/09/11 00:41:35
>>11 >>12 >>16 おそらく、↓のスレのことだと思われ。
// Windows Script Host を使い尽くす //
URLリンク(pc3.2ch.net)
299:デフォルトの名無しさん
05/09/12 20:52:33
win板のwsh スレはどこ?
300:デフォルトの名無しさん
05/09/12 22:31:35
落ちたみたいね
301:デフォルトの名無しさん
05/09/13 00:27:09
おいっす。了解っす。
302:1/2
05/09/15 23:43:08
どなたかお知恵をお貸しください。
あるテーブルの抽出結果を、ADODB.Recordset.GetStringで文字列にする関数 strResults を、
VBSから呼び出してテキストファイルに保存しようとしました。
Dim sFS, strParam, oTS, strResultText, intResultLetters, i
strParam = WScript.Arguments(0)
strResultFName = WScript.Arguments(1)
Set appAc = CreateObject("Access.Application")
appAc.OpenCurrentDatabase "V:\・・・\GrepRecordsets.mdb"
strResultText = appAc.Run("strResults", strParam)
Set appAc = Nothing
Set sFS = CreateObject("Scripting.FileSystemObject")
Set oTS = sFS.CreateTextFile("V:\・・・\result.txt", True)
oTS.WriteLine "MS Access ファイルからの検索結果"
intResultLetters = Len(strResultText)
For i=100 To intResultLetters Step 100 ' デバッグのため分割して書き込む
MsgBox Left(strResultText,100) ' デバッグのための内容表示
oTS.Write Left(strResultText,100)
strResultText = Right(strResultText,intResultLetters - i)
Next
303:デフォルトの名無しさん
05/09/15 23:43:34
ここで、ある特定の文字が、MsgBoxでは表示されるものの、
書き込もうとした時点でコンソール上に以下のエラーが出てしまいます。
Microsoft VBScript 実行時エラー: プロシージャの呼び出し、または引数が不正です。
その文字とは、中華料理店の店名らしいのですが、
火 日 金
火火 日日 金金
テキストエディタ等で見ると ?晶? となりますが、MS Wordなどで見ると上記のような文字です。
このため、文字コード変換で改善するかと思い、nkfwin.exe なるツールではどうかとやってみたところ、
上記の文字を含むテキストファイルを nkfwin.exe の引数に指定したところ、
┌────────────┐
│16 ビット MS-DOS サブシステム ×│
├────────────┤
│ C:\WINNT\System32\cmd.exe -
│ V:\・・・\nkfwin.exe
│ × -s -I TestKanji.txt
│ NTVDM CPU は不正な命令を検出しました。
│ CS:0000 IP:e2d7 OP:00 00 00 00
│
│ [ 強制終了(T) ] [ 無視(I) ]
└────────────┘
となってしまいました。
このような現象は、どう対処したらよいのでしょうか?
お教えいただけますと大変助かります。
OS : Windows NT 4.0 Access 2000, ADO 2.6, WSH 5.6
304:デフォルトの名無しさん
05/09/16 05:08:50
>Set oTS = sFS.CreateTextFile("V:\・・・\result.txt", True)
ここを
Set oTS = sFS.CreateTextFile("V:\・・・\result.txt", True, True)
にしたんじゃダメか?
出力内容がUNICODEになっちまうけど。
(SJISには無い文字コードみたいだからそうするしかないんだけどね。)
305:デフォルトの名無しさん
05/09/16 09:06:23
>>304
ありがとうございます!
あっさり出力できました!
大変助かりました。m(_ _)m
306:デフォルトの名無しさん
05/09/16 20:27:56
ユニコードの28977 焱 、
ユニコードの37995 鑫 と判明しました。
これらの文字を取り除いてメールで送れるテキストにする方法を探し中です。
307:デフォルトの名無しさん
05/09/16 23:13:23
報告です。
まず unicodeテキストとして保存し、
その後 フリーソフトの cherset converter で
→ ISO-2022-JP → Shift_JIS
で出来ました。
2段階でやったところ、通常 ? で置き換わるところ _ で置き換わっていました。
ありがとうございました。。
308:デフォルトの名無しさん
05/09/28 18:18:34
ここで聞くのが正しいのかも少々不安ですが
質問させてください。
前提:
プログラミングは大昔に20年ほど前にFORTRANいじったことがありますが
中途半端だった上にその後すっかりで、基本的に知識ゼロです。
要望:
・下記の事がWSHで実行可能か知りたい
・可能な場合は参考になるスレはどこにあるのか知りたい
・ヒントになるようなスクリプトがあれば手に入れたい
やりたいこと:
(WindowsXP上で動いているアプリケーションに対してです)
起動
1.任意の座標(固定)のcolorをチェックする
2.任意のcolorではない(または任意のcolorである)場合に
3.任意の座標をマウス(右)クリック(相当の信号?コマンド?送出)
終了までループ
座標系はやったことがないのでまるでわかりません。
ヒントを頂いて勉強もしたいのですがちょっと差し迫った事情が
あって時間もないので、どなたかお教えいただければ幸いです。
そんなのプログラム組めば簡単簡単・・・などとできもしないのに
大見得切るんじゃなかった。。。^^;
よろしくお願いします。
309:デフォルトの名無しさん
05/09/28 18:48:01
無理…だと思う。
310:デフォルトの名無しさん
05/09/28 21:37:52
>>308
俺もWSHじゃ無理だと思う。
Win32系のスレでAPIの使い方を訊きながら、C言語でコンソールアプリとして作ればそんなには難しくないと思うよ。
C言語のコンパイラは Borland C++ Compiler とか Microsoft Visual C++ toolkit 2003 とか無料のがあるからそれを使いね。
( Microsoft Visual C++ toolkit 2003 は別途PlatformSDKも入手しなきゃならんから Borland のほうが手軽かな? )
311:デフォルトの名無しさん
05/09/28 21:42:27
宿題スレでやってもらうのがいいかも。
312:デフォルトの名無しさん
05/09/29 10:15:43
>>309
>>310
>>310
ありがとうございます。
そもそもWSHでは無理がありそうなのですね。
宿題スレも見てみます。
313:デフォルトの名無しさん
05/09/30 10:41:25
UWSCならデフォで出来るし
UWSC内でVBSとか使えるけどね
314:デフォルトの名無しさん
05/10/04 11:14:28
ネットワーク上にある約200台の端末の指定ファイルの最終更新日を一気に取得したいんですが、
電源が入っていない端末にアクセスすると処理が遅くなってしまいます。
315:デフォルトの名無しさん
05/10/04 11:38:29
そうですか
316:デフォルトの名無しさん
05/10/04 12:25:53
そうなんです
317:デフォルトの名無しさん
05/10/04 12:41:18
じゃあ電源が入ってるかどうか管理しておけばいいじゃない
318:デフォルトの名無しさん
05/10/04 14:16:06
そうですか?
319:デフォルトの名無しさん
05/10/04 21:22:51
このスクリプト簡単でおもしろいね。
知らない人に時間が来たらメモ帳開いて1秒間隔くらいで
「お・ま・え・は・明・日・死・ぬ」とか書いちゃったりして
おもしろーいw
きゃははw
320:デフォルトの名無しさん
05/10/04 23:12:28
そうですか
321:デフォルトの名無しさん
05/10/04 23:32:54
>>320
そんな素っ気ないレスじゃなくて、友人がいないに違いない >>319 に仲良くしてやれよ。
俺はくっだらなくも陰湿な >>319 なんか、まっぴらごめんだけどなw
322:デフォルトの名無しさん
05/10/05 00:34:44
そうだな
323:デフォルトの名無しさん
05/10/13 22:26:58
ネットワーク上の別のPCのデスクトップにメモ帳を立ち上げる
なんてこと、出来るのでしょうか?
324:デフォルトの名無しさん
05/10/13 23:17:10
>>323はマルチなので、以後放置で
お前ら、wsh使ってますか? part5
スレリンク(win板:73番)
325:デフォルトの名無しさん
05/10/14 14:05:25
>>323
NET SEND OtherPC メモ帳起動して
326:デフォルトの名無しさん
05/10/14 15:13:14
>>325
それいいな
327:デフォルトの名無しさん
05/10/14 22:52:22
>>323
\\自分のPC
\\相手のPC
\\相手のPC 上で、\\自分のPC の任意のフォルダを監視させるスクリプトaaa.vbs
を起動させておく。
もし、\\自分のPCに上の任意のフォルダに、メモ帳起動.txt というファイルが作られたら、
そのファイルを削除して、\\相手のPC上で、Wscript.Shell.Run "Notepad"を実行する。
というのが、一般的だが?
328:323
05/10/15 00:26:27
>>327
レスありがとでげす。
教えてくださった方法では、
別のイベント(別動作)をトリガーとして持たなくてはいけない点と、
\\相手のPC上でaaa.vbsを実行しなくてはいけない点
が不満です。
上の2点を回避する方法はないのでしょうか?
329:デフォルトの名無しさん
05/10/15 01:33:37
\\相手のPC上でbbb.vbsを実行すればいいと思うよ。
ってゆうかさー、その程度の応用もできないわけ?
330:デフォルトの名無しさん
05/10/15 08:29:52
schtasksとかatとか使えばいいだけのような
331:デフォルトの名無しさん
05/10/15 12:32:19
使い方が解りませんとか言い出してきそうな悪寒
332:デフォルトの名無しさん
05/10/15 22:42:07
スタートアップファイルに、aaa.vbs のショートカットファイルを入れておいても良いレベルでは?
結局、323の使用目的によって回答のレベルも可変なんだと思う。
さあ、話してごらん、使用目的を。
333:デフォルトの名無しさん
05/10/15 23:00:55
おまいら、マルチなので、以後放置ではなかったのか?
334:323
05/10/16 08:16:34
>>332
使用目的というわけではありませんが、
単純にメッセージを送信できれば問題ないです。
できれば日本語(2byte文字を)
XPとWin98SEでも使える方法を伝授くださいませ。
335:デフォルトの名無しさん
05/10/16 11:05:19
要するに、作って欲しいわけだ
336:デフォルトの名無しさん
05/10/16 15:00:36
NT系ならメッセージを送る方法があったはずだが…。WSHから使えるのかは知らないけど。
337:323
05/10/16 15:14:57
>>335
バレた!!
338:デフォルトの名無しさん
05/10/16 15:24:40
>>323
>>325
339:323
05/10/16 15:27:41
>>338
net send って、Win98でも使えるの?
340:デフォルトの名無しさん
05/10/16 16:01:55
なんだとこの野郎
341:デフォルトの名無しさん
05/10/16 17:00:02
>>339
一応、NT 系の net send と Win9x 系の winpopup は、
相互に送受信できる。
ただし、winpopup をスクリプトから制御できるかどうかは
知らん。
342:323
05/10/16 17:21:22
結局、相手PCがWin98系のときは、
\\相手のPC上でaaa.vbs or bbb.vbsを実行しなくてはいけない
ということですか。。。
343:デフォルトの名無しさん
05/10/16 17:29:34
>342
自分のPCがNT系ならnet sendで送信すれば、
相手が98系ならwinpopupで受信してくれるんじゃないの。
344:323
05/10/16 17:49:18
>>343
winpopupを立ち上げるのに、aaa.vbs or bbb.vbsが必要ということでは。。。?
345:デフォルトの名無しさん
05/10/16 18:01:48
ヒント: スタートアップ (+ 必要なら、自動ログイン)
346:323
05/10/16 18:24:06
>>345
つまり、\\相手のPCにいちいち細工をしなくてはいけないということが
私のやりたい事には入ってないわけで。。。
347:デフォルトの名無しさん
05/10/16 18:36:53
348:デフォルトの名無しさん
05/10/16 18:38:37
結局何が目的なんだといいたくなるな
349:デフォルトの名無しさん
05/10/16 18:38:41
なんの設定もなく相手先のPCを操作できることを
専門用語でセキュリティーホールと言う
350:323
05/10/16 18:45:03
>>348
わかりずらい話につき合わせてしまって、ごめんなさい。
>>349
つまるところ、そういうことなんですね。
せきゅりてぇいがあるのはいかしかたないことですから、あきらめます。
最期に、もうひとつ。
\\自分のPC の任意のフォルダを監視させるスクリプト
(もし、\\自分のPCに上の任意のフォルダに、メモ帳起動.txt というファイルが作られたら、
そのファイルを削除して、)
はどのように記述すればよいのですか?
スマートな方法を教えてもらえませんか?
351:デフォルトの名無しさん
05/10/16 18:51:20
>>350
スマートな方法なんて、無理に決まってんだろ
352:デフォルトの名無しさん
05/10/16 19:17:25
>>350
>>348
>>325
353:デフォルトの名無しさん
05/10/16 19:52:21
>>350
while(true)
{
if( ファイルオブジェクトか何か.IsExist ) 処理;
Sleep(何秒か);
}
354:デフォルトの名無しさん
05/10/16 19:55:09
>350
相手側に何か仕込むなら、Winpopupをスタートアップに登録するだけの方が無難だと思われ。
355:323
05/10/16 23:05:51
みなさん、どうもありがとう。
>>354
相手側のPCが遠くて、私が直接作業出来ないんですぅ。
ついでに、驚かせたいってのもあるから、相手にやってもらうのも。。。ねぇ。
っていう理由なんですよ。。。
356:デフォルトの名無しさん
05/10/16 23:09:54
出来ないんですぅ。じゃねえよクソがッ!!!!!!
失せろこの頓馬!!!!!!!!!!!!!
357:デフォルトの名無しさん
05/10/16 23:25:08
>>356
kawaisouni...
358:デフォルトの名無しさん
05/10/17 00:59:54
> 驚かせたいってのもあるから、相手にやってもらうのも。。。ねぇ。
本当は何らかの不正行為をやるつもりだろ
そういうことをやろうとしてるけど、自分でやるだけの知識が無い奴は
決まって「驚かせるだけ」とか「ジョークソフトを作るのに」とか言い訳して
やり方を聞いてくる
どうせ口先だけじゃ如何様にも言い逃れは出来るけどね
359:デフォルトの名無しさん
05/10/17 01:23:03
スマートというか本当はコマンドライン一行でやる方法あるんだけどね。
何かマルチポストっぽいしクラッキングの片棒担ぐのも嫌なんで自分で調べな。
360:デフォルトの名無しさん
05/10/17 03:08:44
スタートアップやタスク、netsend などを使うことなく、同じドメインに属している
リモートクライアントで notepad.exe のプロセスを走らせるスマートな手段は実際、
あるにはある。でもなぁ、>>323 の目論んでいることが今一つ抽象的かつくだらない
目的のように思えてならないんだよな。結局何をしたいのよ?>>323
361:デフォルトの名無しさん
05/10/17 07:25:25
もういい加減スルー
362:デフォルトの名無しさん
05/10/17 15:05:22
すいません初歩的すぎて申し訳ないんですが、次のサンプルスクリプトをWSHへ書き換えたいんですが
パラーメータの渡し方がわかりません。
どなたか教えてください。
<object ID=NetMeeting CLASSID="CLSID:3E9BAF2D-7A79-11d2-9334-0000F875AE17">
<PARAM NAME = "MODE" VALUE = "DataOnly">
</object>
↓
Set NWobj = createobject("Netmeeting.App")
363:デフォルトの名無しさん
05/10/17 21:57:33
ほう。マルチですか。
364:デフォルトの名無しさん
05/10/18 00:05:36
>>359、360
323はWin98でやりたいと言ってるように見えるが?
365:デフォルトの名無しさん
05/10/18 09:46:45
糞ノートン先生を強制的に黙らせる方法はありませんか?
友達にVBScript渡したら悪質なScript扱いされて実行止められた('A`)
366:デフォルトの名無しさん
05/10/18 11:20:37
良質なScriptはScriptBlockerを強制Offにしたりしません。
367:デフォルトの名無しさん
05/10/18 13:20:58
ワロタ
368:デフォルトの名無しさん
05/10/18 21:49:41
つーか最近無駄にセキュリティが高すぎる気がする。
そりゃ便利に何でも動くようにしたら、セキュリティに興味ない人が
どんどんウィルス感染するのは分かるんだけどさ。
最近のIEとか全然Script動かないじゃん。
ScriptどころかSVGとかも見れないし。
PC使えない人の問題を自動的に修復できるようにScript渡したいのに
Scriptも動かない動かせないんじゃどうしようもないですがな。
369:デフォルトの名無しさん
05/10/19 00:20:57
>>359
お~、それはすげーな。
でも、それって君の PC のセキュリティが低いだけだと
公言してるも同然で、アフォ丸出しだから止めたほうが
いいよ。
370:デフォルトの名無しさん
05/10/19 00:29:13
そうだそうだ
371:デフォルトの名無しさん
05/10/19 00:31:54
>>369
もちろんアカウントとパスワードは必要ですってば
372:デフォルトの名無しさん
05/10/19 00:37:46
>>371
( ̄ー ̄)ニヤリッ
373:デフォルトの名無しさん
05/10/19 00:54:35
>368
最近のPCならリモートデスクトップとかあるじゃん。
374:デフォルトの名無しさん
05/10/19 08:30:15
>>368
>Scriptも動かない動かせないんじゃどうしようもないですがな。
Nortonがブロックするなら許可すればいいだけじゃね
単に動くスクリプトをあなたが書けないだけでは?と煽ってみる
IEだって設定の問題でしょ
375:デフォルトの名無しさん
05/10/19 22:04:59
>>374
自分自身はちゃんと設定してるから動くよ。
他人に渡したときに動かないのが困る。
それも、「○○が動かなくなったから何とかしてくれ」
というのでScriptでファイル操作して自動的に解決するようにして送ったら
・メールから勝手に削除された
・なんとか受け取ったScriptは実行不能
(ノートンが止めているらしい)
・ノートンの設定は弄れない
とのことで結局どうしようもなくなった。
まぁScriptは自分の為に使うものってことなのかね?
376:デフォルトの名無しさん
05/10/19 23:17:44
>>375
見る限り全てノートンの所為
377:デフォルトの名無しさん
05/10/20 16:44:51
よくタクスバーにアイコンだけ表示されている常駐ソフト( 音量やハードウェアの取り外しなど )がありますが、
どうにかして、このアイコンをクリックしたときに出るメニューの文字列って取得できませんか?
378:デフォルトの名無しさん
05/10/20 17:14:36
マウスを置いたときに出るツールチップなら統一されてるから取得できるけど
出てくるメニューはプログラムの内部で任意に指定してるものだろ。
そんな不規則なものを取得できるのか?
379:右下の時計のことならタスクトレイだ
05/10/20 22:29:44
>>377
つーか最終的に何をしたいか賭けよ。
エクスプローラ(シェル)は落ちることがあるし、そうなったら
プログラムとしては動作しててもタスクトレイからは
アイコンが消えてしまうのはよくある。
WMIでWin32_Processをクエリーするのがセオリーだ。
380:デフォルトの名無しさん
05/10/20 22:37:30
>>377
>>378 が言う通りあのメニューはクリックした時に
プログラムが出してる。
だから、クリックするたびに違うこともあるし、プロ
グラムによってはメニューなんか出さずにいきなり設
定ダイアログをとかを出すやつもいる。
>>379 も書いてるけど、何のためにそんなことしたい
んだ?
381:デフォルトの名無しさん
05/10/20 22:51:09
379じゃないけど
いちいちマウス動かさないでメニューの文字を一覧したいからじゃない
382:デフォルトの名無しさん
05/10/20 23:01:19
>>381
m9(^Д^)プギャー
383:377
05/10/21 01:32:39
>>378-381
>>379さんヒントありがとうございます。
Set ServiceSet = GetObject( _
"winmgmts:{impersonationLevel=impersonate}" _
).ExecQuery("select * from Win32_Process")
見たいなかんじでまずオブジェクトを取得して操作するみたいですね。
まずはタスクリストを得られるという感じなのかな・・・
やりたいことは、
httpdでスクリプトを起動して、外出先で常駐アプリの状態が知りたいんです。
いまのところ、httpdからcgiを起動して、perlプログラムからuwscスクリプトを起動して、
traypseというアプリケーションを通して、目的のタクストレイのアイコンをクリックするところまでできています。
(目的のアプリケーションのウィンドウハンドルまではわかっています)
uwscスクリプトでは、このときに出てくるメニューにアクセスできないために、
OLEオートメーションでなんとかならないかと思ったしだいです・・・
そこで詳しい方が多そうなこちらで質問させていただきました。
WMIには詳しくないので、もう少し調べてみます。
またヒントがあったらよろしくお願いします。m(_ _)m
384:デフォルトの名無しさん
05/10/21 23:22:39
> やりたいことは、httpdでスクリプトを起動して、
> 外出先で常駐アプリの状態が知りたいんです。
ねぇ、何でそれを最初に書かないの?
あと、その常駐アプリの名前は極秘なの?
385:デフォルトの名無しさん
05/10/22 15:32:35
PrintScreenアプリでデスクトップを丸ごとコピーした内容をFTPで送信。
Sendkeysでやるんならそんなもんか。
Winnyのウイルスみたいな動作なきがするけど気のせいか。
386:377
05/10/22 17:57:08
>>384
すみません
えっと、常駐させるアプリはnyです
外出先から動画やソフトのダウンロード状態を確認出来ないかな、と・・・
387:デフォルトの名無しさん
05/10/22 18:14:03
終わったな
↓次の話題をどうぞ
388:デフォルトの名無しさん
05/10/22 18:43:57
Select Case文だと、のちのち処理を拡張したい時に、文法に自由度がなさすぎて破綻しそうな場合について。
以下のようにしておくと、すっきりと処理できたので報告します。
For i=0 to 1
IF ~ Then : Exit For
IF ~ Then : Exit For
IF ~ Then : Exit For
IF ~ Then : Exit For
(ここにデフォルト処理):Exit For
Next
IF文を、故意に、ネストさせないで使っているので、見た目的にもすっきり。
もっと良い方法があるという方は、ご指摘願います。
389:デフォルトの名無しさん
05/10/22 19:04:04
> Select Case文だと、のちのち処理を拡張したい時に、文法に自由度がなさすぎて破綻しそうな場合について。
Select Case使うときは処理を拡張してもSelect Caseで間に合う時だけだ
「Select Case文が、のちのち処理を拡張したい時に、文法に自由度がなさすぎて破綻する」なんてことはあり得ない
> For i=0 to 1
> IF ~ Then : Exit For
For~NextよりDo~Loopの方がまだマシだろ
それと「:」は要らなくないか?
390:デフォルトの名無しさん
05/10/22 20:28:56
> For i=0 to 1
For i = 0 To 0 の方がいいんじゃないか?
For I = 0 To 1 だと、なんかの時に2回回ることを想定し
てそうだ。
そもそも、For のは、余計な変数が必要だったりするから、
>>389 が言うように Do ~ Until True の方がいいと思う。
> IF文を、故意に、ネストさせないで使っているので、見た目的にもすっきり。
そもそも、
If ~ Then ~ ElseIf ~ Then ~ ... Else ~ End If
で大体間に合うし。
391:デフォルトの名無しさん
05/10/22 22:14:26
>>386
Winnyってメニューの文字列可変じゃないジャンw
392:388
05/10/22 23:07:51
>>389-390 貴重なご意見、回答ありがとうございます。
確かに、For i=0 から回しているので、2回ループするバグを出しそうですね。
あと、Do~Loop: Exit Doのほうが、変数要らなくてスマートですね。修正しようと思います。
>それと「:」は要らなくないか?
Then のあとに実際は、何かの処理を入れています。いきなりExit Forしてる訳ではないです。
そもそもExit For要らないのでは?という疑問に対しては、「予期せずに、他のIF行を実行して
しまわないようにする為」のお守りとして付けた方がいいと思っています。
この処理を何に使用しているか、誰からも聞かれていないですが、一応書いておきます。
WSHのINPUT文を利用して、アプリケーションランチャーを作りました。なかなか快適です。
If Ucase(入力した値) = "MYDOC" Then Wscript.CreateObject("WScript.Shell").Run "C:\mydoc\": Exit For
とか、
If Ucase(入力した値) = "SLEIP" Then Wscript.CreateObject("WScript.Shell").Run """C:\Program files\~\Sleipnir.exe""": Exit For
とかいうように、使っています。
393:デフォルトの名無しさん
05/10/22 23:22:13
それこそ入力値は必ずinputboxの戻り値なんだからselect case使うべきだろ
等価比較演算で、一方が固定(inputboxの戻り値)なのが分かり切っているのに
select caseを避ける理由って何だ?
「WSHのINPUT文を利用して、アプリケーションランチャー」で、入力値以外の何を評価すると言うの?
394:392
05/10/22 23:36:40
>>393 実は、電卓としての機能も持たせていて、
InputBoxの中身が、登録されたキーワード以外の時は、Eval( )で、計算機に早変わりするというものです。
(現在、キーワードもどきの文字列を送ると、Evalしてしまうので、エラーで落ちたりする事もよくありますが、特にErr処理していません)
他にも便利機能を拡張するかも知れないので、SelectCaseよりも条件分岐しやすい処理系にしたいと思って、
>>388 のように書いてみました。
395:394
05/10/22 23:42:18
元ネタ & プログラムの原型は、以下のスレです。
WSHで数学をするスレ
スレリンク(math板:29番)
URLリンク(science3.2ch.net)
の29スレめの簡易電卓.vbs より。
396:デフォルトの名無しさん
05/10/22 23:45:17
でも結局動作の振り分けは「InputBoxの中身(戻り値)が」なんでしょ
ならcase elseで処理させればいいじゃん
どう機能拡張しようと、「InputBoxの中身(戻り値)」で動作を分岐させるなら
select caseで間に合わなくなることは無いわけだが
397:394
05/10/23 00:02:49
>>396
現状の使用では、Select Caseで、全く問題なさそうですね。
また、変なネタかプログラムができたら、レスします。(^^)
その時は、またコメントよろしくお願いします。
他に、機能拡張するとしたら、何かありますか?とか聞いたりして‥
InputBoxで、IEみたいに、途中まで入力した文字列の補完って
できないですよね?
398:デフォルトの名無しさん
05/10/23 00:13:40
標準のinputbox自体では出来ないけど、
例えば末尾に"..."と入れたら入力補完するとか規則を決めて、
inputboxのの戻り値がright(,3)="..."だったら、補完リストから部分一致を検索して
もう一度inputboxを表示するとかはできるだろうな
399:397
05/10/23 00:20:38
φ(..)メモメモ...
400:ハーピィ
05/10/23 23:12:32
E・∇・ヨノシ <400ゲット♫
401:デフォルトの名無しさん
05/11/05 10:18:19
モバイルでプログラム【NS BASIC/CE】
スレリンク(mobile板)
NSBASIC/CEはWSHを知ってるならほぼ使えるよ!
PDAであるWindowsCE上(実質シグマリやjornadaでないときついが。)でもデスクトップでも
開発が可能。
手のひらで自分の作ったアプリが動く喜び!最新Ver6.02は、EXE化されたものに好きな
アイコンをつけられるのでほとんどスクリプトと分からない。
NS Basic/CEは、WindowsCEにRuntimeを導入してその上で動く。
最新のWM5にも対応しており、日本語版も出ているし、日本語サポートもいるので安心だ。
402:デフォルトの名無しさん
05/11/05 10:19:38
よかったら購入してユーザーにならないか? 俺もユーザーになったばかりなんだ。
日本サポートに確認をしたんだが、WEBでユーザー登録していただいて、その後、日本語サポートに連絡を
くれたら、無料Ver6(最新版)にアップデートできるそうだ。
FACTORY SABOT
501 Maritaimu 9-9 Higashimaikochou, Tarumi-ku, Kobe, Japan
Phone(078)787-3602 Fax(078)787-3619
URLリンク(www.sabot.co.jp)
sales@sabot.co.jp
MobilePLAZA
6-3-7-1F Sotokanda, Chiyoda-ku, Tokyo, 101-0021 Japan
Tel 03-3834-0315
URLリンク(www.mobileplaza.co.jp)
で買える。URLリンク(www.nsbasic.com) が公式なんだが
DEMO版で試すことができるから、WSHのソースを貼り付けてみるといい。実質WSHだから。
シャープのW-ZERO3のCOMコントロールでPHSに信号を送り電話がかけられることがシャープより
確認が取れてるから今度出るWM5にも対応してる。
どだ?さみしいから仲間になってくれないか?NSBASICがほぼWSHというのを知らない人が
多いんで宣伝してすまそ
403:デフォルトの名無しさん
05/11/05 10:26:28
あ、このWEBでユーザー登録して日本語サポートにメールくれたら
最新のをというのは
Ver5を買っても、無料でユーザー登録した時点の最新Verアップが可能と言うことなんだ。
お前ら、wsh使ってますか? part5 にも貼ったので両方覗いてる人にはすまんかった
404:デフォルトの名無しさん
05/11/06 10:42:40
以前、H;/PCで、Embedded VBを少し使ってたけど、少しVBに似てるってだけで
なかなか使いづらかった。コントロールの数が少なくて。
WSHよりも更に、機能が少ないんじゃないかって感じた。
NS BASICか‥、どうなんだろう、その実力はいかに‥
405:デフォルトの名無しさん
05/11/07 11:12:04
DEMO版があるよ。WSHのソースがほぼそのまま画面周りは修正しなくては行けないが
使えるのでソースぺたぺた貼り付けて動き具合を試してみてはいかがかな?
国内ではほとんどユーザーがいないが、海外ではNSBASIC/CE掲示板は
思い切りにぎわってる。
まずPDAスペックがあがったため、そこそこのスピードで動くようになったのも
大きいと思う。
コントロールの数もかなり増え、WSHとほぼ同じように使える。
はっきり言ってVer3のころなどへぼかった。4、5、6になるにつれ進化していってる。
Palm版のNSBASICもそうなんだが、なんとか使えだしたのはどちらもVer4ぐらいから
じゃないかな?
俺も始めたばかりなんで少しでも仲間が欲しい。なにせWSH入門を読んでるレベルだからだ
406:デフォルトの名無しさん
05/11/23 02:13:33
ホシュ
407:デフォルトの名無しさん
05/11/27 19:13:55
Set objShell = WScript.CreateObject("WScript.Shell")
colEventSource = objShell.RegRead("・・・・・・・・・")
としてレジストリをしらべようと思っているのですが、
レジストリのフォルダ構造を調べるにはどうしたらよいのでしょうか?
(HKEY_CURRENT_USER\Software の下に何が入っているか知りたいなど・・・)
知っているかたがいましたら教えてください。
408:デフォルトの名無しさん
05/11/27 19:31:11
regedt32.exe
regedit.exe
409:デフォルトの名無しさん
05/11/27 19:48:12
>>407
WshShellのメソッドで出来ることは、値を読んだり書き換えたり消したりくらいで
サブキーの列挙とかは出来ないので、キー構造を取得したければDynaCall使ってAPI呼ぶか、
自分でCOM作るかだな。
まあ作らなくても探せばあるかもしれないけど、この板の住人ならこの程度は作った方が早いだろ。
410:デフォルトの名無しさん
05/11/27 19:52:04
ふつうWMI使う
411:407
05/11/27 20:49:32
>>409>>410
レスありがとうございます
WMIを使って解決出来ました。DynaCallは面白いと思うので、何かのときに利用したいと思います。
(以下作ってみたスクリプト)
Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set Service = Locator.ConnectServer("","root\default")
Set Reg = Service.Get("StdRegProv")
Reg.EnumKey &H80000001,"Software", SubKeys
For Each Key In SubKeys
WScript.Echo Key
Next
412:デフォルトの名無しさん
05/11/29 22:54:41
スクリプトそのものとは関係ないんですが、ちょっと困った現象が
起きているので誰か力を貸してください。
WScript.Echo "test"
という1行だけのスクリプト(test.vbs)を作って、
コマンドプロンプト上で
cscript //nologo test.vbs
と実行します。すると、標準出力に
test
と当然出力されます。
そして処理は終わってるはずなんですが、
そのまま5-10秒くらいプロンプトに戻ってきてくれません。
何の後始末をしているのか知りませんが、^Cも無視されます。
どのような原因が考えられるでしょうか。
413:412
05/11/29 23:10:31
一応その他の情報を。
OSはWindows Server 2003
試したこと。
・引数なしでcscriptを実行
使い方が表示されてすぐ戻ってきました。
・エラーを含むスクリプトを実行
エラー情報が表示されて、5-10秒待たされます。
試そうとしていること
・JScriptのファイルを実行
・正常に動くマシンとスクリプトエンジン/WSHのバージョンを比較してみる。
414:デフォルトの名無しさん
05/11/30 02:39:03
cscript //nologo
だけだったら?
415:デフォルトの名無しさん
05/11/30 22:04:13
>414
スクリプトファイルを指定しろといわれて終わります。
すぐ戻ってきます。
あきらめムードです。
416:デフォルトの名無しさん
05/11/30 22:30:24
>>415
VMWareの体験版で素の状態を作ってみれば
自分で比較できるんじゃない?
メーカ製のリカバリディスクじゃなく
windowsのインストールCDを持ってること前提だけど。
417:デフォルトの名無しさん
05/11/30 23:07:08
>cscript test.vbs
---- 略 ---- Wiindows Script Host Version 5.6
---- 略 ----
test
>
1秒以内
418:デフォルトの名無しさん
05/11/30 23:07:36
↑一応 Server 2003
419:デフォルトの名無しさん
05/12/02 00:24:38
質問させてください。
ドラッグ&ドロップでscriptが起動されたフォルダを取得するにはどのようにすればよいでしょうか?
通常、scriptが起動されると
fs.GetFolder(".")
でカレントを拾えます。
しかしながら、スクリプトファイルに何かをドロップしてスクリプトを起動した場合
\Document and Settings\user
がカレントになってしまいます。
きちんとスクリプトが置いてあるフォルダを取得したいのですが方法ありませんでしょうか?
420:デフォルトの名無しさん
05/12/02 01:11:42
>>419
WScript.ScriptFullNameからFile作ってParentFolderとか。
421:デフォルトの名無しさん
05/12/02 01:53:08
>420
ファイル作る必要はないだろ。
WScript.ScriptFullNameはフルパス返すから
ファイル名を取り除けば十分なんじゃない。
422:デフォルトの名無しさん
05/12/02 03:59:28
> ファイル作る必要はないだろ。
必要性の問題じゃないだろ。
>>420もひとつの方法、>>421もひとつの方法。
WScript.ScriptFullNameからFSOのFileオブジェクトのParentFolderプロパティの値を得る>>420
WScript.ScriptFullNameからFSOのGetParentFolderNameメソッドの戻り値を得る
WScript.ScriptFullNameから文字列操作関数や正規表現でファイル名を取り除く>>421
等々…
以後の処理でFSOを使わないなら文字列操作で切り出してもいいけど、FSO使うなら、
ここでParentFolderプロパティ、GetParentFolderNameメソッド等を使わない手は無いだろ。
逆にこの処理の為だけにFSO使ったってなんら問題ないし。
423:デフォルトの名無しさん
05/12/02 07:14:20
>>422
HTAではVBScriptの仕様を受け継いでいるが、このどれかが使えなかったはず。
424:デフォルトの名無しさん
05/12/02 18:20:23
>>423
WScript
425:デフォルトの名無しさん
05/12/03 09:05:11
バッチファイルやWSHと言うと、こんなソフトがあるんだけど、
誰か使ってみてくれない?
URLリンク(www.vector.co.jp)
メールにもJavaScriptが書けるらしい。
正直どうよ。
426:デフォルトの名無しさん
05/12/03 09:10:25
>>425
糞ソフトのマルチ宣伝乙
427:デフォルトの名無しさん
05/12/03 14:14:36
シェアウェアの宣伝かよ m9(^Д^)プギャー
つーかこんなもん、この板の住人が金払ってまで欲しがるとは思えないな
フリーなら使うかも知れないけど、そうじゃなければ欲しけりゃ自分で作るって
428:デフォルトの名無しさん
05/12/03 18:13:33
>>427
では、作ってください。
できればフリーで。
よろしくお願いします。
429:デフォルトの名無しさん
05/12/03 18:33:23
欲しけりゃ自分で作るが、
なんておまえのために作らなきゃならないの?
俺が欲しくて作るなら、作った物は自分にとって益となるが
俺が欲しくもない物を、おまえのために作って俺に何の益がある?
つーか宣伝がバレて逆切れすんなよ m9(^Д^)プギャー
しかも宣伝だけでなく宣伝後の行動まで向こうと一緒で笑えるw
まあ作者じゃないと口先だけで否定することは出来るけどな
430:デフォルトの名無しさん
05/12/03 19:43:19
>>429
よくわからないけど、あなた何か勘違いしてません?
431:デフォルトの名無しさん
05/12/03 19:46:32
425(´・ω・) カワイソス
432:デフォルトの名無しさん
05/12/03 20:07:13
なんか哀れだな。
とりあえずメ欄のスペースは止めておけ。
433:デフォルトの名無しさん
05/12/03 21:14:14
何かもう一つのWSHスレッドでも暴れてますね、こいつ
434:デフォルトの名無しさん
05/12/03 22:03:22
>>431-432
なぜ、同情されているのでしょうか?
435:デフォルトの名無しさん
05/12/03 22:13:16
滑稽なピエロ成り下がってるから
436:デフォルトの名無しさん
05/12/03 22:31:24
ちょーてきとーだけど、pythonで書いてみた(・∀・)
#!/usr/local/bin/python
import poplib, os
M = poplib.POP3("pop3.mail.server")
M.user("username")
M.pass_("password")
numMessages = len(M.list()[1])
for i in range(numMessages):
body = []
eoh = 0
for j in M.retr(i+1)[1]:
if eoh == 0:
if j == "":
eoh = 1
elif j[0:8].upper() == "SUBJECT:":
if j.find("This Is Script") == -1:
break
else:
body.append(j + "\n")
else:
M.dele(i+1)
f = open("tmp.py", "w")
f.writelines(body)
f.close()
os.system("python tmp.py")
M.quit()
437:デフォルトの名無しさん
05/12/04 07:25:01
>>436
ぶおっ! pythonでそんなことまでできるのか!
WSHでメールを送るときはCDOを使わないといけないのに
438:デフォルトの名無しさん
05/12/04 07:48:37
自演乙
439:デフォルトの名無しさん
05/12/04 17:52:42
ActivePythonやActivePerl入れて使うなら、これもWSHの仲間では? 使ったことないけど。
440:デフォルトの名無しさん
05/12/09 03:45:33
標準的なWindows環境で実行できるのがWSHの魅力なのに
追加でインストールが必要な時点で興味がない。
441:デフォルトの名無しさん
05/12/09 04:19:27
( ゚д゚)ポカーン
442:デフォルトの名無しさん
05/12/09 04:35:54
>>440
ソフトのインストールすらできない代物でも使える場合があるのは確かに魅力だよな。
お陰で多少使えるようになった。
443:デフォルトの名無しさん
05/12/09 05:55:33
( ゚д゚)
444:デフォルトの名無しさん
05/12/09 07:30:03
> 標準的なWindows環境で実行できるのがWSHの魅力
激しく同意
> なのに 追加でインストールが必要な時点で興味がない。
激しく遺憾
標準環境で実行出来るってのは、自機以外で使ったり、
他人に渡したりするときのメリットでしょ。
そしてこれはwshの魅力の一面に過ぎない。
自機で使う分には、コンポーネントによる機能や言語の
拡張がしやすいという魅力を存分に味わおうよ。
445:デフォルトの名無しさん
05/12/09 08:49:23
標準機能だけでやるとするとwshからsendkeysでtelnet操作して
telnetのログファイルを読み込んでごにょごにょするのか?
メール受信するとこまで書いてみたけどsendkeysでの操作はちょっといやんだな。
telnetはなぜか空行をログファイルに出力してくれないし。
446:デフォルトの名無しさん
05/12/09 21:38:25
442(´・ω・) カワイソス
447:デフォルトの名無しさん
05/12/09 22:25:34
>>445
つWshScriptExec オブジェクト
448:デフォルトの名無しさん
05/12/10 01:28:18
>>447 いやそれ機能しないよ。
449:デフォルトの名無しさん
05/12/10 07:58:12
>>445
もうTeraTermとか、マクロを持っている通信ソフトに任せろYO
450:デフォルトの名無しさん
05/12/11 01:22:51
ActivePerlはバイナリが扱えるのが大きいな。
python?布団はシラネ
451:デフォルトの名無しさん
05/12/17 10:03:42
WSHで作成したシェアウェアってあるの?
452:デフォルトの名無しさん
05/12/17 10:34:00
あるよ
453:デフォルトの名無しさん
05/12/20 05:16:03
WSHはスクリプトを実行する環境であってそれを使って何かを作成するわけじゃない
454:デフォルトの名無しさん
05/12/24 10:26:03
WindowsAPIのSendMessage関数を利用してWM_COPYDATAメッセージを用いて
目的のウィンドウにデータを飛ばす方法はあるでしょうか・・
検索して、DLLファイル(この場合、user32.dll?)を利用する方法があるらしいとは判明したのですが・・
URLリンク(homepage3.nifty.com)
どうすればよいでしょうか。
指定ウィンドウにデータを渡すのに、上記以外にも良い方法がありましたら解説を伺えれば幸いです。
455:デフォルトの名無しさん
05/12/24 11:15:21
>>454
そこにも「DLLの一部の関数を使うことができます。」と書いてある通り、
全ての関数がその方法で呼べる訳じゃない。
とりあえず引数に構造体を使う(ことがある)関数は呼べないと思った方がいい。
SendMessageを使いたければDynaCallなどを利用して関数を呼ぶとか
SendMessage関数を呼べるCOMを導入するとかしな。
456:デフォルトの名無しさん
05/12/24 11:25:07
>>455
ご回答ありがとうございます。
>とりあえず引数に構造体を使う(ことがある)関数は呼べないと思った方がいい。
そうなんですか。。
WSHの標準機能のみでは、その回避できない問題なのでしょうか。。
>SendMessageを使いたければDynaCallなどを利用して関数を呼ぶとか
>SendMessage関数を呼べるCOMを導入するとかしな。
検索していると、DynaCallの文言を時々見かけました。
内容が記述されているところを探して見ます。
ありがとうございました。
457:デフォルトの名無しさん
05/12/24 11:28:18
run()やexec()を用いてアプリケーションを起動する時に、
アプリへの引数に文字数制限はあるのでしょうか?
458:デフォルトの名無しさん
05/12/24 11:33:06
>>457
WSHとは関係ない普通のコマンドラインの制限だけだろ。
459:デフォルトの名無しさん
05/12/25 02:41:44
255
460:デフォルトの名無しさん
06/01/06 23:26:34
VBSでMSIEのCOMを使用した際の、質問をさせてください。
OSはWindows2000 SP4で、使用したのはWSH ver5.6です
documentオブジェクトからallコレクションを取得したいのですが
document内でname=allを使用したエレメントがあるため
document.all で allコレクションではなくて
そのエレメントが取得されてしまいます
最終的にdocument.all.tagsが使いたいのですが
document.all以外の方法で
全エレメントのコレクションを取得する方法はありますか?
質問スレが見当たらなかったのですが
もっと適切なスレがあれば教えてください。
よろしくお願いいたします。
461:デフォルトの名無しさん
06/01/07 00:36:51
>>460
これじゃ代わりにはならない?
URLリンク(msdn.microsoft.com)
462:460
06/01/07 01:11:27
>>461
リンク先を読んだところ、childnodesを辿ればできそうです。
ありがとうございました!
463:デフォルトの名無しさん
06/01/09 17:17:09
WSHのいい開発環境が何かあれば、教えてください。
464:デフォルトの名無しさん
06/01/09 17:26:29
メモ帳最強
465:デフォルトの名無しさん
06/01/09 17:38:28
>>463
おまえが実際に使ってみて"いい開発環境"だと思った物が
おまえにとって"いい開発環境"だ。
俺にとって(・∀・)イイ!!ものが、おまえにとっても(・∀・)イイ!!ものだとは限らないので
具体的なソフト名は伏せておく。
466:デフォルトの名無しさん
06/01/09 19:35:06
>>463
Microsoft Visual Web Developer 2005 Express Edition
467:デフォルトの名無しさん
06/01/09 21:19:03
>>465
> おまえが実際に使ってみて"いい開発環境"だと思った物が
> おまえにとって"いい開発環境"だ。
ダウト!! でしょ。
もっといい環境を知ってしまったら、それまでいい環境と思っ
てたものが糞環境になってしまう。
っていう経験はしたことないのか?
まあ、後半は同意だが。
468:デフォルトの名無しさん
06/01/09 22:05:14
ワロタw
こんなアフォもいるのか
469:デフォルトの名無しさん
06/01/09 23:28:02
同意
470:デフォルトの名無しさん
06/01/09 23:45:01
救命胴衣
471:デフォルトの名無しさん
06/01/11 08:07:39
これは救えない
472:デフォルトの名無しさん
06/01/11 08:23:16
ホント、467みたいなバカってどこにでも居るのな
473:デフォルトの名無しさん
06/01/11 08:31:37
467は日本の恥。人間の屑。地球のゴミ。大宇宙の神秘。
474:デフォルトの名無しさん
06/01/11 12:34:00
ヤバい。>>467ヤバい。まじでヤバイよ、マジ(r
475:デフォルトの名無しさん
06/01/13 08:59:53
自然数 N が与えられたとき、
1 から N までの数字を N 個並べる組み合わせをすべて
列挙するプログラムは WSH で書くとどうなりますか?
例えば N = 3 のとき
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
となるようにです。
よろしくおながいします。
476:デフォルトの名無しさん
06/01/13 09:07:30
>>475
何処ににどう並べたいのか知らないけど
普通に乱数使ってやればいいだけの話
それが解らないようだとこの板にくるのは30分早い
まあ、頭のデキ次第では「数年早い」かもしれないがな
予備知識が無くたって、並の知能を持ってれば
この程度のことは30分も調べればわかる
477:デフォルトの名無しさん
06/01/13 09:50:03
>>476
組み合わせをすべて列挙するのに乱数要るのか・・・?
478:デフォルトの名無しさん
06/01/13 10:05:26
ごめん、別スレで煮た質問有ったんで勘違いしてた
乱数じゃなくて二進数だな
どっちにしろわけないものだがな
479:デフォルトの名無しさん
06/01/13 10:07:09
>475
順列を全て書き出したいって事?
「順列 アルゴリズム」で検索すればいろいろヒットすると思うが。
WSHにこだわらなければ↓とか。
URLリンク(www.vector.co.jp)
480:デフォルトの名無しさん
06/01/13 12:11:13
では >>478 のプログラムを拝見しましょうか。
481:デフォルトの名無しさん
06/01/13 12:18:48
で?
482:デフォルトの名無しさん
06/01/13 12:49:44
定期的に起動するVBSを書いています。
VBSの中でMSIEのCOMを使用してIEを開いているのですが、
その時にウインドウのフォーカス(?)がとられてしまいます。
これを回避する方法はないでしょうか?
OSはWindowsXP SP2です。
Dim objIE
Set objIE = CreateObject("InternetExplorer.application")
objIE.Offline = true
objIE.Navigate LoginURL
Do While objIE.Busy = True
Loop
Do While objIE.readyState <> "4"
Loop
483:デフォルトの名無しさん
06/01/13 21:10:41
もう一度自分にフォーカスすればいいんじゃない?
484:デフォルトの名無しさん
06/01/14 05:27:28
Offlineである必要がどうしてもあるなら妥協せざるをえない
485:デフォルトの名無しさん
06/01/14 15:12:49
>>479
糞ソフトの宣伝乙
486:デフォルトの名無しさん
06/01/14 17:12:56
>475
基本をちゃんと理解しておけば後は簡単、パズルみたいなもんだ。
分からないところがあったら、こまめに教官に聞きに行け。
授業料払ってるんだから分かるまで何度でも聞きに行け。
487:デフォルトの名無しさん
06/01/14 18:24:26
>>475
素直に組めばこんなもんかな
Option Explicit
Permutation 9
Private Sub Permutation(N)
WScript.Stdout.WriteLine "N = " & CStr(N)
Dim A(): ReDim A(N - 1)
Dim I: For I = 0 To N - 1: A(I) = I + 1: Next
PermutationSub A, 0, N - 1
End Sub
Private Sub PermutationSub(A, N, M)
If N <= M Then
Dim I
For I = N To M
Swap A(N), A(I):PermutationSub A, N + 1, M: Swap A(N), A(I)
Next
Else
WScript.Stdout.WriteLine Join(A, " ")
End If
End Sub
Private Sub Swap(X, Y)
Dim W: W = X: X = Y: Y = W
End Sub
うちの環境だと、N が 568 以上だとスタックオーバーフローするけどな。
488:デフォルトの名無しさん
06/01/17 09:04:37
選択した文字を右クリックメニューからWeb検索するものを作る事は可能ですか。WSHで
489:デフォルトの名無しさん
06/01/17 09:21:14
> 選択した文字を右クリックメニューから
どこで選択した文字を、何の右クリックメニューから検索したいのか知らないけど
選択した文字列をスクリプトで取得出来るならどうにでもなる。
ブラウザ上の右クリックとかなら簡単に出来るし。(具体的な方法はググれ)
490:デフォルトの名無しさん
06/01/20 19:45:28
何かいい方法がありませんでしょうか?
wshでVBScriptを動かし、
VBScriptのループ内でsqlplusを使用してinsertを繰り返し行いたいとします。
まずVBScriptの始めに
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run "sqlplus aaa/bbb@dbname"
を行い、sqlplusを起動、DBコネクトを行います。
その後、sqlplusに対して、コマンド(insert文)を実行させたいのですが、
やり方がわかりません。
491:デフォルトの名無しさん
06/01/20 19:52:11
オラクルの使い方はDB板で聞けよ。
492:デフォルトの名無しさん
06/01/20 19:56:42
>>491 DB版で逆のことを言われました。
DBとは直接関係ないので質問の形式を変えます。
wshで起動したDOSプロンプトにコマンドを渡すやりかたはないですか?
493:デフォルトの名無しさん
06/01/20 19:58:35
だな
wshと言うより、VB構文+DBって感じだし
494:デフォルトの名無しさん
06/01/20 20:05:34
>>490
sqlplus xxx/xxx@xxx < ファイル とリダイレクトを使うか、
sqlplus xxx/xxx@xxx @ファイル でコマンドをわたせる。
どっちにしろいったん中間ファイルに書き出す必要がある。
495:デフォルトの名無しさん
06/01/20 20:12:47
>>494
1つのファイルを読み込んで、INSERTを何回も行う仕様なんですよ。
でもSQLローダーではできないんですよ(ちょっとファイル形式が複雑で)。
で、PL/SQLも仕様できない(DBサーバー上にファイルがあるわけではないので)。
なので、VBScriptでファイルを読んで、SQL部分はsqlplus経由で行おうとしてます。
sqlplus使わないでODBCでやるなら簡単なんですけど、事情があって、sqlplus経由でやりたい。
INSERT一回ごとにコネクト開閉するわけにもいかないし、
一旦コネクトしておいて、そこで何度もSQL実行できればいいのですが。。。
496:デフォルトの名無しさん
06/01/20 20:33:32
>>495
標準入出力をスクリプトから制御したいならこの辺だな。
URLリンク(www.microsoft.com)
497:デフォルトの名無しさん
06/01/21 11:36:37
↓のように1行ごとにInsert発行せずに
insert into t1(col1, col2, col3) values ('A', 'B', 'C') 実行
insert into t1(col1, col2, col3) values ('D', 'E', 'F') 実行
1回の実行で複数件Insertした方がいいのでは?
insert into t1(col1, col2, col3)
select 'A', 'B', 'C' from dual
union all
select 'D', 'E', 'F' from dual 実行
498:デフォルトの名無しさん
06/01/21 12:12:34
>>497
すでにWSHは何の関係もないね。
ついでなんで答えると無名プロシージャでまとめて送るのが普通。
他のDBでも複数の命令をまとめて送るバッチ送信モードがあるから探してみたらいい。
sqlplus やldrの使い方はoracleスレにいってね。
499:デフォルトの名無しさん
06/01/21 17:20:36
IEを操作したいと奮闘中です
xxx という名前がついたテキストボックスがあるのですが、
状態によっては hidden になり、入力の必要がない場合があります
xxxがテキストボックスなのかhiddenなのかを判別する方法はありますでしょうか?
よろしくお願いいたします
500:デフォルトの名無しさん
06/01/21 19:44:00
>>499
<input id="inputText" type="text" />
<input id="inputHidden" type="hidden" />
<script>
alert(inputText.type); // text
alert(inputHidden.type); // hidden
</script>
501:デフォルトの名無しさん
06/01/31 11:46:34
IEを立ち上げた時、ほかのアプリやブラウザの陰にならず、IEが必ず見える
ようにするにはどうすればよいでしょうか?
502:デフォルトの名無しさん
06/01/31 11:59:38
>>501
つ AppActivate
503:488
06/01/31 14:33:08
IE上で選択した文字が取得できません><getとかヘルプ検索したけど><
504:デフォルトの名無しさん
06/01/31 14:50:16
>>503
document.selection.createRange().text
かな
505:デフォルトの名無しさん
06/01/31 22:31:46
IEでコンテンツ上のテキストとかを選択できなくしたいのですが、
できますか?
506:デフォルトの名無しさん
06/01/31 22:40:50
>>505
<div unselectable="on">……</div>
のようにする。
507:デフォルトの名無しさん
06/01/31 23:02:59
>>505
そろそろスレ違いですよ
URLリンク(www.microsoft.com)
508:デフォルトの名無しさん
06/02/01 00:15:48
>>506
ありがとうございます
>>507
何のことだかわかりません
誰かと勘違いされてますか?
509:デフォルトの名無しさん
06/02/01 02:36:21
>>508
ここで聞くことじゃない
510:デフォルトの名無しさん
06/02/02 23:22:23
wshをこれから使う予定なんですが、エディタなにがいいっすか??
511:デフォルトの名無しさん
06/02/02 23:26:54
めもてふ
512:デフォルトの名無しさん
06/02/02 23:28:08
>>510
[スタート メニュー]→[プログラム]→[アクセサリ]→[メモ帳]
513:デフォルトの名無しさん
06/02/02 23:41:25
WSHって言うからには、窓OSでしか使えないんですよね?
514:デフォルトの名無しさん
06/02/03 00:17:35
>>513
おぬしががんばって他のOSでインタプリタつくればできるかもしれん。ぞ。
515:デフォルトの名無しさん
06/02/03 00:31:42
>>510
Microsoft Visual Web Developer 2005 Express Edition
516:デフォルトの名無しさん
06/02/03 00:43:48
>>510
有料のやつですね。
4千程度なら買ってもいいんですが、無料エディタの中で良いものないでしょうか??
現在terapad使ってるんですが
517:デフォルトの名無しさん
06/02/03 00:49:08
>>515のは無料
URLリンク(www.microsoft.com)
518:デフォルトの名無しさん
06/02/03 01:57:41
>>517
どこからダウンロードしていいのかわかりません。
どこでしょうか??
519:デフォルトの名無しさん
06/02/03 03:15:55
そんな餌に俺様が
520:デフォルトの名無しさん
06/02/03 04:52:04
>>516
俺が良いと感じるものを、お前が使って良いと感じるとは限らない。
結局自分で試さないと「良い物」なんて見つからないわな。
つーかググればすぐ出てくるソフトの名前教えて貰って、落とすところがわからないとか
こいつは、自分で探そうとか試そうとかいう気が全く無いんだな。
以後放置しましょうか。
521:デフォルトの名無しさん
06/02/03 10:03:35
落とすところがわからないって…
さすがにそこまで来ると、どこか悪いんじゃないかと心配になったり。
522:デフォルトの名無しさん
06/02/06 19:48:27
それは出来ないんじゃないか?
ライセンスしてくれなかったはず。
523:デフォルトの名無しさん
06/02/07 08:29:16
はっきりと「頭が悪い」と言わない>>521の優しさに惚れそうでつ
524:デフォルトの名無しさん
06/02/16 14:59:52
いまVBSでVISIOを操作しようとしているんですが、
対象ファイルが既に起動済みの場合の対処で困っています
起動済みのファイルが既に立ち上がっていた場合
その立ち上がっているファイルを操作するには
どうしたら良いでしょうか?
GetObjectでファイルを指定しても操作できず
Visio.ApplicationもエラーでGETできませんでした
やっぱり起動済みの場合はMsgbox等で警告して
終了してから実行するしかないでしょうか?
携帯からですいませんが、助言をお願いします
525:542
06/02/16 18:21:39
普通にできました
ただの勘違いでした
スレ汚しすんません
526:デフォルトの名無しさん
06/02/26 20:17:50
ひつもんです。
現在アクティブなCOMオブジェクトをリアルタイムに
ブラウジングするツールのようなものは無いでしょうか?
できればフリーでダウンロード可能なツールがいいんですが。
とろしくお願いします。
527:52あ6
06/02/26 20:21:45
すいまえん検索したらこんなのがありましたが
Oleview.exe: OLE/COM Object Viewer
URLリンク(www.microsoft.com)
これ無料ダウンロードして誰でも使っていいもんでしょうか?
528:52あ6
06/02/26 20:27:40
すいません。フリーダウンロードってかいてありました。
日本語版は無いんですよね?
おさわがせして失礼しました。
529:デフォルトの名無しさん
06/02/26 21:17:59
>>528
>日本語版は無いんですよね?
パッチなら
URLリンク(hp.vector.co.jp)
注意:バージョンが合うかどうか不明。
530:デフォルトの名無しさん
06/02/26 21:21:15
質問する → 検索する
↑ ↓
新たな疑問 ← 自己解決
無限ループって怖くね?
531:デフォルトの名無しさん
06/02/26 21:25:22
>>530
じゃあ、最初にもっと根本的なところの疑問から解決していこうよ。
まず、いい開発ツールってない?
デバッグできる奴がほしいんだけど。
532:デフォルトの名無しさん
06/02/26 23:25:36
>>531
あるよ
でもこの手のこと言い出す奴って、「Aが出来るツール」って言っても、
Aだけ出来れば満足ってことではなく、今使ってるツールに対する
不満点がAなわけだから、Aが出来るツールを教えても、今まで使ってた
ツールで出来てたBが出来なくなれば、今度はそこに不満を感じるわけで、
教えても虚しい結果に終わるだけだから具体的なソフト名は伏せる。
「いい開発ツール」の「いい(良い)」ってのも、同じものでも人によって評価の変わる
非常に曖昧な表現だし。
まぁ、この板の住人なら最終的には必要な物は自分で作れってことでFAだからな。
533:デフォルトの名無しさん
06/02/28 12:47:06
WSHからimagemagick使ってるんですが
URLリンク(images-jp.amazon.com)
この画像を変換(リサイズ)しようとするとエラー吐いて止まっちゃう。
ほとんどのファイルは大丈夫なんだけど特定のファイルはだめみたい。
これは画像のデータが壊れているということ?
URLリンク(www.hawk.34sp.com)
スクリプトはここのをほぼそのまま使ってるんですが
エラーを吐くのはImagemagickのようです。
エラーの出る条件がよくわかりません。どなたか・・・
534:533
06/02/28 12:59:09
画像をDLしなおしたらできた
DLの失敗かもしれないので上は無かったことにして下さい
結構頻繁に起きるので解決にならないけど・・・
535:533
06/02/28 16:34:43
WSHから呼んでいるときにwaitかけてないからエラーがでるのかな・・・
javascriptでwaitってどうやってかけるんだろう
vbs使ってsleep使うしかないのか
</チラシの裏>
536:デフォルトの名無しさん
06/02/28 20:21:35
<package>
<job id="vbs">
<script language="VBScript">
WScript.Sleep 100
</script>
</job>
<job id="js">
<script language="JScript">
WScript.Sleep(100);
</script>
</job>
</package>
537:デフォルトの名無しさん
06/03/10 01:02:29
WSHでcmdやnetshのようなシェルプログラムを実行させるにはどうしたらいいでしょうか
例えば、以下のような複数行のコマンドを実行する場合などです。
cd c\temp
temp.exe
538:デフォルトの名無しさん
06/03/10 05:09:34
>>537
cmd.exeやnetsh.exeのような実行ファイルを実行したいという意味なら、
URLリンク(msdn.microsoft.com)
cdしたいという意味ならCurrentDirectoryに値を代入。
URLリンク(msdn.microsoft.com)
標準入出力を操作したいというなら、
URLリンク(msdn.microsoft.com)
539:デフォルトの名無しさん
06/03/11 22:14:27
>>538
知りたかったのは3番目の方法です。
ありがとうございました。
540:http://www.vector.co.jp/soft/win95/util/se072729.html
06/03/18 21:37:53
TextSS のWindowsXP(Professional)64bit化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
541:デフォルトの名無しさん
06/03/18 22:03:16
マルチもここまで多くのスレで展開されるとある意味感心する。
但しマルチ質問には答えないのが慣わしなんで、知ってるが回答は控えておくことにする。
542:デフォルトの名無しさん
06/03/27 23:45:04
VBSファイルの置いてあるパスを取得するというか
自分自身のファイルパスを取得するにはどうしたらいいですか
543:デフォルトの名無しさん
06/03/28 00:08:30
URLリンク(msdn.microsoft.com)
544:デフォルトの名無しさん
06/03/29 19:06:08
*.lnkで起動するファイルがあるディレクトリの親ディレクトリを開きたいんだけど、
これをスクリプトでできないですか?
とりあえず、*.lnkファイルをエディタで開いて中身を見てみようとしたけど、これを開くと
リンク先のファイルが開かれて、*.lnk自体の中身を見ることができない、、
フォーマットが分からないとどうしようもない。
というより、スクリプトに渡しても、リンク先のファイルを渡したことになるのかな。
どうにかなりませんか?
545:デフォルトの名無しさん
06/03/29 19:28:17
TargetPath
ParentFolder
546:デフォルトの名無しさん
06/03/31 00:00:05
>>544
ファイルの中身を覗きたいならバイナリエディタを使え
547:デフォルトの名無しさん
06/04/07 21:24:50
>>546
lnkファイルってこんな構造だったの?w
おれずっとエディタで読めると思ってた、勘違いしてたよw
㌧
548:デフォルトの名無しさん
06/04/08 23:14:29
Set xh = CreateObject("MSXML2.XMLHTTP")
On Error Resume Next
If Err <> 0 Then
Err.Clear
Set xh = CreateObject("Microsoft.XMLHTTP")
End If
xh.Open "GET", Url, False
xh.Send
If Err <> 0 Then Exit Function
上記Scriptでxh.Sendを実行してから次のステップに進むまで4秒くらい(URLはyahooやInfoseekなどどのサイトでも)
かかりますがみなさんもそのくらい、時間がかかりますか?
OSはWinXPです。
549:デフォルトの名無しさん
06/04/09 00:37:23
>>548
Windows板いきな
550:548
06/04/09 00:41:53
>>549
そうします
551:デフォルトの名無しさん
06/05/03 16:55:59
スマン、誰かMSXMLのSAX使う方法教えてくれ。
Set reader = CreateObject("MSXML2.SAXXMLReader)
迄は分かるんだが、
reader.contentHandler = ←ここがわからん
reader.parseURL("...")
探し方が悪いのか見つけきれない……orz
552:デフォルトの名無しさん
06/05/03 17:13:18
> Set reader = CreateObject("MSXML2.SAXXMLReader)
> 迄は分かるんだが、
全然わかってないってことじゃんw
Set reader = CreateObject("~")
は調べるまでもなくわかることだし。
まあとりあえずリファレンスでも読んでこい。
リファレンス読んで解らないなら、ここで説明しても理解できないだろうし。
553:551
06/05/03 22:06:15
スマン自己解決……というか「出来ない」ってのが分かった。
>>552
> 全然わかってないってことじゃんw
> まあとりあえずリファレンスでも読んでこい。
説明足らなかった。ゴメン。
サンプルとしてMSDNのJumpStart for Creating a SAX2のVB版とC++版が有ったんだが、IVBSAXContentHandler(ISAXContentHandler)継承(VBはImplements)したクラスをSAXXMLReaderのcontentHandler(putContenthandler())に渡してたのよ。
これWSHでどうやるのかな、と。
勝手に実装したクラス作って渡してみても『型が違う』って怒られるし。
調べてみたら『出来ない』って。しょうがない、DOMでやるか。
554:デフォルトの名無しさん
06/05/08 02:46:20
夜更けですみません。
WindowsのVersionを調べるのってWSHから可能でしょうか?
555:デフォルトの名無しさん
06/05/08 05:52:08
>>554
Versionつっても具体的にどーゆーVersion?
95/98/Me/NT/2000/XP/2003 みたいな区別を付けたいの?
ビルド番号やSPを知りたいの?
英語版/日本語版/International版みたいな違いを知りたいの?
質問する時はもっと明確質問してくれないと、困るよ君ぃ。
556:デフォルトの名無しさん
06/05/08 08:25:04
「困るよ君ぃ」 と言いたいだけなんちゃうかと
557:デフォルトの名無しさん
06/05/08 10:34:05
「Version」は95/98/Me/NT/2000/XP/2003 みたいな区別
ビルド番号は「ビルド番号」
SPは「サービスパック適用状態」
英語版/日本語版/International版みたいな違いは「言語区分」
558:デフォルトの名無しさん
06/05/08 10:49:20
で?
559:デフォルトの名無しさん
06/05/08 10:53:03
「困るよ君ぃ」
560:デフォルトの名無しさん
06/05/08 14:08:02
違いが判別できればええんとちゃう?
561:デフォルトの名無しさん
06/05/08 14:49:51
ていうか、100や200も回答があるわけじゃないんだし
たかが、3つや4つなら、それぞれの回答を書いてやれば良いじゃんw
漏れは調べないと分かんないから、そこまでしてやる気はないが
562:554
06/05/08 18:59:29
すみません。Yahoo検索 - Windows*バージョン*取得で方針が見えてきました。
ExcelVBAからなら、Windowsのバージョンを取得できるみたいなので、
Excelオブジェクトを宣言して使えばとりあえず対応できそうです。
9x系かNT系かで、内部処理を変えたかったもので…。
ちなみに今までは、If WScript.CreateObject("WScript.Network").ComputerName = "~" Then
で、根気よく対応していました。
わざわざMeに、Excelインストールするのが面倒なので、IEオブジェクトでも、似たのが
なかったか探してみます。
レスありがとうございました。
563:デフォルトの名無しさん
06/05/08 19:04:06
>>562
> 9x系かNT系かで、内部処理を変えたかったもので…。
そのくらいなら環境変数 ComSpec で判断すればいいと思うけど。
564:デフォルトの名無しさん
06/05/12 23:23:58
>>529
糞ソフトの宣伝乙
565:562
06/05/21 11:16:51
>>563
WScript.CreateObject("WScript.Shell").Environment.Item("COMSPEC")
できました。ありがとうございましたー
566:デフォルトの名無しさん
06/06/02 00:39:07
wshを最近始めた者です。
CreateObject("Scripting.FileSystemObject").GetFolder(パス).SubFolders
からFor Each 文を使用してサブフォルダのリストを取得出来ますが
For Eachを使わずに・・SubFolders.Item(1)のような形で同じようにパスの
取得をすることは可能でしょうか?
ググってみましたが、For Eachの方法しか見つかりませんでした。
567:デフォルトの名無しさん
06/06/02 01:15:05
コレクションと配列は似ているようで微妙に違うからなぁ
一旦配列に入れてみるとかしか思いつかないや
568:デフォルトの名無しさん
06/06/02 01:19:22
ちょっと調べたところ、Foldersコレクションのキーはフォルダ名になってる模様
569:566
06/06/02 01:35:49
ありがとうございます。
自分も検索して
Folders.Item("MyFolder")のようにフォルダ名を入れれば取得出来ることは確認出来た
のですが・・フォルダ名ではなく整数型で取得は出来ないものかと思っています。
570:デフォルトの名無しさん
06/06/02 01:43:44
できないよ。
やりたいのなら配列に入れ直せ。
571:566
06/06/02 01:52:14
そうですか
ありがとうございました。
572:デフォルトの名無しさん
06/06/02 18:33:56
vbsを勉強したいのですが、みんな何の本で勉強しました?
本屋に行ってもイマイチ良さそうなのが無いので
573:デフォルトの名無しさん
06/06/02 18:42:54
今更 VBS と言うのも……
574:デフォルトの名無しさん
06/06/02 19:46:55
全部ネットで勉強できた
575:デフォルトの名無しさん
06/06/02 20:45:06
>>572
vbs ⊂ WSH … って考えたら (ここ "WSH(・∀・)スレッド! " だし)
スレリンク(win板:2-5番)
大概は
URLリンク(download.microsoft.com)
URLリンク(www.roy.hi-ho.ne.jp)
あたりなのかな?
WSHを始めよう - @IT
URLリンク(www.atmarkit.co.jp)
なんてのも始まったネ。
576:デフォルトの名無しさん
06/06/03 12:12:47
>>572
おれはここから始めたよ
@IT:運用 Windows管理者のためのWindows Script Host入門
URLリンク(www.atmarkit.co.jp)
577:デフォルトの名無しさん
06/06/04 13:06:02
>>575-576
糞サイトの宣伝乙
578:デフォルトの名無しさん
06/06/04 13:49:16
>>577
内容が理解できない = 糞サイト?
579:デフォルトの名無しさん
06/06/04 15:00:24
@ITが糞サイトとか言ってる香具師がいるぞ
580:デフォルトの名無しさん
06/06/04 22:51:43
糞サイトだろ?
581:デフォルトの名無しさん
06/06/04 23:32:43
@ITは結構他では扱っていない内容もカバーしてるから
俺もあそこの情報は重宝してるが、質については弁護できんな。
582:572
06/06/05 09:35:25
レス遅れましたが有難うございました。
紹介して頂いたページで勉強してみます
583:デフォルトの名無しさん
06/06/16 16:38:03
WSHで同じワークグループ内のコンピュータ名を
取得する方法はないのでしょうか?
具体的には、ネットワーク内のあるコンピュータの起動状況を確認して
起動していればネットワークドライブに接続するスクリプトを書きたいのですが・・・
584:デフォルトの名無しさん
06/06/16 17:33:58
> WSHで同じワークグループ内のコンピュータ名を
> 取得する方法はないのでしょうか?
あるよ。
つ Google
585:デフォルトの名無しさん
06/06/16 18:49:26
ググっても見つからなかったのですがorz
とりあえずcscriptの方で動かしてます。
586:デフォルトの名無しさん
06/06/17 10:35:27
URLリンク(www.codecomments.com)
587:デフォルトの名無しさん
06/06/17 11:53:06
set wbemServices = GetObject("winmgmts:{impersonationLevel=impersonate}")
この行のあるプログラムをcscriptで実行しようとしたとき、(実行者はAdministrator)
Server 2003 では問題出ないのですが、2000 Server 上では
(ソースファイル名)(上の行の番号) SWbemServices: アクセスは拒否されました
というメッセージが出て止まってしまいます。
wbemServices や impersonate で検索してみたのですが、
impersonate が権限を取得出来る可能性が高いので推奨
というくらいのことしか分かりませんでした。
何か解決策をご存知の方はいらっしゃいますでしょうか?
588:デフォルトの名無しさん
06/06/17 12:02:58
自己レスです
検索してたら
「SeSecurityPrivilegeが割り当てられている必要があります」
「ない場合は、"Access Denied"がアプリケーションに返されます」
という記述が見つかりました
もう少し調べてうまくいったらご報告します
589:デフォルトの名無しさん
06/06/17 18:12:41
Aフォルダの中にあるファイルとフォルダを全て削除する。
ただしBフォルダ以外。
上記の操作をWSHで可能ですか?
色々調べたんですが、一時的にBフォルダを別の場所に移動
してから一括削除する方法位しか思いつかなくて・・・
590:デフォルトの名無しさん
06/06/17 18:32:51
>>586
さんくす
591:デフォルトの名無しさん
06/06/17 18:54:56
>>589
Aフォルダ自体に削除処理を掛けることばかり考えずに
Aフォルダ以下のSubFolders、Filesをループで削除する処理を作って
そのループの中でBフォルダの名前に一致した場合は削除処理を行わないようにすれば良い。
つーか
> 時的にBフォルダを別の場所に移動
> してから一括削除する方法
に何か問題でもあるの?
別パーティションに移動するとかなら移動処理に時間が掛かるだろうが
Bフォルダのパスを2回書き換えるだけで実際には移動せずに済むんだから、
そういう不都合も無いでしょ。いったい何が不満なの?
592:デフォルトの名無しさん
06/06/17 19:28:36
FAT32なのかもしれん
593:デフォルトの名無しさん
06/06/17 19:33:13
Win2000をサービスパックとか何も入れずに使っているのですが、
何やらXPだとかサービスパックだとかの場合、ADODBが殺されて使えない、
というような話を聞いたのですが本当なのでしょうか?
ADODBを使ったスクリプトを他人のコンピュータ(特にXP)でも動作させたいのですが、どういう状況なのか教えてくださいませ。
594:デフォルトの名無しさん
06/06/17 19:42:58
「Win2000をサービスパックとか何も入れずに」
しね
595:デフォルトの名無しさん
06/06/17 23:17:29
Dim SettingFile1
Set SettingFile1 = ~
Dim SettingFile2
Set SettingFile2 = ~
みたいなのを動的に増やしていきたいのですが、
どうすればいいのでしょうか?
596:デフォルトの名無しさん
06/06/17 23:24:41
配列にする
597:589
06/06/18 04:42:54
>>591
Bフォルダの容量が大きいので、移動は避けたかったんですよ。
で、教えて頂いた通りにやってみるとできました!
objStartFolder =
ShowSubfolders objFSO.GetFolder(objStartFolder)
Sub ShowSubFolders(Folder)
For Each Subfolder in Folder.SubFolders
Set objFolder = objFSO.GetFolder(Subfolder.Path)
ShowSubFolders Subfolder
If not objFolder = objStartFolder & "Bフォルダ" Then
objFSO.DeleteFolder(objFolder),true
End If
Next
End Sub
598:デフォルトの名無しさん
06/06/18 19:49:21
Windows板のスレから移動してきました。質問させてください。
変数に格納されている文字列を元にした名前を持つグローバル関数を定義したいのですが
WSH ではグローバル変数・関数が集まっているオブジェクトって存在するのでしょうか?
(ブラウザでのJavaScript実行環境における window にあたるオブジェクト)
具体的には InternetExplorer のイベントを監視する為に
function observe(s, f) { window["InternetExplorer_On" + s] = f; }
のようなコードを書きたいのです。
Global オブジェクトかな、とも思ったのですが、うちの環境(Windows XP sp2)では
参照しようとするとエラーがでてしまいます。なんで…(´・ω・)
eval を使う手も考えましたが、実行されるのが関数の中なのでグローバルにできません…。
599:デフォルトの名無しさん
06/06/18 20:11:12
マルチ乙
600:598
06/06/18 20:28:20
>>599
いえ、マルチとならないよう、向こうのスレで質問を中止する旨を書き込んだのですが
まずかったのでしょうか…。こちらのスレに移動する、という事も書きました。
601:デフォルトの名無しさん
06/06/18 21:42:38
>>598
代用法はあるが、そのものの方法は無い。
602:デフォルトの名無しさん
06/06/19 19:03:27
開発環境はメモ帳ですか?
603:デフォルトの名無しさん
06/06/19 20:36:15
VS2005
604:デフォルトの名無しさん
06/06/19 23:44:16
おいらはメモ帳派
605:デフォルトの名無しさん
06/06/20 02:26:33
インターネット上のファイル(URLリンク(......))のタイムスタンプを調べて、
更新されていればダウンロードし、「ファイル名+日付.pdf」リネームする
するスクリプトを作りたいんですが、他の部分はともかくネット上のファイルに
アクセスする方法がわからないのですが、何かよい方法はあるでしょうか?
606:デフォルトの名無しさん
06/06/20 03:57:24
取りあえず HTTP で公開されてるファイルには XMLHTTP とか使う。
そもそもそのサーバが最終更新日時をヘッダに含めてくれるのか? とか。
If-Modified-Since ヘッダを使えばできるかもな。
607:605
06/06/21 00:15:12
>>606
XMLHTTPでなんとかアクセスできるようにはなりましたけど、
タイムスタンプの取得がうまくいきませぬ。
If-Modified-Sinceヘッダに関しては、
URLリンク(www.su-jine.com)
こんなサイト発見して、目的のサーバが対応してるところまでは
調べれましたが、問題はそのヘッダをどうやって送るかが、わかりませぬ。
もちろんググッてはみたもののヘッダ送信に関する資料が見つからず・・・。
あればできそうなのに・・・。HTTPの仕様に関する資料とか探せばいいのかな?
とにかく助言ありがとうございました。
608:デフォルトの名無しさん
06/06/21 00:56:28
last_modified = XMLHTTP.getResponseHeader("Last-Modified");
XMLHTTP.setRequestHeader("If-Modified-Since", last_modified);
> もちろんググッてはみたもののヘッダ送信に関する資料が見つからず・・・。
XMLHTTP ヘッダー
でググったら一発で見つかったけど・・・?
609:605
06/06/21 01:08:36
ぐは!本当だ。申し訳なかとです、修行が足りませなんだ・・・。orz
おかげでなんとか出来そうです。
ありがとうございました。
610:デフォルトの名無しさん
06/06/24 15:49:45
スクリプトだと実行できてEXEだと実行できないような状態ってありますか?
611:デフォルトの名無しさん
06/06/24 15:59:39
状態? なんの?
612:デフォルトの名無しさん
06/06/24 18:15:18
>>594
教えてくれたら死にます。なので教えて下さい。
原因はおそらくADODBがIObjectSafetyをサポートしているのでIEから使えてしまう事が原因だと思いますが、これの対策としては
1. ADODBをIObjectSafety非サポートに変更
2. ADODBのレジストリ登録を削除
3. ADODBのモジュール自体を削除
のいずれかだと思います。MSが取った対策はどれですか?
#・・・しかしスクリプトな人達って疲れる・・・(^^;)
613:デフォルトの名無しさん
06/06/24 18:17:56
スクリプトもexeの実行だよ。
関連付け設定していれば、スクリプトファイル(コードを書いたファイル)を実行してるように感じるかもしれないが、
その実、Wscript.exeを実行して、スクリプトファイルを渡すという処理が行われている。
exeが実行できなかったら、.vbsや.jsを実行(ダブルクリック、Enter)したって何も起きない。
614:デフォルトの名無しさん
06/06/24 18:28:19
> 教えてくれたら死にます。なので教えて下さい。
教えたら死ぬという確かな証拠と、
あなたの死後、死んだことを証明するものを提示する手段を明らかにしてください。
>教えてくれたら死にます。
という前提があって
> なので教えて下さい。
という欲求があるのだから、当然前提は明確にしないとね。
615:デフォルトの名無しさん
06/06/24 21:59:11
>>614
お前みたいなレスは一番(゚⊿゚)イラネ
616:デフォルトの名無しさん
06/06/24 22:02:14
>>615
オマエモナー
617:デフォルトの名無しさん
06/06/24 22:11:49
>>615
ID出ない板は便利だね( ̄ー ̄)ニヤリッ
618:605
06/06/25 00:26:49
遅レスでスマソ。
とりあえず、ファイルの更新日時をチェックする部分はできますた。
url = "URLリンク(......)
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
Call objHTTP.Open("GET",Url,False)
objHTTP.send
Last_Modified = objHTTP.getResponseHeader("Last-Modified")
s = split(Last_Modified)
strWeekday = s(0)
strDay = s(1)
strMonth = s(2)
strYear = s(3)
strTime = s(4)
こんな感じで更新日時はゲットできますた。
教えていただいた方にまずは感謝です。
アリガト!(´▽`)
あとはダウンロードするだけですが、
HTMLとかテキストデータをDLする方法はいくつか見かけたのですが、
バイナリファイルのダウンロードの方法はどんな方法があるのでしょうか?
619:デフォルトの名無しさん
06/06/25 00:32:47
おいおい、それくらいちょっと調べればすぐ出てくるだろ?
てか XMLHTTP だけでも(アップロードだが)バイナリデータのがトップだ。
620:デフォルトの名無しさん
06/06/25 00:58:49
普通に取ってデコードする
621:605
06/06/25 01:22:52
>>619
XMLHTTPだけでも~~~
って、ことはXMLHTTPを使えばできるってことですよね?
うーん、.ResponseTextメソッドとか.ResponseBodyメソッドとかを
使うってことですか?
>>620
普通に取ってデコードするってことは、
上記のような方法で取ってきたデータを
なんらかのデコード処理をしたあとでファイルに書き出すということでしょうか?
レスありがとうございました。
まだまだ検索が甘かったようなので、もう一度探しに行っていきます。
622:デフォルトの名無しさん
06/06/25 23:02:37
>>621
バイナリはADODB.Streamで保存する
別にデコードはいらんだろ
623:デフォルトの名無しさん
06/06/26 00:05:45
ADODB.Stream使わないで保存できないの?
624:605
06/06/26 00:28:41
ADOBO.Streemで検索を掛けていたら、
ここにそのまんまな解決方法が載っていました。
URLリンク(www.roy.hi-ho.ne.jp)
ためしにサンプル通りに作ってみたところ見事ダウンロードできました。うはっ!!
もうあまりにまんまでなぜ見つけられなかったか、
自分の不甲斐なさに涙が出てきました。
レスして頂いた方々へ→本当にありがとうございました。m(__)m
625:612
06/07/01 20:28:54
私は以下の掲示板で活動してるAK○という者なんですが、教えていただけないでしょうか?
URLリンク(www.roy.hi-ho.ne.jp)
別のスレや掲示板で聞き直してもいいのですが、たくさんそういう事をすると検索の時に引っ掛かって邪魔だ、とよく言われるので。
626:デフォルトの名無しさん
06/07/10 01:40:01
>625
アロンのトコじゃねぇか、ソコの住人の方が詳しいんじゃね?
627:デフォルトの名無しさん
06/07/29 21:16:12
>>625
糞掲示板の宣伝乙
628:デフォルトの名無しさん
06/08/02 19:47:22
JScript の Array オブジェクトを、VBArray に変換する方法を教えてください
629:628
06/08/02 20:12:57
自己解決。
DynWrap Helper にまんまそのとおりのコードがありました。
630:デフォルトの名無しさん
06/08/15 11:45:30
Microsoft.XMLDOMを利用してxmlファイルを作る場合なのですが
ただ単にappendChildで追加していってSaveすると
<root><item>a</item><item>b</item></root>
というファイルが出来るのですが、これを改行やインデントを入れて
<root>
<item>a</item>
<item>b</item>
</root>
とするには、何をすれば良いのですか?
まさか自前で文字列解析するなんてことはないだろうから
XMLDOMのプロパティなりなんなりでこの辺の設定が出来ると思うのですが
具体的にどうすれば良いのか解りません。ご教示お願いします。
631:デフォルトの名無しさん
06/08/15 15:01:49
>>630
改行や空白もテキストノードの一種だから、データとしては前者の改行が無いものが正しいんだよね。
どうしても整形したいならXSLTで変換かなぁ。勘だけど。
632:デフォルトの名無しさん
06/08/15 19:37:59
>>631も言ってるようにそこはデータだから勝手に整形しちゃいかん。
やるんだったらこう。
<root
><item>a</item
><item>b</item
></root>
633:デフォルトの名無しさん
06/08/15 20:00:52
>>632
それは完全に間違い。
634:デフォルトの名無しさん
06/08/15 20:52:52
>>633
脊髄反射するな。
635:デフォルトの名無しさん
06/08/15 23:05:23
>>630
それらしきプロパティはあって、使えるかと思って以前試したけど
それほど簡単ではなかった。
DOMDocument には PreserveWhitespace というプロパティがあって、これが
falseのとき、ドキュメント内の空白は保存時に自動的にインデントされる仕様。
ところが、インデントする対象が "ドキュメント内の空白" なため、
以下のような既存文書を読んだ場合、
<root>
<item>a</item>
</root>
<root>と<item>の間、</item>と</root>の間は空白扱いなので、
書き込むときも(空白=>インデント変換によって)同様にインデントされるが、
新規に
<root><item>a</item></root>
というデータを作成してsaveしても途中に空白がないので、保存しても
そのままではインデントしてくれない。
仕方がないので、要素をルートから再帰的にたどってタグとタグの間に
テキスト要素がなければ問答無用で1つの空白を挿入するという補助関数
を作って保存前に呼んでた。
636:630
06/08/16 09:50:58
>>631
> 改行や空白もテキストノードの一種だから、データとしては前者の改行が無いものが正しいんだよね。
> そこはデータだから勝手に整形しちゃいかん。
それは違うと思います。確かに改行や空白はテキスト要素として扱われます。
だから<root>をテキストノードとして扱い、余計な改行や空白が入っては拙い場合は、前者の書き方が正しいと言えますが
<root>がエレメントノードであり、テキスト要素を利用しない場合は、テキスト要素に何が入ろうと間違いも問題もありません。
つまり改行や空白を入れれば、それらもテキスト要素として取得されるという仕様なだけの話であり、
テキスト要素に改行や空白を使ってはいけないなんてことはないので、改行や空白が取得されては困る場合だけ避ければ良いことだと思います。
少なくとも>>630後者の記述は、仕様に沿った正しいXMLファイルとして扱えています。
>>633
間違いでは無いと思いますよ。
>>632も>>630後者も、どちらもXMLの仕様には違反していません。
ただ条件付きで>>630後者は、<root>のテキスト要素に改行や空白は入っては拙い場合は不都合があるというだけです。
>>635
ありがとうございます。理想通りに改行&インデントされました。
やはりこういう記述を正式にサポートしてたのですね。