09/06/21 05:37:33 9AsxSuL8
一番手っ取り早いのは別言語で作る方法だな
WSHでやりたいとしても、目的の部分はCOMとして作る必要があるから
別言語使わなきゃならないことには変わらないので
だったら別言語でCOM作ってWSHで動かすより
そのCOMを作れるような言語で直接アプリを作った方がいい
519:名無し~3.EXE
09/06/21 14:02:20 YkrwZ8hC
>>517
.scrから呼び出すwscriptを単なるWScript.ShellオブジェクトのRun()だけ
書いてるヤツにすればいい。そんでRun()の引数を終了を待たないヤツにして
本来のwscriptを呼び出せば失敗する可能性は低くなる。
あと注意点は次のものがあるな。
・その処理だと、ユーザーに気づかれない必要があるんじゃないの?
・Windows2000だとWMIが入ってない場合もある。
・そのときのログオンユーザーの権限が低いと、イベントログに書き込むのが
エラーを出す可能性がある(気づかれる)。
520:517
09/06/21 16:34:28 hZdAyqNW
>>518
COMを自作するには、知識も時間も足りないし、専門職じゃないので運用・メンテ面からも難しいです。。
スレ違いかもだけど、今後のために(こういった連携においてWSHと相性のいい)お勧めの開発環境や言語があれば教えてください。
>>519
scr→WSH(WScript.ShellオブジェクトのRun())→WSH(ログ記録&通知)の3重にするってことですか。
ロックアプリは会社のものなので、処理だけ考えて後日検証してみます。
しかし、Run()だけで引数なしだと、キックされる側は「WScript.Arguments.Count = 0」で単独起動させない策は、確かにできないですね。
数行なら保守性は変わらなそうだし、そちらはVBEで配布するかな。。
Win2Kやログオンユーザ権限は、XP&administratorsグループのアカウント対象で問題ないです。
おっしゃるように最低限の隠蔽策を講じつつ、件の状況で処理を実現したいために、ややこしいことになってます。
あと一歩なだけに悔しいです。
521:名無し~3.EXE
09/06/25 15:49:01 qQpWklfp
vista + JScript で特殊フォルダ「ミュージック」のパスを取得する方法はありますでしょうか?
Shell.SpecialFolders でマイドキュメントは取得できるのですが・・・
522:名無し~3.EXE
09/06/25 15:52:02 V72CWr8X
おれもついでにイイか?
Xp + Jscriptで隣の奥さんの使用済みパンティーを取得する方法はありますでしょうか?
買い物のときにベランダ沿いに侵入すれば洗ったパンティーは取得できると思うのですが・・・
523:名無し~3.EXE
09/06/25 16:03:25 TkrEyaw6
new ActiveXObject('shell.application').Namespace(13).Path
524:名無し~3.EXE
09/06/25 16:29:13 qQpWklfp
>>523
早速試してみたところ・・・
なぜか undefined になります。
var x = new ActiveXObject('shell.application').NameSpace(13);
WScript.Echo("path="+x.path);
x.title には「ミュージック」がセットされていました。
525:名無し~3.EXE
09/06/25 16:33:43 TkrEyaw6
Path
526:名無し~3.EXE
09/06/25 16:34:46 TkrEyaw6
.Self.Path
527:名無し~3.EXE
09/06/25 16:35:10 01tMvTm9
new ActiveXObject('yourfilehost.application').Namespace(mature).Panty
528:名無し~3.EXE
09/06/25 16:37:04 qQpWklfp
self.path でいけました!
ありがとうございました(^^
529:名無し~3.EXE
09/06/25 16:39:30 01tMvTm9
used.Panty でいけました
ありがとうございました(^^
530:名無し~3.EXE
09/06/26 21:34:25 CNF38epp
哀しいものを見た^^
531:名無し~3.EXE
09/07/15 16:25:30 B2XAn6wr
xmlhttpを使用して、リファラーを送ってデータを取得したいのですがうまくいきません
set http = WScript.CreateObject("microsoft.xmlhttp")
http.open "GET", "URLリンク(taruo.net)", false
http.setRequestHeader "Referer", "テストテスト"
http.send
WScript.Echo http.responseText
診断君で試してみたところ、やっぱり送れていないみたいなんですが何か間違っているんでしょうか?
532:名無し~3.EXE
09/07/15 17:08:41 GKwZ01/x
>>531
スレリンク(tech板:48-51番)
ということらしいよ
533:名無し~3.EXE
09/07/15 17:27:02 j+tCnxTF
>>532
WindowsUpdateでその辺の仕様が変わるんだな。
これからも起き得るのかね?あぶねえな。
前にやったときは、さっさとCurl.exe使って逃げたわ。
534:名無し~3.EXE
09/07/15 18:21:02 GKwZ01/x
IEでも動かせるオブジェクトなんだからある程度は仕方なかんべ
535:名無し~3.EXE
09/07/15 18:39:51 7vBKI4Qq
さすがMS、酷い変更だ。リファラすら指定できないなんて。
4.0 5.0 がフルパス吐くのは、別の意味でセキュリティーの問題じゃないか?
ユーザー名に実名使ってる環境の場合、フルパスに実名含まれてしまったり・・・w
536:531
09/07/15 23:13:42 G8m72XGt
>>532
そういうことだったんですね
とりあえずMsxml2.XMLHTTP.5.0にしてみたら送れたのでよかったのですが
何だかcookie送る方にもバグがあるんですね・・・・
対策ページを見てみましたがうまくいかず
xmlhttpを使うのはあきらめました
537:名無し~3.EXE
09/07/16 23:48:35 s9Fi+J+f
自分の環境には5.0入ってないんで、Msxml2.XMLHTTP.6.0で試してみたが、Referer送れない。orz
538:名無し~3.EXE
09/07/17 00:25:49 MIUEZcIb
PowerShellへの移行策の一つと言うことか
539:名無し~3.EXE
09/07/19 11:53:25 BSXTI/Xi
wsh(≒jscript)はwineで使い物になる?PowerShellはwineで使い物になる?
詳しい人教えてくれ。
540:名無し~3.EXE
09/07/29 01:05:20 nmGF194p
使用言語はJavascriptで、他のファイルの関数を使うにはどうすればいいでしょうか?
wsfでインクルードするしかないでしょうか
541:名無し~3.EXE
09/07/29 01:12:57 U3tVg9DC
テキストとして読み込んでeval
542:名無し~3.EXE
09/07/29 01:22:33 nmGF194p
ありがとうございます!これでできました。
URLリンク(cwashington.netreach.net)
543:名無し~3.EXE
09/07/31 11:39:46 Gyufjk11
アプリの設定がメニューの深いところにあって、
いちいちメニュー階層を順に開いていくのが面倒なので
SendKeysで自動的にやろうとおもったのですが、
IMEがオンの状態ではメニュー項目がうまく選択できませんでした。
強制的にIMEをオフにしたいのですが、
vbsでIMEの制御は可能でしょうか?
544:名無し~3.EXE
09/07/31 15:34:40 fPLWy6Es
不要
545:名無し~3.EXE
09/07/31 23:54:08 f/yjxAXd
ウィンドウ操作はそれ用のCOMを覚えた方が先々便利
546:名無し~3.EXE
09/08/02 18:03:13 yp9Titym
Sever 2008 x64でオブジェクトが作成できませんと怒られてbasp21が動かない
何か方法はあるんでしょうか?
547:名無し~3.EXE
09/08/02 18:11:53 TBxPfJAM
32bit版のwscript/cscriptで実行する
548:546
09/08/03 07:14:19 rN5JviGQ
>>547
あっさり解決できました
本当にありがとうございました
549:名無し~3.EXE
09/08/03 08:20:08 G3uibfz0
WSH & 周辺環境は、32bit版さえ使えば、この先もしばらく使えそうなのか?
ますますPowerShellを覚える気力がなくなってきた。どうしよう・・・。
550:名無し~3.EXE
09/08/03 08:46:05 d466V8k7
だったら使わなければいいんじゃね?
551:名無し~3.EXE
09/08/03 23:32:17 19p30T4e
だったら覚えなければいいんじゃね?
552:名無し~3.EXE
09/08/04 00:04:23 DXguE6Su
わかりました。しばらくはJScriptで行きます。
Webでもローカルでもマクロでも一番使い勝手がよさそうなんで。
553:名無し~3.EXE
09/08/07 19:33:38 E5uAjbVg
xmlhttp = new ActiveXObject("Msxml2.ServerXMLHTTP");
xmlhttp.setTimeouts(20000, 20000, 20000, 20000);
xmlhttp.Open("GET", "URLリンク(www.google.co.jp)", false);
xmlhttp.Send();
タイムアウト設定が必要なのでServerXMLHTTPを使おうと思ったのですが、
3行目でオブジェクトがプロパティかメソッドに対応していないとエラーがでます。
どこが間違っているのか教えてください
554:名無し~3.EXE
09/08/07 19:43:20 x3CcgWEQ
Openじゃなくてopen
URLリンク(msdn.microsoft.com)
555:名無し~3.EXE
09/08/07 20:10:07 E5uAjbVg
ありがとうございました。ついでに4行目もsendなんですね・・・
556:名無し~3.EXE
09/08/07 21:02:15 uHcZtJ30
vbscriptにしろよ
557:名無し~3.EXE
09/08/10 13:32:44 4SR4aBtB
いまさらVBSCRIPTはねえだろうw
JSCRIPTなら他の言語にもすぐに応用が利くからわからんでもないがw
558:名無し~3.EXE
09/08/10 18:16:35 Qzycj5VH
解ってない奴現るw
559:名無し~3.EXE
09/08/10 18:21:23 1VenD9zg
VBはいまだによく使うよ。
560:名無し~3.EXE
09/08/10 19:21:04 MjZIyAdN
>>559
その書き方だと、VBとVBScriptを混同しているように読めるが……。
561:名無し~3.EXE
09/08/10 19:26:52 1VenD9zg
別に混同しちゃいないけどさ、JSより、
VBの文法はいまだによく使うよってこと。
562:名無し~3.EXE
09/08/10 20:20:50 RqyYDiuX
WebのJSとwshのJSって文法ほぼ一緒だけど
使うオブジェクト違うから書き方変えるしね
だったらVBSで文法レベルから完全に違うほうがわかりやすかったりする
563:名無し~3.EXE
09/08/10 23:11:57 67y+NCjl
別に金が掛かる訳でもなし、適材適所で両方使えばええがな
564:名無し~3.EXE
09/08/11 00:14:32 7Q2C1XtL
EnumeratorだらけならVBSの方が簡潔に書ける。ぐらいしか思い付かない。
565:名無し~3.EXE
09/08/11 00:17:18 ihFQei8Z
たまにby Refの受け取りとかあったりするぐらい。
566:名無し~3.EXE
09/08/11 11:55:36 5VgQAFGn
MsgBox
Inputbox
使えないだろ>JScript
567:名無し~3.EXE
09/08/11 15:01:44 2Se6dKOv
Grepしたらこんなのが出てきた。すっかり忘れていたwww
function input(){
/***** JScript で VBScript の InputBox() 関数を使う関数 *****/
var scVB, VBarg, fvartype, i;VBarg = '';
scVB = new ActiveXObject('ScriptControl');
for (i = 0; i < Math.min(arguments.length, 7); i++){
fvartype = typeof(arguments[i]);
if (i > 0){VBarg += ', ';}
if (fvartype == 'number' || fvartype == 'object' && arguments[i] instanceof Number){
VBarg += arguments[i].toString();
} else if (fvartype != 'undefined'){
VBarg += '\"' + arguments[i].toString().replace(/[\"]/g, '\"\"') + '\"';
} else if (i < 3 || i == 5){
VBarg += '\"\"';
}
}
VBarg = VBarg.replace(/[\r\n]+/g, '\" \& $&\"').replace(/[\r]/g, 'Chr\(13\) \& ').replace(/[\n]/g, 'Chr\(10\) \& ');
scVB.Language = 'VBScript';
return(scVB.Eval('InputBox\(' + VBarg + '\)'));
}
var ret=input("説明文","タイトル","デフォルト100");
WScript.Echo(ret);
568:名無し~3.EXE
09/08/11 15:27:19 tCC4Lofi
そりゃActiveXObject使えばどうにでもなるさ
そんなのは皆知ってるし、ActiveXObject使うなら
わざわざVBSのGUIに拘る必要もないだろw
569:名無し~3.EXE
09/08/11 18:03:52 qMEHxjWM
COMは全て別途DLLが必要とでも思ってるんだろうか。
570:名無し~3.EXE
09/08/11 19:53:02 5VgQAFGn
EXEもあるが?
571:名無し~3.EXE
09/08/11 21:25:54 tCC4Lofi
>>569
なに勘違いしてるの?
572:名無し~3.EXE
09/08/11 21:50:26 5VgQAFGn
ちょっとCOM乱してる?
573:名無し~3.EXE
09/08/11 22:00:53 tCC4Lofi
だれが上手いこと言えとw
574:名無し~3.EXE
09/08/15 07:46:06 avxpvV7T
xmlhttpを使って同じURL(情報に変化有り)をループ処理で取得しようとすると
キャッシュを使ってるみたいで、1回目に取得したもののコピーしか取得出来ないのだけど
そのつど新しいデータを取得するにはどうしたらいいんでしょうか?
575:名無し~3.EXE
09/08/15 08:01:54 9s7XDhMw
HTTPリクエストに(ここではスレ違い)ついて勉強しましょう
576:名無し~3.EXE
09/08/15 10:09:44 avxpvV7T
>>575
送るヘッダなんかもいじってみたけどうまくいかなかったのですが
不可能ってことなんでしょうか?
577:名無し~3.EXE
09/08/15 11:15:57 qvpOcgUD
ブラウザだって[Ctrl]+[F5]で強制再読込できるんだ。出来ないわけ無い。
これ以上は、スレ(板)違い。
578:名無し~3.EXE
09/08/15 12:04:35 avxpvV7T
スクリプトでxmlhttpを使い、同一URLを連続で取得した場合に
データを新たに取得に行かないという問題なのですが・・・
579:名無し~3.EXE
09/08/15 12:38:57 7WPexxIz
xmlhttp キャッシュ でググれ
580:名無し~3.EXE
09/08/15 16:26:37 5dfMd7fo
「スレ違い」「板違い」と指摘されてるのに質問を続ける奴って何なの?
581:名無し~3.EXE
09/08/15 17:41:19 avxpvV7T
>>579
ありがとうございました、出来ました
>>580
上のほうでも同じようにxmlhttpの挙動に対する質問などもありますし
スレ違いだとは思わなかったので続けました
純粋に疑問なのですがどのあたりがスレ違いなんでしょう?
ここがwshのスレならば、範囲内だと思うのですが?
582:名無し~3.EXE
09/08/15 22:23:22 IaztbDhN
xmlhttpの質問をここでするのは、トヨタの車にSonyのカーナビ付けてる状況で
カーナビの操作不良トラブルでトヨタに問い合わせるようなものだ
xmlhttpはwsh用でもなんでもなく、
いろんな言語(車)に使える汎用コンポ(カーナビ)だってことを覚えて置いて
583:名無し~3.EXE
09/08/16 00:51:24 OrGIf2da
過疎ってんだからいいじゃん
無駄に細けーよ
584:名無し~3.EXE
09/08/16 01:44:42 kXw4hMGI
気分いい人を見つけるか、気分良くさせる話術を身に付けろってことさね
585:名無し~3.EXE
09/08/16 07:40:28 y/oOeE3m
むしろそれをスレ違いと言ったらこのスレには何が残るというのか
586:名無し~3.EXE
09/08/16 08:34:22 wWl4IgK0
wshの話題
つーか、そもそもここはそういうスレだろ?
それじゃ話題が少ないとか言う奴も居るかも知れないが、
少ないと何か問題あるのかと問いたいね
2chの鯖(とcgi)が弱かった頃は、話題(書き込み)が少ないと
すぐに圧縮で落とされたから、無理にでも話題作りをしなくちゃならなかったが
そういう問題が無くなった今となっては、無理に話題広げるより、
少ないながらもスレタイに沿った濃密な話題のみの方が断然良いからね
587:名無し~3.EXE
09/08/16 11:11:34 92sq03tG
なんだ、クレクレ厨か
588:名無し~3.EXE
09/08/16 13:22:32 RY/92RaQ
どのオブジェクトからがスレ違いで
何が許容範囲なのか明確に例題を挙げてもらいたいわw
589:名無し~3.EXE
09/08/16 13:34:08 Ep6+8lZw
俺様基準ってことだろ
590:名無し~3.EXE
09/08/16 16:03:44 r1QiDn9d
>>588
オブジェクト単位でどれがいい悪いじゃなく、内容がwsh特有の問題なのかどうかという話だと思うんだけど。
例えば、あるオブジェクトがwshで使ったときのみ違う動作をする、というような話しならこのスレ向き、
というか他所でしても「こっちいけ」って誘導されるような話だと思うし、
そうではなく、どの言語・環境で使っても同じ動作をするものを「こうさせたい」って話しなら
それはそのオブジェクトか、それが対象とする規格の話題を扱うスレのほうが適しているだろうと思う。
591:名無し~3.EXE
09/08/16 16:17:49 92sq03tG
言葉にならない 私の想い けれど いつかあなたに きっと・・・
592:名無し~3.EXE
09/08/16 16:26:31 xjMN8GP2
スレ違いを指摘する奴は移行先を示さない法則
593:名無し~3.EXE
09/08/16 16:35:30 UwvoqxIq
なんでスレ違いの奴に、わざわざこっちが移行先を探してやらなきゃならないんだ?
594:名無し~3.EXE
09/08/16 17:56:05 aQFRMbgr
FileSystemObjectの文字コードはどうやって決まってるの?
外国じゃシフトJISじゃないよね?
595:名無し~3.EXE
09/08/16 19:12:33 Y/yZE8LX
>>594
wikipedia
>マイクロソフト(日本法人)元会長の古川享によると、Shift_JISの制定には、
>アスキー、マイクロソフト(米)、三菱電機、マイクロソフトウェア・アソシエイツ、デジタルリサーチ(米)が関わり、
596:名無し~3.EXE
09/08/16 21:59:49 kXw4hMGI
そんなことはどうでもいいから
Scripting.FileSystemObject なんつう
長くて打つのがめんどいProgIDをどうにかしてくれ
597:名無し~3.EXE
09/08/16 22:03:45 92sq03tG
ひらがな4文字にするべき。
598:名無し~3.EXE
09/08/16 22:04:22 2HQFAnKG
>>596
自分のPC上でなら、設定次第でいくらでも短くできるけど?
というか、初心者はコードの文字数や行数的な短縮に躍起になる次期があるが
コードは読解性や最適化(意味としての短縮)の方が重要だよ
599:名無し~3.EXE
09/08/16 22:07:49 kXw4hMGI
環境依存の少なさも大事
600:名無し~3.EXE
09/08/16 22:13:00 2HQFAnKG
もちろん
だからこそ「自分のPC上でなら」と
その重要な点が犠牲になることを明記した
601:名無し~3.EXE
09/08/16 22:15:29 2Jv4So8E
>>597
すくぷり
602:名無し~3.EXE
09/08/16 22:39:29 gcXO2ZEs
VB2005以降みたいにスニペットでホイホイと行かないのはしょうがない話
603:名無し~3.EXE
09/08/16 22:53:08 jevHYVxW
入力補完機能があるエディタを使えば問題ない。
604:名無し~3.EXE
09/08/17 19:38:25 QtOZzW/u
>>590
じゃぁFileSystemObjectやWScript.Shellなんかもスレ違い?
605:名無し~3.EXE
09/08/18 19:49:10 kMLD2t0b
FileSystemObjectスレやWScript.Shellスレがあるのか?
606:名無し~3.EXE
09/08/18 20:13:47 S2hFvVkz
FileSystemObject を引き合いにだして、ディレクトリ構造とかファイル属性について質問してるようなもんだろ。
それらは、FileSystemObject や xmlhttp の固有の問題じゃない。
FileSystemObject だけでなく コマンドプロンプトやエクスプローラなどファイル管理共通の話題だし、
今回の例だとhttpヘッダの話題で、ブラウザやAjaxを使ったアプリ、telnetでhttpで鯖と対話するときとか、
あとはオミトロンなどでも、利用っつーか知らないと上手く扱えないもんだ。
httpヘッダの解説ページでも見ればすぐに解決するだろうし、さらっと答えても差し支えないけど、
答えたばっかりに、教えて君的にどんどんと質問レスばかりで埋まるようだと
完全にスレ違いになるし、それが嫌なんだろう。
607:名無し~3.EXE
09/08/18 20:16:17 p71GJEvH
大丈夫だよ、埋まるほども人いないから
608:名無し~3.EXE
09/08/18 21:01:59 rhBQ6KVW
というか>>590は一行目でオブジェクトが何かでなく内容の問題だって書いてるのに
それに対してこのオブジェクトはどうですかとレスする>>604が不明。
609:名無し~3.EXE
09/08/19 10:29:33 WGg2VE8w
ま、まさか、オマイらエディタの入力補完機能使わんで、全部手打ちにしてるんか?
そりゃ無茶だw キーボードも早く壊れるし、指も疲れる、可読性も良くない。
入力補完機能は日本語辞書と違って64文字の制限ないから、長い文を登録できるんだぜ。
フリーのメジャーなエディタならたいていは使える機能だわな。
関数やプロトタイプも余裕で登録できるんで、ぜひ使ってやってください。
610:名無し~3.EXE
09/08/19 12:13:40 qMq0YoQ5
全部手打ちだ。
611:名無し~3.EXE
09/08/19 16:28:50 oyXIXNnQ
>>594
Asc/ChrはSetLocaleで変わるがFSOは変わらんね
DLLで固定じゃないか
612:名無し~3.EXE
09/08/19 17:38:16 R8jmqPSw
notepad最高
613:名無し~3.EXE
09/08/24 00:47:36 UhNbx6kV
WSHでスキャナとカメラの中のフォルダって扱えませんか?
614:名無し~3.EXE
09/08/24 08:24:31 jZ03yQcV
無理
そもそもWSH自体には、ローカルであってもファイルやフォルダを操作する機能など無い
615:名無し~3.EXE
09/08/24 18:11:44 1pBOD32x
>>614
?? ファイルフォルダ操作は簡単だろ。スキャナダメはそうなんだけど。
616:横レス
09/08/24 18:39:02 LAYapniR
>>614は「FSOはWSHの一部ではないよ派」だと思われ
617:名無し~3.EXE
09/08/24 19:11:57 R5rjUpeC
wscript.exeにはfsoが内蔵されてるが?
618:名無し~3.EXE
09/08/24 23:02:22 gGokT/cL
wscript.exeにはfsoが内蔵されてないが?
WScript5.6パッケージには、FSOが『同梱』されてはいるが
数種入ってるサンプルCOMのひとつがFSOってだけの話で
別にFSOがWSHという実行ホストと直接関係有るわけではないし
619:名無し~3.EXE
09/08/24 23:19:39 urIpYgAU
MS-Windowsってなんなの?
620:名無し~3.EXE
09/08/25 00:23:25 hoDlDin+
wscript.stdin.readlineとかは内蔵fsoだが?
621:名無し~3.EXE
09/08/25 01:04:38 F2Ajuss/
内蔵fsoってなによ ていうかFSOって何か分かってるか
622:名無し~3.EXE
09/08/25 01:13:22 TXbKnVvq
どうでもいい
623:名無し~3.EXE
09/08/25 03:18:31 hoDlDin+
>>621
>>621
分ってないみたいだから、wscript.exeをobject browserで見てみるとよいよ
624:名無し~3.EXE
09/08/25 06:13:40 O29bAjvd
なんだ、ただ勘違いしてるだけかw
625:名無し~3.EXE
09/08/25 15:11:31 /GJjTGNi
ほれ
Library IHost
Windows Script Host (Ver 5.6)
Class FileSystemObject
IHost のメンバ
626:名無し~3.EXE
09/08/26 05:38:00 B2LpVl9D
┐(゚~゚)┌
627:名無し~3.EXE
09/09/04 17:03:19 jKjPpgpi
>>620
VBSでこんなクラスを作ったとする
Class Hoge
Public fso
Private Sub Class_Initialize
Set fso = CreateObject("Scripting.FileSystemObject")
End Sub
End Class
このHogeクラスはFileSystemObjectを内蔵している?
628:名無し~3.EXE
09/09/04 17:31:08 fqDq7lDU
粘着馬鹿が居る
scrrun.dllを削除して使えるかどうかで判定できるだろ?
629:名無し~3.EXE
09/09/04 18:10:05 jKjPpgpi
>>628
「(null): 指定されたモジュールが見つかりません。」って言われた
たぶんXPのWindows File Protectionが削除されたscrrun.dllを
速攻で復活させてるだけじゃ?
630:名無し~3.EXE
09/09/04 18:23:58 ELlrcgTf
標準でそのオブジェクトが使えるなら、どうでもいい話じゃないのか?
Windowsでしか使えないんだし。
631:名無し~3.EXE
09/09/04 18:45:43 fqDq7lDU
regsvr32 /u scrrun.dll
632:名無し~3.EXE
09/09/04 18:49:46 CBscgCCx
つまりwscript.exeはFileSystemObjectを持ってて実装はscrrun.dllに丸投げ
ただしCOM経由じゃなく直接dllをロードする
てことでいいのか
まあ何でも良いが
633:名無し~3.EXE
09/09/04 19:18:57 fqDq7lDU
なにを根拠に妄想をたくましくしてんだ?ぼけ
634:名無し~3.EXE
09/09/04 19:29:53 CBscgCCx
もちろん629からだが
是非ご高説賜りたいもんだね
635:名無し~3.EXE
09/09/07 09:49:49 niBBT+9B
この雰囲気、好きくない
636:名無し~3.EXE
09/09/09 06:43:01 mKiDYFp0
質問:WSHまたはWindows Scripting Component で任意のインターフェースをImplementsしたクラスを作成する方法はありませんか?
■経緯
Excel VBAで、外部COM DLLを使ってスクリプト作成しているのですが、
これをWSHに移植しようとしています。
しかし、問題は外部COM DLLで定義されているインターフェースのImplementsが必要な事です。
WSHではImplementsは非対応のようなので、困っています。
ググって見たところ、Windows Scripting Component にはImplementsを指定する箇所がありますが、
指定してみても「インターフェイスハンドラを作成できません」というエラーになります。
(hoge.wsc の中に <implements type="dhRichClient3.IFunction" /> <implements type="IFunction" /> のように記述)
どうも、このImplementsに指定できるインターフェースは、ASPとBehaviourというもののみのようです。
(何か勘違いをしている可能性が大ですが…)
任意のインターフェースをImplementsする方法はないでしょうか。
■やろうとしていること
SQLiteを使った、SQL文中でのユーザ定義関数の定義。
外部COM DLLは「dhRichClient3」、インターフェースは「IFunction」
リファレンスマニュアル:URLリンク(www.datenhaus.de)
■ASP,Behaviour以外のインターフェースを実装しようとしている人の質問(回答なし)
URLリンク(www.palm-jp.net)
637:名無し~3.EXE
09/09/10 19:09:44 Rxuv3x7H
XP-SP3ってデフォ5.7なのね
今までI漏れのPCにIE7入れたからかと思ってたわ
つーことはXPSP3-IE6-WSH5.7の環境もあるってことか
638:名無し~3.EXE
09/09/11 00:00:23 jfkxOInx
俺も知らんかった
639:名無し~3.EXE
09/09/11 10:52:35 mRbnvINb
つーか俺が先日買ったばかりのWinXPインストール済マシンが、最初からXPSP3-IE6-WSH5.7だったよ。
640:名無し~3.EXE
09/09/11 12:27:43 SdwA2vDJ
Win7のVerはいくつだろね
641:名無し~3.EXE
09/09/11 14:55:05 XbLP+/qN
InternetExplorer.ApplicationでzipファイルにNavigate2すると
「ファイルのダウンロード」ダイアログが出るのですが、
これを自動で保存する方法はないでしょうか?
642:名無し~3.EXE
09/09/11 14:58:31 cqrP63L1
sendkeys
643:名無し~3.EXE
09/09/11 18:15:43 iWeyg2oG
>>631
オートメーション サーバーはオブジェクトを作成できません。
URLリンク(www.dotup.org)
644:名無し~3.EXE
09/09/11 19:57:50 oH1Rk1Zr
>>640 IE8だから最低でも5.8だろ多分。
IE7だから5.7ってわけでもないんだが。
645:名無し~3.EXE
09/09/11 21:53:14 cqrP63L1
5.7になって何かよかったことがあるのか?
646:名無し~3.EXE
09/09/12 01:16:59 lalkaeIA
細々とでもアップデートしてくれること自体がいいんじゃん
番号だけかもしれんけど
とりあえず捨て去ることはないという証明にはなる
647:名無し~3.EXE
09/09/12 03:33:40 WpoHmTYS
>>640
System32のjscript.dllのプロパティを見ると5.8.7100.0となっている。
Windows 7 RCの64ビット版。
648:名無し~3.EXE
09/09/12 11:50:44 lalkaeIA
>>647
ありがとう
よかった
649:名無し~3.EXE
09/09/12 19:13:12 WNZ2NMuP
cmd.exeはアップデートないけど、ちっともなくならないな
んでも、cmd.exeをアップデートしてほしいな
650:名無し~3.EXE
09/09/12 21:24:04 uHTfzOPd
ちゃんとコマンド増えてるだろ
651:名無し~3.EXE
09/09/12 22:49:33 WNZ2NMuP
なんちゅう内部コマンド?
652:名無し~3.EXE
09/09/12 22:53:14 VYRMYvSC
norip
oshio
komuro
653:名無し~3.EXE
09/09/13 00:31:00 mwzFyCze
dictionary オブジェクトの item に配列を入れた場合、直接値の変更はできないんですか?
Set d = CreateObject("Scripting.Dictionary")
d.Item("hoge") = Array("bing", "bang")
d.Item("hoge")(0) = "ting"
' bing が出力される。
WScript.Echo d.Item("hoge")(0)
654:名無し~3.EXE
09/09/13 00:48:58 GSibjpcz
だな
655:名無し~3.EXE
09/09/13 00:50:35 E0QFUGQF
VBSの配列の代入は値のコピー。
だから、
d.Item("hoge")(0) = "ting"
は
Dim x
x = d.Item("hoge")
x(0) = "ting"
に分割され、このときxへの代入時に配列丸ごとコピーされて
d("hoge")が持ってる配列とxが持ってる配列は別物になる。
めんどくさい仕様だなぁ。
656:名無し~3.EXE
09/09/13 22:57:18 GSibjpcz
だね
657:名無し~3.EXE
09/09/14 14:12:31 ym3DmcgO
で、どうする?
658:名無し~3.EXE
09/09/16 12:46:23 O8adoxSh
そういう質問じゃないので不要
659:名無し~3.EXE
09/09/22 17:47:22 f8eHyCtX
Vista/7でスクリプトが管理者権限で実行されてるかどうかを調べる方法ってある?
660:名無し~3.EXE
09/09/22 23:43:20 ua4fgPA7
>>659
まず管理者権限かどうかを調べるってのはVistaより前でも結構難しいのよ。
そりゃローカルのユーザでログオンしてて自分が管理者かどうかを調べるなら
WMIで簡単だけど、ドメインのユーザだとドメインに聞かないとダメだろ?
だから簡単じゃない。
それにVista/7だと、それ以前にUACが有効になってたりそのUACがデフォルト
より厳しい設定になってる可能性もあるだろ。そうすると、たとえ本当に管理者で
入っていたとしてもスクリプトのチェックが蹴られたり、チェックで通っても
実際にしたい処理のときにUACに蹴られる可能性もある。
だから何をしたいのかをまず絞り込んでから個別に作るべきだな。
661:名無し~3.EXE
09/09/24 22:24:17 xUyLc6Jz
最近のヘイ スクリプティング ガイ!
がPowerShellばっかりな県
662:名無し~3.EXE
09/09/25 00:40:04 rKkYwStT
さすがにネタ切れだろ
663:名無し~3.EXE
09/09/25 17:40:03 04nmuvJP
むしろMS的にPowerShellよりWSHを推してたら驚く
664:名無し~3.EXE
09/09/25 19:19:58 rKkYwStT
その程度のことでは別に驚かないが?
665:名無し~3.EXE
09/09/27 17:59:32 TzLFyzEj
もしPINVOKEのCOMが標準提供されたらWSHの時代だな
666:名無し~3.EXE
09/09/27 18:20:18 kSF/I/Bf
まあ、諦めよう。
667:名無し~3.EXE
09/09/28 10:00:42 kC4ZBQjl
VBS - FSWikiLite
URLリンク(tuka.s12.xrea.com)
668:名無し~3.EXE
09/09/28 10:34:11 kC4ZBQjl
Markopee::Notebook: ドライブレターのないボリュームの容量を取得する
URLリンク(markopee.blogspot.com)
669:名無し~3.EXE
09/09/28 17:06:27 2vo3Sj9E
PINVOKEのCOMをどっとねっとで書いて、WSH実行時に動的コンパイルして
インストールしないで使えばええんじゃね
670:名無し~3.EXE
09/09/29 20:31:00 nRCW7wUP
そこまでするなら素直にPowerShell使ったほうがいいような
671:名無し~3.EXE
09/09/29 20:52:12 2osslqGd
PowerShellのPINVOKEもめんど
672:名無し~3.EXE
09/09/29 21:21:02 BcdCkTRc
PowerShellなんてのも有るんだ。
なんかでこのスレ覗いて、そのままずっと自動レス取得にしといて良かった。
ちょっとtechnet読んでくる。
673:名無し~3.EXE
09/09/29 23:26:16 w+WE5kvG
PowerShellの方はAdd-Typeのお陰で随分楽になった
まあPythonのctypesみたいなのが元からあるのが理想だけど
674:名無し~3.EXE
09/09/30 04:27:48 VE3quA4g
367 :名無し~3.EXE:2008/02/19(火) 21:38:37 ID:qK/Wztn/
おれはこのVBSを作って自作ソフトからファイル渡ししてるけど
DoLoopとかforで回せばいいじゃん、めんどくさがりだなあ
'IrvineQueueFolder.vbs 'キューフォルダを指定してURLやURLリストファイル郡を登録
'IrvineQueueFolder.vbs 引数1 引数2 引数3 ...
'引数は、[キューフォルダ]または[URL]または[URLリストファイル名]で混在可
'キューフォルダは"/"で始まるように絶対指定する
QueueFolder="/Default/dorothy2/Auto" 'キューフォルダの指定(デフォルト)
'
Set Irvine = WScript.CreateObject("Irvine.Api")
Set arg = WScript.Arguments 'コマンドラインの引数郡
For i=0 to arg.Count - 1
If Left(arg(i), 7)="http://" Then 'URL
Url = arg(i)
Irvine.AddQueueItem QueueFolder, Url 'アイテム登録
ElseIf Left(arg(i), 1)="/" Then 'キューフォルダ指定
QueueFolder = arg(i) 'キューフォルダの指定(指定以降はこのフォルダになる)
Else 'URLリストファイル
Set fso = CreateObject("Scripting.FileSystemObject")
FileName = arg(i)
Set TextFile = fso.OpenTextFile(FileName) ' テキストファイルのオープン
Do Until TextFile.AtEndOfStream
Url = TextFile.ReadLine ' 1行読み込み
Irvine.AddQueueItem QueueFolder, Url 'アイテム登録
Loop
End If
Next
Set irvine = Nothing
368 :名無し~3.EXE:2008/02/19(火) 21:40:43 ID:qK/Wztn/
ああスマン、リファラ必要だったか、間違えた
ほんとごめん、無かった事にしてくれw
675:名無し~3.EXE
09/09/30 18:59:30 yNSminJl
IE の clipboard.GetData("text") を使ってるんですけど
クリップボードの中身が文字列でないときにエラーが出るんですけど
これどうして対処したらいいですか?
クリップボードの中身の sDataFormat が何か分かるプロパティとかあるんですか?
それがあればtextであった場合のみ実行できるんですが…。
676:名無し~3.EXE
09/09/30 19:07:10 uvZrgPLl
エラーを握り潰せばいいんじゃね?
677:名無し~3.EXE
09/09/30 19:42:46 yNSminJl
>>676
ありがとう。
エラー処理するのはあまり本位ではないのですが…
try で組もうと思います。
678:名無し~3.EXE
09/09/30 20:48:09 eF+M6xuO
それはあまりにも自分本位じゃまいか
679:名無し~3.EXE
09/11/08 19:21:35 7qQVL7wO
エラーにも言い分があるはず。こっちも心を開かないと
エラーも心を開くはずがない。
680:名無し~3.EXE
09/11/18 10:55:25 +QJ44J2l
CかC++で普通の旧式の非ウィンドウアプリケーション書いて、
データ入力部分だけhtaでGUIもどきのことをしたいと思っています。
質問1、execでstdinとstdoutだけを読み書きして
stderrはコンソールにそのまま出力ということは出来るのでしょうか?
これが出来ると本当に安直なプログラムが書けそうなんですが
質問2、exec のstdoutにデータが来てるかどうか読まずに確かめる方法はあるのでしょうか?
これが出来ないと予期しない出力は結局ファイルで合図しなければならないかと思っています
以上2点、レベルの低い質問かもしれませんが、自分で検索しても出来るかどうかよく分かりませんでした
特に1が出来ないと結局ファイルでやり取りしたほうが今作ろうとしているプログラムは書きやすいかと
思っています
681:名無し~3.EXE
09/11/18 12:30:35 m1LVyF2l
exec "cmd /c hoge 2>con"
682:名無し~3.EXE
09/11/18 12:46:03 +QJ44J2l
>>681
質問1は、できるのですね。やってみました。本当にありがとうございました
質問2は、できるのでしょうか?
683:名無し~3.EXE
09/11/18 14:13:26 m1LVyF2l
パイプはnon blocking readがないので無理
ファイルならatendofstreamで可能
684:名無し~3.EXE
09/11/18 14:38:19 +QJ44J2l
>>683
回答ありがとうございます。
用語がよく分かっていませんが、それで調べてみます。
685:名無し~3.EXE
09/11/21 19:12:00 q2jqgO7W
ノートPCに付いている専用アプリケーションキーを押す都度に
内蔵スピーカーからの出力と、外付けUSBスピーカーからの出力を
交互(トグル)に切り替えるにはどういったスクリプトを書けばよいでしょうか?
出来れば切り替えた際にダイアログを表示して確認出来ると尚良いです。
アプリケーションキーからスクリプトを起動させるところまでは
方法がわかっているのですが、肝心のスクリプトがわかりません。
ぶしつけなお願いとはわかっていますが、どうか宜しくお願いします。
686:名無し~3.EXE
09/11/21 21:20:19 l4Atd+m7
ここ( URLリンク(hp.vector.co.jp) )の SetPlayDevice とかを叩けばいいんじゃない
Vista, 7 じゃ無理みたいだけど。
687:名無し~3.EXE
09/11/21 22:00:31 q2jqgO7W
>>686
ありがとう
それを元に調べてみるとVista、7からはサウンド関係の仕様に
変更があったようで使えないのですね
そうとは知らずにOSを書いてなくてすみませんでした
今のところVista以降に関してMSからも情報提供が乏しいようですね
688:名無し~3.EXE
09/11/22 01:40:11 uq5f84wJ
select caseって数値の比較とか出来ないんでしょうか?
a = 1 のとき a > 0が引っかからないのですが・・・
完全な決めうちしか出来ないって事ですか?
689:名無し~3.EXE
09/11/22 13:32:21 cCLt2wk9
>>688
頭を使え
690:名無し~3.EXE
09/11/22 14:54:21 HA1psbZl
3>a>=1なら b=1にしてSelect bにするとか mod使ってSelect 計算式
にするとかいくらでもやりようがあるだろうに (;一_一)
691:名無し~3.EXE
09/11/22 15:27:40 cCLt2wk9
>>690
頭を使った?
select case true
case a>0
692:名無し~3.EXE
09/11/23 00:08:54 Nzh7T0tA
select caseって、caseって書くくらいだから、決め打ち有りきだと思ってたけど、そう思わない人も居るんだな。
つか、a=1の時、a=1の処理がしたいのかa>0の処理がしたいのかを誰が決めるんだろ?
i7?pen3?
693:名無し~3.EXE
09/11/23 11:22:05 1SNAy8LO
「VBAみたいに『Is > 0』って書ければ良かったのに」って
>>688は言いたいんじゃないの?
694:名無し~3.EXE
09/11/23 19:28:11 8m8LyL5s
a = 1
Select Case a
Case a > 0
MsgBox "引っかからない"
Case Else
End Select
ってことだろ
VBSはIsもToもサポートしてない
695:名無し~3.EXE
09/11/23 19:36:49 8m8LyL5s
Is > 0 だった
696:名無し~3.EXE
09/11/25 14:37:08 vRBOSPMC
エクスプローラの"ファイル名でソート"と同じ規則でソートする方法はありませんか
エクスプローラの表示だと
あ,txt
ア,txt
い,txt
イ,txt
wshでファイルリストを出力すると
あ,txt
い,txt
ア,txt
イ,txt
となってしまいます
697:名無し~3.EXE
09/11/25 14:45:05 QJTE9W/a
URLリンク(scripting.cocolog-nifty.com)
698:名無し~3.EXE
09/11/25 23:51:49 vRBOSPMC
>697にある三番目のスクリプトをJscriptに書き換えたけどうまく動きません。添削をお願いします。
for文のループが実行されません。
FolderName="フルパス";
var fso=new ActiveXObject("Scripting.FileSystemObject");
var ie=GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}");
ie.Navigate(FolderName);
do {WScript.Sleep(100);} while ((ie.Busy) || (ie.ReadyState!=4));
var Folder=ie.Document.Folder;
for (var i=0; i < Folder.Count; i++){
var FolderItem=Folder.Items(i);
if (FolderItem.Type=="ファイル フォルダ"){
if(toLowerCase(fso.GetExtensionName(FolderItem.Path))=="txt"){
WScript.Echo(fso.GetFileName(FolderItem.Path));
}
}
}
//ie.Quit;//エラーが出る
699:名無し~3.EXE
09/11/25 23:59:57 TDrkyoKp
Document.Folderで手に入るのがコレ
URLリンク(msdn.microsoft.com)
Countというプロパティは無い
Itemsメソッドは引数を取らない
700:名無し~3.EXE
09/11/26 00:46:36 O7jscl7L
プロパティとメソッドの区別がついてないんじゃないの?
701:名無し~3.EXE
09/11/26 21:57:55 N/S5kwhR
本質的な違いはない
702:名無し~3.EXE
09/11/27 00:40:22 ZUJwRQCx
//ie.Quit;//エラーが出るだろぼけ
703:名無し~3.EXE
09/11/28 23:53:27 oniuazYX
だまれクズ豚
704:名無し~3.EXE
09/11/29 13:26:33 0uSg2Cxv
VBScriptとJScriptの区別がついてないんじゃないの?
705:名無し~3.EXE
09/11/29 20:55:52 0uSg2Cxv
シンタクス以外に本質的な違いはない
706:名無し~3.EXE
09/11/30 18:37:23 xUEhOJNz
動詞と名詞の区別がついてないんじゃないの?
707:名無し~3.EXE
09/12/01 22:01:40 yDXwDcOy
Cscriptで起動したスクリプトからコンソールアプリケーションを起動した場合に
その標準出力をスクリプトで受け取るような事ってどうやっても無理なんでしょうか?
708:名無し~3.EXE
09/12/01 22:11:59 lsMwusSy
>>707
関係ないけどWindows3.1のころは「ヘルプのヘルプ」ってのがあった。
最近は初心者切捨てでかわいそうだね。
709:名無し~3.EXE
09/12/01 22:12:48 HwFSNddt
どうやってもってなんか極めて困難かであるかのように
WshScriptExec使えばいいっしょ
710:名無し~3.EXE
09/12/01 22:13:19 WdXqZ7eU
>>708
いまだにPC初心者っているんだな。全国民に行き渡ったと思ってたぜ。
711:名無し~3.EXE
09/12/01 23:45:51 bXIPT5f9
誰に教わるでもなくいきなり車ができたり
英語が話せたり
そんなすごい人がいたら教えてください
712:名無し~3.EXE
09/12/02 10:56:22 ZUy7XsN4
単数と複数の区別がついてないんじゃないの?
713:名無し~3.EXE
09/12/03 16:49:20 rN3MSJ1f
hta アプリケーションのウインドウに、ファイルのドラッグドロップって出来ましたっけ?
ドラッグドロップしたファイルのパスをhtaで利用したいんですが。
可能ならどうやってイベントを拾えばいいですか?。
714:名無し~3.EXE
09/12/03 20:44:12 ThJuUPaj
すれっち
スレリンク(tech板)
715:名無し~3.EXE
09/12/05 17:35:36 /VdO4Ha3
XPとWScriptのJscriptで、manifest使ってレジストリ登録なしでAutoItXが使えたんでメモしとく。
まずWScript.ExeとCScript.Exeをコピーして適当なフォルダに入れとく。
AutoItX3.dllも同じところに入れとく。
同じ場所にテキストファイルを3つ作る。
wscript.exe.manifest
cscript.exe.manifest
AutoIt.AutoItX3.manifest
716:名無し~3.EXE
09/12/05 17:36:31 /VdO4Ha3
AutoIt.AutoItX3.manifest の中身
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.1"
processorArchitecture="x86"
name="AutoIt.AutoItX3"
type="win32"
/>
<file name="AutoItX3.dll">
<typelib tlbid="{f8937e53-d444-4e71-9275-35b64210cc3b}" version="1.0" helpdir="" resourceid="0" flags="HASDISKIMAGE" />
<comClass clsid="{1a671297-fa74-4422-80fa-6c5d8ce4de04}" threadingModel="Apartment" tlbid="{f8937e53-d444-4e71-9275-35b64210cc3b}" progid="AutoItX3.Control.1" description="AutoItX3 Class" />
</file>
</assembly>
717:名無し~3.EXE
09/12/05 17:37:29 /VdO4Ha3
wscript.exe.manifest の中身
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.1"
processorArchitecture="x86"
name="AutoIt.wscript.exe"
type="win32"
/>
<description>WScript.exe</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="AutoIt.AutoItX3"
version="1.0.0.1"
processorArchitecture="x86"
/>
</dependentAssembly>
</dependency>
</assembly>
718:名無し~3.EXE
09/12/05 17:38:19 /VdO4Ha3
cscript.exe.manifest の中身
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.1"
processorArchitecture="x86"
name="AutoIt.cscript.exe"
type="win32"
/>
<description>WScript.exe</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="AutoIt.AutoItX3"
version="1.0.0.1"
processorArchitecture="x86"
/>
</dependentAssembly>
</dependency>
</assembly>
719:名無し~3.EXE
09/12/05 17:43:52 /VdO4Ha3
// この test.js をコピーしたWScript.exeにドラッグして実行させると、画面の中央にツールチップが現れるはず。
// スクリプト起動時にこっちのWScript.Exeを選ぶスクリプト書いておけば、ポータブルでもAutoItXの機能が使える。
oAutoIt = new ActiveXObject( "AutoItX3.Control.1" );
oAutoIt.ToolTip("WSH★★★こんばんみ★★★Part7",500,500);
WScript.Echo(100);
oAutoIt.Sleep(3000);
WScript.Echo(200);
720:名無し~3.EXE
09/12/05 18:51:16 /VdO4Ha3
マニュフェストは下のように1つにまとめても動いたわw。分けなくてもよかったようだ。
wscript.exe.manifest の中身
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="wscript.exe" version="1.0.0.0" type="win32" />
<file name="AutoItX3.dll">
<typelib tlbid="{f8937e53-d444-4e71-9275-35b64210cc3b}" version="1.0" helpdir="" resourceid="0" flags="HASDISKIMAGE" />
<comClass clsid="{1a671297-fa74-4422-80fa-6c5d8ce4de04}" threadingModel="Apartment" tlbid="{f8937e53-d444-4e71-9275-35b64210cc3b}" progid="AutoItX3.Control.1" description="AutoItX3 Class" />
</file>
</assembly>
721:名無し~3.EXE
09/12/05 19:26:28 /VdO4Ha3
// sample自動的に隣のマニフェスト付きCscriptExeを使うmanifest.js
var s="cscript.exe.manifest と Cscript.Exe と \n";
s+="AutoItX3.dll が揃ったフォルダに、このスクリプトを置いておく。\n";
s+=" もしAutoItX3が登録されていればシステムの Cscript.Exe を使ったまま処理は続行する。\n";
s+=" 無ければ、このスクリプトは一旦終了し、\n";
s+="隣にある Cscript.Exe を使って起動する。引数も引き継ぐ。";
new ActiveXObject("WScript.Shell").Popup(s,0,'test',0);
var sArg='';for(var iii=0;iii<WScript.Arguments.length;iii++){sArg+=" "+"\""+WScript.Arguments(iii)+"\"";};;;
try{oAutoIt = new ActiveXObject( "AutoItX3.Control.1" );}catch(e){
new ActiveXObject('WScript.Shell').Run(new ActiveXObject('Scripting.FileSystemObject').GetParentFolderName(WScript.ScriptFullName)
+ "\\" + 'cscript.exe //E:Jscript //nologo ' + "\"" + WSH.ScriptFullName + "\"" + ' ' + sArg,1,0);;;
WScript.Quit();};
oAutoIt.ToolTip("WSH★★★こんばんみ★★★Part7",500,500);
var n=3000;
WScript.Echo("AutoItXのSleepを使ってみる " + n + " ミリ秒");
oAutoIt.Sleep(n);
WScript.Echo(3000);
oAutoIt.Sleep(3000);
722:名無し~3.EXE
09/12/05 23:46:56 /VdO4Ha3
とりあえず、ポータブルのJScriptでもAutoItXでアプリ制御、SeraphyScriptDialogでGUIフォーム、SFCminiでWin32API、いくつかは動いたんで最後のまとめ。 cscript.exe.manifest の中身。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="cscript.exe" version="1.0.0.0" type="win32" />
<file name="scrdlg.dll">
<comClass clsid="{86893BFE-A779-4685-8FC9-D63C8827C4C9}" threadingModel="Apartment" tlbid="{86893BFE-A779-4685-8FC9-D63C8827C4C9}" progid="SeraphyScriptDialog" description="scrdlg Class" />
</file>
<file name="AutoItX3.dll">
<typelib tlbid="{f8937e53-d444-4e71-9275-35b64210cc3b}" version="1.0" helpdir="" />
<comClass clsid="{1a671297-fa74-4422-80fa-6c5d8ce4de04}" threadingModel="Apartment" tlbid="{f8937e53-d444-4e71-9275-35b64210cc3b}" progid="AutoItX3.Control.1" description="AutoItX3 Class" />
</file>
723:名無し~3.EXE
09/12/05 23:48:35 /VdO4Ha3
つづき、AMD は sfcminii.dll を sfcminia.dll に変える。
<file name="sfcminii.dll">
<comClass clsid="{1303599D-3028-4EAC-97BB-D9370B88B2DA}" threadingModel="Apartment" tlbid="{1303599D-3028-4EAC-97BB-D9370B88B2DA}" progid="SfcMini.DynaCall" description="sfcminii Class" />
<comClass clsid="{F5B4E399-F606-41FC-B049-D247156F8F3E}" threadingModel="Apartment" tlbid="{F5B4E399-F606-41FC-B049-D247156F8F3E}" progid="SfcMini.Structure" description="sfcminii Class" />
<comClass clsid="{4D2C1575-A55B-418F-A25C-ECEB45FC5FD2}" threadingModel="Apartment" tlbid="{4D2C1575-A55B-418F-A25C-ECEB45FC5FD2}" progid="SfcMini.MachineCode" description="sfcminii Class" />
<comClass clsid="{DC430254-87C0-4800-8C45-8B0C2BED1A53}" threadingModel="Apartment" tlbid="{DC430254-87C0-4800-8C45-8B0C2BED1A53}" progid="SfcMini.ClassEx" description="sfcminii Class" />
<comClass clsid="{6F5E1721-E8A4-48BB-B29F-A549EDA82CC7}" threadingModel="Apartment" tlbid="{6F5E1721-E8A4-48BB-B29F-A549EDA82CC7}" progid="SfcMini.tools" description="sfcminii Class" />
</file>
</assembly>
724:名無し~3.EXE
09/12/07 00:20:21 nBnCs4W2
//やべえ。銚子に乗って書いたが、設定がうまく遺憾人は無限ループになる可能性がある。
//1回で打ち切りにするテスト用スクリプトをカキコ。スマン。
// sample自動的に隣のマニフェスト付きCscriptExeを使うmanifest無限ループ回避.js
var s="cscript.exe.manifest と Cscript.Exe と \n";
s+="AutoItX3.dll が揃ったフォルダに、このスクリプトを置いておく。\n";
s+=" もしAutoItX3が登録されていればシステムの Cscript.Exe を使ったまま処理は続行する。\n";
s+=" 無ければ、このスクリプトは一旦終了し、\n";
s+="隣にある Cscript.Exe を使って起動する。引数も引き継ぐ。";
var objshl=new ActiveXObject('WScript.Shell');
if(objshl.Environment('process').item('senvstopscript')!=1){
try{oAutoIt = new ActiveXObject( 'AutoItX3.Control.1' );}catch(e){
objshl.Popup("この後RUNする\n\n"+s,0,'test',0);
var sArg='';for(var iii=0;iii<WScript.Arguments.length;iii++){sArg+=" "+"\""+WScript.Arguments(iii)+"\"";};;;
objshl.Environment('process').item('senvstopscript')=1;
objshl.Run(new ActiveXObject('Scripting.FileSystemObject').GetParentFolderName(WScript.ScriptFullName)+ "\\" + 'cscript.exe //E:Jscript //nologo ' + "\"" + WSH.ScriptFullName + "\"" + ' ' + sArg,1,0);;;
WScript.Quit();};
};
WScript.Echo(s,0,'test',0);
WScript.Sleep(2000);
oAutoIt = new ActiveXObject( 'AutoItX3.Control.1' );
var n=3000;
oAutoIt.ToolTip("AutoItXのSleepを使ってみる " + n + " ミリ秒",500,500);
oAutoIt.Sleep(n);
725:名無し~3.EXE
09/12/07 01:28:35 WsLj3zGr
ウチでも動いた。
また入れなおしたけど。
726:名無し~3.EXE
09/12/09 15:51:14 LISCbfE6
面白そうだからPortableSleipnir、LunaPocketでも試したがmanifestでは駄目だった。
でPortableSleipnirでScriptのほうに手を加えて、
起動するときにmanifest付きのwscript.exeから
起動しなおすようにしたらSleipnirやAutoItXのオブジェクトも使えた。
もちPortableはsleipnirからxmlをコピーしてメニューにスクリプトが出るようにしてからだがな。
727:名無し~3.EXE
09/12/09 15:54:58 LISCbfE6
// pWScriptExeでパスを決める。
// もしくはbinフォルダにマニフェストとDLL、exeを入れる。
objfso=new ActiveXObject("Scripting.FileSystemObject");
objshl=new ActiveXObject("WScript.Shell");
pnir = new ActiveXObject("Sleipnir.API");
if(objshl.Environment("process").item("senvstopscript")!=1){
//wscript.exeのパスを決め内する場合
pWScriptExe="U:\\wscript.exe";
//もしbinフォルダにwscript.exeがあればそれを使う。
if(objfso.FileExists(pnir.AppPath + "wscript.exe")){
pWScriptExe=pnir.AppPath + "wscript.exe";
};
objshl.Environment("process").item("senvstopscript")=1;
objshl.Run("\"" + pWScriptExe + "\"" + " //E:Jscript //nologo " + "\"" + WSH.ScriptFullName + "\"" ,1,0);;;
WScript.Quit();
}
str = pnir.AddressBarString;
str+="\n"+pnir.AppPath;
WScript.Echo(str);
WScript.Echo("test");
WScript.Sleep(2000);
oAutoIt = new ActiveXObject( "AutoItX3.Control.1" );
var n=3000;
oAutoIt.ToolTip("AutoItXのSleepを使ってみる " + n + " ミリ秒",500,500);
oAutoIt.Sleep(n);
728:名無し~3.EXE
09/12/09 19:38:19 vX1/pBxQ
Luna4Pocket、 PortableSleipnir、 どっちでも外部のDLLは使える。
Luna.exeと同じ場所に、wscript.exe、 wscript.exe.manifest、 AutoItX3.dll、 etc dll を
置いておけばこっちの wscript.exe を優先するんで Dll も動く。
729:名無し~3.EXE
09/12/09 22:39:03 Yhsi9HCt
いつの間にかJScriptのファイルのアイコンが白地に箱のアイコン
になってたんですが、デフォルトの黄色のパンチカード?のアイコンに戻し
たいです
どうしたらいいですか?
プロパティの関連付けを確認すると「Console Based Script Host」に
なってるんで関連付けは間違っていないと思います。
730:名無し~3.EXE
09/12/09 22:53:17 5hilr/mv
普通Console Based(cscript.exe)じゃなくてWindows Based(wscript.exe)に関連づけられてるはずだが?
731:名無し~3.EXE
09/12/10 13:50:34 Mq0kj3tj
regsvr32 wshext.dll
732:名無し~3.EXE
09/12/11 19:38:39 sMPK5/7s
どうでもいいが、むだ口さんの掲示板が宣伝ばっかりだ。
733:名無し~3.EXE
09/12/12 19:42:43 ZndgYDwX
生活かかってんだろ?買ってやれよ
734:名無し~3.EXE
09/12/15 00:57:14 XWk31MKA
wscript.exe.manifest basp21.dll capicom.dllの一部が動きました。全部試してません。
ポータブル環境やエディタでの暗号処理も簡単そうです。
URLリンク(www.microsoft.com)
msi を解凍すればcapicom.dll が入手できます。
msiexec /a capicom_dc_sdk.msi targetdir="z:\hogehoge" /qn
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="wscript.exe" version="1.0.0.0" type="win32" />
<file name="capicom.dll">
<typelib tlbid="{BD26B198-EE42-4725-9B23-AFA912434229}" version="1.0" helpdir="" />
<comClass clsid="{A440BD76-CFE1-4D46-AB1F-15F238437A3D}" threadingModel="Apartment" tlbid="{BD26B198-EE42-4725-9B23-AFA912434229}" progid="CAPICOM.EncryptedData.1" description="CAPICOM.EncryptedData Class" />
</file>
<file name="Basp21.dll">
<typelib tlbid="{607E85A1-3B9C-11D1-863C-00000E4E0AD6}" version="1.0" helpdir="" />
<comClass clsid="{5A99A823-3B97-11D1-863C-00000E4E0AD6}" threadingModel="Apartment" tlbid="{607E85A1-3B9C-11D1-863C-00000E4E0AD6}" progid="Basp21.1" description="Basp21 Class" />
</file>
735:名無し~3.EXE
09/12/15 01:10:52 XWk31MKA
objBasp=new ActiveXObject('basp21.1');
sOriginal='basp21.1こんばんは';
sEnc = objBasp.Base64(sOriginal,0);
sDec = objBasp.Base64(sEnc,1);
WScript.Echo(sOriginal +"\n"+ sEnc +"\n"+ sDec);
sOriginal = 'CAPICOM.EncryptedData.1こんばんは';
sKey='Password';
objCapicom = new ActiveXObject('CAPICOM.EncryptedData.1');
objCapicom.SetSecret(sKey);
objCapicom.Content = sOriginal;
sEnc = objCapicom.Encrypt().replace(/\s$/,'');
objCapicom.Decrypt(sEnc);
sDec = objCapicom.Content;
WScript.Echo(sOriginal + "\n" + sKey +"\n" + sEnc + "\n" + sDec);
736:名無し~3.EXE
09/12/16 10:27:34 BQc3xGqm
すみません。教えてください。
>cscript.exe hoge.vbs
としてvbsを実行した場合、hoge.vbsで実行時エラーが発生した場合に
cscript.exeが終了コード0以外を返すようにするには
どうしたらよいでしょうか?
よろしくお願いいたします。
737:名無し~3.EXE
09/12/16 12:02:16 0CWXvG5X
WScript.Quit 1
738:名無し~3.EXE
09/12/16 12:35:25 BQc3xGqm
>>737
ありがとうございます。
やはりvbs側の修正が必要なんですね。
739:名無し~3.EXE
09/12/18 00:03:33 hmFH5f4H
on error ?
740:名無し~3.EXE
09/12/18 07:19:38 5pMA288l
こんにちは
テキストファイルから文字列の抽出をしたくて、できる方法を探してます。
やりたいのは
1.アプリケーションA.exeを終了させる
2.B.txtの「通信」という語句がある行の、""に囲まれた文字列を
抽出し、C.txtの末尾に追加する
3.B.txtの内容を全消去し保存する
4.10秒後にA.exeを再起動する
という作業です。これをWSHでやることは可能でしょうか?
宜しかったら、どういうコマンドを使えばできるかざっとでも教えて頂けないでしょうか?
741:名無し~3.EXE
09/12/18 07:28:48 kF8+V9so
まず服を脱ぎます
742:名無し~3.EXE
09/12/18 07:30:33 Dsca2BJb
次に綿棒を用意します
743:740
09/12/18 11:20:12 5pMA288l
Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile("A.log")
Set B = fs.OpenTextFile("B.lst", 8, False)
Do Until f.AtEndOfStream
l = f.ReadLine
If InStr(l, "達成") <> 0 then ret = ret & l & vbCrLf
Loop
f.Close
B.Write ret
B.Close
とりあえず、行を抽出することはできたんだけど、行の中の""に囲まれた部分
だけを抽出するにはどうしたらいい?
∧__∧
(´・ω・` )
(⊃⌒*⌒⊂)
/__ノωヽ__)
744:740
09/12/18 12:32:41 5pMA288l
Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set Service = Locator.ConnectServer
Set oProcs = Service.ExecQuery _
("Select * From Win32_Process Where Description=""A.exe""")
For Each oProc In oProcs
oProc.Terminate
Next
Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile("B.txt")
Set B = fs.OpenTextFile("C.txt", 8, False)
Do Until f.AtEndOfStream
l = f.ReadLine
If InStr(l, "通信") <> 0 then ret = ret & l & vbCrLf
Loop
f.Close
B.Write ret
B.Close
fs.DeleteFile "B.txt"
fs.CreateTextFile "B.txt"
WScript.Sleep 10000
Set shell = WScript.CreateObject("WScript.Shell")
shell.Run "A.exe", 3, true
いろいろつぎはぎしてここまでできたんですが、""の中だけを抽出する方法が分からない...
テキストの内容のクリアの方法も分からなかったので消去+新規作成で代用しました(;^ω^)
""の中だけの抽出はどうやったらいいでしょう?
745:740
09/12/18 15:18:42 5pMA288l
と、思ってたら、できちゃった。。。。
言われたのは「服を脱いで綿棒用意しろ」とだけか。。。。ほんと有益なスレだtったぜwwww
746:名無し~3.EXE
09/12/18 15:42:26 HOC6ISom
用意したんだろ?( ´∀`)σ)Д`)
747:名無し~3.EXE
09/12/18 16:57:51 TYK9wCb8
>>1
はい、使ってます。
748:740
09/12/18 17:48:38 5pMA288l
作ったvbsファイルを直接クリックすると実行できるんですが、
「ファイル名を指定して実行」から、wscript.exe "パス\ファイル名.vbs"
で実行すると、「行17 ファイルが見つかりません 実行時エラー」とかいうのが出てきます。
なんで????(´・ω・`)
749:名無し~3.EXE
09/12/18 18:33:21 JaPpW35G
>>748
カレントディレクトリ
750:740
09/12/19 03:55:38 bRRSIC4A
なるほど~。やっとできたよ~∩(^ω^)∩バンジャーイ
751:名無し~3.EXE
09/12/22 19:28:26 BZ2YAM4c
ファイルを削除したいのに、たまーに「ファイルが見つかりません」とか出る...
ファイルがあるのに「ない」とか出るのは何故なのかな(#^ω^)ピキピキ ...
752:名無し~3.EXE
09/12/22 19:51:16 OXMFkspi
パスが違う・カレントディレクトリが違う
753:名無し~3.EXE
09/12/22 20:13:09 qKuvUzNL
If fso.FileExist(file) Then fso.DeleteFile file
754:名無し~3.EXE
09/12/22 20:28:03 6G2Mlzun
こういう奴がスクリプトでファイル削除して惨事を招くんだろうな。
755:名無し~3.EXE
09/12/22 22:36:45 BZ2YAM4c
WSHの実行履歴ってどっかで見れないかな...
なにやら3つぐらい同時に実行されてるぽい。二重起動防止が役にたってなひよ(-_-) …
756:名無し~3.EXE
09/12/22 22:42:36 qKuvUzNL
wscript.shell logevent
757:名無し~3.EXE
09/12/22 23:28:39 BZ2YAM4c
ありがとん。wshっていろいろできるんだねえ。おもしろくなってきたよ
758:名無し~3.EXE
09/12/23 00:53:33 9A0fdYTt
これ絶対おっさんだよな。
なのに平日(12/18)一日中 2ch してるとか、変な顔文字とか・・・・
759:名無し~3.EXE
09/12/23 03:20:36 +DPP5Qk7
役に立たないくせにつまんない突っ込みばっかりするのなオマエwwwwwwwwwwwwwwww( ゜д゜)、ペッ
760:名無し~3.EXE
09/12/23 08:20:58 OOKcm36S
ニートのキモッサンきめえw
761:名無し~3.EXE
09/12/23 09:12:01 PXJi6MOV
>>759
レベル低すぎ
ここはググって出てくるような事を書き込むスレじゃないんで、お引取りください
762:名無し~3.EXE
09/12/23 15:19:38 HBBFKBYL
>>761
では、レベルの高い話をハイどうぞ↓
763:名無し~3.EXE
09/12/24 14:14:07 i6+2D8Nd
DOSの業務用ソフトをWSHで動かすことはできますか?
764:名無し~3.EXE
09/12/24 14:26:52 6hCJv+1N
バッチファイルの代わりにはなるだろうけど、それ以上は期待するだけ無駄
765:名無し~3.EXE
09/12/24 20:21:32 Q7u0QeqE
WSHからアプリをIntegrity Level Lowで動かすことはできますか?
766:名無し~3.EXE
09/12/24 22:17:35 bSJyJDZo
>>765
プロセスの優先度のことならstart /lowでいいだろ。
WSHでもできないことはないけどWin2000じゃ使えない。
767:名無し~3.EXE
09/12/25 01:13:25 9mIsp81e
>>765
気になったので、ググってみた。何とかなりそうだ。
URLリンク(scripting.cocolog-nifty.com)
768:名無し~3.EXE
09/12/27 23:24:47 j8YGjmed
テキストファイルの最後の2行を読み込みたい場合に
どういうふうに処理するのがスマートんなんでしょうか?
ReadLineで始めの行から
常に二行分を変数に避難させながら最後の行まで読み込む
一度に全部読んでからSplitで分割
最初に一度すべてを読み込んで行数を調べてから
ReadLineで最後の2行まで読み飛ばして取得
と、考えてみたのですがどれもなんか無駄な動きがあるような気がして
769:名無し~3.EXE
09/12/27 23:35:30 Szvprv8w
悩んでる時間とスクリプトの処理時間を天秤にかけて見るといいんじゃないだろうか。
770:名無し~3.EXE
09/12/27 23:40:04 mNLBddrF
現在行の内容を格納する変数(X)と、1個前の行の内容を格納する変数(Y)を用意。
Xの内容をYにコピーしてから新しい行を読む。
771:名無し~3.EXE
09/12/28 00:06:10 r7K75E4h
>>769
実際にはもう問題なく動くスクリプトは作れているんだけど
ふと、使い慣れてる人はもっといい方法とか
細かい処理速度やメモリの使い方?とかの違いとかその辺も考えて
どういう方法が一番いいかとか知ってるんじゃないかな、と思って
>>770
今はちょうどその方法でやってるんですが
最後の2行だけほしいのに、テキストの先頭からずっとその作業をやるのは
最善の方法なのだろうか?と不安になってしまって
772:名無し~3.EXE
09/12/28 00:17:00 0M12J26z
全然試しもしないで想像だけで書いてるけど
同じテキストファイルを2つのオブジェクトとして開いて
片方を一回だけSkipLineで先行させてからループで先行してる方のAtEndOfLineがtrueになるまで
SkipLineで飛ばすとか。
773:名無し~3.EXE
09/12/28 00:19:26 KqC6OI6J
実行行数が少ないほうが速いよ。
774:名無し~3.EXE
09/12/28 00:43:14 5FOgda0r
ファイルが巨大じゃなきゃ全部読み込んで、
Ar=s.split("\n"); で改行で分割して、
でAr.length>=2で2行以上の場合と、
そうでない場合で処理を分けるのが簡単だと思った。
最後の行とそのまえってAr[Ar.length-1]とAr[Ar.length-2]だし。
775:名無し~3.EXE
09/12/28 01:01:40 duOTUlKt
>>771
FileSystemObject (テキスト ファイルの操作に使用するスクリプティング オブジェクト) が、前方という、1 つの方向だけを認識している点です。
ファイルの先頭から開始して、ファイルの最後に向かって進む必要があります。
別の開始場所を指定することも、最後から先頭に向かって後方から読み取ることもできません。
URLリンク(www.microsoft.com)
最終行だけ欲しいのに先頭から検索って無駄じゃねっていう意見に、一万行有ったってすぐに終わるって返しのあるページがあったはずだけど見つからなかった
776:名無し~3.EXE
09/12/28 01:09:10 Z+1i2G4O
アルゴリズム的にスマートに書きたいという欲求もあるもんだ
仕事でなければそれを追求するのもいい勉強になるしさ
時間的制約を考えれば769のいうことも一理あるというところだね
777:名無し~3.EXE
09/12/28 01:21:45 0M12J26z
バイト単位で読む場所わかってりゃadodb.streamとかでもいいんだろうけど
778:名無し~3.EXE
09/12/28 01:51:45 TV4cU58X
処理するデータが何十万件もあったらかなり違うけどな
少なくとも常にアルゴリズムを意識してるやつとそうでないやつでは
数年で大きな差がつくよ
779:768
09/12/28 03:33:13 r7K75E4h
とりあえず単純に速度的な比較をしてみようと
300万行のテキストで試してみたところ自分のマシンでは
>>770さんの方法で 35秒前後
>>772さんの方法で 45秒前後
1度SkipLineで行数を調べてからもう一度開き最後の2行だけ取得で 55秒前後
>>774さんの方法は、やはり大きなファイルには向いていないようで
10分以上たっても処理が終了する気配がありませんでした
>>775
そういうものなんですね
速度的にも普通に読み込むのが一番早いようだし
公式にここまではっきり書いてあると、この方法でいいのだと安心出来ました
どうもありがとうございました
780:名無し~3.EXE
09/12/28 04:50:11 PyWDz6+t
300万行とか膨大な桁を前提にするなら、もっと効率的な方法はあると思うけどね。
781:名無し~3.EXE
09/12/28 06:35:12 B5iJEHMd
たとえば?
782:名無し~3.EXE
09/12/28 10:49:07 2hmBKvKS
tailコマンドをwshで叩く
783:名無し~3.EXE
09/12/28 12:01:36 FVimMGRy
300万行試してみた。1行は小さめ。
>>770で10秒くらい。
ADODB.Streamでファイルの最後から1文字ずつ読んで、
2行確保したら終わり、だと一瞬だった。
784:名無し~3.EXE
09/12/28 12:10:56 rMWa9Z10
tailでも0.2秒だったわ。>>783 おおざっぱでいいからサンプルで教えてくれ。
objexec = objshl.Exec("\"" + objfso.GetParentFolderName(WSH.ScriptFullname)+"\\tail.exe" + "\"" + " -2 \"" + filetxt +"\"");
do{WScript.Sleep(100);}while(objexec.Status==0);sret=objexec.stdout.ReadAll();WScript.Echo(sret);
785:名無し~3.EXE
09/12/28 18:00:41 FVimMGRy
var start = new Date().getTime();
var filename = 'list.txt';
var Stream = WScript.CreateObject('ADODB.Stream');
var c, text = '', lf = 0;
Stream.Type = 2;
Stream.Charset = 'Shift_JIS';
Stream.Open();
Stream.LoadFromFile(filename);
var i = Stream.Size - 1;
read : for ( ; i != -1; i-- ) {
Stream.Position = i;
c = Stream.ReadText(1);
if ( c == '\r' ) continue;
if ( c == '\n' ) {
switch ( lf ) {
case 0 : break;
case 1 : last1 = text; text = ''; break;
case 2 : last2 = text; break read;
}
lf++;
} else {
text = c + text;
}
}
Stream.Close();
WScript.Echo(new Date().getTime() - start + 'ミリ秒');
WScript.Echo(last2);
WScript.Echo(last1);
786:名無し~3.EXE
09/12/28 18:06:17 FVimMGRy
改行を色々対応させると更にめんどいね。
普通に1行ずつ読んで負担にならない程度のファイルサイズなら、
保守性とかでそっちのがいいよ。
787:名無し~3.EXE
09/12/28 18:58:36 rMWa9Z10
こりゃ早いわ。 これくらい早いと
後ろから大雑把に500バイト読み込んで
適当な処理してもいいかもしんないね。
非常に参考になった。ありがと。
var i = Stream.Size - 500;
Stream.Position = i;
sAr=Stream.ReadText(500).split("\n");
Stream.Close();
WScript.Echo("-2 = " + sAr[sAr.length-3] +"\n" + "-1 = " + sAr[sAr.length-2] +"\n" + " 0 = " + sAr[sAr.length-1] +"\n" + (new Date().getTime() - start) + 'ミリ秒');
788:名無し~3.EXE
10/01/01 16:46:22 6ywjnZF6
実行一つでマルチスレッドで通信したい。
xmlhttp.open("POST", "~~", false); で第3引数をfalseにすると
xmlhttp.onreadystatechangeで受けるときもあるが、受けないときもあって終了してしまう。
第3引数をtrueにすると非同期になるらいしけど、
xmlhttp.onreadystatechangeで受ける前に処理が終わって終了してしまう。
どうしたらいいんだろう。WSHでtrueにする使い方ってもしかして使えない?
789:名無し~3.EXE
10/01/01 18:43:45 NNSFaVEC
WSHでマルチスレッドはちょっと難しいんじゃないすか?
スクリプトを同時に複数起動する(マルチプロセス)なんて
のは何ともないけど、1つのプロセスでスレッドを複数
立ち上げたいならPerlの方がいいと思いますけど。
790:名無し~3.EXE
10/01/01 19:55:56 uK4WgJZ0
wsh で使えるかどうかは知らないけど、 マルチスレッドライブラリ Concurrent.Thread とか。
791:名無し~3.EXE
10/01/01 20:46:14 U1BEAdsB
マルチスレッドが必要?
792:名無し~3.EXE
10/01/02 01:36:42 ao/59EuU
そうだな、我慢するか。ありがと
793:名無し~3.EXE
10/01/07 01:18:14 GcxiHLHM
>788
MSDNによると「WScript.Sleepで止めといて、WScript.Quitで抜ければOK」
URLリンク(msdn.microsoft.com)
794:名無し~3.EXE
10/01/07 13:27:44 VssB+QEa
>>788
XHRに限れば
通信完了後にコールバック関数が呼ばれるようにして
通信中にごにょごにょはできるけど、
その落としたデータを処理したいなら
結局は通信完了後じゃないと触れない
マルチスレッド以前の話だと思うが
795:名無し~3.EXE
10/01/12 18:26:19 Dwa4qtcE
echoやpopupでは一つのウィンドウに一つのテキストしか表示できないけれど
一つのウィンドウを使って刻々とテキストを更新して表示する方法はないですか
796:名無し~3.EXE
10/01/12 18:51:57 3thoTjT8
msagent
ie
hta
inputboxに貼り付け
powershell
797:名無し~3.EXE
10/01/12 21:08:01 6y7tc9j+
コマンドプロンプト(cscript)で動かす
798:名無し~3.EXE
10/01/12 21:14:39 BzW3pbKY
自分は拡張子jse、vbeをCscriptで動かすようにしちゃったよ。暗号化なんて使わないし。
799:名無し~3.EXE
10/01/12 22:04:14 HEnaLojO
ウィンドウ操作系のCOM使えば既存ウインドウのテキスト変更はできるから、
うまく組み合わせればどうにかなるんじゃね。
800:名無し~3.EXE
10/01/13 02:12:06 3721OXm1
HTAがいちばんかんたん
801:名無し~3.EXE
10/01/15 19:41:04 TCjMpnYM
ieのstatustextがいちばんかんたん
802:名無し~3.EXE
10/01/17 10:04:44 Ix5w7yDX
URLリンク(rocketeer.dip.jp)
↑ここにあったスクリプトなんですが、次のように改変して使いたいのですが動きません
どこに何が足りないのか、どなたかご教授くださいませ
(※ターゲットファイルはUTF-8なのでそのままで保存したいです)
803:名無し~3.EXE
10/01/17 10:05:26 Ix5w7yDX
Dim FI
Dim FO
Dim Obj
Dim beforeStr
Dim afterStr
Dim FileName
Dim R
FileName = "C:\Windows\system.ini"
beforeStr = "MailBox"
afterStr = "MailBox=d:\mailbox"
Set Obj = CreateObject("Scripting.FileSystemObject")
Set FI = Obj.OpenTextFile(FileName,1,0)
Set FO = Obj.OpenTextFile(FileName & ".bak",2,True,0)
While Not FI.AtEndOfStream = True
R = FI.ReadLine
If Left(R,Len(beforeStr)) = beforeStr Then
R = afterStr
End If
FO.WriteLine (R)
Wend
FI.Close
FO.Close
Obj.DeleteFile FileName
Obj.MoveFile FileName & ".bak",FileName
Set Obj = Nothing
Set FI = Nothing
Set FO = Nothing
Set Param = Nothing
WScript.Quit
よろしくおねがいします
804:名無し~3.EXE
10/01/17 13:11:12 sXZj+Qn6
'FileSystemObjectではUTF-8の読み書き出来ない。ADODBを使う。
'置換は正規表現でやった方が楽。
'C:\Windows\system.iniを読み込んで全置換してout.txtに書き出す例
Dim inStream, outStream
Dim regEx, Match, Matches, rep
Set inStream = CreateObject("ADODB.Stream")
Set outStream = CreateObject("ADODB.Stream")
Set regEx = New RegExp
regEx.Pattern = "\r\nMailBox"
regEx.Global = True
regEx.IgnoreCase = False
inStream.Open
inStream.Charset = "UTF-8"
inStream.LoadFromFile "C:\Windows\system.ini"
outStream.Open
outStream.Charset = "UTF-8"
str = inStream.ReadText(-1)
rep = regEx.Replace(str,vbCrLf & "MailBox=d:\mailbox")
outStream.WriteText rep
inStream.Close
outStream.SaveToFile "out.txt", 2
outStream.Close
805:名無し~3.EXE
10/01/17 13:20:08 sXZj+Qn6
さっきのじゃファイル先頭は置換されなかったわ。
> regEx.Pattern = "\r\nMailBox"
regEx.Pattern = "(^|\r\n)MailBox"
> rep = regEx.Replace(str,vbCrLf & "MailBox=d:\mailbox")
rep = regEx.Replace(str,"$1MailBox=d:\mailbox")
806:名無し~3.EXE
10/01/17 13:35:24 a2aY4UhM
> FileName = "C:\Windows\system.ini"
> Set FO = Obj.OpenTextFile(FileName & ".bak",2,True,0)
> Obj.DeleteFile FileName
> Obj.MoveFile FileName & ".bak",FileName
この辺Vista以降ならただの管理者じゃ動かないぞ
807:名無し~3.EXE
10/01/17 22:34:26 Qq5UNecS
>>804
早速のご教授ありがとうございます。ぶしつけながらもうひとつ質問があるのですが、、、
置換したい文字列はMailbox→Mailbox=d:\mailboxだけでなく
"Dustbox"→"Dustbox=e:\dustbox"もあるとしたらどうでしょうか?
3行目から最後尾までコピーしてつなげるのでは二つ目の処理がされませんでした
Mailbox用、Dustbox用と二つ用意してやるところを一枚のVBSファイルで行いたいのです
重ね重ねで恐縮ですがよろしくおねがいします
808:名無し~3.EXE
10/01/17 22:38:34 sXZj+Qn6
宿題丸投げ?
ヘルプのRegExpオブジェクトの所位見ろよ…
ぶっちゃけ書き加えるのは2行位だよ。
809:名無し~3.EXE
10/01/17 23:30:26 Qq5UNecS
>>808
お叱りごもっともです、今Googleで調べてるところです
Set regEx2 = New RegExp
regEx2.Pattern = "Dustbox"
rep2 = regEx2.Replace(str,"$1Dustbox=e:\dustbox")
outStream.WriteText rep2
↑現段階での知識ではこれくらいしか思いつかない・・・
しかも動かないw
810:名無し~3.EXE
10/01/18 01:16:54 M1A4s4VQ
Replaceに使う正規表現と置換後をArrayに入れておいて回せば追加にも強いだろう
てか>>804だと1行目を置換したいとき無理じゃね
Multilineもつけて^$使え
811:名無し~3.EXE
10/01/18 08:59:33 QEJpbXI0
>>810
そこは>>805ですぐ修正入れてるって
1レス後位見てくれよ('A`)
>>809
新しいオブジェクト作る必要無い。
パターンだけ変えて、前の置換結果にまた置換実行するだけ。
ヘルプ見てメソッドの引数と戻り値の意味位調べようぜ。
812:名無し~3.EXE
10/01/18 09:05:09 QEJpbXI0
>>810
ちなみにMultilineはVBScriptには無いのよ。
813:名無し~3.EXE
10/01/18 09:18:09 QEJpbXI0
ごめんあった。ヘルプに無いだけだったorz
しかしMSDN見ててもVBScriptに関するmultilineのドキュメント見つからん…
814:名無し~3.EXE
10/01/18 13:24:49 b+w7CHXS
URLリンク(msdn.microsoft.com)
815:名無し~3.EXE
10/01/18 22:17:50 TN5cwPWT
とりあえず>>804に↓をつなげることで目的の結果は得られましたので質問を終了したいと思います
inStream.Open
inStream.Charset = "UTF-8"
inStream.LoadFromFile "out.txt"
outStream.Open
outStream.Charset = "UTF-8"
str = inStream.ReadText(-1)
regEx.Pattern = "(^|\r\n)DustBox"
regEx.Global = True
regEx.IgnoreCase = True
rep = regEx.Replace(str,"$1Dustbox=e:\dustbox")
outStream.WriteText rep
inStream.Close
outStream.SaveToFile "out.txt", 2
outStream.Close
引数なんかは一応検索で調べたのですが初心者の私としてはこれで上出来としたいところです・・・
これをきっかけにスクリプトの勉強を始めました
今回はおつかれさまでしたw
816:名無し~3.EXE
10/01/19 02:15:25 wzldd/2a
どうせ勉強するならこっち 3行で書けるよ
URLリンク(www.microsoft.com)
817:名無し~3.EXE
10/01/19 06:44:28 9fLESZf0
>>816
XP以降限定じゃん
818:名無し~3.EXE
10/01/19 15:02:00 HLTLxXJY
wshだって98以降限定じゃん
819:名無し~3.EXE
10/01/19 18:37:12 PfKPChkB
>>817
それで困ることはもうほとんどないだろ。
820:名無し~3.EXE
10/01/19 21:15:45 f0FqX8pV
リネームツールとかUWSCとかでWSH使うから無いと困る。
powershellって他のツールからの利用ってある?
他から利用出来ないなら要らない子なんだが。
821:名無し~3.EXE
10/01/19 21:26:57 2KRU5yQk
>>820
powershell.exeを起動するだけだぞ?
822:名無し~3.EXE
10/01/20 12:21:41 nVMFUHnA
wsh(=jscript)ならjavascriptとかぶるとこも多い。
htmlや、ほかの似た文法のScript言語でも応用が利く。
powershellってどこまで他に応用聞くんだろ?
潰しが利くなら覚えよう思うんだが、背中押してくれw
823:名無し~3.EXE
10/01/20 13:45:02 VX+ha+rY
やめとけ
824:名無し~3.EXE
10/01/20 23:19:36 wLmohyzc
ADSI(VBS+LDAP)で、ADのコンピュータのoperatingSystemを取って配列にぶっ込んだ後、
For each NextループでwriteLineするとVistaのとこまで来たら落ちる。
データ型はXpもVistaもDirectorystringなんだけど、VistaTMと、TMが右肩に
ついてるから?
明日もうちょっと時間取って調べてみるつもり。
825:名無し~3.EXE
10/01/21 01:20:11 0RCGnhqV
//U
826:名無し~3.EXE
10/01/21 22:52:28 i5BvdjIA
>>825
ありがとう!今頃なんのことかわかったよ。
とりあえず値はUnicodeだとわかったので、明日また試してみる。
827:名無し~3.EXE
10/01/22 10:27:46 fhX6W0TP
潰しとか応用とか互換性とか言ってたら新しい物は生まれて来ない
3行で書けるんなら、3行で書いちまった者勝ちだろ?
828:名無し~3.EXE
10/01/22 11:21:15 tUYhcla4
PowerShellはごく一部のマニアだけが覚えておけばいい技術。
javascript=jscriptは時間の無い人が、出来るだけ多くのリターンを
得るために使う技術。
極めたい人はPowerShellに時間と金を投資するといい。
きっとそれなりの見返りがあるはず。
829:名無し~3.EXE
10/01/22 14:52:26 HBcO/6iY
>>768-787
powershellなら1行で書けるのにwshでちんたらやってられるか?
get-content $filepath | select-object -Last 2
830:名無し~3.EXE
10/01/22 16:37:00 v63o3WgQ
ほとんどの環境で標準装備ってのならいいんだけどね。
環境揃えて…っていうんならpowershellじゃなくても他にも色々あるわけだし。
831:名無し~3.EXE
10/01/23 11:01:56 HKm8upzI
Windows2000あたりから標準装備なら状況はちがったんだろうけどなぁ。残念。
832:名無し~3.EXE
10/01/23 15:26:57 SgH8LXDj
MS-DOSあたりから標準装備なら状況はちがったんだろうけどなぁ。残念。
833:名無し~3.EXE
10/01/31 19:53:03 mXB3Bqel
MS-DOSからおなじみのバッチファイルは
今流行ってないけどな。
834: ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
10/01/31 22:38:01 CcQLQSx7
∧_∧ ヒソ…
<丶`∀´> ∧_∧
/ \/ )<丶`Д´>ウンウン、さすがは我が同胞。鋭いニダ!
/ \___// \
__ .| | / /\_ _ \ \_____
\  ̄ ̄ ̄ ̄ ̄ ̄(__ノ \ \__) \
||\ \ .||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄ ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
835:名無し~3.EXE
10/02/03 23:03:12 cRYBsWZ2
msgboxなどのダイアログ系は作業を中断されるので他の方法を考えています
マウスポインタのデザイン変更はVBSで可能でしょうか?
836:名無し~3.EXE
10/02/04 01:40:41 /5PVW4aL
VBAでも使ってろよと思う
837:名無し~3.EXE
10/02/04 12:07:19 YNWxT22I
D:\aaaaa\bbbbb\cccccを環境変数%abc%として登録して
D:\aaaaa\bbbbb\ccccc\d.exe
を%abc%にカレントを移してから実行したいのですが
CurrentDirectoryで環境変数ってどう使ったらいいのでしょうか?
838:名無し~3.EXE
10/02/04 12:35:15 /5PVW4aL
質問の意味が読み取れないけど、
環境変数の展開ならWScript.ShellのExpandEnvironmentStringsとか
839:名無し~3.EXE
10/02/04 17:30:12 WSu/UyEi
>>837
こういうことでいいのかな
Set objShell = WScript.CreateObject("WScript.Shell")
Set colEnv = objShell.Environment("User")
colEnv.Item("abc") = "D:\aaaaa\bbbbb\ccccc" '環境変数%abc%に登録
objShell.CurrentDirectory = colEnv.Item("abc") '%abc%にカレントを移動
objShell.Run(".\d.exe") 'd.exeを実行
840:名無し~3.EXE
10/02/04 18:41:05 qbYhdWoJ
>>835
スクリプトの終了は知りたいけどポップアップはうぜぇ、ということ?
スクリプトでBeep音を鳴らすことなら出来るよ
841:名無し~3.EXE
10/02/04 20:33:39 YNWxT22I
>>839
ありがとうございます
>objShell.CurrentDirectory = colEnv.Item("abc") '%abc%にカレントを移動
こっちにもItemが必要なことに気が付きませんでした
おかげさまで希望の動作になりました
>>838
ありがとうございました
842:名無し~3.EXE
10/02/06 02:11:44 N6DMGysY
>>835
処理中メッセージでぐぐれ
URLリンク(maglog.jp)
843:名無し~3.EXE
10/02/09 11:20:45 9vTb+OVv
IEを使ってファイル名を得るスクリプトを取りあえず検索して
次のようなのを見つけましたが
初期のフォルダを設定する方法が分かりません
どうやったらいいのでしょうか?
Set Ie = CreateObject("InternetExplorer.Application")
Ie.Navigate( "about:blank" )
Do While Ie.Busy
Wscript.Sleep 10
Loop
Ie.document.getElementsByTagName("BODY")(0).innerHTML = "<INPUT id=FilePath type=file>"
Ie.document.getElementById("FilePath").click
if ie.document.getElementById("FilePath").value = "" then
WScript.Echo "ファイルは選択されませんでした"
WScript.Quit
end if
WScript.Echo ie.document.getElementById("FilePath").value
Ie.Quit
Set Ie = Nothing
844:名無し~3.EXE
10/02/09 16:03:31 8BqPaL3i
初期のフォルダを設定する type=file でぐぐれ
845:名無し~3.EXE
10/02/09 17:01:00 8BqPaL3i
どこかに覚えているみたいだから、レジストリを検索して、書き換えれば?
846:名無し~3.EXE
10/02/09 17:40:17 9vTb+OVv
>844
hta の雛形に付け加えたので異様に長くなってしまったけど
取りあえず初期値がカレントのフォルダになる hta file はできた
カレントじゃなくて自由なフォルダになるのはまだ分からない
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>雛形</title>
<script Language="VBScript">
<!--
Option Explicit ' 変数に対して、明示的な宣言を強制します。
dim exit_proc_flag
initialize_all
'**************************** 全体的な構成 ********************************
sub initialize_all
exit_proc_flag=false
end sub
847:名無し~3.EXE
10/02/09 17:41:15 9vTb+OVv
'終了処理
sub exit_proc
msgbox Document.testfrm.example.value
exit_proc_flag=true
end sub
sub HtaFinalExit
if not exit_proc_flag then
exit_proc
end if
end sub
Sub all_exit_OnClick '<OK>ボタンのOnClickイベントプロシージャ
exit_proc
window.close
End Sub
'******************************************************************************
-->
</script>
</head>
<body onUnload="HtaFinalExit()">
<FORM name="testfrm">
<input type="file" name="example" size="90">
<br>
<input type="button" name="all_exit" value="終了">
</body>
</FORM>
</html>
848:名無し~3.EXE
10/02/09 18:28:58 8BqPaL3i
それってカレントのフォルダなのか?
htaの場所じゃないのか?
849:名無し~3.EXE
10/02/09 18:32:07 9vTb+OVv
>>848
hta の場所って意味で言ってる
言い方が曖昧だったかな
850:名無し~3.EXE
10/02/09 19:09:32 8BqPaL3i
そんなことないよ
明確に間違ったこと言ってるだけだよ
851:名無し~3.EXE
10/02/14 17:05:40 9nnubjX9
FileOpenDialog使えば?
852:名無し~3.EXE
10/02/19 22:29:31 LDuD38Q5
wshShellのRunをコードに書いて保存しようとしただけでトロイ認定されてソースが消えたお・・・・
853:名無し~3.EXE
10/02/20 01:47:37 qEf0FvLR
まぁ世の中の9割以上の人には、wshをとろい認定しても問題は無いんだけどな
一部のソフトのインスコ・設定でwsh・hta使ってるのも見なくもないけど
854:名無し~3.EXE
10/02/20 10:43:48 8rPqr8jG
VS2008 Express Editionのインストーラが
HTAを使ってるぜ。
855:名無し~3.EXE
10/02/25 21:39:30 gk2IrG8J
ie.navigateみたいなことって他のブラウザでもできますか?
マイクロソフト以外のブラウザはそもそもどうやって情報集めたらいいの?
856:名無し~3.EXE
10/02/25 21:57:08 OS5Whsth
できるものもあればできないものもあるだろな
857:名無し~3.EXE
10/02/26 18:22:28 cT5sOvCi
COMインターフェイスがなきゃダメだから
クロスプラットホーム対応のブラウザにWindows版だけ実装することは考えにくい
858:名無し~3.EXE
10/02/26 22:23:09 DbpCfW0J
コントロールしたいときは我慢してIEを使えってことですかね?
859:名無し~3.EXE
10/02/26 22:29:24 TVISpBki
無理に使わんでもええよ
860:名無し~3.EXE
10/02/28 14:58:34 h+sfVlse
Sleipnirなら、COMインターフェイス作っているぽいよ
他は地道にググるか、自分でoleviewとかで確認してくれ
もし、起動させて特定のURL開くだけなら
Shellで起動時にコマンドライン引数で指定するのが簡単
できないブラウザもあるかもしれないけど
861:名無し~3.EXE
10/02/28 23:44:27 eIRa0akU
男は黙って SendKeys
862:名無し~3.EXE
10/03/01 21:44:05 FmfygmuX
test
863:名無し~3.EXE
10/03/04 22:14:49 FL0aWnTL
いまさらながら
64bits版 windowsにもwshって入ってるの?
864:名無し~3.EXE
10/03/04 22:26:49 o4aSa0C3
入れない理由がないし実際入ってる
865:名無し~3.EXE
10/03/04 22:32:57 FL0aWnTL
失礼しました。
866:名無し~3.EXE
10/03/07 00:39:46 yMMDGSK4
WSHではADODB.Streamを使うことでバイナリファイルを読み込み、
バイナリファイルの中に潜んでいる文字をテキストファイルに
保存できると知って、今日の夕方に入門書を買ってきました。
最終目標はnamazu用のfilterを自作したいと思ってます。
よろしくお願いします!
867:名無し~3.EXE
10/03/07 01:11:56 yMMDGSK4
だいたい出来ました、ありがとうございました!
868:名無し~3.EXE
10/03/07 01:56:16 zmuLo5KI
これは新しい自己解決のパターン・・・
869:名無し~3.EXE
10/03/07 02:04:34 ehbFBfeC
入門書ってなにだろ?
870:名無し~3.EXE
10/03/07 02:51:12 qV0qSi+H
大型新人キター
871:名無し~3.EXE
10/03/08 10:01:54 qhL2N4DK
JSでTerminateを使いプロセスを強制終了させていますが、
強制ではない方法で終了させることはできないでしょうか?
872:名無し~3.EXE
10/03/08 10:58:50 reTc7xAA
「ユーザー名およびパスワードの保存」画面で管理される
ユーザー、パスワードの情報をwshで追加、削除する事はできますか?
(「ファイル名を指定して実行」から「control keymgr.dll」を実行して表示する内容)
別ドメインのサーバの共有フォルダにアクセスしたいのですが、
ネットワークドライブを設定する方法では、再度パスワードを入力する必要がありました。
この画面で登録しておくと再入力せずアクセスできたので
限られたユーザーにwshで配布したいと考えています。
873:名無し~3.EXE
10/03/08 14:35:46 N4hgDfir
>>871
JSにTerminateがあるのか?VBSにはあるが?
874:名無し~3.EXE
10/03/08 19:55:15 qhL2N4DK
var WMIService = GetObject('winmgmts:'
+ '{impersonationLevel=impersonate}!\\\\'
+ computer + '\\'+computer_name+'\\cimv2');
var processList = WMIService.ExecQuery('Select * From Win32_Process Where Name = "calc.exe"');
var processEnumerator = new Enumerator(processList);
while (!processEnumerator.atEnd()) {
processEnumerator.item().Terminate();
processEnumerator.moveNext();
}
こんな感じで使用しています
875:名無し~3.EXE
10/03/08 23:49:45 N4hgDfir
>>874
それはJSのでなくWMIのWin32_ProcessのTerminateだろ
それなら"taskkill /pid " & processEnumerator.item().IdをCreateすればよい
876:名無し~3.EXE
10/03/09 00:17:04 W+HEZzDA
ありがとうございます。
出来ました。
877:名無し~3.EXE
10/03/09 07:31:07 Ox6yGdZE
VBSをCOM化して実行したら「メモリーが不足してプログラムを実行できません」と出ました。
878:名無し~3.EXE
10/03/09 11:20:33 6ivRnBQq
プログラム板のwshスレからこっちに流れてきました。マルチごめん。
WMI使ってリモートPCのIP変更したいんだが、変更後にRPCエラー待ちが発生して自動処理できない。
エラー待ち時間を短縮するとか、なんかいい方法知ってる人がいたら助けて。
On Error Resume Next
strComputer = "10.1.1.1"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each objNetAdapter in colNetAdapters
errEnable = objNetAdapter.EnableDHCP()
Next
879:名無し~3.EXE
10/03/09 16:37:00 lGaT6Nz1
>>877
CMD化しろよ
880:名無し~3.EXE
10/03/09 19:14:46 1jHU3iwO
>>878
相手にスクリプトを産み付けて自分のプロセスとして処理させるってのはどうだ?
pstoolsの出番かも知れないが。
881:名無し~3.EXE
10/03/09 19:15:07 Ox6yGdZE
>>879
産休です。明日会社のサーバで試してみます
882:名無し~3.EXE
10/03/11 00:16:55 aOKfiRUH
ctrlキーが起動時に押されていたら処理を替えるようにしたいんですが、どうすればいいですか?
883:名無し~3.EXE
10/03/11 02:48:28 CgyxwHxo
スクリプトからシフトキー類の押し下げ状態を調べる。
884:名無し~3.EXE
10/03/11 19:28:02 z4Y3vV8Y
>>880
WshController使ったリモート実行じゃろうか?
これは試していたんだが、「致命的エラー」が出てNGだった。
リモートPCのレジストリを設定した後、「wscript -regserver」を実行したんだがやっぱりダメだった。
「pstools」はしらんかった。ちょっと調べてみる。
うまくいったら結婚してあげてもいい。
885:名無し~3.EXE
10/03/12 09:53:05 N9db+s4y
WSHオワタ・・・
PowerShellの概要 - @IT
URLリンク(www.atmarkit.co.jp)
例えば、テキスト・ファイルに現在時刻を書き込むという処理をWSHスクリプト(言語はVBScriptを使用)で書くと次のようになる。
Option Explicit
Dim objFSO, objTextStream
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objTextStream = objFSO.CreateTextFile("test.txt")
objTextStream.WriteLine Date & " " & Time
objTextStream.Close()
Set objFSO = Nothing
Set objTextStream = Nothing
このように、ファイルの読み書きというシステム管理では基本となるようなことでも、
COMオブジェクトを呼び出すなど非常に多くの記述が必要になる。
ところがPowerShellで同様の処理を書くと1行で済む。
Get-Date | Set-Content test.txt
886:名無し~3.EXE
10/03/12 13:10:53 QFmuvE6T
バッチファイルでも1行で済むが?
echo %date% %time% > test.txt
887:名無し~3.EXE
10/03/12 13:23:01 nsgGjLNb
>>884
自己レス。
psexec使ってのwsh送り込みはできなかったが、batファイルならいけた。
これなら10秒ほどのタイムアウト待ちなのでなんとかなりそう。
>>880
無限の愛を貴方に。
888:名無し~3.EXE
10/03/13 00:20:18 /FMALwnt
>886
その手法は確かWindows95/98/Me/NT4.0では使えないんだったな。
889:名無し~3.EXE
10/03/13 00:22:32 gC28eAby
>>888
PSのこと?
890:名無し~3.EXE
10/03/13 01:55:56 4tIVLF1Y
>>885
そういうのって例えば、
日付の書式をちょっと変えて書き込みたいな・・・
とか考え出すとあっという間にコード量の差がなくなってしまうからなぁ。
>>886
つまり、それをWSHから呼び出せばもっと簡潔にできるわけだな!
・・・って、件のWSHのスクリプトも宣言とか開放を省略すればもっと行数減るなw
891:名無し~3.EXE
10/03/13 17:14:55 8P3J/gMj
CreateObject("Scripting.FileSystemObject").CreateTextFile("test.txt").WriteLine Date & " " & Time
1行で済みましたww
892:名無し~3.EXE
10/03/13 18:33:24 KBOSrb+k
>>885の執筆者より>>891の勝ち
893:名無し~3.EXE
10/03/13 20:04:42 M3Neakab
無駄口は Now も知らん(忘れた)のか・・・・
894:名無し~3.EXE
10/03/14 13:54:28 lYWxxKnc
1時間ごとにランダムに一曲再生するというコードを動かしているんだけど
その時WMPが既に何か再生中だったらキャンセルするというコードはどう書けばいいですか?
895:名無し~3.EXE
10/03/14 15:16:43 wewHDlVc
プロセスのCPU使用状況を調べてwmpのCPU使用率ゼロを判別する
896:名無し~3.EXE
10/03/14 15:39:50 jU9VRU0u
つまんね
897:名無し~3.EXE
10/03/14 18:30:33 voCmsmxq
WSHから特定のアプリケーションにSendmessageできる公開されたDLLってあります?
または直接EXEを起動したり、regsvr32登録されてないDLLの関数を呼び出す方法はありませんか?
自作のDLLがRegsvr32で登録できずCreateobjectできません
898:名無し~3.EXE
10/03/14 18:43:39 +Lvh+6MO
powershell
899:名無し~3.EXE
10/03/14 18:55:33 u5NEBbCg
ActivexPosh
900:名無し~3.EXE
10/03/16 16:18:13 ohYW6Imb
AutoItXの各種メソッドが128文字以上扱えるようになってたヽ(´ー`)ノ
901:名無し~3.EXE
10/03/18 18:15:26 iM/YKp6K
スレ違い
902:名無し~3.EXE
10/03/25 23:54:26 PC4a+bWW
WSHのCMD化の方法を教えてください。
903:名無し~3.EXE
10/03/26 00:30:35 ey1DdaEX
js2cmd
904:名無し~3.EXE
10/03/27 23:21:50 AeDranBW
IEの右クリックからJavaScriptを呼び出し、現在閲覧しているページのタイトルを所得することは
できるんでしょうか?右クリックする対象はページ上の画像を考えてます。
905:名無し~3.EXE
10/03/27 23:36:21 4iD/8n0I
できるがスレ違い ぐぐれ menuext
906:904
10/03/28 10:22:48 mhne3zrz
レジストリ書き足して、htmにJavaScript記載して画像の情報は取得できました。
閲覧中のhtmlのタイトルを取得する方法はあるのかなと思いまして、この場合のオブジェクト対象は画像なんですよね?
現在閲覧中のページのタイトルを取得、みたいな関数があれば
907:名無し~3.EXE
10/03/28 11:01:19 /xGuJN49
>>906
external.menuArguments.document.title
スレチだから他行け
908:名無し~3.EXE
10/03/28 11:36:22 mhne3zrz
>>907
できました、ありがとうございます。
WSHで合ってると思ったんですがスレチだったんですか? 理解不足ですみません
909:名無し~3.EXE
10/03/28 15:44:41 4WEbf+FX
閲覧中のウェブページをwshを使って自分のアドレスに送りたいのですが
どういう風にしたら良いですか?
910:名無し~3.EXE
10/03/28 15:45:43 4WEbf+FX
追記。アドレスだけじゃなくてページの中身そのものをメールとして送りたいということです。
911:名無し~3.EXE
10/03/28 16:52:47 z/Q5yi5P
>>910
ブラウザのURL拾って、mhtファイル作って、
URLリンク(www.microsoft.com)
じゃね?
メールの作成もmhtもCDO.Messageで出来るんだな・・・mhtの出自がそうなんだから
当たり前といえば当たり前か。
912:名無し~3.EXE
10/03/28 17:02:47 4WEbf+FX
回答ありがとうございました。そのページを参照にちょっと頑張ってみます。
913:名無し~3.EXE
10/04/01 00:21:13 CuuAcOhW
ショボくてすまんが[windows]+[←]or[→]キーで使えるwindows7の機能は、
どうやってスクリプト書いたらいい?
914:名無し~3.EXE
10/04/01 01:01:22 +U1Gw17B
つAHK
915:名無し~3.EXE
10/04/10 22:14:58 wPmAPdMC
今はNILScriptの方がいいんじゃない?
916:名無し~3.EXE
10/04/11 13:24:09 Yl41pEjS
なにそれ
917:名無し~3.EXE
10/04/11 22:47:49 adH92DlF
【JavaScript系】 NILScript 【AutoHotkey風】
スレリンク(tech板)
918:名無し~3.EXE
10/04/11 23:11:58 1lpeBxiT
NILは2000では動かないよ。XP32bitだけだな。
ただAutoItXやSFCMiniなどのDLLを入れたあとのWSH環境に比べるとどうなんだろうね?
マニフェストや後付のDLLを使わずにDmonkeyやUWSC、AutoHotKey以上のことをやりたいらしいが。
javascriptの文法でキーカスタマイズからアプリ制御までなんでも出来るスクリプト環境を
つくろうってのは正しい方向性だと思うけど。
919:名無し~3.EXE
10/05/13 21:56:55 m6OaNJxa
ほう
920:名無し~3.EXE
10/06/03 17:53:48 iUihJw3M
var ie;var url,login_id,login_pw;function wait() { while(ie.Busy || ie.ReadyState!=4){ WScript.Sleep(100); }} function browser() { ie=new ActiveXObject('InternetExplorer.Application');ie.Visible=true;ie.Navigate(url);wait(); }
function post() { ie.document.forms[0].exec.click();wait(); } function reload() { ie.Navigate(url);wait(); } try{ url='★';browser();for (i = 0; i < 5; i++) { post();reload();}} catch(e){ } finally{ ie.Quit(); }
これのtry{}にあるurlに書かれたURLに飛んだあと別のURLに飛ぶようにできないのだろうか
var ie;var url,login_id,login_pw;function wait() { while(ie.Busy || ie.ReadyState!=4){ WScript.Sleep(100); }} function browser() { ie=new ActiveXObject('InternetExplorer.Application');ie.Visible=true;ie.Navigate(url);wait(); }
function post() { ie.document.forms[0].exec.click();wait(); } function reload() { ie.Navigate(url);wait(); } try{ url='★';browser();url='★';for (i = 0; i < 5; i++) { post();reload();}} catch(e){ } finally{ ie.Quit(); }
これだと飛ばぬ・・・
921:名無し~3.EXE
10/06/03 18:23:45 iUihJw3M
>>920にあともう一つ
IEタブを2つ表示させて 1つ目のタブにURL1を
2つめのタブにURL2を飛ばしたいけどどうしたらいいのかわからない
922:名無し~3.EXE
10/06/09 14:11:04 iwdCkyf4
>>921
navOpenInNewTab
923:名無し~3.EXE
10/06/09 19:47:37 dzSkViOB
>>922
それvbsだよね?
JavaScriptでは無理なのか?
924:名無し~3.EXE
10/06/09 19:56:48 jlgSYqLi
言語には関係ない
925:名無し~3.EXE
10/06/10 14:14:01 kJViM8Jd
ExecWBでソースの表示ってできない?
926:名無し~3.EXE
10/06/10 15:22:23 6Q2g02au
ブラウザそのものにはソースとかないしなぁ
927:名無し~3.EXE
10/06/11 12:21:04 uxlvNz01
>>925
IOleCommandTarget::Exec
928:名無し~3.EXE
10/06/11 23:26:51 biU9CjCk
JScriptをコンパイルしたいんだが、
WScriptオブジェクトなんてしらねって弾かれてもうた(´・ω・`)
Wscriptオブジェクトを引っ張ってくる方法か、
QUITとADODB.Streamの代替手段をおしえてくだせえ