|
■No80430 (WebSurfer さん) に返信
WebSurfer様
返信ありがとうございます。連絡遅れましてすみません。
すみません、先ほどは参考として「変更前のexe」のエラーを記載させていただきました。 以下にまとめます。
■「変更前のexe」のエラーは以下です。 ↓------------------------------------------------------------------------------ アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。 [続行]をクリックするとアプリケーションはこのエラーを無視し、続行しようとします。 [終了]をクリックするとアプリケーションは直ちに終了します。
ActiveXコンポーネントを作成できません。
詳細 ************** 例外テキスト ************** System.Exception: ActiveX コンポーネントを作成できません。 場所 Microsoft.VisualBasic.Interaction.CreateObject(String ProgId, String ServerName) 場所 WindowsApplication.Form1.IE_Open() 場所 WindowsApplication.Form1.Form1_Load(Object sender, EventArgs e) 場所 System.EventHandler.Invoke(Object sender, EventArgs e) 場所 System.Windows.Forms.Form.OnLoad(EventArgs e) 場所 System.Windows.Forms.Form.OnCreateControl() 場所 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) 場所 System.Windows.Forms.Control.CreateControl() 場所 System.Windows.Forms.Control.WmShowWindow(Message& m) 場所 System.Windows.Forms.Control.WndProc(Message& m) 場所 System.Windows.Forms.ScrollableControl.WndProc(Message& m) 場所 System.Windows.Forms.ContainerControl.WndProc(Message& m) 場所 System.Windows.Forms.Form.WmShowWindow(Message& m) 場所 System.Windows.Forms.Form.WndProc(Message& m) 場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
↑------------------------------------------------------------------------------
■「変更後のexe」のエラーは以下です。 ↓------------------------------------------------------------------------------ アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。 [続行]をクリックするとアプリケーションはこのエラーを無視し、続行しようとします。 [終了]をクリックするとアプリケーションは直ちに終了します。
CLSID {0002DF01-0000-0000-C000-000000000046}を含むCOMコンポーネントのインスタンスを IClassFactoryから作成中に、次のエラーが発生しました:800704a6 システムのシャットダウンは既にスケジュールされています。 (HRESULTからの例外:0x800704A6)。
詳細 ************** 例外テキスト ************** System.Runtime.InteropServices.COMException (0x800704A6): CLSID {0002DF01-0000-0000-C000-000000000046} を含む COM コンポーネントのインスタンスを IClassFactory から作成中に、次のエラーが発生しました: 800704a6 システムのシャットダウンは既にスケジュールされています。 (HRESULT からの例外:0x800704A6)。 場所 System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) 場所 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) 場所 System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) 場所 System.Activator.CreateInstance(Type type, Boolean nonPublic) 場所 System.Activator.CreateInstance(Type type) 場所 WindowsApplication.Form1.IE_Start() 場所 WindowsApplication.Form1.Button23_Click(Object sender, EventArgs e) 場所 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 場所 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 場所 System.Windows.Forms.Control.WndProc(Message& m) 場所 System.Windows.Forms.ButtonBase.WndProc(Message& m) 場所 System.Windows.Forms.Button.WndProc(Message& m) 場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
↑------------------------------------------------------------------------------
>とも、トレース情報のメソッド名 IE_Open が違うように見えます。(上のコードでは IE_Startになっている) >変更後の exe で試したのは間違いないですか? 変更前の exe を使ったということはないでしょうか?
確かに WebSurfer様 の言われるとおり IE_Open はおかしいです。 しかし、ctrl+F で検索をかけてもヒットしませんでした。 以前 IE_Open という名前も使っていたような気もしないですが現在は使用していません。
ご指摘いただいた IE_Open ヒントに、調査を継続しようと思います。
ただし今回は時間が無かったので、発生率50%くらいという現象から先ほどドタン場で思いついた方法 「エラーになったら再度 IE_Sart をコールする」 で試してみたところ、それほど違和感無く使用できております。 (20回テストしてみてエラーポップアップは発生しませんでした)
これで何とか回避しつつ調査を継続します。
何か進展があったらご報告いたします。 (1週間程度、進展できなかったら「解決済み」にさせていただきます)
>「ネットカフェのPC」独自の制約など質問者さんが知り得ないこともあるかもしれませんし。 >検証する環境を「ネットカフェのPC」ではなく同僚や友人の PC とかに変えたほうがよさそうな気がします。
上記の件も確かにその通りだと思います。並行して検証したいと思います。
今回はじめて掲示板というものに質問させていただきましたが、返信いただきとても心強かったです。 ありがとうございました。
|