☆WSHでCGI★JScriptVBScriptat PHP
☆WSHでCGI★JScriptVBScript - 暇つぶし2ch66:nobodyさん
05/04/15 00:55:25 .net
【AN HTTPD ワンポイント】
>>3のように
実際に.wsf .vbs .js の拡張子ファイルをCGIスクリプトとして登録すると、
DHTMLとしてのクライアント実行させたい.vbsと.jsファイルも設置してしまうと
クライアントがファイル要求した段階で当然サーバー上でWSHでCGI実行される事になる。
これはセキュリティ上留意して欲しい。
これを避けたい場合は、
・クライアントスクリプトはスクリプトファイルを使わずHTMLで混在記述する。
・CGIスクリプトファイルのほうを別の独自の拡張子にする。スクリプト実行のWScript.exeの指定さえ合っていればOKである。

また、これは基本だがCGI実行許可フォルダを限定する場合、許可していないフォルダに置いてしまうと当然、スクリプトファイルはCGI実行されずDLされ中身を見られてしまう。


67:nobodyさん
05/04/15 01:42:25 iiba0wU4.net
>>66補足
.vbsと.jsファイルを独自拡張子にしてCGI実行する場合、
例えば、Test.vbsファイルをTest.vbcgiという独自拡張子に変えて使いたい場合、
AN HTTPDには VBScriptエンジンで実行させたい拡張子をまとめて、
実行ファイルには
WScript //E:vbscript
のように指定して登録して欲しい。
※WScript.exenのパスが通っているだろうからこれでOK。
//E:実行させたい指定スクリプトエンジン名 のオプション指定を忘れないように。





68:nobodyさん
05/04/15 01:46:07 .net
>>67訂正w
誤り箇所
※WScript.exenのパスが
訂正後→
※WScript.exeへのパスが

下書きなんかないし、ダラダラ書きで、ageちゃってるし
だって眠いんだもんw

69:nobodyさん
05/04/15 17:02:04 .net
【VBScriptサンプル02 その1 HTMLフォーム】
HTMLフォームからの受信データを処理するサンプル。sample02.htmで設置。

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=x-sjis">
<TITLE></TITLE>
</HEAD>
<BODY>
<FORM action="./sample02.wsf" method="post" name="form1" taerget="_blank">
テキスト1<BR>
<INPUT name="txt1"><BR>
テキスト2<BR>
<TEXTAREA name="txt2" wrap=off></TEXTAREA><BR>
<INPUT type="submit" value="Submit" name="submit1">
</FORM>
</BODY>
</HTML>

70:nobodyさん
05/04/15 17:06:31 .net
【VBScriptサンプル02 その2 CGIスクリプトWSFファイル】
以下をその1のsample02.htmと同じ、sample02.wsfで設置、なおコードを見ても分かるように、>>61-63のsupport02.vbsファイルも設置。

<JOB>
<SCRIPT language=vbs src="support02.vbs" />
<SCRIPT language=vbs>
Option Explicit
Private ObjWshShell,ColWshEnv
Private d,d0,d1,d2
Set ObjWshShell=WScript.CreateObject("WScript.Shell")
Set ColWshEnv=ObjWshShell.Environment("Process")
Select Case ColWshEnv("REQUEST_METHOD") 'フォーム送信データを取得
Case "POST"
d=WScript.StdIn.ReadAll '実際にはサイズチェックを事前にすべき。
Case "GET"
d=ColWshEnv("QUERY_STRING")
End Select
With WScript.StdOut
.WriteLine "Content-type: text/html" & vbCRLF & vbCRLF & "<HTML><HEAD><TITLE>サンプル02</TITLE></HEAD><BODY noWrap>"
.WriteLine "生データ<BR>" & d & "<BR>取得データ<BR>"
d0=Split(d,"&",-1,1) 'POST生データを"name=data"単位で分離
For Each d1 in d0
d2=Split(d1,"=",2,1) ' "name=data"をnameとdataに要素数2の配列に分離格納
.WriteLine d2(0) & "=" & PF_Decode(d2(1)) & "<BR>"
Next
.WriteLine "完了</BODY>"
End With
</SCRIPT>
</JOB>

71:nobodyさん
05/04/15 17:07:23 .net
【VBScriptサンプル02 その2 CGIスクリプトWSFファイル】
以下をその1のsample02.htmと同じ、sample02.wsfで設置、なおコードを見ても分かるように、>>61-63のsupport02.vbsファイルも設置。

<JOB>
<SCRIPT language=vbs src="support02.vbs" />
<SCRIPT language=vbs>
Option Explicit
Private ObjWshShell,ColWshEnv
Private d,d0,d1,d2
Set ObjWshShell=WScript.CreateObject("WScript.Shell")
Set ColWshEnv=ObjWshShell.Environment("Process")
Select Case ColWshEnv("REQUEST_METHOD") 'フォーム送信データを取得
Case "POST"
d=WScript.StdIn.ReadAll '実際にはサイズチェックを事前にすべき。
Case "GET"
d=ColWshEnv("QUERY_STRING")
End Select
With WScript.StdOut
.WriteLine "Content-type: text/html" & vbCRLF & vbCRLF & "<HTML><HEAD><TITLE>サンプル02</TITLE></HEAD><BODY noWrap>"
.WriteLine "生データ<BR>" & d & "<BR>取得データ<BR>"
d0=Split(d,"&",-1,1) 'POST生データを"name=data"単位で分離
For Each d1 in d0
d2=Split(d1,"=",2,1) ' "name=data"をnameとdataに要素数2の配列に分離格納
.WriteLine d2(0) & "=" & PF_Decode(d2(1)) & "<BR>"
Next
.WriteLine "完了</BODY>"
End With
</SCRIPT>
</JOB>

72:nobodyさん
05/04/15 17:21:38 .net
【VBScriptサンプル02 解説1】
>>70-71 重複失礼。どちらも同じ内容なの。

>>69 訂正。
<FORM action="./sample02.wsf" method="post" name="form1" taerget="_blank">
の taerget="_blank" の taerget は誤り。
targetに直してw
 

73:nobodyさん
05/04/15 17:34:37 .net
【VBScriptサンプル02 解説2】
このサンプル02は
sample02.htm >>69
sample02.wsf >>70 ※71は70と同じものなので無視。
support02.vbs >>61-63
の3つのファイルを同じフォルダに設置してください。
sample02.htmを表示して送信して下さい。フォームからのデータ取得のサンプルです。
あくまでサンプルですので、エラー処理はしていませんし、実用コードではありません。
POST、GETに対応していますが、POSTデータの場合は実際はただReadAllで読み込むの注意です。
POSTの場合、サイズが巨大なものが有り得ますので、事前サイズチェックはしましょう。

74:nobodyさん
05/07/18 02:41:24 MLViLjPO.net
ホス

75:nobodyさん
05/07/20 01:42:56 P18HiGG/.net
ホシュホシュ

76:1
05/07/24 16:43:18 .net
保守されていたので、ネタを何か(w

>>45
俺もわかんない(w 初めてWebサイトみたときの記憶で、質問をジエンするときに使う感じでうろ覚え(w
FAQに似てると思うけど(w

>>50
WSHは使わせないというか、最初から危なくて業務用Winサーバーに入れとかないでしょ。
ここはプライベートというか、あくまで遊びだから。

>>60
みんなももっとネタ出してよ。

【ついでに】
・WSH関係あさればたまに目にすると思うけど。バイナリーのファイル入出力はADO2.8がインストされてればADODB.Streamでできるんだけどさ。
CGI実行時に標準入出力を読み書きする解決にはならないよん。
>>55-58 >>61-63は Shift-JISデコード関数をVBSで書いてるけどVBSエンジンだけインクルードしてChrやAsc関数をJScropt関数で作ったほうが速いいかなぁ?
作ってみるわ。誰かもやってよ(w

77:1
05/07/24 16:51:21 .net
>>76 思いつき書き込みしかしないから(w、またやってしまった
【訂正】
 【ついでに】
 >ChrやAsc関数をJScropt関数で作ったほうが速いいかなぁ?
 JScropt→JScript

書き方が悪くて意味が伝わりませんね?
Chr関数自体をJScriptで作るのではなく、
JScript中でVBSのChr関数を呼び出して、JScript製のデコード関数を作ると言う意味です。
JScriptのほうが正規表現やユーザー関数の拡張性が高いからね、VBSより効率的にかけるかな。
あとでやっておきます。いつかね(w


78:nobodyさん
05/07/24 17:04:20 .net
自age (w

みんなAN HTTPDめんどいのかなぁ

79:nobodyさん
05/09/06 02:04:33 .net
つーか、デコードするCOMオブジェクトないの?
IEは公開してないのか?


80:nobodyさん
06/05/22 08:58:11 .net
ほす

81:nobodyさん
06/07/08 09:15:04 .net
このスレの内容にばちこーん興味を持ったので保守

82:nobodyさん
06/08/24 12:18:03 UeLY+x3U.net
藁をもつかむ気持ちでお願いします。
vbsからexcelのマクロを起動する方法ってどうするのでしょうか?
エクセルマクロを使用するためにtest.wsfからvbs.vbsを呼んでいます。
下記のソースでtest.xlsに埋め込まれているMacro1というマクロを呼び出そうと
しましたが「オブジェクトでサーポートされていないプロパティです」
というエラーが出てしまいます。


------------------------------------test.wsf記述
<job id="ExcelJob">
<reference guid="00020813-0000-0000-C000-000000000046"></reference>
<script language="VBScript" src="./vbs.vbs"></script>
<script language="VBScript">
Call prcMain
</script>
</job>

------------------------------------vbs.vbs記述
Sub prcMain()
Set Excel = CreateObject("Excel.Application")
Excel.Workbooks.Open("c:\test.xls")
Set xlSheet = Excel.Worksheets(1)
Excel.Visible = True
Set objSelection = Excel.Workbooks(1).Worksheets(1).Macro1
End Sub


83:82
06/08/24 12:48:36 .net
すいません板違いでした。Web製作板へ行ってきます。

84:nobodyさん
06/08/24 18:56:31 .net
>>82-83
Web製作ではなく↓に誘導しておきます。
WSH(・∀・)スレッド!
スレリンク(tech板)l50

85:nobodyさん
06/09/27 19:51:41 .net
いろいろなサイトを閲覧して、ローカルPCに溜まったCookieファイルを、VBScriptで定期的に自動消去する処理は、どうすれば良いでしょうか?
URLリンク(www.happy2-island.com)
ファイルの削除を参考にしてみましたが、Cookieファイルの指定がうまくできませんでした。


86:nobodyさん
06/09/28 00:09:34 .net
>>85
IEのCOM使ったほうがいいぞ

あと↓で聞いたほうがいい

お前ら、wsh使ってますか? part6
スレリンク(win板)

87:nobodyさん
06/09/28 00:44:11 23IKIm9v.net
>>86
どうもありがとう。


88:nobodyさん
07/07/04 14:20:44 .net
何にせよ、ありがとうと言いたい

89:nobodyさん
07/09/06 00:53:56 lxdRIcpr.net
WSH初心者ですが少し教えてください
特定のソフトを起動するためのVBSの書式を教えてください
ちなみにバッチファイルでは起動しないソフトもあったのでこちらが良いと言われました
ソフトは壷です
"C:\Program Files\2chtubo\2chtubo.exe"
通常ならこのようなバッチファイルで起動するはずなんですが
なぜか起動しませんでした
なのでVBSでやってみたいです

90:nobodyさん
07/09/06 09:46:52 .net
>WSH初心者ですが少し教えてください
初心者だから??なに?

>特定のソフトを起動するためのVBSの書式を教えてください
ええと、、、ググリましたか?

>ちなみにバッチファイルでは起動しないソフトもあったのでこちらが良いと言われました
どちらさまに言われましたか?

>なぜか起動しませんでした。なのでVBSでやってみたいです
やりたいなら調べろよ

91:nobodyさん
07/09/06 18:20:14 .net
>>89
Wscript.Run "C:\Program Files\2chtubo\2chtubo.exe"

92:nobodyさん
08/03/10 10:17:26 nD3TpBhG.net
ローカルで定型処理に VBScript を使っているのですが,
デバッガとしてフリーで使えるものって何かありませんでしょうか?
たとえばどれかの Express Edition とか.

職場では Visual Studio 2005 Professional Edition を使って
いるのですが,自宅でも作業がしたくって.

93:nobodyさん
08/03/12 22:41:47 .net
URLリンク(www.microsoft.com)
をインストールして、cscript.exeやwscript.exeに//Dオプションを付けて
スクリプトを実行すればデバッガが使用可能になりますよ

94:nobodyさん
08/05/25 01:09:26 uDPNiz6J.net

JavaScript でJISエンコードが可能な、escape() 関数ライブラリ

URLリンク(nurucom-archives.hp.infoseek.co.jp)

但しサーバー運用に向いているかは未確認w
(負荷とか)

95:電脳プリオン
11/12/17 20:01:41.87 .net ?2BP(1960)

  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>9
 (_フ彡        /

96:nobodyさん
13/07/30 NY:AN:NY.AN FAIklnka.net
>大阪府三島郡島本町の小学校や中学校は、暴力イジメ学校や。
島本町の学校でいじめ・暴力・脅迫・恐喝などを受け続けて、心も身体も壊されて廃人同様になってしもうた僕が言うんやから、
まちがいないで。精神病院へ行っても、ちっとも良うならへん。教師も校長も、暴力やいじめがあっても見て見ぬフリ。
そればかりか、イジメに加担する教師もおった。 誰かがイジメを苦にして自殺しても、「本校にイジメは
なかった」と言うて逃げるんやろうなあ。
島本町の学校の関係者は、僕を捜し出して口封じをするな

>島本町って町は、暴力といじめの町なんだな

>「口封じ」なんかしません。どうぞ、気が済むまでお書き込み下さい。

島本町は日本の恥!島本町は日本の迷惑!

97:nobodyさん
14/02/13 19:01:25.12 wYrEGcCV.net
an Httpdとjscriptでcgiするのは簡単でいいね

98:nobodyさん
17/01/28 01:45:45.31 .net
Jscriptで天気予報を取得したいのですが、JSONの取り扱いで躓いています。
具体的にはJSON.parseなどメソッドが使えません。
英語版のMSDNにはあるのですが日本語版では見当たらず・・・
URLリンク(msdn.microsoft.com)(v=vs.84).aspx
マイナーすぎるのかもしれませんが分かる方いましたらヒントでも頂けると助かります。

99:nobodyさん
17/01/30 01:14:41.51 .net
「wsh jscript json」で検索して

100:nobodyさん
17/12/30 13:12:06.97 YhlYw6jg.net
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
Q5NODT0RAA


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