WSH(・∀・)スレッド! at TECH
WSH(・∀・)スレッド! - 暇つぶし2ch650:デフォルトの名無しさん
06/08/21 20:46:58
>>649
> どんなコマンドを書けば実行できますか?
普通に。


651:デフォルトの名無しさん
06/08/21 20:48:37
'普通に。' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

652:デフォルトの名無しさん
06/08/21 23:02:06
>>649
WshControllerというのがあるらしい。

URLリンク(msdn.microsoft.com)
とか

653:デフォルトの名無しさん
06/08/21 23:20:49
>>652
どうもです。m(__)m
WshControllerでぐぐったらいろいろと事例がでてきました。
研究してみます。

654:デフォルトの名無しさん
06/08/22 06:40:04
先輩、
WSHでデスクトップのアイコンの座標を取得できますか?

655:デフォルトの名無しさん
06/08/22 20:11:55
>>654
WScript.exeの機能だけでは出来ませんが、
そういう機能を有するCOMを作れば取得できます。
後のことは、あなたがそのCOMを作るのに使う言語のスレでどうぞ。

COM作れないなら、出来ないってことで諦めるか、勉強して作れるようになりましょう。

656:デフォルトの名無しさん
06/08/22 23:45:56
COM作れば、そりゃ何でも出来るわな。

657:デフォルトの名無しさん
06/08/23 00:12:11
COM作れば、億万長者にもなれますか?

658:デフォルトの名無しさん
06/08/23 06:08:54
COMMAND.COMをつくったゲイツくんはおかねもちになりました。

659:デフォルトの名無しさん
06/08/24 22:52:51
Excel.Run "Macro1"

660:デフォルトの名無しさん
06/08/26 19:08:32
>>639
>>641

でも、一旦EXE化してしまうと、そのファイルを直接メモ帳で修正…って作業が、不可能になる。
使いながら、どんどんVersion UPさせて行くようなスクリプトがWSH/VBSは、特に多いから、メンテ上不利かも。

という事で、VBを持っていれば、Shell()関数で、同じフォルダに在るAutoexec.vbs を自動で読みに行くEXEを
作ってしまうと良い感じです。呼び出す時はEXEでありながら、なおかつ、メンテもしやすい環境になる。

Autoexec.vbs には、VBで作ったEXEファイルから、Drag&Dropしたファイルのフルパス情報を渡すようにしとけば、
ファイルとEXEの関連付け設定をした場合にも、実際には、VBS内で定義したアプリケーションで開いてくれる。

テキストファイルをランダムで、メモ帳/EmEditor/TeraPad/秀丸 に送る環境とかも、簡単にできるし、メンテも楽です。


そう言えば、昔、メモ帳トラッパー.exe ってアプリがあったのを思い出した…




661:デフォルトの名無しさん
06/08/26 19:38:47
>>660
ごめん、そこまでしてEXE化する理由が本当にわかんない。
なぜスクリプトファイルを直に使わないの?

662:デフォルトの名無しさん
06/08/26 20:25:11
>>661
VBSファイルだと、Drag&Dropはできても、Wクリックしたファイルの関連付けはできないですよね。
>>660は、そういう問題に関しての、回避例として簡単&便利かと思って。

VBSは、他の技術と組合わせて使う事で、更に便利になるツールだから、逆にスクリプトとして使う事だけにこだわらなくてもいいと思う。



663:デフォルトの名無しさん
06/08/26 20:31:45
関連付けは普通にできる。

664:デフォルトの名無しさん
06/08/26 20:52:59
> VBSファイルだと、Drag&Dropはできても、Wクリックしたファイルの関連付けはできないですよね。
いいえ出来ますよ。君が無知なのはどうでもいいが、勝手に出来ないことにしないように。

> そういう問題に関しての、回避例として簡単&便利かと思って。
わざわざスクリプトのトラッパーなんか作るより、関連付けの仕様を覚えて使いこなす方が
10倍簡単で100倍便利で1000倍クールです。

> VBSは、他の技術と組合わせて使う事で、更に便利になるツールだから、逆にスクリプトとして使う事だけにこだわらなくてもいいと思う。
それはスクリプトとして使いこなしてる人が言うと納得できる台詞だが、君レベルの人が言うと滑稽なだけ。

665:デフォルトの名無しさん
06/08/26 21:10:52
>>663-664 そうは言っても、
Win2K SP4だけど、
ファイルタイプの編集から、アクションを実行するアプリケーションで、
X:\P114.vbs "%1"を入れても、

指定されたアプリケーションが見つかりませんでした。
ファイル名とパスが正しいかどうか確かめてください。

なんて言われるだけだし。
自分の持ってる知識を組合せて実現して行くのが、その人にとっての一番の
解法だと思う。別に俺の方法が間違ってるってわけでもないもんねー

知ってるか知らないかだけで、そんなに居丈高になれる奴のほうが、気がおかしいんじゃないの?


とは言え、ちょっと恥ずかしいから、ググってくるか…
次の話進んでて構わないよ。



666:デフォルトの名無しさん
06/08/26 21:25:24
>>665
X:\P114.vbs は非実行ファイルだ(アプリケーションでない)から
%SystemRoot%\System32\WScript.exe X:\P114.vbs "%1" %*
のようにしなければならない。

667:デフォルトの名無しさん
06/08/26 22:05:20
スクリプトファイルを動かしてるインタプリタの存在も知らなかったのか

668:デフォルトの名無しさん
06/08/26 22:36:15
>>666
めっちゃレスが早いんですが、もしかして、上の人(>>663-664)と同一人物だったりしますか?
人気スレでもないのに、そんなに人が居るわけもないだろうし…

ありがとうございます。検索中&確認中中だったのですが、まだ解法が見つかってなかったので助かりました。
無事動作を確認いたしました。

基本を忘れていました。



>>667 また、そーゆー事を…)



669:デフォルトの名無しさん
06/09/25 12:05:56
VBScriptってVBなんだから
With Wscript
.echo "hell world!"
End with

っていうのがなんで出来ないのか?と思ってやってみたら出来た。



670:デフォルトの名無しさん
06/09/25 13:27:37
そういうのはチラシの裏に書け

671:デフォルトの名無しさん
06/09/25 17:26:19
WshShell,RUNの第二、第三パラメーターのデフォルト値って いくつっすか?
URLリンク(www.atmarkit.co.jp)
第三パラメータのデフォルトはFALSEっぽいんだけど、第二がよくわからん。0?


672:デフォルトの名無しさん
06/09/25 20:31:34
まあ普通に考えると 5 (SW_SHOW) だと思うよ

673:デフォルトの名無しさん
06/09/26 00:16:52
今ではまったく使い物にならなくなった第1版が大幅改訂するらしい


-----------------------------------------------------------

       『WSHクイックリファレンス 第2版』
                  
             羽山 博 著
            ISBN4-87311-309-1
             定価3,990円

■ロングセラー書の改訂版。最新のWSH 5.6対応に対応して大幅改訂!■

WSH(Windowsスクリプトホスト)を使えば、従来のWindowsバッチファイル
よりも複雑なバッチ処理が可能です。OSレベルで管理されているデータにも
アクセスできるので、システム管理やネットワーク管理にも重宝します。
本書は、WSHの本格的な活用に役立つリファレンスです。Windowsスクリプト
ホストの初歩から応用までを豊富なサンプルとともにていねいに説明します。
最新のWSH5.6対応。

============================================================

674:デフォルトの名無しさん
06/09/27 12:41:25
HSPで中空扇形を書いて中も塗りつぶしたいのですが、どうすりゃいいっすか?


675:デフォルトの名無しさん
06/09/27 19:47:33
いろいろなサイトを閲覧して、ローカルPCに溜まったCookieファイルを、VBScriptで定期的に自動消去する処理は、どうすれば良いでしょうか?

URLリンク(www.happy2-island.com)
ファイルの削除を参考にしてみましたが、Cookieファイルの指定がうまくできませんでした。


676:デフォルトの名無しさん
06/09/27 19:53:47
>675
ブラウザで設定する方が早くね?

677:デフォルトの名無しさん
06/09/27 19:54:12
うまくできないとは?

678:デフォルトの名無しさん
06/09/27 22:23:42
別にWSHでやらなくても、既存のソフトが山ほどあるような。
それをタスクスケジューラに登録すればいいじゃない。

679:デフォルトの名無しさん
06/09/28 03:44:07
スレリンク(hp板:214番)


680:デフォルトの名無しさん
06/10/01 14:31:08
台形の面積を求めたいんだけど、

Option 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 をどう囲えばいい?

681:デフォルトの名無しさん
06/10/01 14:42:28
CInt とか CCur とか

682:デフォルトの名無しさん
06/10/01 14:44:38
>>680
A,B,CそれぞれCDbl関数で括れば?

683:デフォルトの名無しさん
06/10/01 15:01:32
A か B どちらか一方を数値にすればおk

684:デフォルトの名無しさん
06/10/01 15:20:22
A = CDbl(InputBox("上底 cm","値を入力してください"))

こうすることで、解決できました。
ありが㌧

685:デフォルトの名無しさん
06/10/01 23:27:59
例外処理きちんとしようぜ。
IsNumericっていう便利な関数あるんだから。

686:デフォルトの名無しさん
06/10/02 10:17:57
A=A+0
っていうのでどうでしょ?


687:デフォルトの名無しさん
06/10/02 10:43:37
洒落で言ってるの?

688:デフォルトの名無しさん
06/10/02 12:34:41
>>687
どれがしゃれ?


689:デフォルトの名無しさん
06/10/02 13:10:26
いや、君に聞いてるんだけど。

690:デフォルトの名無しさん
06/10/02 19:40:26
"って、chr(34)で入れるしかないですか?
"""とか"^""とか"\""とか、だめ?


691:デフォルトの名無しさん
06/10/02 19:47:59
WScript.Echo('"');

692:デフォルトの名無しさん
06/10/02 22:06:20
>>690
VBScript の場合は、Chr() 関数を使うしかない。
JScript の場合は、シングルクォーテーションで囲っても良いし
エスケープシーケンスを使って \" と書いても良い。

"\""って発想が出てくる喪前に JScript 。

693:デフォルトの名無しさん
06/10/02 22:11:47
""""

1 文字列囲い開始
2 ダブルクォーテイションのエスケープ文字
3 ダブルクォーテイション
4 文字列囲い閉じ

694:680
06/10/03 08:39:28
>>685 IsNumericの存在を始めてしったが、使いこなせないのが鬱 Or=z__
修行に出るわ

695:690
06/10/03 10:38:54
>>693
さんくす。うまくいきました。
それ、どっかにドキュメントがありますか?


696:デフォルトの名無しさん
06/10/03 18:34:07
ソースだせやゴルア!ってこと?

697:690
06/10/03 19:16:06
>>696
そんな言い方はしてないw


698:デフォルトの名無しさん
06/10/03 19:40:06
>>690
Visual Basic における文字列の基本
URLリンク(msdn2.microsoft.com)


699:デフォルトの名無しさん
06/10/04 08:38:01
SeraphyScriptTools を使って、GUI画面作っているのですが…
URLリンク(www.vector.co.jp)

CommonDialogオブジェクトの
MultiOpenFileDialog
メソッドで配列を取得するんだけどVBのVariant配列が帰ってくるんです。

それでこれをJScript上で取得したいんだけど、方法を知っている方いらっしゃらないでしょうか?



700:デフォルトの名無しさん
06/10/04 09:38:03
>>699
URLリンク(hp.vector.co.jp)


701:690
06/10/04 10:35:54
>>698
だんけ


702:デフォルトの名無しさん
06/10/04 16:02:23
URLリンク(d.hatena.ne.jp)


703:デフォルトの名無しさん
06/10/04 17:09:48
>>699
varName = new VBArray(safeArray)


704:699
06/10/04 20:24:45
>703
サンキュ! 解決した!

705:デフォルトの名無しさん
06/10/04 23:31:31
初心者です。初めて質問します。C#からWshを使おうと思っています。

現在、既に開かれているIEのテキストを取得しようと試みています。
そのため、IEのWindowのIEオブジェクトを取得しようと
思っているのですが、その取得方法が分かりません。

Set Shell = Wscript.CreateObject("Shell.Application");
//既に開かれているWindowからIEを探す処理

//IEオブジェクトからテキストを抜き出す処理
DocumentプロパティからIHTMLDocumentを取得するとよい??

大体このような流れだと思うのですが、詳細が分かりません。
どなたかご教授願います。

ちなみにIE6.0.0系を使おうと思っています。

706:デフォルトの名無しさん
06/10/04 23:55:48
>>705
つSystem.Runtime.InteropServices.Marshal.GetActiveObject
流れはおおよそ間違っていないが、WSHは全く関係しない。

707:デフォルトの名無しさん
06/10/05 00:08:36
>706
素早い回答、真に有難う御座います。
この方法を使うとC#から直接COMオブジェクトを利用できると思ってイイですか?

708:デフォルトの名無しさん
06/10/10 00:17:37
>>671
wShell.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
のintWindowStyleのデフォルトを調べてみました。

関連付けのコマンドラインに、%Sを指定すると、ここに、WindowStyleが入ります。

ダブルクリック 1
ドロップ 5
wShell.Run 1
CMD.EXE /C 1
START /MIN 7
START /MAX 3

でした。


709:690
06/10/12 10:42:56
>>708
ってことは、1ですかね?どうもありがとうございまs


710:デフォルトの名無しさん
06/10/12 12:23:32
10 ではないだろうか

711:デフォルトの名無しさん
06/10/13 16:36:50
10じゃなくて1のようです。

712:デフォルトの名無しさん
06/10/18 00:15:06
WindowsのGUIからではなくコマンドまたはスクリプトを用いて
各インターフェイスの「Microsoft ネットワーク用ファイルとプリンタ共有」
のチェックを外す事は可能でしょうか?
ローカルエリア接続が出来れば結構です。
netshやサービスのコマンドを見てみてもそれらしき、項目はありませんでした。
どなたか教えてくださいm(_ _)m

713:デフォルトの名無しさん
06/10/18 02:21:10
>>712
Windows XP SP2なら
netsh firewall set service FILEANDPRINT DISABLE
とやればWindowsファイヤウォールの設定によって
同等の効果が得られそうだけど、
スクリプトでやるとしたらWMI使ったりレジストリ操作したりで面倒そう。

714:デフォルトの名無しさん
06/10/18 21:17:37
>>713
ありがとうございます。
OSはWinXPSP2ですが、各インターフェイスごとというのが難しいようですね。
例えば無線LANでは有効、有線LANでは無効といった使い方をしたいんです。


715:デフォルトの名無しさん
06/10/21 13:59:22
うろおぼえなのですが、マウスの右クリックと同じ動作をさせるInvokeとかなんとかっていう機能があったような。

あんまり関係ないでしょうか?

716:デフォルトの名無しさん
06/10/25 01:01:48
wshでセットした変数をバッチスクリプトで使うには
environmentを使えばいいのでしたっけ?

717:デフォルトの名無しさん
06/10/25 01:38:14
>>673
これってどうなの?

718:デフォルトの名無しさん
06/10/25 11:10:37
全然ダメ

719:デフォルトの名無しさん
06/10/25 19:49:07
sendkeysは左右のshiftとctrl(各々個別に)が使い分けられない事を知った。
Sendinputやらkeyeventやらのモノがあるらしいが、どこ見ても難しい;;

ぶっちゃけ↓だけメモ帳にいれて.vbsにすると、実行されるじゃない?
msgBOX "aaaaa"

ま、ここまで簡単でなくとも、も少し簡単な例はないですか?

720:デフォルトの名無しさん
06/10/26 18:02:16
ようやくHTAの引数の読み込み方が分かった…

721:デフォルトの名無しさん
06/10/26 18:03:21
シマタ誤爆。

722:デフォルトの名無しさん
06/10/26 23:46:40
( ´_ゝ`)フーン

723:デフォルトの名無しさん
06/10/28 21:44:40
>>720
ちなみに、WSHと同じく、Arguments で取得できたりするの?

724:デフォルトの名無しさん
06/10/28 22:42:40
>>723
資料読めばわかるけど、HTA の設定をするための <HTA:APPLICATION /> タグってのがある。
これに id 属性を設定すると、設定した id を使って
スクリプト中からこのタグを表したオブジェクトにアクセスできるようになる。

<HTA:APPLICATION id="app" applicationname="MyApplication" />

こうすると、例えば JS では app.applicationName で "MyApplication" が参照できる。
んで、このオブジェクトの commandLine プロパティに起動時のコマンドライン文字列が入ってる。
調べた限りでは、引数が取得できるのはこのプロパティを通してのみで、
自動的に Arguments のように配列にわけてくれたりはしない。

725:723
06/10/29 00:15:11
>>724
丁寧にありがとう。

726:デフォルトの名無しさん
06/10/29 00:20:36
誤爆っていってんだから紛争地域にいってやれよ
スレリンク(tech板)


727:デフォルトの名無しさん
06/10/29 13:09:19
いや向こうのスレからネタ拾ってきたんでしょ。
それに紛争している訳でもないし。

728:デフォルトの名無しさん
06/11/02 00:18:45
外部からVBスクリプトで書かれた関数を呼び出すにはどうしたらよいでしょうか?
例として、
cscript hoge.vbs foo
(hoge.vbsのモジュール的な箇所は実行しつつもfoo関数を呼び出す)

729:デフォルトの名無しさん
06/11/02 00:25:45
モジュール的な箇所にfoo関数を呼び出すコードを書く

730:デフォルトの名無しさん
06/11/02 00:27:11
.vbs でなく .wsf にVBSを書くようにして
cscript hoge.wsf //job:foo
のようにする。

731:デフォルトの名無しさん
06/11/02 00:46:50
コマンドラインの第1引数に少し文字列付け足して、Evalに渡す。


732:デフォルトの名無しさん
06/11/02 00:49:01
>>729,730
貴重な情報ありがとうございます。
どちらの方法もよさそうなのでとりあえず両方作ってみようと思います。
ありがとうございました。

733:デフォルトの名無しさん
06/11/02 00:50:37
>>731
引数を渡して内部で関数を呼び出すカンジですよね。
勉強も兼ねているので色々試してみたいと思います。
ありがとうございました。

734:デフォルトの名無しさん
06/11/02 01:37:53
>>733
完成したら、さらしてね

735:デフォルトの名無しさん
06/11/03 21:48:05
>>728
VBscriptハッカーズマニュアルの続編の本に、
Executeメソッド内に、他のvbsプログラム(←関数の集まりを入れておく) を実行するコードを書いておくっていう裏技を紹介してた。
これで、vbsから、別のvbs内の関数を使える。

でも、呼び出されるvbsコード内に、不要なコードが入ってると、それも実行されてしまうみたいなので、
>>730 のように、wsfとか、htaから呼び出すのが、基本みたい。




736:デフォルトの名無しさん
06/11/03 21:55:39
WshShortcut オブジェクトのRelativePathってどう使うんでしょう?
設定は出来ても、参照はできず、実行もできないみたい。


737:デフォルトの名無しさん
06/11/04 18:42:49
>>736
ちゃんと実装されてないのでは

738:デフォルトの名無しさん
06/11/04 18:52:42
バッチファイルにJScriptを埋め込む例(※参照)。
バッチファイルの拡張子は .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));


※↓
スレリンク(tech板:100番)
スレリンク(tech板:72番)

739:デフォルトの名無しさん
06/11/04 19:23:08
そんな枯れた情報をいきなり書かれてもねぇw

740:デフォルトの名無しさん
06/11/04 21:09:03
しかも、情報が劣化してる。変なことせずとも、
CScript.exe //NoLogo /E:JScript "%~f0"
でよい。


741:デフォルトの名無しさん
06/11/04 21:14:11
あれ、//Eでなくても通るのね。訂正。
CScript.exe //NoLogo //E:JScript "%~f0"


742:デフォルトの名無しさん
06/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じゃないな。

743:デフォルトの名無しさん
06/11/04 21:45:40
FileSystemObject ObjectのGetStandardStreamって日本語版の
Windows Script V5.6 ドキュメント(Script56.CHM)には載ってないよね

744:デフォルトの名無しさん
06/11/04 21:47:57
MSDNライブラリ参照


745:デフォルトの名無しさん
06/11/04 21:57:22
MSDN見ても日本語では載ってないから英語版のscript56.chmでいいや

746:デフォルトの名無しさん
06/11/07 02:01:01
wscript実行時に窓に表示される
バージョン情報と、~All rights reserved の文字を
表示させないようにすることはできますか?
ご教示ください。

747:746
06/11/07 02:20:21
すいません。解決しました。
//nologo ですね。

748:デフォルトの名無しさん
06/11/13 02:26:09

WScript.ShellのRegWriteメソッドで、バイナリ値で「00 00 00 00」を書き込む方法を教えてください。
.regに書き出して結合するとかreg.exeやWMIを使うとかではなくRegWriteでの方法です。
WinXP/WSH5.6


749:デフォルトの名無しさん
06/11/13 09:10:43
>>748
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.RegWrite ("HKCU\\Software\\company\\application\\bin_value", 0, "REG_BINARY");


750:748
06/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で行いたいと言うことです。
引き続きよろしくお願い合います。

751:デフォルトの名無しさん
06/11/13 19:20:09
>>750
やってみれば簡単に理解できると思いますがJScriptなら 4バイトになるぞ。

しかし、CByte()を知ってるのにCLng()を思いつかないとは・・・

752:デフォルトの名無しさん
06/11/13 21:38:12
イメージ名で指定して、そのプロセスが動いているかどうか判定したいのですが、
wshでできるでしょうか。
できるならその方法を教えていただきたいです。

753:デフォルトの名無しさん
06/11/13 21:50:21
WMI 使えば出来るな。
Win32_Process

754:752
06/11/13 22:38:52
ありがとうございます


755:デフォルトの名無しさん
06/11/15 14:23:49
スレリンク(charaneta2板)

756:デフォルトの名無しさん
06/11/17 20:55:41
Windows PowerShell Version 1.0

URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
ell/default.mspx

757:デフォルトの名無しさん
06/11/18 00:22:30
VBscriptもしくはVB6.0でバイナリデータのファイル操作ってできますか?

758:デフォルトの名無しさん
06/11/18 00:25:41
っOpen

759:デフォルトの名無しさん
06/11/19 00:20:45
IEを起こして取れますが、遅いので、
Set Document=CreateObject("htmlfile")
Document.write "<input type=text id=xxx>"
Document.all.xxx.value="ほげほげ"
MsgBox Document.all.xxx.scrollWidth
で、文字列の表示幅を取ろうとしたのですが、0しか返って来ません。
"htmlfile"は、ウィンドウを持たないので、~Widthなどは取れないってことでしょうか?


760:デフォルトの名無しさん
06/11/19 00:49:40
>>759
<INPUT>エレメントの持つプロパティで、
それっぽいのは offsetWidth かな?
scrollWidthやめて、offsetWidth にしたらどう?


761:デフォルトの名無しさん
06/11/19 18:13:52
VBscriptで

A=150

Dim B(A)
Dim C(A)
Dim D(A)

というふうに配列宣言時、添え字の数字に変数を使いたいのですが、エラーになります。

解決方法を教えて下さい。

762:デフォルトの名無しさん
06/11/19 18:33:39
Dim A
A = 150

ReDim B(A)
ReDim C(A)
ReDim D(A)


763:デフォルトの名無しさん
06/11/19 20:52:54
>>762
俺もそう思ったw

764:761
06/11/19 21:53:39
>>762
そうやってもエラーになります

765:761
06/11/19 21:56:40
すいません勘違いでした。無事できました。

766:デフォルトの名無しさん
06/11/21 22:30:28
StrCnvさえ使えたら

767:デフォルトの名無しさん
06/11/21 22:49:45
うちではVBSで使ってるよ。>>VBランタイム内のStrCnv

768:デフォルトの名無しさん
06/11/21 23:24:09
>>767
kwsk

769:デフォルトの名無しさん
06/11/23 00:32:32
>>766
>StrCnvさえ使えたら
なにがしたいの?なくても困ること特にないけど。

770:デフォルトの名無しさん
06/11/23 11:45:18
そんなこと言ったらWSH自体使わなくても(r

771:デフォルトの名無しさん
06/11/23 15:48:49
>>767
VBで、VBの内部オブジェクトを公開するCOMを作ったことあるけど、
MSはそういう使い方保証してないし、開発ライセンスのないひとに
そのCOMを提供するのはどうかなというのと、
どうしても必要ということがなくてやめた。
>>766
VB持ってたら作ってみたら。
EXCELなど持ってたらVBAでも同様のことできるのでは。


772:デフォルトの名無しさん
06/11/25 19:05:25
直接使えばいいのに

773:デフォルトの名無しさん
06/11/29 15:52:47
子供の為にPCの起動を監視する(起動したら掲示板に「起動しました」と書き込む)スクリプトを書いているのですが、
レジストリのローカルマシーン(都合があって)の方にスタートアップを登録したのですが、うまく起動しないことがあります。
通常の起動なら大丈夫なのですが、スタートアップだと1/5ぐらいの確立でしか起動してくれないです・・・
xmlhttpを使ってます。

774:デフォルトの名無しさん
06/11/29 16:21:55
>>773
コード貼り付けてよ

775:デフォルトの名無しさん
06/11/29 17:02:41
>>773
ネットワークがUPしてないんだろ。1分くらいしてから処理開始しなよ。
あとそれたとえ相手が自分の子供でも犯罪行為だから。

こんな人間がいるとは、リアルで気分悪くなった。

776:デフォルトの名無しさん
06/11/29 17:20:18
>>773
イベントビューアでログ見れば済む事を
なぜわざわざ掲示板に書かせるんだね?

777:デフォルトの名無しさん
06/11/29 20:11:20
ヒント: 自分の子供じゃない

778:デフォルトの名無しさん
06/11/29 20:52:30
ヒント: 子供云々は口実で、本当はストーカー行為目的。

779:デフォルトの名無しさん
06/11/29 22:25:06
一応WScript.sleep で120000ミリ秒待機するようにしてます
犯罪行為になるならば、HD上にログに残す方法でやるしかないんでしょうね
確かにキーロガーとか仕込めばストーカーですね

780:デフォルトの名無しさん
06/11/29 22:28:53
だからイベントビューア

781:デフォルトの名無しさん
06/11/30 18:36:23
きっとお兄さんたちに人気がありそうな容貌をした小学生のお子さんなんだろう
だとしたらそこまでして監視したいという気持ちもわかる

がやっぱ気分悪いな

782:デフォルトの名無しさん
06/11/30 21:08:54
ここにいるのはお子様ばかりか?
俺はすべてのファイルを監査対象にして、何をいつ触ったかまで細かくフルロギング!
もちろん監査ログは5分おきに携帯へ逐一転送。
万一の場合にはリモートから即座にシャットダウン可能です。
まあ、愛する我が子を危険なインターネットから守るにはこのぐらいして当然ですよね。

783:デフォルトの名無しさん
06/11/30 21:12:38
>>782
まだまだヒヨっ子だなw

784:デフォルトの名無しさん
06/11/30 21:44:29
楽しい釣り場でつね

785:デフォルトの名無しさん
06/11/30 22:06:11
うん。
でも釣る側の俺は楽しいが、
釣られる奴等は悔しがってるんだろうなw

786:デフォルトの名無しさん
06/12/06 04:02:33
統合アーカイバのKBAってちゃんと動く?

Path = "C:\\DATA\\PROG\\WSH\\KBA\\test.zip"
Set UnZip = CreateObject("KBA.UNZIP")
Result = UnZip.FileCount(Path)
WScript.Echo Result
Result = "" & UnZip.OpenArc(Path)
WScript.Echo Result

こういうのをやると、FileCount()は動くのに、OpenArc()は動かない。
OpenArc()が動かないとファイル情報系のメソッドが全く使えない。

787:786
06/12/07 02:09:01
ProgIDが"KBA.UNZIP"だからUNZIP32.DLLだけあればいいかと思ったけど違った・・・orz

788:デフォルトの名無しさん
06/12/15 17:09:58
Windows板で質問して、WSHなら出来そうって事でやってきました。

やりたい事は、
ショートカットなどをダブルクリックするごとに、
 1)タスクバーを自動的に隠す設定にする。
 2)1を解除。
というものです。

WSH無しでもいけそうならお教えいただけるとありがたいです。

ググってみたのですが、WSH関係のサイトにタスクバーについて
の処理というのが見つけられず、困っている次第です。

よろしくおながいします。

789:デフォルトの名無しさん
06/12/15 17:43:51
SHAppBarMessage 使うアプリを書いてそれを呼び出す

790:デフォルトの名無しさん
06/12/15 18:01:16
メニューでやってることを、SendKeysでやらせる。
or
レジストリの変更箇所を見つけて、RegWriteで書き換える。+ 即反映の何か。

791:こんな時間まで何やってんだろ俺.wsf
06/12/16 04:10:35
<job>
<script language="JScript">
function deRLE(src){
return src.replace(/\s/g,"").replace(/(.)\.(.)/g,function($0,$1,$2){
return Array(parseInt($2,35)+(($2<"A")?56:($2<"a")?-6:20)).join($1);});}
</script>
<script language="VBScript">
Set fso=CreateObject("Scripting.FileSystemObject")
path=fso.BuildPath(fso.GetSpecialFolder(2),"SwHide.exe")
Set elm=CreateObject("Microsoft.XMLDOM").createElement("data")
elm.DataType="bin.base64":elm.text=deRLE(getResource("bin"))
With CreateObject("ADODB.Stream")
.Open:.Type=1:.Write elm.NodeTypedValue:.SaveToFile path:.Close
End With
CreateObject("WScript.Shell").Run path,1,True
WScript.Sleep 1000:fso.DeleteFile path
</script>
<resource id="bin">
TVqQAAMA.BEA.B//8AALgA.GQA.syA.C4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm
5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJA.HvsN/Fa9GxlmvRsZZr0bGWqN7slm7RsZZr0
bCWadGxlkwXw5Zp0bGWTBfJlmrRsZZSaWNoa9GxlgA.RBQRQAATAEDADWwgkUA.HOAAAwELA
QgAAAIA.BEA.GBA.CQA.BIA.CBA.BQA.CgAABA.HEA.HBA.CBA.GIAAAQAABAAABA.DEAAAE
A.FBA.MBAgAAA8A.9A.tIAAAEA.hC50ZXh0A.BRQA.CQA.CgA.BQA.PCAAAGAucmRhdGEAAJ
YA.CIA.CIA.BGA.PBAAABALmRhdGEA.BEA.CDA.bQAAAwA.9A.9A.9A.9A.9A.9A.9A.9A.9
A.dIPsJFaLNQggQACNRCQEUGoEx0QkDCQAAADHRCQQA.CP/WD7bIg/H/jVQkBIPhAVKDyQJq
ColMJCz/1moA/xUAIEAAXgA.9A.9A.9A.9A.9A.9A.9A.9A.9A.LXCA.FB4IA.FEwgA.KGog
A.BIAAAVCA.LiiA.BggA.aFwgA.FeCA.FC5AEV4aXRQcm9jZXNzAEtFUk5FTDMyLmRsbAAAd
gBTSEFwcEJhck1lc3NhZ2UAU0hFTEwzMi5kbGwA.9A.9A.9A.9A.9A.9A.9A.h=
</resource>
</job>

792:デフォルトの名無しさん
06/12/16 04:26:22
>>791 のバイナリ部分も一応書いとくね

#include <windows.h>
#include <shellapi.h>
void WINAPI WinMainCRTStartup()
{
APPBARDATA abData;
abData.cbSize = sizeof(APPBARDATA);
abData.hWnd = NULL;
if (SHAppBarMessage(ABM_GETSTATE, &abData) & ABS_AUTOHIDE) {
abData.lParam = ABS_ALWAYSONTOP;
} else {
abData.lParam = ABS_AUTOHIDE | ABS_ALWAYSONTOP;
}
SHAppBarMessage(ABM_SETSTATE, &abData);
ExitProcess(0);
}

793:デフォルトの名無しさん
06/12/16 04:39:04
マジで何やってるんだかw

794:デフォルトの名無しさん
06/12/16 10:27:55
何これ?

795:デフォルトの名無しさん
06/12/16 11:30:57
おもしろいけど
実行ファイル生成するんだったら
次回からそれ実行した方がはやいよなww

796:デフォルトの名無しさん
06/12/16 14:04:03
>>791
せめて.NETかPowerShellにならん?


797:デフォルトの名無しさん
06/12/16 14:11:46
>>791 5行目訂正
parseInt($2,35) → parseInt($2,36)
それと>>792のコード自体がXPじゃないと動作しないみたいですね。

データがほとんど0(A)だったんで適当にRLE圧縮してみたんだけど
もっとかっこいい圧縮スクリプトって無いかな?かな?

798:デフォルトの名無しさん
06/12/16 14:14:15
>>796
なぜ、このスレで聞くww

799:デフォルトの名無しさん
06/12/16 14:20:25

WSCで定数を公開する方法を教えてください。
現在は読み取り専用のプロパティで固定数を返してますが
FileSystemObjectのForReadingやADODB.StreamのadTypeBinaryのように
インスタンスのメンバとしてではなく、そのまま書けば使えるようにしたいのです。



800:799
06/12/16 14:20:47
▼public要素(公開メンバ)
<public>
  <method name="hoge">
    <parameter name="arg"/>
  </method>
  <property name="foo">
    <get/>
  </property>
  <property name="bar">
  以下略

▼WSCスクリプト
Public Sub hoge(arg)

End Sub
Public Function get_foo
  get_foo = 1
End Function
Public Function get_bar
  get_foo = 2
End Function
以下略

▼呼び出し側スクリプト
Call obj.hoge(obj.foo)


現在こんな感じですが、呼び出し側で
Call obj.hoge(foo) で同じ効果が出せるようにしたいのです。
もちろん呼び出し側で定数宣言しろとかは無しで。
FileSystemObjectやADODB.Streamも宣言無しで定数を使えるので、
それと同じようにしたいのです。

801:デフォルトの名無しさん
06/12/16 15:59:58
WSC側で、JScriptで、
function xconst(Me){
Me['xxx']=111;
Me['yyy']=222;
}
呼び出し側で、VBScriptで、
wsc.xconst Me
とすれば、xxxやyyyが使えるようになる。
JScriptなら、wsc.xconst(this);


802:799
06/12/16 16:21:03
>>801
回答ありがとうございます。しかし、そういう事ではなくて、先にも書いたように
FileSystemObjectやADODB.Streamなんかの定数と同じように使いたいんです。例えば
<job>
<reference object="Scripting.FileSystemObject"/>
<script language="VBScript">
WScript.Echo CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.ScriptFullName, ForReading).ReadAll
</script>
</job>
という感じでForReadingが使えるように、呼び出し側のスクリプトで何かするのではなく
reference要素の設定だけで定数を使えるようにしたいのです。
reference要素の設定をしなければFileSystemObjectやADODB.Streamの定数も宣言無しには使えないので、
「FileSystemObjectやADODB.Streamと同じように」というのは「reference要素の設定だけで」という意味で使ってます。

引き続きよろしくお願いします。


803:デフォルトの名無しさん
06/12/16 16:32:35
>>802
>引き続きよろしくお願いします。
やっぱりな。そう来ると思ったよ。
スレ違い。MSに言え。

804:デフォルトの名無しさん
06/12/16 16:40:56
wscじゃむりなんじゃね?

つーかFileSystemObjectのForReadingってただの整数で定数じゃないんじゃ?
adTypeBinaryは定数ったってCOMの実装でenumなんでしょ

805:799
06/12/16 16:51:36
>>803
お手数お掛けしました。
今後は他の方の回答を待ちますので私のことは無視してください。

>>804
リファレンスには定数と書いてあったので、定数だと思い込んでました。
どちらにしてもForReadingと同じ使い方が出来れば良いだけなのですが。

「無理なのでは?」という意見をいただけるのもありがたいのですが、
失礼ながら他の方が知ってる可能性もあるので、もうしばらく待ちます。


806:デフォルトの名無しさん
06/12/16 16:52:28
可読性にこだわるなら数値のかわりに文字列を使えばいいじゃない。

807:デフォルトの名無しさん
06/12/16 17:04:50
>>799
無視できるように、コテハン使ってください。
例えば、
「引き続きよろしくお願いします。」
「木に縁(よ)りて魚を求む」

808:デフォルトの名無しさん
06/12/16 17:12:34
徳川埋蔵金を信じている人に何を言っても無駄ですよ。>みなさん


809:デフォルトの名無しさん
06/12/16 17:13:11
ハンドルじゃないけど名前欄に799って入れてるんだからこのスレ指定で799という名前を消せばいいじゃん
スレ単位での無視条件設定できない糞専ブラ使ってるとかならそれはそういうソフト選んだ自分の責任だ
というか嫌味なコテ押しつけたいだけか?

810:デフォルトの名無しさん
06/12/16 17:23:39
過疎スレで熱くなるなよ

811:デフォルトの名無しさん
06/12/16 17:29:20
いいえ、今後は、でなく、最初から無視したいから、スレッドを超えたコテハンにして。
と言ってるのですよ。参考、検索「引き続きよろしくお願いします。 」
だって、どんな答えもそれは私の求めているものとは違う、というだけなんですよ。
最初から、条件を明示すればよいのに。
「代替方法の提案や出来ないという回答は不要」というふうに。

812:デフォルトの名無しさん
06/12/16 17:40:27
この子、どうしたんだろう?

813:デフォルトの名無しさん
06/12/16 18:49:51
>>811
あなたを無視したいから「スレッドを超えたコテハン」とやらにして。


って煽って欲しいんじゃない?

814:デフォルトの名無しさん
06/12/16 18:53:59
>>811
あなたを無視したいから「スレッドを超えたコテハン」とやらにして。

815:デフォルトの名無しさん
06/12/16 20:21:09
>>811
あなたを無視したいから「スレッドを超えたコテハン」とやらにして。

816:デフォルトの名無しさん
06/12/16 20:30:03
次のWSHのネタをどうぞ


817:デフォルトの名無しさん
06/12/16 20:39:12
WSHで811みたいな根暗で陰気な奴を消す方法を教えてください

818:デフォルトの名無しさん
06/12/16 21:06:02
そういうCOM作って呼び出しなさい。

819:デフォルトの名無しさん
06/12/16 21:28:47
自分では上から見下ろし、バカな質問者を叩く側だと思ってたのに
何を間違えたか皆から見下され、叩かれる立場になってしまった811(´・ω・) カワイソス

820:デフォルトの名無しさん
06/12/16 21:40:07
どこが?上から見下ろし、バカな質問者を叩く側だと見えんけど

821:デフォルトの名無しさん
06/12/16 21:49:31
最初っから上に居るようには見えないってか

822:デフォルトの名無しさん
06/12/16 21:59:49
見方がおかしいのかなぁ
スレリンク(win板:103-番)
と同じ流れだと言ってるんでしょ

823:デフォルトの名無しさん
06/12/16 22:01:21
なんだ811本人かw

824:デフォルトの名無しさん
06/12/16 22:03:18
もう諦めろ
お前は玩具側の人間だ

825:デフォルトの名無しさん
06/12/16 22:07:40
. .: : : : : : : : :: :::: :: :: : :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    . . : : : :: : : :: : ::: :: : :::: :: ::: ::: ::::::::::::::::::::::::::::::::::::::
   . . .... ..: : :: :: ::: :::::: :::::::::::: : :::::::::::::::::::::::::::::::::::::::::::::
        Λ_Λ . . . .: : : ::: <こんなはずでは・・・・・
       /:彡ミ゛ヽ;)ー、 . . .: : : :::::: :::::::::::::::::::::::::::::::::
      / :::/:: ヽ、ヽ、 ::i . .:: :.: ::: . :::::::::::::::::::::::::::::::::::::::
      / :::/;;:   ヽ ヽ ::l . :. :. .:: : :: :: :::::::: : ::::::::::::::::::
 ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄ ̄ ̄
       >>811


826:ひとりぼっちのクリスマス
06/12/16 22:15:38
.: : : : : : : : :: :::: :: :: : :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::☆:::::::+::::::::::::::
  . . : : : ::::/⌒ヽ: ::: :: : :::: :: ::: ::: :::::::::::::::::::::::::..,,::。:+:::::::::::::::::::::::
  . .... ..::::/  <`O:: :: ::: :::::: :::::::::::: : :::::::::::::::::::+,::o;;::・;,:::::::::::::::::::::
     ⊂ニニニ⊃. . .: : : ::: : :: ::::::::: ::::::::::::::::..<;;::・,,::;ゞ;;o;*::.:::::::::::
     /:彡ミ゛ヽ;)ー、. . .: : : :::::: ::::::::::::::::,,;;;<;+::;;;´;*::o*:,,;;ゞ;;::::::::
    ./ /ヽ/ヽ、ヽ  i. . .: : : :::::::: :::::::::::;;;*;;;〇;ゞ;*::;;:<;;;*;:;ゞ;;o;
   / / 。  ヽ ヽ l   :. :. .:: : :: ::<;;;;〇;ゞ;*::o,ゞ ;*;;;;*ゞ;*:o
  ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄     ;;;*;;;〇;ゞ;*::;;;;;*ゞ;*::o, 〇;;; *
      >>811              : : : : : : llllllll : : : : : :
                           田田田


827:デフォルトの名無しさん
06/12/16 22:18:04
おまえら便乗しすぎw

828:デフォルトの名無しさん
06/12/16 22:37:03
811の人気に嫉妬

829:デフォルトの名無しさん
06/12/16 22:41:37
もうWSHと関係ない話は別のところでやってくれ

830:デフォルトの名無しさん
06/12/16 23:39:12
Public Const get_foo=1
のほうが簡単。

831:デフォルトの名無しさん
06/12/17 01:05:03
wsfファイルのサイズが500KB超えると開けなくなるみたいだ。残念。

832:デフォルトの名無しさん
06/12/17 18:37:43
なーおまいら、>>830って通るか?
うちじゃエラーになるんだが


833:マチルダ
06/12/19 10:37:20
WSHでIEオブジェクトを作成してそれのProcessIDを取得する方法を教えて欲しいのですが。

今は下記の手順でブラウザにキー送信をしていますが、「タイトルの文字列」が変更した場合には通用しません。
なので、ProcessID指定で確実にSendKeysをしたいのです。
InternetExplorer.Application + ProcessIDでぐぐっても見つけられませんでした。
要はProcessID指定で確実にブラウザにSendKeysしたいんです。
よろしくお願いします。

Set IE = WScript.CreateObject("InternetExplorer.Application","IE_")
Set sShell = WScript.CreateObject("WScript.Shell")
sShell.AppActivate("ブラウザのwebページのタイトル文字列")
sShell.SendKeys "ほげほげ"

参考にしたページ
URLリンク(www.atmarkit.co.jp)
> 一方のプロセスIDは、Execを使って起動したプログラムでは、WshScriptExecオブジェクトのProcessIDプロパティから取得できる。



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch