ActiveXを使ったオンラインゲーム起動の問題

このQ&Aのポイント
  • VisualStudio2003を使用してオンラインゲームを製作中ですが、ActiveXを使ったゲーム起動に問題があります。
  • ユーザーがゲームを閉じた後、二度目以降のゲーム起動ができません。
  • セキュリティの問題かと思い、著名済みのコードサイニング証明書を試しましたが解決しませんでした。
回答を見る
  • ベストアンサー

こんにちは。

こんにちは。 現在VisualStudio2003でオンラインゲームを製作中です。 ホームページ上からゲームを起動させたく、HP上の「ゲーム開始」ボタンを押すとActiveXを起動させて、そこからCreateProcessによりクライアントのゲームを起動させたいと考えています。 CABファイルにMFCでつくったActiveXコントロール(ocx),infファイルを埋め込み、 CABには CABARC -s 6144 n TEST.CAB TEST.ocx TEST.inf signtool sign -a -f XXXX.pfx -p XXXX TEST.cab の手順で購入したコードサイニング証明書(MS Authenticode)を著名しています。 HPでは、下記のように記述しています。clsidはActiveXコントロールのidlファイルのクラスIDです。 <html> <head></head> <body> <OBJECT ID="TEST" CLASSID="CLSID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX" CODEBASE="TEST.CAB#version=1,0,0,1"> </OBJECT> </body> HP上の「ゲーム開始」ボタンを押すと上記を呼びます。 一度目の押下では目的のゲームを起動できるのですが、ゲームを閉じてから二度目以降の押下では起動しません。 ユーザーはゲームを閉じてもまた押下することもあるので、一度しか起動できないとまずいわけです。 IEを一旦閉じてから開くとまた出来ますが、やはり起動できるのは最初の一度目だけです。 ocxファイルが二度目以降の押下では起動できていません。 IEのインターネットオプションの設定で信頼済みのサイトに入れてやると二度目以降も起動できます。 そこでセキュリティの問題かと思い、CAB以外にそれに含まれるocxとexeも著名してみましたが、やはり二度目以降の押下では起動しませんでした。 ActiveXコントロール(ocx)が起動中は再度ocxを起動できないのか?と思い、ゲームを起動させた後にActiveXコントロール(ocx)は要らないので、 CreateProcessのあとでexit(0)とすると、IEまで消えてしまいます。 何かこの現象で分かる方がいらっしゃいましたら、是非とも教えてください。 よろしくお願い致します。

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

  • ベストアンサー
  • YEND77
  • ベストアンサー率56% (21/37)
回答No.1

こういう問題って難しいですよね。。。 間に一個ページをかましてみる方法はどうですかね? (現状モデル)  HP → アプリ (間に一個かますモデル)  HP →起動用ページ→ アプリ 起動用ページはなんらかのテクでアプリ起動後破棄する。

関連するQ&A

  • VC++で作成したAvtiveXのIEからの呼び出しについて

    はじめまして、ayumina222と申します。 VC++を使ってActiveXを作成しました。 IEから呼び出しをし、ローカルのメモ帳に引数を渡して起動したいと考えています。 作成したActiveX(ocx)はフリーツールを利用してinfファイルを作成し、cabファイルにまとめました。 テスト用に証明書も作成し、ocx、cab共に署名もしました。 この状態でサーバーにアップし下記のhtmlソースで呼び出しを試みましたがレジストリにActiveXのClassIDが書き込まれていないPCではまったく反応がありません。 あと、実行された場合にActiveXのDoPropExchange関数内に書いた処理が何回か実行されてしまいます( ̄д ̄) エー HTMLソース ----*----*----*----*----*----*----*----*----*----*----*----* <object classid="CLSID:****************************" codebase="http://ドメイン/XXXXXXXXXXX.cab" id="XXXXXXXXXXX" width="0" height="0" TYPE="application/x-oleobject"> <param name="test1" value="XXXXXXXXXXX" /> <param name="test2" value="XXXXXXXXXXX"/> <param name="test3" value="XXXXXXXXXXX" /> </object> ----*----*----*----*----*----*----*----*----*----*----*----* 期待している動作としては、 「ActiveXをインストールしますか?」 というダイアログが出て、承諾するとインストールを実行し、受け取った引数をローカルのPCのnotepad.exeに渡すといった動作です。 IEのセキュリティ設定はActiveXを実行できるよう変更してあります。 証明書も登録しました。 ClassIDが登録されているPCでは期待通りの動作をしてくれているので、ocxには問題は無いと思います。 ワタシはClassIDがローカルPCで見つからなかった場合にはcodebaseのURLを参照してIEがインストールを実行するという認識でしたが、どうも期待通りに動いてくれません(●`ε´●) ぶー codebaseのURLに直接アクセスした場合には 「cabファイルを保存しますか?」 と出るので、パスは通っていると思うのですが。。。 どなたかお分かりになる方いらっしゃいましたら、 宜しくお願いします(π0π) ウルルルル

  • MFCでActiveXの作り方

    VS6(SP5)+Win2K(SP4)で開発しています。 MFCでActiveX(OCX)までは、作成できたのですが、 それを、どうやってWebページ上で動かすかが分りません。 Webページとかでいろいろ探してみたのですが、下記のようなHTMLでテストをしましたが、ダウンロードがうまく行かず、「Download ProgramFiles」フォルダで不明となってしまいます。 どこかが、間違っているのだと思うのですが、どこでしょうか? HTML------------------- <html> <body> <p>test</p> <OBJECT codeBase="./MMOutput.cab#version=1.0.0.1" id=PSDWC1 height=357 classid="clsid:626F7510_1B6A_4F45_A8F8_56D4F9972DCE" width=343> </OBJECT> </body> </html> inf-------------------- ; Sample Inf file [Version] signature="$CHICAGOS" ;AdvancedINF=2.0 [Add.Code] MMOutput.ocx=MMOutput.ocx [MMOutput.ocx] file-win32-x86=thiscab CLSID={F6FE5E43-B7A5-48D9-9E5F-1014D9C560D6} FileVersion=1.0.0.1 ;DestDir=11 ;RegisterServer=no

  • ASPでオブジェクトの開放について

    お世話になります。 クライアントで動かすActiveXコントロールで 次のように作成されたオブジェクトを 開放する方法を教えて下さい。 <OBJECT ID="XXXXXXXX" CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" CODEBASE="XXXXXXXX.CAB#version=1,0,0,0"> </OBJECT> 通常のVBでは Set XXXXXXXX = Nothing のように開放すると思うのですが、 ASPではどのようにするのですか? 教えて下さい。

  • 【ActiveX】CABファイル作成時のINFファイルについて

    ActiveXコントロールをCABファイルでINFファイルを定義しました。 そのINFファイルについて質問です。 http://www.ki.rim.or.jp/~kuro/ActiveX/CabAndSign/MakeCab.html 上記サイトを参考にさせて頂いたのですが、 その中の"atl.dll"は何の役割を持ったファイルなのか? また、必要なのか? をご教授頂けますか。 宜しくお願い致します。

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

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

  • ASP.NetでのActiveX

    ASP.Net開発に関してご質問があります。 現在aspxにActiveXを貼り付け、そのパラメータをJavaScriptでいじっています。 そのActiveXをサーバコントロールとして扱うことは可能なのでしょうか? 以下のようにHtmlに記述し、aspx側にそのコントロールを足してみたのですが。。 <OBJECT id="test" codeBase="AAAAAAAAAA" classid="clsid:0555558F-7D5F-11D2-A1C7-006008E3229E" VIEWASTEXT runat="server"> ビルドはできるのですが、以下のようなエラーがでてしまいます。 『解析エラー メッセージ: GUID には、ハイフンを 4 つ含む 32 桁の数字 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) を含んでいなければなりません。』 見当違いなことをお聞きしているかもしれませんが、よろしくお願いいたします。

  • VC++でActiveXコントロールを作りたいのですが

    IEから <OBJECT CLASSID="CLSID:***"></OBJECT> で使えるActiveXコントロールを作りたいのですが、よくわかりません。 VC++では、MFC ActiveX ControlWizard で、ActiveXコントロールが作れるようですね。とりあえずプロジェクトを作って、そのまま何もしないActiveXを作って、ブラウザで表示したいと思っても、どのようにしたらいいのか、そこから分かりません。 HTMLを書いて、ブラウザで表示させようとしてますが、何か抜けていたり、おかしかったりするでしょうか。 かなり情報不足かもしれませんが、何かヒントがいただければと思います。よろしくお願いします。

  • regsvr32でActiveX登録を行ったocx

    regsvr32 で ActiveX登録を行った ocx がリソースエデイタ「のActiveX コントロールの挿入」で使用できなくて困ってます。 開発環境は VisualStudio2005 の VC++ で、Version は 8.0.50727.867 になります。 レジストリエディタで確認すると以下のレジストリキーで登録されていることを確認できるのですが。 HKEY_CLASSES_ROOT\CLSID\{9BD4A8F2-56BA-11D3-915D-00C04F797034} 『ActiveX コントロール テスト コンテナ』の「コントロールの登録」ダイアログで表示される一覧中には含まれていません。 また、「コントロールの登録」ダイアログで「登録」ボタンを押しても一覧に追加も行われません なんとなくセキュリティっぽい事までは分かるのですが、どなたかヒントをお持ちでしょうか?

  • ActiveXコントロールのCABファイル作成

    こんにちわ。 VC++でAciveXコントロールを作成したのですが、CABファイルとINFファイルの作成のしかたが分かりません。 VBだと「ディストリビューションウィーザード」でCABとINFファイルを作成できるのですが、「ディストリビューションウィーザード」はVCでは使えないみたいで困っています。 初心者なので詳しくお願い致します。

  • ActiveXとそれに代わるもの

    お世話になっております。 ブラウザ上にActiveXを埋め込む事を考え、 VB+VCのDLL(VisualStudio6.0)でActiveX(OCX)を作成→CABファイルを作成→サーバーに置く ここまでは良かったのですが、Vistaにて表示出来ませんでした。 IEの設定でセキュリティーレベルを変える等を抜きにした場合、デジタル証明書が必要となるのでしょうか? またリッチクライアントでActiveXに代わるものはあるのでしょうか?機能としては画像の加工等でファイル(GIF画像)をローカルディスクに一時保存します。 お手数ですが、よろしくお願い致します。