none
VISTAでファイルをダブルクリックしたとき RRS feed

  • 質問

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

     

    VC6ベースで作成したアプリケーションですが、

    ファイルを保存し、エクスプローラからダブルクリックをすると

    アプリケーションが起動し、ファイルが開くようになっております。

    ※DDEを使用しております。

     

    但し、VISTAでは何台かに一台は、「ファイルが見つかりません・・・・」のダイアログが開き、

    裏でアプリケーションが起動している状態となっています。

     

    なにが原因となるのでしょうか。

    また、調査ポイントがあれば教えてください。

     

    2008年12月16日 7:50

回答

  • 自己レスです。

     

    結果から先にいいますと、動作するようになりました。

    EnableShellOpen()関数を、InitInstance関数の一行目に置くことで、

    動作しました。

     

    ここからは推測ですが、---------------

    Expolorerがエラーメッセージを出していると仮定した場合、

    DDE接続ができないためにエラーとなっており、

    接続ができない原因として、自作アプリ側が、その準備ができていないことになっているはずで、

    その準備を、どの処理よりも早く行うことで解決(?)しました。

    ---------------

     

    しかし、この推測ではあまりにもタイミングが密接に関連しており、

    本当の解決になるのか疑問です。

    もしこれ以上はやく準備をする必要を求められた場合どうしらよいのか・・・・

     

     

     

     

     

     

     

    2008年12月17日 2:14

すべての返信

  • 自己レスです

     

    OSに負荷を与えるとダブルクリックで開きます。

    というのは、OFFICEイントール中に、

    ダブルクリックをして開いたからで、インストールが終了すると

    またしても、「ファイルが見つかりません・・・・」のダイアログが表示されました。

     

    なにかのタイミングなのでしょうか??

     

    2008年12月16日 9:59
  • 外しているかも知れません。

     

    XPでの話ですが、関連付けの設定でDDEが有効になっているとき、起動したアプリが一定時間内に応答しない場合は、エクスプローラ側でエラーメッセージが表示されたような気がします。

     

    その環境でどこまでできているか、ログファイルに書き出すようにしてみるとかどうでしょうか。

    ログを書くことでタイミングがずれて現象が起きなくなったら困りますが。。。

    2008年12月16日 14:27
    モデレータ
  • ご返事ありがとうございます。

     

    >XPでの話ですが、関連付けの設定でDDEが有効になっているとき、起動したアプリが一定時間内に応答しない場合は、エクスプ>ローラ側でエラーメッセージが表示されたような気がします。

     

    このときの対応策はなんだったのでしょうか?

     

    VISTA側も、エクスプローラが表示しているみたいなのですが。。。

    2008年12月17日 1:08
  • 自己レスです。

     

    結果から先にいいますと、動作するようになりました。

    EnableShellOpen()関数を、InitInstance関数の一行目に置くことで、

    動作しました。

     

    ここからは推測ですが、---------------

    Expolorerがエラーメッセージを出していると仮定した場合、

    DDE接続ができないためにエラーとなっており、

    接続ができない原因として、自作アプリ側が、その準備ができていないことになっているはずで、

    その準備を、どの処理よりも早く行うことで解決(?)しました。

    ---------------

     

    しかし、この推測ではあまりにもタイミングが密接に関連しており、

    本当の解決になるのか疑問です。

    もしこれ以上はやく準備をする必要を求められた場合どうしらよいのか・・・・

     

     

     

     

     

     

     

    2008年12月17日 2:14
  •  TAKAKUN さんからの引用

    ここからは推測ですが、---------------

    Expolorerがエラーメッセージを出していると仮定した場合、

    DDE接続ができないためにエラーとなっており、

    接続ができない原因として、自作アプリ側が、その準備ができていないことになっているはずで、

    その準備を、どの処理よりも早く行うことで解決(?)しました。

    ---------------

    言葉が足りずに申し訳ありません。

    私が言いたかったことはDDEのタイムアウトエラーが起きているのではないかということと、それが起きるときはどこに時間がかかっているのかを調べて欲しかったのです。

    (同じ推測です)

     

    #先の発言では、DDEを受け付けるコードを丸ごと削除したときに経験した事象でした。

    2008年12月17日 14:13
    モデレータ
  • ご返事ありがとうございました。

     

    DDEのタイムアウトの時間って変更できるもんなんでしょうか?

     

    とりあえず、割合として、100台中3台ほどのVISTAマシンに起こっていた現象で、

    3台すべて動作することが確認できた模様です。

     

    同じメーカーの同じスペックでありながらこのような現象がおこるものなのでしょうか。

    動いているサービス数や、常駐しているアプリの数がに関係していたのでしょうか?

     

     Azuleanのヒントがなかったら、迷宮に入るところでした。

     

    ありがとうございました。

     

     

    2008年12月18日 8:58
  •  TAKAKUN さんからの引用

    DDEのタイムアウトの時間って変更できるもんなんでしょうか?

    変わらないと思います。

    変えられると仮定したとしても、アプリケーションの全ユーザの環境の設定値を変えるような解決方法になるので現実的ではありません。

     

     TAKAKUN さんからの引用

    同じメーカーの同じスペックでありながらこのような現象がおこるものなのでしょうか。

    動いているサービス数や、常駐しているアプリの数がに関係していたのでしょうか?

    詳細は分かりません。

    個々のケースで原因は様々なので何とも言えません。

    2008年12月18日 14:46
    モデレータ