VB编程 获取了本机mac地址,校验失败怎样将PPT放映内容删除?

zp_5566 2017-08-01 11:03:47
在PPT中加载宏命令
首先校验了本机MAC地址,怎样编写代码,使得校验失败后,将PPT内全部内容删除?最好删除后保存,使得无法撤销操作。
现在的代码如下:

Sub OnSlideShowPageChange() '放映

currentpath = createobject("Scripting.FileSystemObject").GetFolder(".").Path
Dim cipan, xlh ’序列号
Set cipan = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_LogicalDisk")
For Each mo In cipan
If mo.Name = "D:" Then
If mo.VolumeSerialNumber <> "" Then xlh = mo.VolumeSerialNumber
End If
Next
If xlh <> "4C123BD" Then
MsgBox "验证失败:)"
SendKeys "%{F4}"
Else
MsgBox "验证成功已解锁文件"
end if
End Sub
...全文
333 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rockismej 2017-08-05
  • 打赏
  • 举报
回复
现在的ppt都不是默认执行宏的,你这方法行不通的
of123 2017-08-03
  • 打赏
  • 举报
回复
可以做成两部分: 1 一个可执行程序,用来校验 MAC 码。 如果通过校验,调用 PPT 的显示。否则,删除 PPT 文件。 2 PPT 文件,供调用显示。 关键点是,你要保证 MAC 码抢先执行。例如,在启动中,或操作系统的认证阶段(此时任何 App 不能运行)运行。
赵4老师 2017-08-03
  • 打赏
  • 举报
回复
道高一尺,魔高一丈。 保护的办法是有限的,盗版的办法是无限的。
赵4老师 2017-08-03
  • 打赏
  • 举报
回复
试问,谁又能阻止拿摄像头对着屏幕拍呢?
qq_22779069 2017-08-03
  • 打赏
  • 举报
回复
引用 18 楼 of123 的回复:
还有一种方案:PPT 被加密,需要可执行程序解密。如果未通过 MAC 码校验,就不解密播放,甚至可以删除。
百度了一下,有这方面的软件了。 把PPT加密成可执行程序。软件结合本机cpu 硬盘等物理信息生成解密密码。 跟你说的一个思路,但是复杂的多了。
of123 2017-08-03
  • 打赏
  • 举报
回复
还有一种方案:PPT 被加密,需要可执行程序解密。如果未通过 MAC 码校验,就不解密播放,甚至可以删除。
qq_22779069 2017-08-02
  • 打赏
  • 举报
回复
引用 9 楼 Chen8013 的回复:
[quote=引用 7 楼 qq_22779069 的回复:] [quote=引用 6 楼 Chen8013 的回复:] [quote=引用 4 楼 qq_22779069 的回复:] [quote=引用 2 楼 Chen8013 的回复:]
' MS Powerpoint / VBA代码:
Dim i As Long

For i = 1 To ActivePresentation.Slides.Count
' 有多少张幻灯片就删除多少次,循环结束就删除完了
   ActivePresentation.Slides(1).Delete
Next
Call ActivePresentation.Save        ' 保存文件
我加入以上代码后,发现执行时PPT总是关闭重启。。。。这是怎么回事[/quote] 我的这段代码根本不会引起这种问题。 [/quote]
引用 6 楼 Chen8013 的回复:
[quote=引用 4 楼 qq_22779069 的回复:] [quote=引用 2 楼 Chen8013 的回复:]
' MS Powerpoint / VBA代码:
Dim i As Long

For i = 1 To ActivePresentation.Slides.Count
' 有多少张幻灯片就删除多少次,循环结束就删除完了
   ActivePresentation.Slides(1).Delete
Next
Call ActivePresentation.Save        ' 保存文件
我加入以上代码后,发现执行时PPT总是关闭重启。。。。这是怎么回事[/quote] 我的这段代码根本不会引起这种问题。 [/quote] 那请教下,怎么将PPT里的宏代码进行保护,设置成无法修改?[/quote] 方法简单,但足以对付绝大多数人。 [/quote] 方便留个联系方式吗。这样请教起来方便,哈哈。谢谢
舉杯邀明月 2017-08-02
  • 打赏
  • 举报
回复
引用 7 楼 qq_22779069 的回复:
[quote=引用 6 楼 Chen8013 的回复:]
[quote=引用 4 楼 qq_22779069 的回复:]
[quote=引用 2 楼 Chen8013 的回复:]
' MS Powerpoint / VBA代码:
Dim i As Long

For i = 1 To ActivePresentation.Slides.Count
' 有多少张幻灯片就删除多少次,循环结束就删除完了
ActivePresentation.Slides(1).Delete
Next
Call ActivePresentation.Save ' 保存文件


我加入以上代码后,发现执行时PPT总是关闭重启。。。。这是怎么回事[/quote]
我的这段代码根本不会引起这种问题。
[/quote]

引用 6 楼 Chen8013 的回复:
[quote=引用 4 楼 qq_22779069 的回复:]
[quote=引用 2 楼 Chen8013 的回复:]
' MS Powerpoint / VBA代码:
Dim i As Long

For i = 1 To ActivePresentation.Slides.Count
' 有多少张幻灯片就删除多少次,循环结束就删除完了
ActivePresentation.Slides(1).Delete
Next
Call ActivePresentation.Save ' 保存文件


我加入以上代码后,发现执行时PPT总是关闭重启。。。。这是怎么回事[/quote]
我的这段代码根本不会引起这种问题。
[/quote]

那请教下,怎么将PPT里的宏代码进行保护,设置成无法修改?[/quote]
方法简单,但足以对付绝大多数人。
qq_22779069 2017-08-02
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
奉劝楼主不要把有限的生命浪费在无限的加密解密死循环中!
我现在要把VB代码进行保护,途径可能是加密。真的是陷入了无限加密的过程,哈哈。 有好办法出坑吗?
qq_22779069 2017-08-02
  • 打赏
  • 举报
回复
引用 6 楼 Chen8013 的回复:
[quote=引用 4 楼 qq_22779069 的回复:] [quote=引用 2 楼 Chen8013 的回复:]
' MS Powerpoint / VBA代码:
Dim i As Long

For i = 1 To ActivePresentation.Slides.Count
' 有多少张幻灯片就删除多少次,循环结束就删除完了
   ActivePresentation.Slides(1).Delete
Next
Call ActivePresentation.Save        ' 保存文件
我加入以上代码后,发现执行时PPT总是关闭重启。。。。这是怎么回事[/quote] 我的这段代码根本不会引起这种问题。 [/quote]
引用 6 楼 Chen8013 的回复:
[quote=引用 4 楼 qq_22779069 的回复:] [quote=引用 2 楼 Chen8013 的回复:]
' MS Powerpoint / VBA代码:
Dim i As Long

For i = 1 To ActivePresentation.Slides.Count
' 有多少张幻灯片就删除多少次,循环结束就删除完了
   ActivePresentation.Slides(1).Delete
Next
Call ActivePresentation.Save        ' 保存文件
我加入以上代码后,发现执行时PPT总是关闭重启。。。。这是怎么回事[/quote] 我的这段代码根本不会引起这种问题。 [/quote] 那请教下,怎么将PPT里的宏代码进行保护,设置成无法修改?
舉杯邀明月 2017-08-02
  • 打赏
  • 举报
回复
引用 4 楼 qq_22779069 的回复:
[quote=引用 2 楼 Chen8013 的回复:]
' MS Powerpoint / VBA代码:
Dim i As Long

For i = 1 To ActivePresentation.Slides.Count
' 有多少张幻灯片就删除多少次,循环结束就删除完了
   ActivePresentation.Slides(1).Delete
Next
Call ActivePresentation.Save        ' 保存文件
我加入以上代码后,发现执行时PPT总是关闭重启。。。。这是怎么回事[/quote] 我的这段代码根本不会引起这种问题。
赵4老师 2017-08-02
  • 打赏
  • 举报
回复
奉劝楼主不要把有限的生命浪费在无限的加密解密死循环中!
qq_22779069 2017-08-02
  • 打赏
  • 举报
回复
引用 2 楼 Chen8013 的回复:
' MS Powerpoint / VBA代码:
Dim i As Long

For i = 1 To ActivePresentation.Slides.Count
' 有多少张幻灯片就删除多少次,循环结束就删除完了
   ActivePresentation.Slides(1).Delete
Next
Call ActivePresentation.Save        ' 保存文件
我加入以上代码后,发现执行时PPT总是关闭重启。。。。这是怎么回事
舉杯邀明月 2017-08-02
  • 打赏
  • 举报
回复
既然都做成“图片”了,那干脆用exe做算了。 把“图片”加密后,以二进制资源的形式放到程序中, “验证”通过后,读取这些资源数据,并解密、加载成图片。 你自己的程序只要识别几个按键、鼠标动作, 模拟“幻灯片”的形式把图片一张一张的画出来(也就是“播放”)就行了。
qq_22779069 2017-08-02
  • 打赏
  • 举报
回复
引用 11 楼 chewinggum 的回复:
你现在是想保护你的PPT内容,而不是保护宏的内容吧。人家只要一次另存为pptx就解除掉你的宏了。 换个思路,你的PPT里的文字全都删掉,宏的处理是如果判断mac正确,就把所有页面的文字填写上去,然后保护这个宏。
我查了下,可以插入本机指定路径下的图片,但是好像无法在宏中存储要插入的图片。这样还是不安全,不知道你知不知道该怎么解决?
qq_22779069 2017-08-02
  • 打赏
  • 举报
回复
引用 11 楼 chewinggum 的回复:
你现在是想保护你的PPT内容,而不是保护宏的内容吧。人家只要一次另存为pptx就解除掉你的宏了。 换个思路,你的PPT里的文字全都删掉,宏的处理是如果判断mac正确,就把所有页面的文字填写上去,然后保护这个宏。
厉害!!!赞!有点恍然大悟的感觉 但是为了PPT内容不易泄露,PPT内容本就全是图片形式了。我接下来得尝试怎样让MAC验证正确后,把图片再填上去。我先试试图片行不行。谢谢
脆皮大雪糕 2017-08-02
  • 打赏
  • 举报
回复
你现在是想保护你的PPT内容,而不是保护宏的内容吧。人家只要一次另存为pptx就解除掉你的宏了。 换个思路,你的PPT里的文字全都删掉,宏的处理是如果判断mac正确,就把所有页面的文字填写上去,然后保护这个宏。
脆皮大雪糕 2017-08-01
  • 打赏
  • 举报
回复
确定这样有效么,如果人家放映前直接就把你的pptm另存为pptx,判断还有没有效?直接禁用宏还有没有效?也许直接用powerpoint的文档保护可能还更有效。
舉杯邀明月 2017-08-01
  • 打赏
  • 举报
回复
' MS Powerpoint / VBA代码:
Dim i As Long

For i = 1 To ActivePresentation.Slides.Count
' 有多少张幻灯片就删除多少次,循环结束就删除完了
   ActivePresentation.Slides(1).Delete
Next
Call ActivePresentation.Save        ' 保存文件
zp_5566 2017-08-01
  • 打赏
  • 举报
回复
求大神帮忙......

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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