PowerPoint - ¿Cómo puedo averiguar si una presentación tiene una contraseña programáticamente?

StackOverflow https://stackoverflow.com/questions/215946

  •  03-07-2019
  •  | 
  •  

Pregunta

Estoy escribiendo una aplicación que procesa presentaciones de PowerPoint y estoy buscando formas de detectar si una presentación de PowerPoint tiene una contraseña o no, si la tiene, deja de procesarla.

¿Fue útil?

Solución

Me parece que no hay forma de verificar si la presentación está protegida por contraseña. Tienes que abrir el documento primero para que las propiedades sean accesibles. Debe proporcionar la contraseña cuando abra el documento.

Hay una Propiedad de la contraseña puede comprobar.

He encontrado un solución en el intercambio de expertos :

  

El problema es el siguiente: Visual   Básico es un solo hilo.   aplicación , esto significa que no puedes   poner un cierto procedimiento en espera y   proceder con otro (en el mismo   solicitud). Cuando powerpoint tiene un   " en abrir " -password set, el   Procedimiento CreateObject dentro de su   la solicitud se pone en espera hasta   Powerpoint lo libera, esto es cuando   el usuario escribe una contraseña. Ahi esta   No hay forma de evitar esto que conozco,   pero puedes hacer una solución:

     

Hacer 2 aplicaciones , 1 aplicación es   la aplicación que ya tienes, la   el segundo es un " desbloqueador de powerpoint " ;.   Usted ejecuta el segundo programa justo antes   abres el powerpoint protegido   presentación en la aplicación 1. Usted puede   hacer eso con el comando shell. los   " powerpoint unlocker " puede ser como   Avanzado como quieras que sea, puedes   por ejemplo proporcionar línea de comandos   parámetros para especificar cuales   la presentación debe ser desbloqueada con   Que contraseña. Entonces usas el    findwindow api para obtener la ventana   Manejar de la presentación bloqueada .   Una vez que tienes eso, utiliza la   Sendmessage api para ingresar la contraseña.   Después de esto, el " desbloqueador de powerpoint "   descargas y la primera aplicación puede   reanudar con su excución.

     

Espero que esto ayude!

     

Osmodean

Otros consejos

Considera mirar esto - http : //blogs.msdn.com/b/openspecification/archive/2009/07/17/overview-of-protected-office-open-xml-documents.aspx

Para un documento PPTX, puede examinar los primeros 8 bytes para ver el encabezado (debe estar [d0cf 11e0 a1b1 1ae1] para un archivo cifrado), y saber si es un PPTX cifrado o no.

Sin embargo, para los archivos creados con Office 2003 (extensión predeterminada .ppt), el encabezado es el mismo (encabezado MS-CFB). Por lo tanto, si alguien crea un documento de Office 2003 y luego lo cambia a PPTX, su código lo considerará como un documento encriptado (mientras que no necesariamente lo será).

Si está trabajando con documentos ya abiertos en Powerpoint, puede usar la función SaveCopyAs para guardar primero el documento en el disco en el formato pptx (use la opción predeterminada en el segundo parámetro), y luego examinar el encabezado para verificar si Es un archivo encriptado.

Considera mirar esto - https://msdn.microsoft.com/ko -kr / library / dd948895 (v = office.12) .aspx

Para un documento PPT (office 2003), puede examinar el entero sin signo (0xF3D1C4DF bits) para identificar si el archivo está cifrado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top