option explicit
on error resume next
dim objie, objwshell
set objwshell = createobject("wscript.shell")
objwshell.appactivate "microsoft internet explorer"
set objie = createobject("internetexplorer.application")
objie.width = 380
objie.height = 100
objie.navigate "about:blank"
objie.document.write "<html><head><title>終了処理</title><script language='vbscript'>" & vbcrlf
objie.document.write "option explicit" & vbcrlf
objie.document.write "function osu()" & vbcrlf
objie.document.write "dim aaa" & vbcrlf
objie.document.write "Set aaa = CreateObject('Wscript.Shell')" & vbcrlf
objie.document.write "aaa.run 'wscript ログオフ.vbs', 1, true" & vbcrlf
objie.document.write "set aaa = nothing" & vbcrlf
objie.document.write "end function" & vbcrlf
objie.document.write "</script></head>" & vbcrlf
objie.document.write "<body bgcolor='#CCCCCC' style='overflow:hidden'><form name='form1'>" & vbcrlf
objie.document.write "<input type='button' name='button1' value='ログオフ' onClick='osu()'>" & vbcrlf
objie.document.write "</form></body></html>" & vbcrlf
objie.visible = true
objie.toolbar = false
objie.statusbar = false
objie.resizable = false
set objwshell = nothing
set objie = nothing
上記のプログラムを[.vbs]という拡張子で保存。
これは、vbsファイルをクリックするとIEの画面が出て、ログオフのボタンをクリックするとログオフするというものなのですが、うまくいきません。
vbsの中にまたvbsを記述しているからでしょうか?
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
まず念のため、今回 aonagi さんがセキュリティ設定を変更した IE はセキュリティ的に見て危険な状態になっているってことだけは認識しておいてくださいね。
インターネットのどこかのページに記述されている VBScript を実行してしまう可能性があります。
そのスクリプトにはレジストリを操作するコードが書かれている可能性もあります。
> ところで、どうやったらパソコンに詳しくなれますか?
これは新たに質問したほうがいいと思います。
コンピューター [技術者向け] > プログラミング > その他(プログラミング)
あたりがいいんじゃないでしょうかね。
http://oshiete1.goo.ne.jp/c260.html
No.2
- 回答日時:
> しかし、ボタンをクリックしたら「エラー:ActiveXコンポーネントはオブジェクトを生成できません:wscript.shell」というのがでてきました。
> これはどんなエラーなのでしょうか?
だから言ったじゃないですか。
> コードの不具合は以上ですが、インターネット オプションでのセキュリティの問題が出そうですね。
> A) 上記書き込み元 VBScript によって生成されたページ
> B) A のソースを HDD に HTML として保存して開きなおしたページ
> A= インターネットゾーン
> B= マイ コンピュータ
VBScript の下記行をコメントアウトしてもう一度実行してみてください。
objie.statusbar = false
生成された IE ウィンドウのステータスバーに「インターネットゾーン」って表示されてますよね?
つまりセキュリティが一番堅い状態で実行されているのです。
普通にどこかのページを見ててページに表示されているボタンを押すとローカルにある VBScript ファイルを実行されちゃうのって問題ですよね?
それと同じ状態だ、と IE が判断してるのです。
当方 IE 7 ですが、インターネット オプションで [セキュリティ] タブで「インターネット」を選択して [レベルのカスタマイズ] をクリック。
「スクリプトを実行しても安全だとマークされていない ActiveX コントロールの初期化とスクリプトの実行(セキュリティで保護されていない)」を「有効にする(セキュリティで保護されていない)」にしてから実行してみてください。
実行すると IE のウィンドウ上部に「現在のセキュリティ設定では、お使いのコンピュータが危険にさらされています。セキュリティの設定を変更するには、ここをクリックしてください...」という説明が出ます。
この警告の×を押してもいいですが、かろうじてウィンドウに表示されている [ログオフ] ボタンをクリックすると "ログオフ.vbs" を実行しようとします。
(ログオフ.vbs の中身による実行結果は存じません・・・)
この回答への補足
見事に実行してくれました。
全てあなたのおかげです。本当にありがとうございました。
ところで、どうやったらパソコンに詳しくなれますか?
No.1
- 回答日時:
こういう場合はまず、うまく行った場合をイメージし、実際に生成される(事を期待する)HTML を書いてみましょう。
すると VBScript がおかしい旨のエラーが出るはずです。
んでよーく見てみると、HTML に書かれているスクリプトがおかしいことに気づきます。
HTML のルールでは ' は " の代わりに使用できますが、
VBScript のルールでは ' はコメントであり、' よりも後ろがコメントアウトされてしまいます。
すると以下のようなスクリプトが書いてあることになってしまいます。
Set aaa = CreateObject(
aaa.run
(コメントと見なされる部分は書いてません)
したがって、ブラウザでホストされる VBScript 内で使っている ' を " に変える必要があるため、書き込み元の VBScript では下記のようにします。
objIE.Document.Write "Set aaa = CreateObject(""Wscript.Shell"")" & vbCrLf
objIE.Document.Write "aaa.run ""WScript ログオフ.vbs"", 1, true" & vbCrLf
コードの不具合は以上ですが、インターネット オプションでのセキュリティの問題が出そうですね。
A) 上記書き込み元 VBScript によって生成されたページ
B) A のソースを HDD に HTML として保存して開きなおしたページ
A= インターネットゾーン
B= マイ コンピュータ
がんばってください。
この回答への補足
適確な指示ありがとうございます。
今まではファイルをダブルクリックした時点でエラーが出ていましたが、今回からは出なくなりました。
しかし、ボタンをクリックしたら「エラー:ActiveXコンポーネントはオブジェクトを生成できません:wscript.shell」というのがでてきました。
これはどんなエラーなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
過剰なオブジェクト指向脳から...
-
Google ColaboでGUI作成
-
プログラミング未経験者(殆ど未...
-
本格的なWebアプリを公開する時...
-
オブジェクト指向プログラミン...
-
HTMLソースが表示のページのも...
-
大学のゼミのレポートがムカつ...
-
シェルのSTEP数について教えて...
-
16x16のスプライトフォント
-
楽しくて最高のプログラミング...
-
Webサイト内に埋め込んだmp4動...
-
Selenium4でボタンをクリックで...
-
pythonにてseleniumを使うも、...
-
このURLで広告を出しているのは...
-
batファイル、コマンドプロンプ...
-
プログラムの起動、利用につい...
-
VBAでパワーシェルを実行したい...
-
VBA 電話番号の正規表現について
-
ハッシュテーブル(連想配列)が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VS CodeでTEXファイルにPDF形式...
-
vbsでスクロール位置を指定して...
-
vbscript内にvbscriptを記述
-
三項でたとえば交換って
-
VBA public変数はどのようなこ...
-
C#のループでtextboxに値を入れ...
-
VBAでcallで呼び出したsubを終...
-
他のフォームから別のフォーム...
-
C言語のサフィックスについて
-
レコードセットにnullの場合
-
エクセルVBAでテキストボッ...
-
Functionの戻り値を配列にした...
-
プログラムの素朴な質問です 分...
-
VB.NETでのイベントの途中終了
-
sublimit textっていうエディタ...
-
アクセスできない保護レベルエ...
-
String型の値にスラッシュをつ...
-
Excel VBAでsub,dimは何の略?
-
チェックボックスを操作できな...
-
ClickとChangeイベントの違いは...
おすすめ情報