webBrowser 在编辑模式下,如何禁用 CTRL C 和 CTRL V

思篆者 2010-11-10 10:23:49
如题,目的就是想控制用户录入.
...全文
230 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
思篆者 2010-11-11
  • 打赏
  • 举报
回复
谢谢!
StringBuilder sb = new StringBuilder(50);
GetClassName(msg.HWnd, sb, 50);

if (sb.ToString().ToLower() == "internet explorer_server")
这段能不能再精准一些?如果有两个WebBrowser,只控制一个,这个不好办。
思篆者 2010-11-11
  • 打赏
  • 举报
回复
学了一招,谢谢!
ZengHD 2010-11-11
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Data;
using System.Data.OleDb;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form, IMessageFilter
{
public Form1()
{
InitializeComponent();
Application.AddMessageFilter(this);
}

private int WM_KEYDOWN = 0x0100;
private int WM_KEYUP = 0x0101;

[DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)]
private static extern IntPtr GetParent(IntPtr hWnd);

public bool PreFilterMessage(ref Message msg)
{
if (msg.Msg == WM_KEYDOWN || msg.Msg == WM_KEYUP)
{
if (GetParent(GetParent(GetParent(msg.HWnd))) == webBrowser1.Handle)
{
if (Control.ModifierKeys == Keys.Control && (((Keys)msg.WParam.ToInt32() & Keys.KeyCode) == Keys.C || ((Keys)msg.WParam.ToInt32() & Keys.KeyCode) == Keys.V))
{
MessageBox.Show("屏蔽");
return true;
}
}
}

return false;
}

private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("about:blank");
webBrowser1.Document.ExecCommand("EditMode", false, null);
}
}
}
ZengHD 2010-11-10
  • 打赏
  • 举报
回复

2、

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Data;
using System.Data.OleDb;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form,IMessageFilter
{
public Form1()
{
InitializeComponent();
Application.AddMessageFilter(this);
}

private int WM_KEYDOWN = 0x0100;
private int WM_KEYUP = 0x0101;

[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);

public bool PreFilterMessage(ref Message msg)
{
if (msg.Msg == WM_KEYDOWN || msg.Msg == WM_KEYUP)
{
StringBuilder sb = new StringBuilder(50);
GetClassName(msg.HWnd,sb,50);

if (sb.ToString().ToLower() == "internet explorer_server")
{
if (Control.ModifierKeys == Keys.Control && (((Keys)msg.WParam.ToInt32() & Keys.KeyCode) == Keys.C || ((Keys)msg.WParam.ToInt32() & Keys.KeyCode) == Keys.V))
{
MessageBox.Show("屏蔽");
return true;
}
}
}

return false;
}

private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("about:blank");
webBrowser1.Document.ExecCommand("EditMode", false, null);
}
}
}
ZengHD 2010-11-10
  • 打赏
  • 举报
回复
1、看看WebBrowserShortcutsEnabled属性

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧