ウォーターサーバーとコーヒーマシンが一体化した画期的マシン >>

var objFileSys = new ActiveXObject("Scripting.FileSystemObject");
のところで

ActiveXObject is not defined

というエラーが出るのですがどうしたらいいか方法教えてください。

<script type="text/javascript">
<!--
var strScriptPath;
var strCreateFile;
var strDate;

//(1)現在時刻をHHMMSSの形式で取得します
strDate = getTime();

//(2)ファイルシステムオブジェクトの作成
var objFileSys = new ActiveXObject("Scripting.FileSystemObject");

//(3)プログラムが保存されているフォルダを取得します
strScriptPath = String(WScript.ScriptFullName).replace(WScript.ScriptName,"");

//(4)プログラムが保存されているフォルダに、新たにファイルを作ります
// ファイル名は現在の時刻(HH_M_S形式)+拡張子(.txt)です
strCreateFile = objFileSys.BuildPath(strScriptPath,strDate + ".txt");
objFileSys.CreateTextFile(strCreateFile);

WScript.echo(strScriptPath + "に" + strDate + ".txtという名前のファイルを作りました");

//オブジェクト破棄
objFileSys = null;

function getTime() {
//時刻を編集し返す
var objDate = new Date();
return objDate.getHours() + "_" + objDate.getMinutes() + "_" + objDate.getSeconds();
}
//-->
</script>

このQ&Aに関連する最新のQ&A

A 回答 (2件)

まずは前回の回答についてお詫びを。


Windows Scripting Hostと書きましたがこれは古い呼び名で現在はWindows Script Host(ingがない)でした。

さて、Windows Script Hostとは、Windowsのシェルの一種です。シェルというのはOS上で一連の動作をまとめて自動的に行わせることのできるものです。

あなたがご質問のコードはコメント中の(1)~(4)をまとめて自動的に行うものです。

しかし、Windows Script HostはWindowsでしか使えませんし、Windows上で直接実行することしかできません。Webブラウザを介して実行することはできないのです。

一方、HTML5のFile APIはブラウザ内からそのブラウザが起動しているコンピューターにあるファイルの情報や内容を取得できるというものです。
このAPIを使うと、ブラウザでローカルファイルをアップロードすることなく編集するといった今までできなかったことができるようになります。
とはいえ、前回の回答で書いたとおり、対応しているブラウザが少ないという問題があります。

したがって、「HTML5のFile APIとはどう違うのでしょうか?」という質問の回答としては、目的と対象が根本から違う、となります。

参考URL
Windows Script Host(ウィキペディア):
http://ja.wikipedia.org/wiki/Windows_Script_Host
Microsoft Windows スクリプト テクノロジ(MSDNライブラリ):
http://msdn.microsoft.com/ja-jp/library/cc392483 …
File API(W3C, 英文):
http://www.w3.org/TR/FileAPI/
File APIでブラウザーからローカルファイルを操作 - 古籏一浩のJavaScriptラボ(ASCII.jp):
http://ascii.jp/elem/000/000/559/559105/
    • good
    • 0

ActiveXObjectおよびWScriptはWindows Scripting Hostでしか使えないものです。


したがって、HTMLのスクリプトでは使用できません。

というか、webブラウザでファイルを扱うならばHTML5のFile APIを使いましょう(フル対応しているブラウザがFirefox 3.6以降とGoogle Chromeだけのようですが)。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。Windows Scripting Hostとはなんでしょうか?

HTML5のFile APIとはどう違うのでしょうか?

お礼日時:2011/10/31 12:44

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qhtml上で、バッチやexeファイルの起動をしたい

わけあって、学校(養護学校)初心者向けにhtmlでメニューを作っています。
さて、スタートボタンやディスクトップにショートカットを使わず、htmlの中からバッチファイルやexeファイルを起動できるでしょうか?

もし可能ならば、教えてください。OSはWindows XPで起動したいファイルはexeファイルとバッチファイルです。
よろしくお願いします。

Aベストアンサー

<html><head></head>
<body>
<a href="file:///c:/windows/system32/calc.exe">電卓</a>
</body>
</html>

QHTMLからフォルダを開きたい

いつも大変お世話になります<(_ _)>

Webサーバー上にあるWebページ(HTML)の中に、ローカルPCのフォルダを開くリンクを付けたいのですが、
<a href="file://c:\windows">OPEN</a>
としても、何も反応しません。

いろいろ調べたのですが、上記の方法しか見あたりません。

なお、ブラウザのアドレス欄に file://c:\windows と入力すると、フォルダの内容が表示されます。
※Firefoxだと、ファイルの一覧になりますが・・・

何か環境によって挙動が異なるのでしょうか?
それとも、セキュリティ上の観点から最近じゃ出来なくなっているのでしょうか?

是非ともお助け下さい。宜しくお願い致します。

Aベストアンサー

file:///C:/windows/
/は三つでは・・・
 IEの場合はエクスプローラ(ファイルマネージャ)が開くような・・・
 IEはファイルマネージャーと一体のブラウザなので・・・

★実は、ローカルサーバーが必要です。
 apacheでも何でも良いので、WEBデータの入っているフォルダーを
<VIRTUALHOST 127.0.0.1>
C:\Document and settings\my document\web
 とかに指定して、Windowsのhostsファイルで、適当なサーバー名を指定しておきます。
myLocalhost 127.0.0.1
とか・・・

 そうすると
http://myLoclahost/
 で開けます。

 

Qjavascriptでテキストファイルを作成したい

javascriptを勉強していて演算した結果をテキストファイルにして、その結果をテキストファイル内に書き込んで新しくデスクトップに作成するというプログラムを作りたいと考えています。
ですが、まずは以下の条件を満たすプログラムの内容を教えていただきたいと思います。

私はHTMLと同時にjavascriptを作っているのですがとりあえず、

・「テキストファイルの作成」というボタンをHTML内に作ります。
・そのボタンを押すとjavascriptのfunctionが動作し、「テキストの書き込みに成功しました」という内容が書かれたテキストファイルがデスクトップに新たに作成される。

というプログラムを知りたいです。

基礎的な原理だけを知りたいので上の条件を満たすプログラムを教えていただきたいと思います。
テキストファイルをデスクトップに作る方法と、作るテキストファイルにどのようにしてテキスト内容を書き込めばいいのか分かりません。
HTMLの部分がめんどくさければjavascriptの部分だけでも構いません。
よろしくお願いします。

Aベストアンサー

#2 です。

勉強目的ということでしたのでブラウザ(IE)依存で問題ないと考えていました。WSH でも hta でも JScript は利用できるはずなので。
質問者さんは以下の希望を持っていると想像していました。

・JavaScript だけでテキストファイルに出力したい
・ローカルで実行するので、ブラウザ依存で構わない (Webサイト制作が目的ではない)

そうではなく、

・Webサイト制作する上での JavaScript を知りたい
・標準的な JavaScript を学びたい (ブラウザ依存はしたくない)
・JavaScript 以外の言語(PHPなど)を学ぶこともいとわない

ということでしたら、私の見込み違いですのでどうぞスルーしてください…。
サーバサイドでファイル出力するのが一般的な手法だと私も思います。

Qhtmlのfileタグに自動で値を入れる方法

htmlのタグでいって
<input type="file">を用いてファイルをサーバーにアップロードしたいと思っています。で、このとき、ファイル名は任意に選べるのではなく固定で送信したいと思っています。

すなわち、HTMLを読み込んだ時点で、fileのテキストボックスにファイルパスが埋め込まれているか、JavaScriptで、ファイルパスを自動入力するようにしたいと思っています。

最終的には、form内のオブジェクトをすべて非表示にし、onload時にsubmitするような形にしたいと思っています。いろいろ事情があって苦肉の策になっています…。

とりあえず(だめだとは思っていたのですが)
<input type="file" value="ファイルパス" name="filepath">
と直書きにしてみたり
document.all.filepath.value = "ファイルパス";
などとしてみたりしましたがだめでした…。
W3C勧告の使用上はvalueでファイルパスを指定できるようになっているようなのですが、現在の一般的なブラウザでは禁止されているようですね。

このような場合、何らかの方法でfileにファイルパスを自動入力することはできますでしょうか?
もしできない場合、何らかの方法で実現する方法はありますでしょうか?よろしくお願いします。

ちなみに実現できればいい環境は
WinXP環境のIE6です。言語はクライアント言語はJavaScriptのみで、という条件付です。
できないかもしれないのですが、こういうのって必要になるときもあるよなーなどと思っており、もしかしたら解決方法があるかもしれないと思い質問しました。よろしくお願いします。

htmlのタグでいって
<input type="file">を用いてファイルをサーバーにアップロードしたいと思っています。で、このとき、ファイル名は任意に選べるのではなく固定で送信したいと思っています。

すなわち、HTMLを読み込んだ時点で、fileのテキストボックスにファイルパスが埋め込まれているか、JavaScriptで、ファイルパスを自動入力するようにしたいと思っています。

最終的には、form内のオブジェクトをすべて非表示にし、onload時にsubmitするような形にしたいと思っています。いろいろ事情があって苦肉...続きを読む

Aベストアンサー

やっぱ無理じゃないでしょうか。
なにか裏ワザ的な方法で一時的にできたとしても、いつか直されるかもしれないのでおいそれとは使えないし。

>W3C勧告の使用上はvalueでファイルパスを指定できるようになっている
→参考URL 「ユーザが明示的に送信を求めたファイル以外のものは送ってはいけない」とあります。

参考URL:http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/appendix/notes.html#forms-security

QJavaScriptde途中で、「exit」するには?

function kensaku(){
s_data = document.kaiin_form.input_name.value;

if(!s_data){ alert("キーワードを入れて下さい!"); }

if(s_data != dumy){ ...... }
for(i=st_no;i<=n;i++){
......省略.................;
.......省略................}
}

----------------------------------
3行目で表示されたアラートをOKで閉じても、4行目以下が実行されてしまいます。
3行目でexitするにはどうすれば良いでしょうか?

Aベストアンサー

>関数(kensaku())からは抜けられませんでした。
そうですね、勘違いしていました、f(^^;
すみません。
if(!s_data){
alert("キーワードを入れて下さい!");
return;
}
ですね。

QJavaScriptでコマンドプロンプト

何度も質問失礼します。
HTMLの中にJAVAScriptでボタンを配置して、ボタンを押すとコマンドプロンプトの命令を実行出来たりしないでしょうか?

HTMLの中にボタンを配置して、ボタンを押したらJavaScriptが実行され、コマンドプロンプトのadl命令が実行されて別のアプリケーションが起動する・・・というものですが・・・
グーグルで調べてみましたがいまいちよくわからなかったです。

分かる方がいましたら、ご教授お願いします。
よろしくお願いします。

Aベストアンサー

それができてしまうと明らかにセキュリティホールになるので、普通はできないと思います。

yyr446 様の書いているとおり、ローカルや社内でしか使わないような仕掛けならブラウザのセキュリティレベルを調整することで実現できますが、デフォルトではJavaScriptからローカルPCのコマンドを起動するようなことはできないですね。
もし可能なら、そのJavaScriptが仕掛けられたサイトを見るだけでコマンドプロンプトを起動して「del *.*」とかできちゃいますし。

プログラム実行に限らず、基本的にJavaScriptからはローカルの環境にあるものはいじれません。
Cookieはファイルには残りますが、ファイルそのものを操作してるわけではないですしね。

というところでご回答になったでしょうか。
もしやりたいことがもっと具体的にあるのであれば、それを書いていただけると別の(JavaScriptを使わない)解決策があるかもしれません。

QActiveXObject("Msxml2.XMLHTTP")がFirefoxでうまく作動していないようです。

ブラウザでweb上のxmlを取得して内容を表示しようとしています。

windowsXPprosp2.0でIE6.0では動作を確認しています。
スクリプトの詳しいところは実際はよく分かっていませんがコピペに手を加えて現在の形になっています。

<title>テストページ</title>
function myCheck() {

var r = null;
if (typeof window.XMLHttpRequest == "undefined") {
if (typeof window.ActiveXObject == "function") {
try {
r = new ActiveXObject("Msxml2.XMLHTTP");
r = window.XMLHttpRequest = myXMLrequest()
{
r = new ActiveXObject("Msxml2.XMLHTTP");
}
}
catch (e) {
try {
r = new ActiveXObject("Microsoft.XMLHTTP");
r = window.XMLHttpRequest = myXMLrequest()
{
r = new ActiveXObject("Microsoft.XMLHTTP");
}
}
catch (e) {
}
}
}
// else if () { }
}
// else { }
r.onreadystatechange = function() {

if ( ( r.readyState == 4 ) && ( r.status == 200 ) ) {
以下続く

try catchの処理でIEとFierfoxなどのブラウザ分けをしていると思っているのですが教えてください。

Firefox2.0 Opera9ともに画面が真っ白で何も表示されません。

よろしくご教授ください。

ブラウザでweb上のxmlを取得して内容を表示しようとしています。

windowsXPprosp2.0でIE6.0では動作を確認しています。
スクリプトの詳しいところは実際はよく分かっていませんがコピペに手を加えて現在の形になっています。

<title>テストページ</title>
function myCheck() {

var r = null;
if (typeof window.XMLHttpRequest == "undefined") {
if (typeof window.ActiveXObject == "function") {
try {
r = new ActiveXObject("Msxml2.XMLHTTP");
r = w...続きを読む

Aベストアンサー

ご提示のソースの場合、FireFoxでは最初のif文の中が実行されません(Operaも同様)。
以下のスクリプト(最初のifの中身です)をIE・FireFoxで実行していただくと

alert(typeof window.XMLHttpRequest == "undefined");

IEの場合…true
FireFoxの場合…false
Operaの場合…false

と表示されるのが確認できると思います。
つまり、FireFoxではそもそも最初のif文の中に入れないので、必然的にrがnullになります。
とりあえずFireFoxで動くようにするのであれば、else文を追加して

r = new XMLHttpRequest();

を実行するようにしてやればいいと思います。
なお、IE5以前などの古いブラウザを対象としないのであれば以下の記述だけで充分です。

var r = null;
if ( typeof XMLHttpRequest != "undefined" ) {
// IE以外
r = new XMLHttpRequest();
} else {
// IEの場合
r = new ActiveXObject("MSXML2.XMLHTTP");
}

ご提示のソースの場合、FireFoxでは最初のif文の中が実行されません(Operaも同様)。
以下のスクリプト(最初のifの中身です)をIE・FireFoxで実行していただくと

alert(typeof window.XMLHttpRequest == "undefined");

IEの場合…true
FireFoxの場合…false
Operaの場合…false

と表示されるのが確認できると思います。
つまり、FireFoxではそもそも最初のif文の中に入れないので、必然的にrがnullになります。
とりあえずFireFoxで動くようにするのであれば、else文を追加して

r = new XML...続きを読む

Qフォルダを自動で開く

フォルダを自動で開く

教えて下さい。

javascriptを使って、自動で指定のURLへ飛ぶというような事をした事がありますが、
自動で指定のフォルダが開くというようなjavascriptはありますでしょうか?

*指定のフォルダとは、エクスプローラーにて自分のCドライブ、あるいはネットワーク上
に存在する共有フォルダを開くなど。。

よろしくお願いします。

Aベストアンサー

file://

これでローカルのフォルダーが開きます。

http://

でもフォルダーは開きます。問題は対象のサイトにフォルダーアクセス権があるかどうかです。

IISはデフォルトでフォルダーアクセスを禁止しています。Apacheは許可しています。


共有フォルダーは、ローカルにマウントして上記と同じ事をすればいいわけです。

HTML的に言えば、srcやhrefの属性にURIとして指定すればいいだけの話です。


つまり、何のプロトコルで開くかと言う問題と、フォルダー&共有アクセス権の問題です。http なのか fileなのかftpなのか、SMBなのか。evryone,Anyoneなど不特定多数のユーザーにアクセス権がないとだめですね。それ以外のアクセス権だと、認証が必要になります。

サーバー側がそれに対応していれば、行く通りものやり方があります。

なお、スクリプトからフォルダー内を操作する場合は、Shell.Applicationをキーにして検索してみてください。あとWSHですね。

Q別ファイルのfunctionの読み込み方

こんにちは
外部ファイル hello.js
-----------------------------
function aisatsu(){
var aa="hello"
}
-----------------------------
というファイルが存在した時にjikkou.htmlでaaの値、”hello”を呼び込みたい場合はどう記述すればよいのでしょうか?htmlのなかでaisatsu()をどこに記述していいのか分かりません。どうか教えてください。ただ、hello.jsのほうは実際の記述を簡略化したものであるのでそちらのほうはいじれません。

宜しくお願いします。

必要ないかもしれませんが、念のために私が最初に書いたhtmlの文です(もちろん実行できませんでした)
------------------------------------
<html>
<script language="javascript" src="hello.js">
aisatsu(){
document.write(aa);
}
</script></html>
------------------------------------

こんにちは
外部ファイル hello.js
-----------------------------
function aisatsu(){
var aa="hello"
}
-----------------------------
というファイルが存在した時にjikkou.htmlでaaの値、”hello”を呼び込みたい場合はどう記述すればよいのでしょうか?htmlのなかでaisatsu()をどこに記述していいのか分かりません。どうか教えてください。ただ、hello.jsのほうは実際の記述を簡略化したものであるのでそちらのほうはいじれません。

宜しくお願いします。

必要ないかもしれませんが、念のために...続きを読む

Aベストアンサー

function内で「var」をつけて変数を宣言するとfunction外からその変数の内容を取得することができなくなります。(returnで参照することはできます。)
なので変数の内容を取得する場合は「hello.js」の内容を

function aisatsu(){
var aa="hello";
return aa;
}

このように修正し、

<script language="javascript" src="hello.js"></script>
<script language="javascript">
var data=aisatsu();//「aisatsu()」関数の「aa」変数内のデータを引っ張り出す(return aa;)
document.write(data);//書いたり
alert(data);//アラートしたり
window.status=data;//ステータスバーに表示したり・・
</script>

QonClickに複数の関数を挿入する方法

初心者なのですがアニメーションの関数anime1、anime2、anime3を作成し、onClickに下記のように設定しました。
クリックするとアニメーション2つの設定ではは動くのですが、3つ目を設定すると動かなくなります。
通常はこのような設定はしないものなのでしょうか?
教えてください。
よろしくお願いします。
<INPUT type="button" value="START" onClick="anime1(), anime2()">・・・OKです。
<INPUT type="button" value="START" onClick="anime1(), anime2(),anime3()">・・・動きません。

Aベストアンサー

セミコロンでつなぐのが常道ですが、3つ以上なら
別途function化したほうが、可読性が高くなると
思います。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング