【質問】VB.NET(2008)でブラウザからセキュリティ警告なしで起動する方法が知りたい

このQ&Aのポイント
  • VB.NET(2008)で作成し、クライアントにインストールしたアプリケーション(EXE)を、ブラウザ(IE6)からセキュリティの警告なしで起動する方法を教えてください。
  • 現在、javascriptの"WScript.Shell"を使って起動しようとしていますが、セキュリティ警告が表示されてしまいます。
  • VB6.0の入手方法や、vs2010でjavascriptから呼び出せるActivexの作成方法、Activexをjavascriptから呼び出す方法についても教えて頂きたいです。
回答を見る
  • ベストアンサー

お世話になっております。

お世話になっております。 色々と調べたのですが、どうしても実現できないので質問させていただきます。 どなたかお助けください。 <やりたいこと>  VB.NET(2008)で作成し、クライアントにインストールしたアプリケーション(EXE)を、ブラウザ(IE6)から  セキュリティの警告なしで起動したい。 <現在の状況>  javascriptの"WScript.Shell"を使って起動するようにしたものの、、「このページのActiveXコントロールは安全でない可能性があり、ページのほかの部分に影響する可能性があります。ほかの部分に影響しても問題ありませんか?」というメッセージが表示されてしまう。  調べたところ、自分でActivexコントロールを作成してそれを呼び出した方がいいという結論になりました。  しかし、VB6.0がないため、とりあえずできるかどうかの確認でVS2010をインストールしました。  ただ、vs2010の場合C++でActivexをつくる必要があるようで、C++をまったく経験したことがない状態の私には垣根が高く、困っています。 <教えて頂きたいこと>  ・VB6.0をどうにか入手してそれを使った方がいいのか  ・vs2010でjavascriptから呼び出せるAxtivexを作成する方法  (プロジェクトの作成、ビルドまではできたのですが、イベントをどこにどう記入すればいいのかがわかりません)  ・上で作成したActivexをjavascriptから呼び出すためにはどうすればよいのか?  (クライアント上でしなければならないこと、javascriptからの呼び出し方法)  丸3日考えて色々やってみたのですが、どうにも時間が無駄になっている気がしてきて、ご質問させていただきました。  なにとぞよろしくお願いいたします。  

質問者が選んだベストアンサー

  • ベストアンサー
  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.1

それが出来ちゃうとセキュリティホールになります。 私がもし同じ様な事を依頼されたのなら 方法1) ActiveX を作成して、ActiveX からアプリケーションを起動します。JavaScript の起動はしないようにします。それなら、一度、ActiveX の認証を通してセットアップする事で、その後の警告は出なくなります。 方法2) WPF アプリケーションを作成して、WPF アプリケーションからシェルをキックする方法を作成します。この方法も、(バージョンアップの度に)一度だけセットアップする時に警告は出ますが、それ以降は警告無しに起動する事が出来ます。  のどちらかで行います。  現在の流れから言うと、前者の方が問題は少ないと思います。 SSL などで認証してあげる事で、安全な~ になりますので、よりベターな感じになると思います。

komaishi
質問者

お礼

遅くなり申し訳ありません。 なるほど! 無理にjavascriptを返さずにできるんですね! ありがとうございます。 ぜひやってみます。 あとはVS2010(C++)でどうすればActivexを作成できるかを学ばなければ… 何かよいサイトなどありましたら、教えていただけると嬉しいです。 お願いばかりで申し訳ありません。

関連するQ&A

  • VB6でActiveXを作成

    こんにちは、AxtiveXを初めて作成することになり、 いろいろ調べた結果 工数や自分の能力(C++未経験)からVB6にて作成しようかと考えています。 .NET(C#)で作れれば一番嬉しいのですが、ActiveXのようなものができるだけで、いろいろと問題がありそうなので断念しました。 (レジストリの登録など?) ActiveXの配布はcabファイルなるもので、行うようですが VB6はC++ とは違ってランタイムがいると思います。ランタイムも一緒に配布することはできるのでしょうか?(自働インストールさせることができるのでしょうか?) 前提として、「何の準備もなくサイトにアクセスして、動作するもの(ActiveXのインストールダイアログなどは別として)」を作成しなければいけないため、 あらかじめ、ランタイムをインストールしてくださいということであれば、VB6での開発は断念せざるおえません。 ご回答、参考サイトなどありましたら、よろしくお願いします。

  • ActiveXのインストールの有無

    JavaScriptで特定のActiveXコントロールのインストールの有無を調べたいと思っています。 そのようなことは可能でしょうか。 下記ページではActiveXのオブジェクトが生成できるかどうかで判断しているようですが そうではなくて特定のActiveXコントロールがインストールされているかどうかが判断できないかと 思っています。 http://kinopyo.com/blog/javascript-to-check-is-activex-enabled-in-client/

  • ActiveXコントロールの開発環境からのデバッグ方法

    VBで自作のActiveXコントロールを作成しました。 コンパイルして生成されたabcd.ocxを 自作のtest.htmファイル内に指定して、ActiveXコントロールから test.htmlに記述されたJavaScriptを制御します。 開発環境の実行を行わなわずに、test.htmをIEで表示させると、 ActiveXコントロールがダウンロードされ(すでにローカルにありますが)JavaScriptを実行することはできます。 やりたいのは、開発環境から実行させて、JavaScriptを動作させたのです。 どうすればいいのでしょうか? 環境は、VB6.0(SP5),IE5.5(SP1)です。

  • VB2008によるOCX作成、またはHTMLからのDLL呼び出しは可能でしょうか?

    こんにちは。 はじめての投稿になります。 私は現在、「ファイルを開く」のコモンダイアログボックスを起動できるHTML画面を作りたいと思っております。 その画面ではサーバ側のファイルを閲覧させたいのですが、認証やセキュリティなどの観点から、 ダイアログボックスの起動はクライアント側で動作するようにしたいです。 それにあたって、ダイアログボックスを呼び出すオブジェクトをAxtiveXコントロール(OCX)で作成し、 そのOCXをHTMLから呼び出すことで実現できないかと考えました。 そこで、以下のことを調べております。 (1)無償のVB開発環境を使ってAxtiveXコントロールを作成することができるか? (2)AxtiveXコントロールを作成できないなら、AxtiveX DLLをHTMLから呼び出せるか? ちなみに現在使用している「無償のVB開発環境」は、Visual Studioの Visual Basic 2008 Express Edition です。 (1)に関しては、VB6ではAxtiveXコントロールを作成できたと聞きますが、どうもVB2008では(.Netでは)作成できないようです。(現在までに見つけた情報に、「.Netで作成できる」というものがないため) (2)に関しては、VB2008 Express Edition を使って、ダイアログボックスを呼び出す AxtiveX DLL を作成することには成功しています。 VBのCOMクラスのテンプレートにダイアログボックス起動の関数を記述し、ビルドしてdllを作成。 ↓ 別途VBによるWindowsフォームアプリケーションを作成し、「参照の追加」で上記dllを登録してダイアログボックス起動の関数を呼び出す。 という方法で、ダイアログボックスを呼び出せました。 ですので、HTMLの画面からも同じようにdll呼び出しができないかと思ったのですが、現在のところ方法が見つかりません。 ダイアログボックスを開く機能さえあればよく、ユーザーインターフェースは不要なので AxtiveX DLL でもよいと思ったのですが、HTMLからの呼び出しにはDLLではなくOCXを用いるという情報しか見つけられませんでした。 以上のことから、VB2008ではHTMLからダイアログボックスを呼び出すActiveXを作れないのではないか?と思える状態なのですが、それが可能であるという話がもしありましたら、お教えいただきたく思います。 最低限「クライアント側からのダイアログボックス起動ができるHTML」「ダイアログボックス起動はVBで作成」という条件を満たせればよいので、(1)(2)で実現できなければ別の方法を探すことにします。 最後に 必要かどうかわかりませんが、(2)で試しに作ったダイアログボックス呼び出しのCOMクラスのソースを載せておきます。 ご回答の参考になりますでしょうか。 Imports System.Windows.Forms <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _ Public Class ComClass1 Public Const ClassId As String = "2bdd38a4-f946-44e2-af47-5b9cbd2c24d5" Public Const InterfaceId As String = "fcd22890-f4cd-4e2a-b8c0-ae83f290c250" Public Const EventsId As String = "86c74809-966a-47cf-9324-adce776030eb" Public Sub New() MyBase.New() End Sub Public Function subOpenFile(ByVal inFilePass As String) As Boolean subOpenFile = False 'OpenFileDialogクラスのインスタンスを作成 Dim ofd As New OpenFileDialog() If inFilePass = "" Then ofd.InitialDirectory = "C:\" Else ofd.InitialDirectory = inFilePass End If ofd.Filter = "HTMLファイル(*.html;*.htm)|*.html;*.htm|すべてのファイル(*.*)|*.*" ofd.FilterIndex = 2 ofd.Title = "開くファイルを選択してください" ofd.RestoreDirectory = True ofd.CheckFileExists = True ofd.CheckPathExists = True 'ダイアログを表示 If ofd.ShowDialog() = DialogResult.OK Then Console.WriteLine(ofd.FileName) End If subOpenFile = True End Function End Class (呼び出し側では以下の記述で呼び出しに成功しました) Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Test As New COMTest1.ComClass1 Call Test.subOpenFile("C:\WINDOWS") End Sub 以上、よろしくお願いいたします。

  • お世話になっております。

    お世話になっております。 VB.NETで作成したDLLをAccessVBAより参照しようとしています。 VisualStudioがインストールされているPCだとACCESSの参照設定のみでDLLが動作しますが 他のPCでは“ActiveXコンポーネントはオブジェクトを作成できません”エラーになってしまい ます。 regasmすれば動作するものでしょうか? (申し訳ありませんが、これはまだ、確認できておりません) 非常に困っています。 よろしくお願いいたします。

  • 頻繁に出るメッセージが煩わしくて困っています

    IE7 から IE8 にしたら、「このページのActiveXコントロールは、 安全でない可能性があり、ページのほかの部分に影響する可能性があります。ほかの部分に、 影響しても問題ありませんか?」というメッセージが頻繁に出るので煩わしくて、IE8を アインストールしてIE7をインストールしました。しばらくは、メッセージがでなかったので、 ホッとしてたら、また出るようになりました。メッセージが出なくなる方法を教えて下さい。 とても煩わしくて困っています。よろしくお願いします。

  • VB6のランタイムについて

    VB6のランタイム配布について質問があります。 下記コントロール、またはDLLをVB6ランタイムが入っていない環境にインストールしようとした場合、ランタイム配布は必要でしょうか? 1.ActiveXコントロール(いわゆるユーザコントロール) 2.ActiveX.DLL(当DLLはCからCALLします)

  • ActiveXの更新について

    VB6.0でActiveX.DLLを作成してサーバ上に配置しています。 それをクライアントで実行しているのですが、 サーバ上のActiveX.DLLを置き換えてもクライアントの 実行結果がかわりません。 ActiveX.DLLを作る際に設定等があるのでしょうか?

  • 6.0ランタイム環境で・・・

    VB5.0で作成したアプリケーションを、6.0ランタイムをインストールした環境で動作させる事は可能でしょうか? 一部のActiveXコントロールで動作がおかしくなる、というような事を聞いたのですが・・・

  • VBScriptによるファイル操作

    いつもお世話になっております。 VBScriptを使用して ローカルパソコン内の2つのテキストファイルを 1つのテキストファイルにまとめるプログラムを作成しました。 ※CreateObject("Scripting.FileSystemObject")を使用しています。 InernetExplorerを利用してそのプログラムを起動する際、「このページのActiveXコントロールは安全でない可能性があり、ページのほかの部分に影響する可能性があります。ほかの部分に影響しても問題ありませんか?」と表示されます。 このプログラムはインターネット上でなくローカルパソコン上でしか使用しないので、セキュリティを「低」設定にして起動したのですが表示がでてしまいます。 また、VBで作成したDLLなどは証明書の発行があるようなのですが、VBScriptは証明書などはあるのでしょうか。 この表示が出なくなる方法を教えてください。 よろしくお願いします。

専門家に質問してみよう