いつも参考にさせていただいております。の点について質問させてください。
●やりたいこと
・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;
「お気に入りに追加」のモーダルなダイアログを出したければ、
IEFrame.dllにあるDoAddToFavDlg関数を使えば出来る。
ただし、MSDNを説明によると、この関数はモーダルなダイアログを
表示してくれるだけで、実際には「お気に入り」のショートカットは
作成してくれない。
なので、ショートカットは この関数の返値が1の時に自前で作成する
必要あり。
うほ、書きこむ直前にリロードしたらレス付いてた。
shdocvw.dllですね。
しばらく見られてなかったうちに回答が…
どうもありがとうございます。キーワードだけでも分かって、少し希望が
見えて気ました。ちょっと検索しただけですと、あまりDelphiでの情報はな
いようなのですが、ちょっと試行錯誤していじってみたいと思います。
また詰まったらご相談させてください。もし自分だけでうまくできたら、
そのときはそのときで結果を報告いたします。
みなさんこんにちは.Mr.XRAYです.
AddUrlToFavorites関数を使用すると,質問された方の希望に近いことができる
ような気がします.
http://mrxray.on.coocan.jp/bbs/DelphiBBS/mrxray_delphifan_coffe.cgi?tree=s4745#4746
>AddUrlToFavorites関数を使用すると,質問された方の希望に近いことができる
>ような気がします.
Mr.XRAYさんが動作確認された環境は、
>動作確認は,Windows 7 U64 + Delphi 2010(UP5)です.
のようですが、こちらの環境では
fDisplayUI が True であっても False であってもダイアログは表示されません。
動作環境は WinXP Sp3 IE8 shdocvw.dllバージョン:6.0.2900.5512
以下のページを見ると「AddUrlToFavorites」関数は shdocvw.dllのバージョン
によって動作したりしなかったりと、いろいろ問題があるようで・・・
ツイート | ![]() |