WSH(・∀・)スレッド!
..
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 のプログラムを拝見しましょうか。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4308日前に更新/212 KB
担当:undef