C# flash屏蔽右键

来源:互联网 发布:大数据思维与决策心得 编辑:程序博客网 时间:2024/05/18 10:05
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace FlashPlayer
public partialclass Form1 : Form
{
#region Disable Flash's Context Menu
privateconst int GWL_WNDPROC=-4;
publicdelegate IntPtr FlaWndProc(IntPtr hWnd,int msg, IntPtr wParam, IntPtr lParam);

private IntPtr OldWndProc= IntPtr.Zero;
private FlaWndProc Wpr=null;

[DllImport(
"user32.dll", CharSet = CharSet.Auto)]
publicstatic extern IntPtr SetWindowLong(IntPtr hWnd,int nIndex, FlaWndProc wndProc);
[DllImport(
"user32.dll", CharSet = CharSet.Auto)]
publicstatic extern IntPtr CallWindowProc(IntPtr wndProc, IntPtr hWnd,int msg, IntPtr wParam, IntPtr lParam);

private IntPtr FlashWndProc(IntPtr hWnd,int msg, IntPtr wParam, IntPtr lParam){
if(msg== 516)
return (IntPtr)0;
return CallWindowProc(OldWndProc, hWnd, msg, wParam, lParam);
}

#endregion


public Form1()
{
InitializeComponent();
}


privatevoid Form1_Load(object sender, EventArgs e) {
this.Wpr= new FlaWndProc(this.FlashWndProc);
this.OldWndProc= SetWindowLong(axShockwaveFlash1.Handle, GWL_WNDPROC, Wpr);
}

}

}