具有禁用功能区的Powerpoint保护模式 - 在Delphi中自动执行

时间:2012-07-26 20:03:02

标签: delphi user-interface automation ms-office powerpoint

我正在寻找一种使用Delphi通过自动化保护powerpoint演示文稿的方法 在Word中,我可以发出以下命令:

  If (WordDocument.ProtectionType = wdNoProtection)
    Then WordDocument.Protect (3, VarTrue, VarProtectPass);

在Excel中,我可以发出以下命令:

  { If the file was NOT protected, then protect it }
  For SheetIndex := 1 To ExcelWorkbook.Sheets.Count Do Begin

    VarSheet := SheetIndex;

    { Connect to the work sheet }
    ExcelWorksheet.ConnectTo (ExcelWorkbook.Worksheets.Item [VarSheet] As _Worksheet);

    ExcelWorksheet.Protect ()...

问题是我找不到使用OfficeXP.pas组件执行此操作的方法。我们在各种系统上运行Office 2010。有什么想法吗?

我需要的是通过演示文稿打开powerpoint, 1)对于MenuItem1,禁止用户进行任何编辑。此外,不允许他们在其他地方重新保存它。 2)对于MenuItem2,允许用户编辑演示文稿。

1 个答案:

答案 0 :(得分:0)

一种方法是通过一个捕获事件的加载项:

捕获PresentationBeforeSave事件,如果需要,取消保存。

捕获WindowSelectionChange事件,测试以查看所选内容(由事件传递),在大多数情况下,DE选择选择。如果用户无法选择某些内容,则无法对其进行编辑/更改。

可以根据状态变量启用/禁用事件处理例程;您可能会捕获PresentationOpen事件,测试新的演示文稿是否是您的“受保护”演示文稿之一,如果是,请设置boolIsProtected = True;您的其他事件处理程序可以测试此变量并停止处理事件,如果为False。