PowerPoint - Come posso capire se una presentazione ha una password a livello di codice?
-
03-07-2019 - |
Domanda
Sto scrivendo un'applicazione che elabora le presentazioni di PowerPoint e sto cercando dei modi per rilevare se una presentazione di PowerPoint ha o meno una password se smette di elaborarla.
Soluzione
Mi sembra che non ci sia alcun modo per verificare se la presentazione è protetta da password. Devi prima aprire il documento per rendere accessibili le proprietà. Devi fornire la password quando apri il documento.
Esiste una Proprietà password può controllare.
Ho trovato una soluzione alternativa su Scambio di esperti :
Il problema è il seguente: Visivo Basic è un thread singolo applicazione , ciò significa che non puoi mettere in attesa una determinata procedura e procedere con un altro (nello stesso applicazione). Quando powerpoint ha un " su open " -password set, il Procedura CreateObject all'interno di l'applicazione viene messa in attesa fino a quando powerpoint lo rilascia, questo è quando l'utente digita una password. C'è non c'è niente che io sappia ma puoi risolvere il problema:
Crea 2 applicazioni , 1 applicazione lo è l'applicazione che hai già, il il secondo è un "sblocco powerpoint". Esegui il secondo programma poco prima si apre il powerpoint protetto presentazione nell'applicazione 1. È possibile farlo con il comando shell. Il "sblocco powerpoint" può essere come avanzato come vuoi che sia, puoi ad esempio fornire riga di comando parametri per specificare quale la presentazione deve essere sbloccata con quale password. Quindi si utilizza il trova finestra API per ottenere la finestra gestire la presentazione bloccata . Una volta che lo hai, usi il sendmessage api per inserire la password. Successivamente, lo "sblocco powerpoint" scarica e la prima applicazione può riprendere con la sua escissione.
Spero che questo aiuti!
Osmodean
Altri suggerimenti
Valuta di guardare questo - http : //blogs.msdn.com/b/openspecification/archive/2009/07/17/overview-of-protected-office-open-xml-documents.aspx
Per un documento PPTX, puoi esaminare i primi 8 byte per esaminare l'intestazione (dovrebbe essere [d0cf 11e0 a1b1 1ae1] per un file crittografato) e sapere se si tratta di un PPTX crittografato o meno.
Tuttavia, per i file creati con Office 2003 (estensione predefinita .ppt), l'intestazione è la stessa (intestazione MS-CFB). Quindi, se qualcuno crea un documento di Office 2003 e poi lo rinomina in un PPTX, il tuo codice lo considererà come un documento crittografato (mentre, non sarebbe necessariamente uno).
Se si lavora con documenti già aperti in Powerpoint, è possibile utilizzare la funzione SaveCopyAs per salvare prima il documento su disco nel formato pptx (utilizzare l'opzione predefinita nel secondo parametro), quindi esaminare l'intestazione per verificare se è un file crittografato.
Valuta di guardare questo - https://msdn.microsoft.com/ko -kr / library / dd948895 (v = office.12) aspx
Per un documento PPT (Office 2003), è possibile esaminare l'intero senza segno (bit 0xF3D1C4DF) per identificare se il file è crittografato.