出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

JavaScriptから、VBScriptのFunctionの呼び出しについて   みくさん [2002/05/24 10:04:02] [2100]
  Re:JavaScriptから、VBScriptのFunctionの呼び出しについて   北岳さん [2002/05/24 14:10:17] [2103]
    Re:JavaScriptから、VBScriptのFunctionの呼び出しについて   喜平さん [2002/05/27 6:07:13] [2107]
      Re:JavaScriptから、VBScriptのFunctionの呼び出しについて   北岳さん [2002/05/27 17:55:28] [2113]

[2100] JavaScriptから、VBScriptのFunctionの呼び出しについて
投稿者:みくさん 2002/05/24 10:04:02
はじめまして。みくです。


皆様に質問があるのですが、
JavaScriptからVBScriptのFunctionの呼び出しは
不可能なのでしょうか?

それから、それが不可能だった場合、
以下のVBScriptをJavaScriptに変更することは
可能でしょうか?
**************************
Set wshshell = server.CreateObject("Wscript.shell")
Wshshell.Run "D:\miku\bin\test.exe"
set Wshshell = Nothing
**************************


よろしくお願いします。




[2103] Re:JavaScriptから、VBScriptのFunctionの呼び出しについて
投稿者:北岳さん 2002/05/24 14:10:17
両方いっぺんに回答します。
NT4+IIS4、サーバサイドのJavaScriptです。
 
------------------- 1.asp ---------------------------
<%@ Language="JavaScript" %>
<%
//-- JavaS〜WSHでメモ帳を起動
wshshell=new ActiveXObject("WScript.shell");
wshshell.run("notepad.exe"); //--■1
wshshell=null;
//-- JavaS〜VBSの関数呼出〜WSHで電卓を起動
var x;
x=aaa();
%>
<script language="VBScript" runat="Server">
function aaa()
Set wshshell = server.CreateObject("Wscript.shell")
wshshell.Run "calc.exe" '--■2
set wshshell = Nothing
end function
</Script>
<html><body>
<p>サーバで2つのEXEを起動しました。
<br>クライアントからは見えません。
<p>サーバが「デスクトップとの対話を許可」していないと
<br>サーバでも見えません。
</body></html>
---------------------------------------------------------
 
上の方法で一応はどちらもうまく行きました。
■2の方は、任意のexeをパス指定して起動することができましたが、
■1の方は、パス指定すると「ファイルが見つかりません」になりました。(どこがいけないの?)
 
WSHはJSから直接使うよりも、VBSを経由する方が確実みたいです。
というより、普通はサーバではVBSを使いますね。

[2107] Re:JavaScriptから、VBScriptのFunctionの呼び出しについて
投稿者:喜平さん 2002/05/27 6:07:13

> 上の方法で一応はどちらもうまく行きました。
> ■2の方は、任意のexeをパス指定して起動することができましたが、
> ■1の方は、パス指定すると「ファイルが見つかりません」になりました。(どこがいけないの?)
 おそらく、パス文字列の中の"\" をエスケープしてないからでしょう。js 文法では、"\"は特殊文字です。


> というより、普通はサーバではVBSを使いますね。
 普通という意味が何を指しているのかわかりませんが・・・
 サーバーサイド、クライアントサイド共にjs にすることで
言語習得やソース資産の面でメリットがあると考える設計者も
います。

[2113] Re:JavaScriptから、VBScriptのFunctionの呼び出しについて
投稿者:北岳さん 2002/05/27 17:55:28
>おそらく、パス文字列の中の"\" をエスケープしてないからでしょう。js 文法では、"\"は特殊文字です。
 
\\と重ねることで、JSでも任意のexeのパス指定が出来ました。
有難うございました。
JSで改行が\nと知っていたのに、\が特殊文字とは気付きませんでした。
 
■JavaScriptのエスケープ文字:
http://tohoho.wakusei.ne.jp/js/string.htm#Escape
 
で確認しました。ついでにURLだけですが、
 
■BASP21の正規表現のエスケープ文字:
http://www.hi-ho.ne.jp/babaq/bregexp.html 
■各種正規表現のエスケープ文字:
http://www.kt.rim.or.jp/~kbk/regex/regex.html#PERL
 
(整合性がないなあ)
---------------------
>>WSHはJSから直接使うよりも、VBSを経由する方が確実みたいです。
無知からの発言で、撤回します。
 
>>というより、普通はサーバではVBSを使いますね。
統計結果を見たわけではないので、これも撤回します。
JS党とVBS党の人数比は、VC党とVB党ほどの差はなさそうです。
(言ってるそばから、また根拠なしに・・・)
 
>サーバーサイド、クライアントサイド共にjs にすることで 
>言語習得やソース資産の面でメリットがあると考える設計者もいます。
これは理解できます。
(自分の場合はネスケがなければ、逆にVBSだけで済むのに。)



TreeBBS For ASP V.0.1.3
Program By YasNet