[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 10/02 12:26 / Filesize : 234 KB / Number-of Response : 984
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

WSH(・∀・)スレッド! Part 2



1 名前:デフォルトの名無しさん [2007/04/16(月) 13:48:54 ]
( ´ゝ`) 誰か詳しい情報キボンヌ

●過去スレ
WSH(・∀・)スレッド!
pc11.2ch.net/test/read.cgi/tech/1055075469/

●関連スレ
お前ら、wsh使ってますか? part6
pc11.2ch.net/test/read.cgi/win/1155040873/
【イケメン】阿龍スレ避難所@自己紹介【彼女募集中!】
life8.2ch.net/test/read.cgi/intro/1171897814/

●個人サイト
Windows Scripting Host Laboratory
www.roy.hi-ho.ne.jp/mutaguchi/wsh/
Windows Script Wiki
winscript.s41.xrea.com/wiki/index.php
音楽
winscript.mine.nu/music/
キャラネタ板・なな板のための何か
charaneta.mine.nu/

315 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:21:42 ]
>>312の2
自分をcscriptで再起動

316 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:28:05 ]
>>312の1
system()ならRun()でしょ
>>312の2
jscriptだろうがvbscriptだろうが、
標準入出力はwshやfsoなのだから変わらんけど?

317 名前:デフォルトの名無しさん [2007/11/29(木) 00:36:45 ]
Workgroupとドメインが混じった環境がありまして
Workgroupのコンピュータでドメインユーザを使って
ADの認証を取りたいのですが、なにか良い方法ありますか?
認証はKerberosでもNTLMでもいいです。
WorkGroupのコンピュータは、ADのDCに名前解決できています。
(DNS,lmhosts両方とも)
OSは2000とXPProです。


318 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 01:30:17 ]
>>315
同じようなこと考えてた。
スクリプト終了後にコンソールがすぐ消えて、経過が見えんなあ・・・と思ったけど、
cmd /k cscript ...
で解決した。

>>316
連続してプログラムをRunする度に別のコンソールが立ち上がるのがイヤ。
1つのプログラムが終ると、その分のコンソールが消えて、
stdout/errの経過が見れないの困る・・・
なので、WshExecのStdOut/Errを読んで、Echoに横流ししてる。
けど、stdout/errが入り乱れてるときにちゃんとリアルタイムに出力できるか疑問。
あと、プログラムの終了コードが取れない。


319 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 01:57:30 ]
exec("cmd /c hoge 2>&1")

320 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 02:08:50 ]
>>319
基本でしたw
tnx

321 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 02:22:16 ]
>>317
runas /user:ドメイン名\ユーザー名 hogehoge.exe


322 名前:デフォルトの名無しさん [2007/11/29(木) 23:37:30 ]
>321
明日試してみます。
もちろん、321さんは実験済みなんですよね?

323 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:44:24 ]
イラつくよお前



324 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:53:11 ]
お前火病るの早すぎwwwwww

325 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:01:46 ]
>あと、プログラムの終了コードが取れない。
取れるよ。
>Statusプロパティが0以外になるまで待つ、
してる?

326 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 20:40:19 ]
>321
試してみました。
書いていただいた「コマンドライン」では動きませんでした。
でも他の方法で解決できました。
本当にありがとうございました。

327 名前:デフォルトの名無しさん [2007/12/01(土) 02:35:35 ]
>>326
もう二度と来んな!

328 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 02:37:04 ]
>>326
その「他の方法」とやらを書く気は全く無い訳だな

329 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 05:44:51 ]

書きに戻ってくる必要もないよ

興味ないから



330 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 12:31:11 ]
>>325
ExitCodeプロパティの存在に気付かなかった。
最初読んでた本と適当にググったサイトでスルーされてたので・・・

とりあえずこのスレで得た成果をまとめてみた。

var shell = new ActiveXObject("WScript.Shell");

function system(cmd) {
var e = shell.Exec("cmd /c " + cmd + " 2>&1");
while (!e.StdOut.AtEndOfStream) {
WScript.Echo(e.StdOut.ReadLine());
}
while (e.Status == 0) {
WScript.Sleep(50);
}
return e.ExitCode;
}


331 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 15:20:48 ]
>WScript.Echo(e.StdOut.ReadLine());

WScript.StdOut.Write(e.StdOut.Read(1));
のほうがいいよ


332 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 16:45:06 ]
男は黙ってecho

333 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:09:39 ]
>>331
たしかに、
checking...(長い処理) done<改行>
みたいな出力するプログラム起動したときカッコ悪かった。

1バイトずつってのが引っかかったけど、別に体感速度変わらんな。




334 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:13:43 ]
男は黙ってcscript

335 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 21:19:06 ]
Q >>294
A >>292
なぜかQAの順序が逆ですな。>>292はエスパーかな?

336 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 21:31:52 ]
>>335
>>292を実行したら警告ダイアログが出た奴が質問してるだけ。

環境依存か知らんが。

337 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 22:31:07 ]
VBScriptで引数省略は,,だけど、JScriptは?
JScriptで,,にすると怒られる

338 名前:デフォルトの名無しさん [2007/12/03(月) 03:11:23 ]
低脳言語と一緒にすんなよ。

339 名前:デフォルトの名無しさん [2007/12/03(月) 09:12:27 ]
あの突然すいませんが
WSH(VBS)のコンパイラってないですかね?
www.vector.co.jp/soft/dl/win95/prog/se277804.html
これしか見当たりませんが、これにしてもなぜだか動作しないんです。
ほかに知っている方が見えましたらお願いいたします

340 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 10:23:32 ]
本来コンパイル出来ない物なんだから、無理矢理やっても不都合あるのは当然かと
コンパイルしたいなら実行ファイル生成用のプログラム言語か
スクリプト言語の中でも元からコンパイルを想定して作られたもの使いましょう

つまりお門違いってもんです

341 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 10:36:12 ]
>>339
msscript.ocx を忘れてるだけだと思われ

342 名前:デフォルトの名無しさん [2007/12/03(月) 12:25:15 ]
EXE 化して改ざんされにくくしたいって事だろ。それくらい理解してやれよ。

343 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 12:44:31 ]
↓こっちの方が有名だと思ってたけど、違うのか
"MakeExe"
www.vector.co.jp/soft/winnt/prog/se389017.html
WMIのイベント系メソッドには弱いらしいけど
ttp://maglog.jp/pueblo-del-script/Article11074.html

因みにどこかで暗号化も出来るとか言ってる人もいるらしいけど、
(作者のブログにも説明あったけど)暗号化はされない。



344 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 14:45:09 ]
改ざん防止は署名だろ

345 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 16:19:24 ]
難読化はスクリプトエンコードだろ

346 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 17:43:46 ]
jscriptにすればコンパイルできるよ

347 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 18:14:11 ]
VBにすればコンパイルできるよw

348 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 20:53:14 ]
COMクライアントのプログラムをCで書いてみるといいよ


349 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:07:15 ]
JScript .NETに書き換えればコンパイルできるよ

350 名前:デフォルトの名無しさん [2007/12/03(月) 23:22:19 ]
コンパイルしたら、せっかくのスクリプトの意味が無いやん

351 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:44:59 ]
>>337
,null,

352 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:49:25 ]
set sc=createobject("scriptcontrol")
sc.language="vbscript.encode"
sc.addcode unescape("%23@%7E%5ENQAAAA%3D%3Dhko8K6%2CEx%7F/1Cw%7F%60E%5D%21%26T*y%5DE2TcW%5DE2T*vuE2%21*%25Y%3B2%21*brb@%23@%26ug0AAA%3D%3D%5E%23%7E@")
解読できる?

353 名前:デフォルトの名無しさん [2007/12/04(火) 00:22:34 ]
おちんちん



354 名前:339 [2007/12/04(火) 05:40:22 ]
>340
まあインタプリタの方が管理しやすいですが、
EXEだとタスクマネージャーで強制停止できたり、
知り合いに渡すのに環境を選ばなくなりますからね

>341
インストール中にはねられてしまいました
フリーのコンパイラは複数あって損はないですので調べてみます。

>342
環境に左右されにくくなるかな?と思ったわけです

>343
ダウソしました、ありがとうございました。


その他みなさんありがとうございました




355 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 09:49:29 ]
> EXEだとタスクマネージャーで強制停止できたり、
スクリプトだって出来る、WSHのスクリプトエンジンはexeなんだから
ついでに言うと、うちの環境では、vbs,js,wsfなどを右クリックすると「このスクリプトを強制終了する」って項目がある
この項目を選択した際に実行されるものもwshで作った
あと、多重実行すると既に実行されてるものを強制終了するって仕組みのスクリプトも作ったことがある
やり方次第で停止、終了:に関しては全然困らなくなる
タスクマネージャーだと複数のWScript.exeが実行されてるときにどれがどれだか解らないとか言うかも知れないが
それだってどうにでもなる問題だし

> 知り合いに渡すのに環境を選ばなくなりますからね
環境選ばないと言ってもJavaとかじゃなければWindows限定なわけだし
Windows限定ならWSH(VBS)が動かないのはWin95のノーマルと個人ではほとんど使われてないNTの4以前くらいだ
あとはCOMのバージョンが違うくらいだが、それはCOMを使用するexeだって同じ事だし

356 名前:デフォルトの名無しさん [2007/12/04(火) 18:05:19 ]
自慢うざい

357 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 19:13:51 ]
的確な突っ込みを理解できないヤシがマヂギレw

358 名前:デフォルトの名無しさん [2007/12/04(火) 19:17:48 ]
ここは自慢スレじゃ無いぞ。

359 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 20:19:12 ]
>>358
どうしたの?

360 名前:デフォルトの名無しさん [2007/12/04(火) 20:38:30 ]
自慢すんな

361 名前:デフォルトの名無しさん [2007/12/04(火) 20:55:32 ]
あんな程度のが自慢に見えちゃうなんて可哀相な子ですね

362 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:12:34 ]
>>355
いや cscript.exe がいっぱいタスクにならんで
どれが殺したい相手なのかわからなくなるんだよ


363 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:25:45 ]
> いや cscript.exe がいっぱいタスクにならんで
> どれが殺したい相手なのかわからなくなるんだよ
そんなの実行時引数が見られるタスク管理ソフト(タスクマネージャ代替ソフト)を使えば一発解決
WSHのオプションスイッチやスクリプトへの引数が無ければ「プロセス名:cscript.exe  実行時引数:スクリプトパス」になってる
実行時引数はWMIでも取得出来るから、俺のはスクリプトのパスを渡す(右クリックから強制終了選択)と
実行時引数にそのパス含むWSHプロセスを殺すようにしてるだけ
多重起動で自殺スクリプトも仕組みは同じ

cscript.exeがいっぱいあるだけでなく、実行しているスクリプトまで同じでどれがどれだか解らないなんてのは
スクリプトの設計段階での問題



364 名前:339 [2007/12/04(火) 21:33:46 ]
>355
環境と言うのはBASP21やセンドキーで日本語を送る為のライブラリ環境の事です。
VBSやらない人に複数のライブラリのインストールを強制するのは酷ですからね。

あと、プログラミング自体はしょぼいPCの時代にやっていただけですので、
(懐かしのMSXやX68000でアセンブラとベーシックをかじった程度ですが)
バックグラウンドでプログラムを動かしつづけるのは何だかもったいないような気がするんですよ
これは個人的な感覚ですので,気にしないで下さい

365 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:35:30 ]
cscript hoge.vbs fuga hage
cscript hoge.vbs fuga hige

みたいなのも区別できますか?

366 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:36:52 ]
>>365
もしよろしければそのツールが公開されているURLを教えて頂けませんか?

367 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:37:38 ]
>>365 じゃなくて >>363 だったorz

368 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 22:08:35 ]
> VBSやらない人に複数のライブラリのインストールを強制するのは酷ですからね。
特定のスクリプトからしか使わないなら、インストール(レジストリへの登録)無しに使う方法もあるけどな


> みたいなのも区別できますか?
当然 禿げ と 髭 だって実行時引数なんだから区別できるよ
>363では"WSHのオプションスイッチやスクリプトへの引数が無ければ"の例を書いたが、細かく書けば
「プロセス名:cscript.exe  実行時引数:WSHのオプションスイッチ スクリプトパス スクリプトへの引数」だよ
プロセス名:cscript 実行時引数://nologo hoge.vbs fuga hage


> ツールが公開されているURLを教えて頂けませんか?
スレ違い、自分で探すかソフト紹介スレでも行け

WMI使って特定のスクリプトを実行しているWSHプロセス殺す方法ならスレ違いじゃないから
要望が有れば教えてもいいが、今から用事があるんで早くても明日になる
この板に来る奴ならそれまで待つよりググった方が早いと思うがな

369 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 22:15:10 ]
>>368
与えられた
オプションスイッチ スクリプトパス スクリプトへの引数
の順序が違ってても区別できますか?


370 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 23:27:36 ]
>>366
ProcessExplorerとか?

371 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 09:10:14 ]
>>369
区別できるよ
コマンドライン文字列 を丸々見ることは可能だし

372 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 21:59:30 ]
>>364
コンパイルすればライブラリいらなくなるの?マジかよ

373 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 22:10:24 ]
355も言ってるが、COMをライブラリとして使用する場合はスクリプトも実行ファイルも同じだよね
ソースに取り込めばライブラリファイル(dll=ダイナミックリンクライブラリ)は不要になるけど
それはCなどのまともな言語を使うかスクリプト言語を使うかって場合の話で
スクリプトそのものとスクリプトをコンパイルしたものの差にはならないよな



374 名前:デフォルトの名無しさん [2007/12/06(木) 00:02:22 ]
>>372
バカ。元発言嫁よ。
”そういうコンパイラはありませんか?”って質問だよ。

375 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 06:37:39 ]
そんなコンパイラがあれば
CreateObject("Excel.Application")とかやってるスクリプトも
ExcelをインストールしてないPCで利用可能に

やべーすげー俺にも教えて

376 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 19:44:45 ]
cmdからだとcscript.exe
explorerからだとwscript.exe
で起動されるようにはどうすればできますでしょうか?

377 名前:デフォルトの名無しさん [2007/12/11(火) 20:10:14 ]
ヌケ作マイクロソフトに無理言うなよ。

378 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 20:56:05 ]
>376
そんな事を考えるよりは素直にコマンドラインから cscript //nologo ***.vbs で
起動する習慣をつけておくほうが良いと思う。
またはvbsファイルをcscript.exeに関連付け、wscript.exeへのショートカットをSendToフォルダに入れておき、
エクスプローラでファイルを右クリック→送る→wscript.exeを起動させるとか。

あと、そこまで考えてるなら、ついでにvbsファイル内で以下のような条件文をつける手法も
覚えておくほうが良いかも。

If Right(UCase(WScript.Fullname),12) = "\CSCRIPT.EXE" Then
 WScript.Echo("このファイルはCSCRIPT.EXEから起動されました")
Else
 WScript.Echo("このファイルはWSCRIPT.EXEから起動されました")
End If

379 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 21:13:14 ]
>>376
コマンドプロンプトでファイル名叩くとエクスプローラーの関連付けで
起動するのは仕様で無理なんジャマイカ?

難しそうだから、ScriptingGuyに聞いてみたら?

>>378
彼が何を考えて、そうしたいのかわからないんだから、素直にやり方は
ないと答えるか、スルーするのが吉。

380 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 22:07:03 ]
Wrapper噛ませればいいじゃん

381 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 22:18:05 ]
>>380
kwsk

382 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 00:20:36 ]
cmd.exeから起動されたかどうかは区別できるので
同じコンソールにcscript.exeで起動し直すのが問題だな

383 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 00:28:43 ]
逆ならおk?



384 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:55:28 ]
>>382
>cmd.exeから起動されたかどうかは区別できるので

kwsk

385 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:58:59 ]
>>381
>>384
kwskはGoogleで

386 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 09:16:57 ]
KaWaSaKi

387 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:04:44 ]
>>385
Googleの検索キーワードをkwsk

388 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:54:28 ]
>>387
>>380>>382>>385は性格が悪いので教えてくれるわけがない。



389 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 21:46:40 ]
だったら性格のよい388が変わりに教えてやればいいのに・・・
それとも388も性格悪い仲間なの?

390 名前:384=388 mailto:sage [2007/12/12(水) 22:04:43 ]
>>389
性格はとてもいいんだけど、387と同じで検索キーすらわからないんだが。
わかれば、すぐ教えるが、残念ながらこれ以上調べてもわからなさそう。



391 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 22:49:07 ]
よくわからんけど
Win32_Process とかじゃねーの?

392 名前:390 mailto:sage [2007/12/12(水) 23:10:04 ]
WSHでは無理、という結論。

.NET系ならGetCurrentProcessを使って自分自身のプロセスを調べ、
さらに親プロセスがcmd.exeである事を判別する、って方法でいけそうだけど。

>>391
自分自身の実行パスをWMIで調べて、そこから親プロセスを割り出す、
って出来そうだけど、同じスクリプトが複数走ってるとアウトのような希ガス。

393 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:11:58 ]
scriptname = "foo.vbs"

set swl = wscript.createobject("wbemscripting.swbemlocator")
set s = swl.connectserver
set rs = s.execquery("select * from win32_process where caption='cscript.exe' or caption='wscript.exe'")
p = -1
for each r in rs
 if instr(1, r.commandline, scriptname) then
  wscript.echo r.caption
  p = r.parentprocessid
 end if
next

set rs = s.execquery("select * from win32_process where processid=" & p)
for each r in rs
 wscript.echo r.caption
next

'ttp://d.hatena.ne.jp/Ratso/20070313/p1




394 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:14:32 ]
>>393
同じスクリプトが複数走ってるとアウトのような希ガス

395 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:18:35 ]
ごめん
リンク貼り間違えてた
ttp://www.geocities.jp/maru3128/wmi.html


396 名前:392 mailto:sage [2007/12/12(水) 23:22:19 ]
>>393
貼り付け乙

穴があるのは承知で、同じような物を作ろうと思ってた。

397 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:26:24 ]
自分でうにーくなプロセス起こしてそこからたどればおk

398 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:29:20 ]
自分のプロセスidはどうやったらわかるの?

399 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:30:15 ]
MSは健忘症だから自分のことも平気で忘れる

400 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:32:17 ]
自分の子の親は普通、自分だけど、例外もあるかも

401 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:36:14 ]
子供のidは分かるけど自分のidは分からんらしい

402 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:39:07 ]
scripting.cocolog-nifty.com/blog/2007/01/id_548f.html

403 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:04:35 ]
自分探しって大変なんだな



404 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:04:48 ]
>>402
子プロセスを起動してその親プロセスIDを取るのか
スゲー力技

405 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:08:44 ]
>>400
'子の親(=自分)を調べる方法でgetpid()を作ってるサイトがあったので
'そちらを参考(丸写しともいう)にして >>302 を改良
'ttp://www.vector.co.jp/soft/winnt/util/se420729.html
'ttp://www.vector.co.jp/soft/winnt/util/se383755.html
set swl = wscript.createobject("wbemscripting.swbemlocator")
set s = swl.connectserver
set rs = s.execquery("select * from win32_process where processid=" & getpid())
for each r in rs
 wscript.echo r.caption
 p = r.parentprocessid
 set prs = s.execquery("select * from win32_process where processid=" & p)
 for each g in prs
  wscript.echo g.caption
 next
next
function getpid()
 set ws = createobject("wscript.shell")
 set e = ws.exec("mshta.exe -")
 p = e.processid
 set o = getobject("winmgmts:root\cimv2")
 set ps = o.execquery("select * from win32_process where processid=" & p)
 if ps.count <> 1 then
  e.terminate
  err.raise 9
 end if
 for each p in ps
  getpid=p.parentprocessid
 next
 e.terminate
end function

406 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:13:16 ]
なんでメインとサブでわざわざ違うやり方してんの?


407 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:13:35 ]
そこまでしてわかったところでどうする?
cscriptで起動しなおしたって別ウィンドウが開くだけだ

408 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:29:41 ]
もう充分だよ

409 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:31:33 ]
>>407=382だろ?
だから、まずできるところまでやってんだろ。

よくいるんだよな。自分では何もしないで人のしてる事にケチをつける奴。


410 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:33:07 ]
>>405
すげーな。そんな方法思いもよらなかった。


411 名前:デフォルトの名無しさん [2007/12/13(木) 01:46:48 ]
超手抜きだけど、環境変数で判別するって方法もあるよ。
Cドライブのカレントディレクトリが =C: という変数に入ってるなら cmd
無ければ explorer から起動したとみなす。
かなり乱暴なやりかただけど。Win XP 以外でうまくいくかどうかわワカラン。

Dim WshShell,Environment
Set WshShell = WScript.CreateObject("WScript.Shell")
Set Environment = WshShell.Environment("PROCESS")

If Environment("=C:") = "" Then
  MsgBox "エクスプローラから起動されました"
Else
  MsgBox "コマンドプロンプトから起動されました"
End if


412 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 06:07:15 ]
PROMPT=$P$G
も使えそうだね
消されてたらだめかな

413 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 06:09:08 ]
>>411
DドライブにOS入れててCドライブが無い変態さんもいるかも知れない



414 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:02:27 ]
If Environment("=" & left(wscript.fullname,2)) = "" Then

415 名前:デフォルトの名無しさん [2007/12/14(金) 06:45:12 ]
凄腕プログラマーな皆様!!!!!
おいらの悩みを聞いてください
replaceで " の入っている文章を置換したんですがどうすれば良いんでしょうか
具ぐってもサンプルコードばかりで解決策が見つかりません







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<234KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef