怎样禁用文本中的另存为、打印、复制粘贴等操作?(有熟悉C#中word等文本操作的大虾请进!有满意的答复我会继续最佳分数,可给到500分)

suhuaiqiang_janlay 2012-06-27 03:11:50
我希望在C#程序中实现如下功能:在程序中打开文件(可能是word、excel或txt、bmp和jpg图像类型),用户不能对其文本内容进行另存为、打印、复制粘贴等操作,要怎么实现呢?

打开文件的操作已经实现了:例如:Process p = System.Diagnostics.Process.Start("d:\\1.doc");

接下来要怎样禁止另存为等操作?(希望有高手指教,有满意的答复我会继续最佳分数!)
...全文
530 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bupt_2011110814 2012-08-31
  • 打赏
  • 举报
回复
hook windows底层的API函数吧
suhuaiqiang_janlay 2012-06-29
  • 打赏
  • 举报
回复
我自己已经找到办法了,就是通过FindWindow()找到“另存为”和“打印”对话框,然后将其关掉就可以。。暂时这么实现了。。不过还是谢谢大家!
五更琉璃 2012-06-28
  • 打赏
  • 举报
回复
这需求只能用HOOK吧消息截住 没别的办法了
suhuaiqiang_janlay 2012-06-28
  • 打赏
  • 举报
回复
不同的文件类型可能实现的方法不一样。这样吧,先说word,我现在只想屏蔽掉另存为和打印功能。不知道能不能截获word的“另存为”和“打印”对话框的消息,然后不让其完成另存为、打印行为?
suhuaiqiang_janlay 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
你的程序是在IIS中打开的吗?如果是的话word、excel之类的本来就不能黏贴、修改之类的!

但能复制、和打印,下面是禁止复印的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<hea……
[/Quote]

我只是在普通的winfrom控制台里面打开的,不是网页。是这样的,我只是想做一个类似windows文件夹里面的管理系统,能够双击打开一个文件(譬如word),然后希望word里面的另存为、打印功能可以屏蔽掉。

txt文件我已经能实现了,只要知道文件窗口句柄然后屏蔽掉它的菜单就可以,可是word2007上面的操作区好像不是菜单做的。没法定位到菜单栏。
suhuaiqiang_janlay 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
你用 Process.Start打开的,等于新开启了一个进程打开相应的页面,打开的是word,excel本身的窗体,你的程序无法控制的。。
如果一定要控制,在winform里打开,才行。
[/Quote]

winfrom里面能够打开word文件吗?
加油馒头 2012-06-28
  • 打赏
  • 举报
回复
你用 Process.Start打开的,等于新开启了一个进程打开相应的页面,打开的是word,excel本身的窗体,你的程序无法控制的。。
如果一定要控制,在winform里打开,才行。
suhuaiqiang_janlay 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
这需求只能用HOOK吧消息截住 没别的办法了
[/Quote]

怎么拦截呢?能不能详细一点?是不是要知道“另存为”和“打印”对话框弹出的时候发送的消息码是多少?
永远的小鱼 2012-06-27
  • 打赏
  • 举报
回复
这些方法经测试 都不能完全防住的
H_Gragon 2012-06-27
  • 打赏
  • 举报
回复
1. oncontextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)><td>no</table> 可用于Table

2. <body onselectstart="return false"> 取消选取、防止复制

3. onpaste="return false" 不准粘贴

4. oncopy="return false;" oncut="return false;" 防止复制

5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标

6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标

7. <input style="ime-mode isabled"> 关闭输入法

H_Gragon 2012-06-27
  • 打赏
  • 举报
回复
你的程序是在IIS中打开的吗?如果是的话word、excel之类的本来就不能黏贴、修改之类的!

但能复制、和打印,下面是禁止复印的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>js禁止复制网页代码</title>
<script type="text/javascript">
document.body.oncopy = nocopy;

function nocopy() {
clipboardData.setData("text", "");
setTimeout(nocopydelay,100);
}
function nocopydelay(){
alert("不能复制");
clipboardData.setData("text", "哈哈"+"rn文章来自: pawpaw_新浪博客详细参考:"+location.href);
}

assky124 2012-06-27
  • 打赏
  • 举报
回复
你用Process打开,跟你就没啥关系了

用控件什么的显示

也许可以拦截系统的右键等消息,自己查查API,这方面不是很了解
suhuaiqiang_janlay 2012-06-27
  • 打赏
  • 举报
回复
有没有人知道呢?急啊!!!
内容概要:本书《Deep Reinforcement Learning with Guaranteed Performance》探讨了基于李雅普诺夫方法的深度强化学习及其在非线性系统最优控制的应用。书提出了一种近似最优自适应控制方法,结合泰勒展开、神经网络、估计器设计及滑模控制思想,解决了不同场景下的跟踪控制问题。该方法不仅保证了性能指标的渐近收敛,还确保了跟踪误差的渐近收敛至零。此外,书还涉及了执行器饱和、冗余解析等问题,并提出了新的冗余解析方法,验证了所提方法的有效性和优越性。 适合人群:研究生及以上学历的研究人员,特别是从事自适应/最优控制、机器人学和动态神经网络领域的学术界和工业界研究人员。 使用场景及目标:①研究非线性系统的最优控制问题,特别是在存在输入约束和系统动力学的情况下;②解决带有参数不确定性的线性和非线性系统的跟踪控制问题;③探索基于李雅普诺夫方法的深度强化学习在非线性系统控制的应用;④设计和验证针对冗余机械臂的新型冗余解析方法。 其他说明:本书为七章,每章内容相对独立,便于读者理解。书不仅提供了理论析,还通过实际应用(如欠驱动船舶、冗余机械臂)验证了所提方法的有效性。此外,作者鼓励读者通过仿真和实验进一步验证书提出的理论和技术。

111,096

社区成员

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

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

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