「お気に入りの追加」ダイアログの表示方法


まこと  2011-04-17 07:06:57  No: 40453

いつも参考にさせていただいております。の点について質問させてください。

●やりたいこと
  ・WebBrowserを利用したブラウザで、「お気に入りに追加」ダイアログを使用したい。
    (現在、以下のコードで実現できています。)
  ・ただし、このコードだと、「お気に入りに追加」ダイアログは、WebBrowser1のモーダル
    ダイアログとしてではなく、非モーダルダイアログとして表示されてしまう。
    また、タスクバーに、このダイアログの分のウインドウ切り替え用アイコンが
    できてしまう。
  ・このダイアログを、IEと同じ操作感とするため、モーダルダイアログとして出したい。
    (タスクバーにも余計なアイコンを表示させたくない。)

Uses
  ComObj;

procedure TForm1.Button1Click(Sender: TObject);
const
  CLSID_ShellUIHelper: TGUID = '{64AB4BB7-111E-11D1-8F79-00C04FC2FBE1}';
var
  ShellUIHelper: IShellUIHelper;
  FavURL: WideString;
  FavName: OleVariant;
begin
  FavURL := WebBrowser1.LocationURL;
  if FavURL <> '' then begin
    if WebBrowser1.Document <> nil then begin
      FavName := WebBrowser1.LocationName;
      ShellUIHelper := CreateComObject(CLSID_SHELLUIHELPER) as IShellUIHelper;
      try
        ShellUIHelper.AddFavorite(FavURL, FavName);
      except
      end;
    end;
  end;
end;


なんてこったい  2011-04-19 21:46:28  No: 40454

「お気に入りに追加」のモーダルなダイアログを出したければ、
IEFrame.dllにあるDoAddToFavDlg関数を使えば出来る。
ただし、MSDNを説明によると、この関数はモーダルなダイアログを
表示してくれるだけで、実際には「お気に入り」のショートカットは
作成してくれない。
なので、ショートカットは この関数の返値が1の時に自前で作成する
必要あり。


monaa  2011-04-19 21:51:25  No: 40455

うほ、書きこむ直前にリロードしたらレス付いてた。
shdocvw.dllですね。


まこと  2011-04-23 05:31:57  No: 40456

しばらく見られてなかったうちに回答が…
どうもありがとうございます。キーワードだけでも分かって、少し希望が
見えて気ました。ちょっと検索しただけですと、あまりDelphiでの情報はな
いようなのですが、ちょっと試行錯誤していじってみたいと思います。
また詰まったらご相談させてください。もし自分だけでうまくできたら、
そのときはそのときで結果を報告いたします。


Mr.XRAY  2011-05-14 04:50:54  No: 40457

みなさんこんにちは.Mr.XRAYです.

AddUrlToFavorites関数を使用すると,質問された方の希望に近いことができる
ような気がします.

http://mrxray.on.coocan.jp/bbs/DelphiBBS/mrxray_delphifan_coffe.cgi?tree=s4745#4746


その関数は過去の遺物か?  2011-05-14 06:36:49  No: 40458

>AddUrlToFavorites関数を使用すると,質問された方の希望に近いことができる
>ような気がします.

Mr.XRAYさんが動作確認された環境は、
>動作確認は,Windows 7 U64 + Delphi 2010(UP5)です.
のようですが、こちらの環境では
fDisplayUI が True であっても False であってもダイアログは表示されません。
動作環境は WinXP Sp3  IE8  shdocvw.dllバージョン:6.0.2900.5512

以下のページを見ると「AddUrlToFavorites」関数は shdocvw.dllのバージョン
によって動作したりしなかったりと、いろいろ問題があるようで・・・

http://social.msdn.microsoft.com/Forums/ja-JP/vcgeneralja/thread/541d9028-9b66-4a1f-abf7-aac40da518fc/


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加