2008-10-19 66 views

回答

3

在我看來,無法檢查如果演示文稿是密碼保護的。您必須先打開文檔才能訪問屬性。打開文檔時必須提供密碼。

有一個Password Property你可以檢查。

我發現一個workaround on Expert Exchange

的問題如下:視覺 基本是單線程應用 ,這意味着你不能把 一定程序上保持和 繼續與另一個(在相同的 應用程序中)。當powerpoint有一個 「打開」密碼集時, 應用程序中的 應用程序中的CreateObject程序將被暫停,直到powerpoint釋放它,這是用戶鍵入密碼時的 。有 圍繞這一點,我知道關沒辦法, 但你可以做一個變通方法:

讓2個應用,1個應用 你已經擁有的應用程序時, 第二個是「簡報解鎖」 。 您在運行第二個程序之前 您在應用程序1中打開受​​保護的powerpoint 演示文稿。您可以使用shell命令 執行此操作。該 「簡報解鎖」可以像 前進,你希望它是,你可以 例如提供命令行參數 指定哪些 演示必須 什麼密碼進行解鎖。然後你使用 findwindow api來獲取鎖定演示文稿的窗口句柄 。 一旦你有了,你使用 sendmessage API輸入密碼。 之後,「powerpoint unlocker」 卸載並且第一個應用程序可以 重新啓動。

我希望這有助於!

Osmodean

1

考慮看着這 - http://blogs.msdn.com/b/openspecification/archive/2009/07/17/overview-of-protected-office-open-xml-documents.aspx

對於PPTX文件,你可以檢查前8個字節來看看頭(應該是[d0cf 11e0 A1B1 1ae1]爲加密文件),並知道它是否是加密的PPTX。

但是,對於使用Office 2003(默認擴展名.ppt)創建的文件,標頭是相同的(MS-CFB標頭)。因此,如果有人創建了一個office 2003文檔,然後將其重命名爲PPTX,那麼您的代碼會將其視爲加密文檔(而不一定是一個)。

如果您正在處理已在Powerpoint中打開的文檔,可以使用SaveCopyAs函數首先以pptx格式(使用第二個參數中的默認選項)將文檔保存到磁盤,然後檢查標題以檢查如果它是一個加密文件。

相關問題