ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

WEBサイト制作勉強会コミュのasp処理後自動的にウィンドウを閉じるには?

  • mixiチェック
  • このエントリーをはてなブックマークに追加
こんにちは。

・タスクスケジューラーで指定時間に指定URLを開く。
・開いたページはASPでDB上書き処理が自動的にされるページである。
・ASP処理が終了したら、ブラウザを自動的に閉じたい。

以上のようなことが出来ないかと聞かれました。

・ASP処理が終了したら、ブラウザを自動的に閉じたい。

この部分について意見がききたいです。

単純に私は「asp」の処理の最後にjavascriptでウィンドウclose()を呼び出してやればいいんじゃないかと思っていました。
けれど、
他にも方法があると思うのですが、思いつきません。

もっとこんな方法がある、とか、
ご存知の方がいらっしゃったら教えてください。

よろしくお願い致します。

コメント(14)

ちょっと回答とは外れますが、その処理ってブラウザを使う必要がありますでしょうか?
例えば時間起動する処理を BASP21 を利用した WSP で書けば要件は満たすのではないかなぁと。

今は携帯からなのでサンプルはまた後で。
それって終了判定できるかな。できない気がします。
終了後ウィンドウを閉じるページへのロケーションヘッダを出力するのかな。

タスクで開くのをブラウザにせず、対象URLにHTTPでGETを投げるようなプログラムを作れば/見つけてくればいいと思う。

仕様がわからないので、ブラウザ処理する、と仮定して。
ブラウザ以外でも構わないのでしたら、みゃ'さんが、ナイスでグッドなサンプルを出してくれると思いますので(笑)、それを参考に^^

タスクで、ブラウザを開くなら、タスクでブラウザを閉じる
・・・て、出来ないんでしたっけ?

VBSで、createObjectでIEを作って、で、終わったら、それをcloseさせれば・・・とか
IEオブジェクトのvisibleをfalseにすれば、IEが見えない状態で、その処理が実施されるし・・・とかとか。

軽くサンプル。滅茶苦茶、骨のみ

Set obj = WScript.CreateObject("InternetExplorer.Application","Event_")
obj.Visible = false
obj.navigate("http://www.hogehoge.com/hoge.cgi?hoge=xxx...")

Sub Event_DocumentComplete(pDisp, URL)
'読み込みが終わった
set obj=nothing
End Sub



p.s)みゃ'さん、武蔵野線お疲れっすー
な、なんかサンプル求められてる。(^^;
そんな訳で時間起動させる処理のサンプルコード。
要:BASP21 http://www.hi-ho.ne.jp/babaq/basp21.html
--------------------------------------------------------
Dim BASP21
Dim FS
Dim retCode

Dim RetFile
Dim UrlStr

RetFile = "file_path" ' 結果を格納するファイル名
UrlStr = "http://url_path" ' 実行先ASPとか。

Set BASP21 = CreateObject("BASP21")
Set FS = CreateObject("ScripTing.FileSystemObject")

retCode = BASP21.W3get(" -o " & RetFile & " -j sjis " & UrlStr)
--------------------------------------------------------

あとは RetFile にブラウザへ表示される結果が入ってきますので
必要無ければ捨てる、必要であれば中を見て処理するような処理を
書くだけです。

単純にブラウザを開いてしまっても JavaScript で閉じようとすると
警告が出てしまうので閉じる事が出来ません。
どうしてもブラウザって言うのでしたら chifumi さんのコードを
改良するしかないかなぁ。


#結局電車は50分遅れ。(o_ _)o
あ・・・ WSP ではなくて WSH でしたね。。。失礼しました。
KIDD@TV募集中 さん☆
chifumi さん☆
みゃ' さん☆
ありがとうございます。

現状としては、

・タスクスケジューラでサーバ上のAhtmlファイルを起動。
(ブラウザの「ホームページ」とは別URLに飛ばしたいため。)
・Ahtml内はjavascriptで自動にBhtmlに移動する。
・BhtmlでASPの処理。処理後redirectでChtmlに飛ぶ。
・Chtml にjavascriptでブラウザを閉じる

というものを作りました。
現状での私の知識ではこれしか思いつかず・・・泣
条件としては、
どうしてもタスクスケジューラで。
どうしてもブラウザで。
とのことでした。

javascriptでページを閉じるときの警告は、
出さないように出来ます。
全ブラウザ対象とかではないと思いますが、
今回はこれを動かしたい場所では問題なかったので。

<script type="text/javascript">
<!--
setTimeout("closeWin()",10*1000);
function closeWin() {opener = null;window.close();}
// -->
</script>

opener = null;
を入れてやると警告ダイアログが出ません。

このスクリプトは、動作確認のためChtmlが開いて10秒後にcloseWin関数が実行されるようになっています。

とにかくみなさん、ありがとうございました!
サンプルなんかも挙げてもらってすごく、嬉しいです。
私の知識不足でサンプル見ながら???が出てるのが現状ですが、イタダイタものを無駄にしないよう、挙げてもらったものでもいろいろやってみようと思います!
#個人的な疑問はさておいて。(^^;

タスクスケジューラ+ブラウザで動作させると言う事ですので、
電源上げてログインしていない状態で動作するかどうかを
確認しておいた方が良いのかなと思います。
その状態で動作すれば特に問題は無いのですが、ログインしていないと
動作しないアプリケーションも中にはありますので。

あと、bhtml で FORM パラメータが特に無いのであれば、
タスクスケジューラから呼び出し可能です。
それと chtml で書いている内容は bhtml の結果にすれば
bhtml だけ準備すればよいのかなと。
動作させる環境は常時ログインされているので大丈夫だとは思いますが、やってみます!

Bhtmlで処理させる内容自体は私は関与していないので、
どういったプログラムが組まれているか解らないのですが、
タスクスケジューラから直接Bhtmlを呼び出すことって、出来るのですか????
タスクスケジューラで指定URLを開く方法がわからなかったので、www上ではないhtmlファイルを起動させてそこからwww上のBhtmlにジャンプさせてます。

Chtmlに記述したものをasp内に記述してみたのですが、何故か上手くいかなかったのでジャンプで対処・・・・・


あぁああああ。
ここまで書いていて気がついたのですが、
BhtmlではなくてB.aspですね。ごめんなさい。
b.html?id=xxxx¶m1=xxxxx
って形で引数渡しで開くのはダメなのかしらん?

で、b.htmlで、aspの処理をして、出力結果として、自分自身を閉じるJavaScriptを書く・・・それだとまずいのかなぁ。
chifumi さん☆

タスクスケジューラで終了・・・・
させることって、出来るんですかね?
ビデオ録画とかは、ソフト自体に録画終了したら閉じるみたいな仕様がかかっているので、起動だけなのかな、と。
なので今回もブラウズ側で終了かけるのかと。
んーそっか。調べてみます。

chifumi さんの書いてくださったサンプルはVBSですか?(無知でごめんなさい。)aspの中に記述?ということ・・・?


プログラムの流れは解るのに、どう(how)使っていいのか
わからないという・・・・凹
chifumi さん☆
買い込みしている間にカキコミが!
ありがとうです!

aspで出力って、

respons wright("")
とかですよね。
テストでそれにJSを入れ込んだけど表示がおかしくなっちゃったんです。ナンデダロウ。
どこか間違っていたのかも。出来ないはずない気がしますよね。もうちょっといじってみなます。

>b.html?id=xxxx¶m1=xxxxx
>って形で引数渡しで開くのはダメなのかしらん?
引数渡す・・・・

ごめんなさい。どの時点で、でしょうか?(>□<)
Ahtml開いたとき?
えーと、現状で a.html の呼び出しはどうなっていますかね?
そこを見せて貰えればどう変えれば良いかアドバイスできるのかなぁと。


あと個人的な疑問は「なぜブラウザにこだわるの?」です。
はっきり言って難しくしているだけですから・・・。(^^;
んーーー
何故ブラウザにこだわるのか!
・・・・これは不明です。(聞いといてごめんなさい。)
何故なのだろう。
それでやる方法しか、わからない。
もしくは、
クライアントの環境的にそれが一番良い。
もしくは、
ブラウザでやってみたい。

等等でしょうか。むぅ・・・・・

ええっと・・・・。
a.htmlはタスクスケジューラで直接ファイル指定をしています。www上とかではない、ローカルファイルを直指定です。

a.htmlから、b.html は、

window.location="http://***.****.**.**/A/b.asp";

というような形で呼び出しています。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

WEBサイト制作勉強会 更新情報

WEBサイト制作勉強会のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。