[ad_1]
Windows では、ブラウザ (Chrome、Firefox、Edge) のアドレス バーからリンクを取得して、デスクトップまたは別のフォルダにドロップすると、Windows によって .URL ファイルが作成されます。 このファイルには、ページのキャッシュされたアイコンへのリンクと参照が含まれています。 ファイルの名前はページのタイトルです。
この機能を自分のプログラムで複製する必要があります。 C++ と MFC を使用しています。 URL自体を取得するCOleDropTargetを使用するコードがあります。 これをキャッチするには、RegisterClipboardFormat(_TEXT(“UniformResourceLocator”)) を使用します。
リンクにアクセスし、ファイルの
ページのタイトルを取得するには、ページに関連付けられているキャッシュされたアイコンへのパスを取得する方法がわかりません。 アイコンキャッシュに既にアイコンがあるため、新しいアイコンをダウンロードして作成したくないです。
ブラウザーがこのすべての情報をエクスプローラーで利用できるようにして、.URL ファイルを作成できるようにする方法があると考えていますが、これがどのように発生するかに関するドキュメントは見つかりません。 知ってる人いたら教えてください。 理想的には、この情報 (URL、ページ タイトル、キャッシュされたアイコン ファイルへのパス、存在する場合はアイコン インデックス) をキャプチャするために使用できるコードのスニペットがあれば素晴らしいでしょう。 ブラウザにメッセージを送信して .URL ファイルを作成するように指示する方法があれば、それも機能します。
どうもありがとうございます!
私が試したこと:
OnDragOver、OnDragEnter、OnDragLeave、および OnDrop を実装する COleDropTarget から派生したクラスを試しました。 クリップボード形式「UniformResourceLocator」と「UniformResourceLocatorW」を登録しました。 クリップボード形式 CF_TEXT も試してみましたが、これは機能しているようですが、他の方法では削除された URL をキャッチできませんでした。
解決策 1
持っているものしか使えないので、試してみてください クリップボード ビューアー ソフトウェア あなたが持っているもの。 テキストのみの場合は、処理する必要があるよりも、チェック、検証、および使用してください。
解決策 2
おそらくこれが役立ちます:
プログラムでウェブサイトのURLからロゴアイコンを取得する方法はありますか? – スタックオーバーフロー[^]
たとえば、次の 2 つの方法でイメージをロードできます。
1. /favicon.ico にアイコンがある場合は、それを読み込みます。
2. アイコンまたはショートカット アイコン。
解決策 3
Firefox のソース コードを読んで、どうすればよいかわかりました。 解決策は、タイプ FileGroupDescriptor および FileContents のクリップボード コンテンツをサポートすることです。 最初のものは、.URL が追加されたページ タイトルであるファイルの名前を示し、2 番目のものは、.URL ファイル自体を読み取ることができる IStream を示します。 ファイルの内容には、URL とキャッシュされたアイコンへの参照が含まれます。 まさに私が必要としていたものです!
これが文書化されているのを簡単に見つけられる場所を知っている人はいますか?
解決策 4
Chrome や Edge は Chromium ベースのブラウザであるため、Chrome や Edge からアイコンを取得することはできないと思います。 Chrome から URL をドラッグしてデスクトップにドロップすると、作成された .url はファイル名としてのページ タイトルとファイル内の URL のみで構成されます。 ドラッグ中にアイコンが表示されても、渡されません。 2 つの Chromium ブラウザ間で URL をドラッグしてブックマークにすると、やはりアイコンが転送されません。
[ad_2]
コメント