PowerPoint-プログラムでプレゼンテーションにパスワードが設定されているかどうかを確認するにはどうすればよいですか?
-
03-07-2019 - |
質問
PowerPointプレゼンテーションを処理するアプリケーションを作成しており、PowerPointプレゼンテーションにパスワードが設定されているかどうかを検出して、処理を停止する方法を検討しています。
解決
プレゼンテーションがパスワードで保護されているかどうかを確認する方法がないと思われます。プロパティをアクセス可能にするには、最初にドキュメントを開く必要があります。ドキュメントを開くときにパスワードを入力する必要があります。
パスワードプロパティがあります確認できます。
問題は次のとおりです。ビジュアル 基本はシングルスレッドです アプリケーション、これはあなたができないことを意味します 特定の手順を保留にし、 別の(同じで 応用)。パワーポイントに " on open"-パスワードセット、 内部のCreateObjectプロシージャ アプリケーションはまで保留されます パワーポイントはそれを解放します、これはいつですか ユーザーはパスワードを入力します。がある これを回避する方法はありません。 回避策を講じることができます:
2つのアプリケーションを作成、1つのアプリケーションは すでに持っているアプリケーション、 2つ目は「パワーポイントロック解除プログラム」です。 直前に2番目のプログラムを実行します 保護されたパワーポイントを開きます アプリケーション1でのプレゼンテーション。 シェルコマンドでそれを行います。の 「パワーポイントロック解除」のようにすることができます あなたが望むように進んで、あなたはすることができます たとえば、コマンドラインを提供する 指定するパラメーター プレゼンテーションのロックを解除する必要があります どのパスワード。次に、使用します findwindow apiでウィンドウを取得 ロックされたプレゼンテーションのハンドル。 それができたら、 sendmessage api を使用してパスワードを入力します。 この後、「パワーポイントロック解除プログラム」 アンロードすると、最初のアプリケーションは その実行で再開します。
これが役立つことを願っています!
オスモデーン
他のヒント
これを見て検討してください- 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形式でディスクに保存し(2番目のパラメーターのデフォルトオプションを使用)、次にヘッダーを調べて、暗号化されたファイルです。
これを見て検討してください- https://msdn.microsoft.com/ko -kr / library / dd948895(v = office.12).aspx
PPT(office 2003)ドキュメントの場合、ファイルが暗号化されているかどうかを識別するために、符号なし整数(0xF3D1C4DFビット)を調べることができます。