PowerPoint - Como posso descobrir se uma apresentação tem uma senha de programação?

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu estou escrevendo um aplicativo que apresentações processos PowerPoint e eu estou procurando maneiras de detectar se ou não uma apresentação do PowerPoint tem uma senha, se isso acontecer, então parar de processá-lo.

Foi útil?

Solução

Parece-me que há nenhuma maneira de verificar se a apresentação é protegido por senha. Você tem que abrir o documento primeiro a fazer propriedades acessíveis. Você tem que fornecer a senha quando você está abrindo o documento.

Há um senha Propriedade você pode verificar.

Eu encontrei um solução alternativa no Expert Troca :

O problema é o seguinte: Visual Basic é um único segmento aplicação , isso significa que você não pode colocar um determinado procedimento em espera e proceder com outro (na mesma inscrição). Quando o PowerPoint tem um "Em aberto" set -password, o procedimento CreateObject dentro de sua aplicação é colocada em espera até que powerpoint libera-lo, isto é, quando o usuário digita uma senha. Há sim há maneira de contornar isso que eu sei fora, mas você pode fazer uma solução alternativa:

fazer 2 aplicações , 1 aplicação é o aplicativo que você já tem, segundo é um "unlocker powerpoint". Você executar o programa segundo pouco antes você abrir o powerpoint protegida apresentação em aplicação 1. Você pode fazer isso com o comando shell. o "Unlocker powerpoint" pode ser tão avançado como você quer que seja, você pode por exemplo proporcionar linha de comando parâmetros para especificar quais apresentação deve ser desbloqueado com que senha. Então você usa o FindWindow API para obter a janela punho da apresentação bloqueado . Uma vez que você tem isso, você usar o sendmessage api para inserir a senha. Depois disso, o "unlocker powerpoint" descarrega e a primeira lata de aplicação retomar com seu excution.

Espero que isso ajude!

Osmodean

Outras dicas

Considere olhar para isso - http : //blogs.msdn.com/b/openspecification/archive/2009/07/17/overview-of-protected-office-open-xml-documents.aspx

Para um documento PPTX, você pode examinar os primeiros 8 bytes de olhar para o cabeçalho (deve ser [d0cf 11e0 A1B1 1ae1] para um arquivo criptografado), e saber se é um PPTX ou não criptografada.

No entanto, para arquivos criados com o Office 2003 (padrão extensão .ppt), o cabeçalho é o mesmo (cabeçalho MS-CFB). Então, se alguém cria um documento do Office 2003 e, em seguida, renomeia-o para um PPTX, o seu código de considerá-lo como um documento criptografado (que, não seria necessariamente um).

Se você estiver trabalhando com documentos já abertos no PowerPoint, você pode usar a função SaveCopyAs para primeiro salvar o documento para o disco no formato PPTX (use a opção padrão no segundo parâmetro) e, em seguida, examinar o cabeçalho para verificar se é um arquivo criptografado.

Considere olhar para isso - https://msdn.microsoft.com/ko -kr / biblioteca / dd948895 (v = office.12) .aspx

Para um PPT (Office 2003) documento, você pode examinar o inteiro sem sinal (bits 0xF3D1C4DF) para identificar se o arquivo é criptografado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top