私が考えているのは、hwndのClassNameを確認して、Application.Onmessageの内容を確認することです。
これは、「Internet_Explorer_Server」クラス名に基づく「コンテキストメニューを無効にする」のようなものです。
は、例を参照してください:
procedure TDDGoogleMapsObject.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
var
szClassName: array[0..255] of Char;
const
ie_name = 'Internet Explorer_Server';
begin
if Msg.message = WM_KEYDOWN then
if Msg.wParam = VK_F5 then begin
GetClassName(Msg.HWND, szClassName, SizeOf(szClassName));
if lstrcmp(@szClassName[0], @ie_name[1]) = 0
then Handled := True;
if not Handled
then beep;
end;
end;
これはVK_F5キーのソースを確認することができます。それがIEのウィンドウから来たら、それを無効にします。我々はそれをプッシュすることができ 別のケース...あなたの助けを
ありがとう: DD
AアプリケーションでTWebBrowser(Internet Explorerなど)や外部ブラウザ? –
私のアプリケーションで。 – durumdara
F5ウィンドウのメッセージを傍受する必要はありません。「ブラウザにフォーカスがあるときはF5を無効にする」必要はありません。 Windowsではキーボードを制御しません。あなたは傍受して「処理済みとしてマークする」というメッセージを受け取ります。これは同じように機能しますが、あなたが何をしているのかを理解すれば、それをよりよく理解することができます。 F5をグローバルにフックする必要はありませんが、実際には問題があります。 –