WSH(・∀・)スレッド!
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG誰か詳しい情報キボンヌ
0655デフォルトの名無しさん
2006/08/22(火) 20:11:55WScript.exeの機能だけでは出来ませんが、
そういう機能を有するCOMを作れば取得できます。
後のことは、あなたがそのCOMを作るのに使う言語のスレでどうぞ。
COM作れないなら、出来ないってことで諦めるか、勉強して作れるようになりましょう。
0656デフォルトの名無しさん
2006/08/22(火) 23:45:560657デフォルトの名無しさん
2006/08/23(水) 00:12:110658デフォルトの名無しさん
2006/08/23(水) 06:08:540659デフォルトの名無しさん
2006/08/24(木) 22:52:510660デフォルトの名無しさん
2006/08/26(土) 19:08:32>>641
でも、一旦EXE化してしまうと、そのファイルを直接メモ帳で修正…って作業が、不可能になる。
使いながら、どんどんVersion UPさせて行くようなスクリプトがWSH/VBSは、特に多いから、メンテ上不利かも。
という事で、VBを持っていれば、Shell()関数で、同じフォルダに在るAutoexec.vbs を自動で読みに行くEXEを
作ってしまうと良い感じです。呼び出す時はEXEでありながら、なおかつ、メンテもしやすい環境になる。
Autoexec.vbs には、VBで作ったEXEファイルから、Drag&Dropしたファイルのフルパス情報を渡すようにしとけば、
ファイルとEXEの関連付け設定をした場合にも、実際には、VBS内で定義したアプリケーションで開いてくれる。
テキストファイルをランダムで、メモ帳/EmEditor/TeraPad/秀丸 に送る環境とかも、簡単にできるし、メンテも楽です。
そう言えば、昔、メモ帳トラッパー.exe ってアプリがあったのを思い出した…
0661デフォルトの名無しさん
2006/08/26(土) 19:38:47ごめん、そこまでしてEXE化する理由が本当にわかんない。
なぜスクリプトファイルを直に使わないの?
0662デフォルトの名無しさん
2006/08/26(土) 20:25:11VBSファイルだと、Drag&Dropはできても、Wクリックしたファイルの関連付けはできないですよね。
>>660は、そういう問題に関しての、回避例として簡単&便利かと思って。
VBSは、他の技術と組合わせて使う事で、更に便利になるツールだから、逆にスクリプトとして使う事だけにこだわらなくてもいいと思う。
0663デフォルトの名無しさん
2006/08/26(土) 20:31:450664デフォルトの名無しさん
2006/08/26(土) 20:52:59いいえ出来ますよ。君が無知なのはどうでもいいが、勝手に出来ないことにしないように。
> そういう問題に関しての、回避例として簡単&便利かと思って。
わざわざスクリプトのトラッパーなんか作るより、関連付けの仕様を覚えて使いこなす方が
10倍簡単で100倍便利で1000倍クールです。
> VBSは、他の技術と組合わせて使う事で、更に便利になるツールだから、逆にスクリプトとして使う事だけにこだわらなくてもいいと思う。
それはスクリプトとして使いこなしてる人が言うと納得できる台詞だが、君レベルの人が言うと滑稽なだけ。
0665デフォルトの名無しさん
2006/08/26(土) 21:10:52Win2K SP4だけど、
ファイルタイプの編集から、アクションを実行するアプリケーションで、
X:\P114.vbs "%1"を入れても、
指定されたアプリケーションが見つかりませんでした。
ファイル名とパスが正しいかどうか確かめてください。
なんて言われるだけだし。
自分の持ってる知識を組合せて実現して行くのが、その人にとっての一番の
解法だと思う。別に俺の方法が間違ってるってわけでもないもんねー
知ってるか知らないかだけで、そんなに居丈高になれる奴のほうが、気がおかしいんじゃないの?
とは言え、ちょっと恥ずかしいから、ググってくるか…
次の話進んでて構わないよ。
0666デフォルトの名無しさん
2006/08/26(土) 21:25:24X:\P114.vbs は非実行ファイルだ(アプリケーションでない)から
%SystemRoot%\System32\WScript.exe X:\P114.vbs "%1" %*
のようにしなければならない。
0667デフォルトの名無しさん
2006/08/26(土) 22:05:200668デフォルトの名無しさん
2006/08/26(土) 22:36:15めっちゃレスが早いんですが、もしかして、上の人(>>663-664)と同一人物だったりしますか?
人気スレでもないのに、そんなに人が居るわけもないだろうし…
ありがとうございます。検索中&確認中中だったのですが、まだ解法が見つかってなかったので助かりました。
無事動作を確認いたしました。
基本を忘れていました。
( >>667 また、そーゆー事を…)
0669デフォルトの名無しさん
2006/09/25(月) 12:05:56With Wscript
.echo "hell world!"
End with
っていうのがなんで出来ないのか?と思ってやってみたら出来た。
0670デフォルトの名無しさん
2006/09/25(月) 13:27:370671デフォルトの名無しさん
2006/09/25(月) 17:26:19http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_02.html
第三パラメータのデフォルトはFALSEっぽいんだけど、第二がよくわからん。0?
0672デフォルトの名無しさん
2006/09/25(月) 20:31:340673デフォルトの名無しさん
2006/09/26(火) 00:16:52-----------------------------------------------------------
『WSHクイックリファレンス 第2版』
羽山 博 著
ISBN4-87311-309-1
定価3,990円
■ロングセラー書の改訂版。最新のWSH 5.6対応に対応して大幅改訂!■
WSH(Windowsスクリプトホスト)を使えば、従来のWindowsバッチファイル
よりも複雑なバッチ処理が可能です。OSレベルで管理されているデータにも
アクセスできるので、システム管理やネットワーク管理にも重宝します。
本書は、WSHの本格的な活用に役立つリファレンスです。Windowsスクリプト
ホストの初歩から応用までを豊富なサンプルとともにていねいに説明します。
最新のWSH5.6対応。
============================================================
0674デフォルトの名無しさん
2006/09/27(水) 12:41:250675デフォルトの名無しさん
2006/09/27(水) 19:47:33ttp://www.happy2-island.com/vbs/cafe02/capter00210.shtml
ファイルの削除を参考にしてみましたが、Cookieファイルの指定がうまくできませんでした。
0676デフォルトの名無しさん
2006/09/27(水) 19:53:47ブラウザで設定する方が早くね?
0677デフォルトの名無しさん
2006/09/27(水) 19:54:120678デフォルトの名無しさん
2006/09/27(水) 22:23:42それをタスクスケジューラに登録すればいいじゃない。
0679デフォルトの名無しさん
2006/09/28(木) 03:44:070680デフォルトの名無しさん
2006/10/01(日) 14:31:08Option Explicit
Dim A, B, C, D
A = InputBox("上底 cm","値を入力してください")
B = InputBox("下底 cm","値を入力してください")
C = InputBox("高さ cm","値を入力してください")
D = (A + B) * C / 2
MsgBox D & " 平方cm"
これだと、(A + B) のところが2桁の数字の左数字と右数字という文字の関係になってしまい、
計算式として認識してくれないんだが、A + B をどう囲えばいい?
0681デフォルトの名無しさん
2006/10/01(日) 14:42:280682デフォルトの名無しさん
2006/10/01(日) 14:44:38A,B,CそれぞれCDbl関数で括れば?
0683デフォルトの名無しさん
2006/10/01(日) 15:01:320684デフォルトの名無しさん
2006/10/01(日) 15:20:22こうすることで、解決できました。
ありが�d
0685デフォルトの名無しさん
2006/10/01(日) 23:27:59IsNumericっていう便利な関数あるんだから。
0686デフォルトの名無しさん
2006/10/02(月) 10:17:57っていうのでどうでしょ?
0687デフォルトの名無しさん
2006/10/02(月) 10:43:370688デフォルトの名無しさん
2006/10/02(月) 12:34:41どれがしゃれ?
0689デフォルトの名無しさん
2006/10/02(月) 13:10:260690デフォルトの名無しさん
2006/10/02(月) 19:40:26"""とか"^""とか"\""とか、だめ?
0691デフォルトの名無しさん
2006/10/02(月) 19:47:590692デフォルトの名無しさん
2006/10/02(月) 22:06:20VBScript の場合は、Chr() 関数を使うしかない。
JScript の場合は、シングルクォーテーションで囲っても良いし
エスケープシーケンスを使って \" と書いても良い。
"\""って発想が出てくる喪前に JScript 。
0693デフォルトの名無しさん
2006/10/02(月) 22:11:471 文字列囲い開始
2 ダブルクォーテイションのエスケープ文字
3 ダブルクォーテイション
4 文字列囲い閉じ
0695690
2006/10/03(火) 10:38:54さんくす。うまくいきました。
それ、どっかにドキュメントがありますか?
0696デフォルトの名無しさん
2006/10/03(火) 18:34:070697690
2006/10/03(火) 19:16:06そんな言い方はしてないw
0698デフォルトの名無しさん
2006/10/03(火) 19:40:06Visual Basic における文字列の基本
ttp://msdn2.microsoft.com/ja-JP/library/ms234766.aspx
0699デフォルトの名無しさん
2006/10/04(水) 08:38:01http://www.vector.co.jp/soft/win95/prog/se177026.html
CommonDialogオブジェクトの
MultiOpenFileDialog
メソッドで配列を取得するんだけどVBのVariant配列が帰ってくるんです。
それでこれをJScript上で取得したいんだけど、方法を知っている方いらっしゃらないでしょうか?
0700デフォルトの名無しさん
2006/10/04(水) 09:38:03つ ttp://hp.vector.co.jp/authors/VA017626/
0701690
2006/10/04(水) 10:35:54だんけ
0702デフォルトの名無しさん
2006/10/04(水) 16:02:230703デフォルトの名無しさん
2006/10/04(水) 17:09:48varName = new VBArray(safeArray)
0704699
2006/10/04(水) 20:24:45サンキュ! 解決した!
0705デフォルトの名無しさん
2006/10/04(水) 23:31:31現在、既に開かれているIEのテキストを取得しようと試みています。
そのため、IEのWindowのIEオブジェクトを取得しようと
思っているのですが、その取得方法が分かりません。
Set Shell = Wscript.CreateObject("Shell.Application");
//既に開かれているWindowからIEを探す処理
//IEオブジェクトからテキストを抜き出す処理
DocumentプロパティからIHTMLDocumentを取得するとよい??
大体このような流れだと思うのですが、詳細が分かりません。
どなたかご教授願います。
ちなみにIE6.0.0系を使おうと思っています。
0706デフォルトの名無しさん
2006/10/04(水) 23:55:48つSystem.Runtime.InteropServices.Marshal.GetActiveObject
流れはおおよそ間違っていないが、WSHは全く関係しない。
0707デフォルトの名無しさん
2006/10/05(木) 00:08:36素早い回答、真に有難う御座います。
この方法を使うとC#から直接COMオブジェクトを利用できると思ってイイですか?
0708デフォルトの名無しさん
2006/10/10(火) 00:17:37wShell.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
のintWindowStyleのデフォルトを調べてみました。
関連付けのコマンドラインに、%Sを指定すると、ここに、WindowStyleが入ります。
ダブルクリック 1
ドロップ 5
wShell.Run 1
CMD.EXE /C 1
START /MIN 7
START /MAX 3
でした。
0709690
2006/10/12(木) 10:42:56ってことは、1ですかね?どうもありがとうございまs
0710デフォルトの名無しさん
2006/10/12(木) 12:23:320711デフォルトの名無しさん
2006/10/13(金) 16:36:500712デフォルトの名無しさん
2006/10/18(水) 00:15:06各インターフェイスの「Microsoft ネットワーク用ファイルとプリンタ共有」
のチェックを外す事は可能でしょうか?
ローカルエリア接続が出来れば結構です。
netshやサービスのコマンドを見てみてもそれらしき、項目はありませんでした。
どなたか教えてくださいm(_ _)m
0713デフォルトの名無しさん
2006/10/18(水) 02:21:10Windows XP SP2なら
netsh firewall set service FILEANDPRINT DISABLE
とやればWindowsファイヤウォールの設定によって
同等の効果が得られそうだけど、
スクリプトでやるとしたらWMI使ったりレジストリ操作したりで面倒そう。
0714デフォルトの名無しさん
2006/10/18(水) 21:17:37ありがとうございます。
OSはWinXPSP2ですが、各インターフェイスごとというのが難しいようですね。
例えば無線LANでは有効、有線LANでは無効といった使い方をしたいんです。
0715デフォルトの名無しさん
2006/10/21(土) 13:59:22あんまり関係ないでしょうか?
0716デフォルトの名無しさん
2006/10/25(水) 01:01:48environmentを使えばいいのでしたっけ?
0717デフォルトの名無しさん
2006/10/25(水) 01:38:14これってどうなの?
0718デフォルトの名無しさん
2006/10/25(水) 11:10:370719デフォルトの名無しさん
2006/10/25(水) 19:49:07Sendinputやらkeyeventやらのモノがあるらしいが、どこ見ても難しい;;
ぶっちゃけ↓だけメモ帳にいれて.vbsにすると、実行されるじゃない?
msgBOX "aaaaa"
ま、ここまで簡単でなくとも、も少し簡単な例はないですか?
0720デフォルトの名無しさん
2006/10/26(木) 18:02:160721デフォルトの名無しさん
2006/10/26(木) 18:03:210722デフォルトの名無しさん
2006/10/26(木) 23:46:400723デフォルトの名無しさん
2006/10/28(土) 21:44:40ちなみに、WSHと同じく、Arguments で取得できたりするの?
0724デフォルトの名無しさん
2006/10/28(土) 22:42:40資料読めばわかるけど、HTA の設定をするための <HTA:APPLICATION /> タグってのがある。
これに id 属性を設定すると、設定した id を使って
スクリプト中からこのタグを表したオブジェクトにアクセスできるようになる。
<HTA:APPLICATION id="app" applicationname="MyApplication" />
こうすると、例えば JS では app.applicationName で "MyApplication" が参照できる。
んで、このオブジェクトの commandLine プロパティに起動時のコマンドライン文字列が入ってる。
調べた限りでは、引数が取得できるのはこのプロパティを通してのみで、
自動的に Arguments のように配列にわけてくれたりはしない。
0726デフォルトの名無しさん
2006/10/29(日) 00:20:36http://pc8.2ch.net/test/read.cgi/tech/1124559962/
0727デフォルトの名無しさん
2006/10/29(日) 13:09:19それに紛争している訳でもないし。
0728デフォルトの名無しさん
2006/11/02(木) 00:18:45例として、
cscript hoge.vbs foo
(hoge.vbsのモジュール的な箇所は実行しつつもfoo関数を呼び出す)
0729デフォルトの名無しさん
2006/11/02(木) 00:25:450730デフォルトの名無しさん
2006/11/02(木) 00:27:11cscript hoge.wsf //job:foo
のようにする。
0731デフォルトの名無しさん
2006/11/02(木) 00:46:500732デフォルトの名無しさん
2006/11/02(木) 00:49:01貴重な情報ありがとうございます。
どちらの方法もよさそうなのでとりあえず両方作ってみようと思います。
ありがとうございました。
0733デフォルトの名無しさん
2006/11/02(木) 00:50:37引数を渡して内部で関数を呼び出すカンジですよね。
勉強も兼ねているので色々試してみたいと思います。
ありがとうございました。
0734デフォルトの名無しさん
2006/11/02(木) 01:37:53完成したら、さらしてね
0735デフォルトの名無しさん
2006/11/03(金) 21:48:05VBscriptハッカーズマニュアルの続編の本に、
Executeメソッド内に、他のvbsプログラム(←関数の集まりを入れておく) を実行するコードを書いておくっていう裏技を紹介してた。
これで、vbsから、別のvbs内の関数を使える。
でも、呼び出されるvbsコード内に、不要なコードが入ってると、それも実行されてしまうみたいなので、
>>730 のように、wsfとか、htaから呼び出すのが、基本みたい。
0736デフォルトの名無しさん
2006/11/03(金) 21:55:39設定は出来ても、参照はできず、実行もできないみたい。
0737デフォルトの名無しさん
2006/11/04(土) 18:42:49ちゃんと実装されてないのでは
0738デフォルトの名無しさん
2006/11/04(土) 18:52:42バッチファイルの拡張子は .cmd で。
@if (0)==(0) echo off
setlocal
set me=%0
cscript.exe //nologo //e:jscript %me:.cmd=%.cmd %*
goto :eof
@end
// ここからJScript
var args = WScript.Arguments;
for (var i = 0; i < args.length; i++)
WScript.Echo(i, args(i));
※↓
http://pc8.2ch.net/test/read.cgi/tech/1123842575/100
http://pc8.2ch.net/test/read.cgi/tech/1148485555/72
0739デフォルトの名無しさん
2006/11/04(土) 19:23:080740デフォルトの名無しさん
2006/11/04(土) 21:09:03CScript.exe //NoLogo /E:JScript "%~f0"
でよい。
0741デフォルトの名無しさん
2006/11/04(土) 21:14:11CScript.exe //NoLogo //E:JScript "%~f0"
0742デフォルトの名無しさん
2006/11/04(土) 21:30:18@ECHO OFF
FOR /F "delims=" %%0 IN ('MSHTA.EXE "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();"') DO ECHO %%0
でも、これ、WSHじゃないな。
0743デフォルトの名無しさん
2006/11/04(土) 21:45:40Windows Script V5.6 ドキュメント(Script56.CHM)には載ってないよね
0744デフォルトの名無しさん
2006/11/04(土) 21:47:570745デフォルトの名無しさん
2006/11/04(土) 21:57:220746デフォルトの名無しさん
2006/11/07(火) 02:01:01バージョン情報と、〜All rights reserved の文字を
表示させないようにすることはできますか?
ご教示ください。
0747746
2006/11/07(火) 02:20:21//nologo ですね。
0748デフォルトの名無しさん
2006/11/13(月) 02:26:09WScript.ShellのRegWriteメソッドで、バイナリ値で「00 00 00 00」を書き込む方法を教えてください。
.regに書き出して結合するとかreg.exeやWMIを使うとかではなくRegWriteでの方法です。
WinXP/WSH5.6
0749デフォルトの名無しさん
2006/11/13(月) 09:10:43var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.RegWrite ("HKCU\\Software\\company\\application\\bin_value", 0, "REG_BINARY");
0750748
2006/11/13(月) 17:49:22>>749
回答ありがとうございます。しかし、それだと「00 00」になるんです。
そして第二引数をCByte(0)にすると、「00」になります。
この板の方なら、同じ0でも、「00 00」と「00 00 00 00」の意味が違うことは
解ってると思いますが、望む結果は「00 00 00 00」なんです。
WMIだとArray(0,0,0,0)を書き込むことで「00 00 00 00」になるんですが
これと同じ結果をRegWriteで行いたいと言うことです。
引き続きよろしくお願い合います。
0751デフォルトの名無しさん
2006/11/13(月) 19:20:09やってみれば簡単に理解できると思いますがJScriptなら 4バイトになるぞ。
しかし、CByte()を知ってるのにCLng()を思いつかないとは・・・
0752デフォルトの名無しさん
2006/11/13(月) 21:38:12wshでできるでしょうか。
できるならその方法を教えていただきたいです。
0753デフォルトの名無しさん
2006/11/13(月) 21:50:21Win32_Process
0754752
2006/11/13(月) 22:38:52■ このスレッドは過去ログ倉庫に格納されています