Visual Basic: Aprire un documento Word con password

Se volete aprire un documento Word dotato di password (e naturalmente conoscete la password Sorriso) potete utilizzare un semplice programma in Visual Basic:

  1. per prima cosa create un documento Word di prova e impostategli una password;
  2. create un’applicazione Visual Basic (per comodità io userò un’applicazione di tipo Windows Form);
  3. copiate il documento Word nella cartella del progetto;
  4. cliccate sul pulsante Mostra tutti i file nella finestra Esplora Soluzioni, per visualizzare anche il file Word;
  5. cliccate con il tasto destro del mouse sul nome del file Word e selezionate la voce Includi nel progetto;
  6. nella finestra delle Proprietà, con il file Word selezionato, impostate la proprietà Copia nella directory di output al valore Copia sempre.

Quest’ultima operazione permette di copiare il file di Word nella cartella Debug o Release, in modo che l’applicazione che viene eseguita da una di queste cartelle possa trovare il file da aprire.

A questo punto aggiungete una casella di testo e rinominatela con il nome txtPassword, poi aggiungete un pulsante (che sarà denominato Button1).

Scrivete, infine, il seguente codice:

Public Class Form1

    Dim objWord As Object

    Private Sub Button1_Click(
                ByVal sender As System.Object,
                ByVal e As System.EventArgs) _
                Handles Button1.Click

        Dim strPassword As String = Me.txtPassword.Text
        Dim nomeFile As String =
            Application.StartupPath & "/Prova.docx"
        Dim aperto As Boolean
        aperto = ApriDocWord(nomeFile, strPassword)
        If aperto = True Then
            Process.Start(nomeFile)
            MessageBox.Show("File Word con password: aperto")
        Else
            MessageBox.Show("File Word con password: non aperto")
        End If
        objWord.Quit()
        objWord = Nothing
    End Sub

    Private Function ApriDocWord(
                nomeFile As String,
                password As String) _
                As Boolean
        Dim risultato As Boolean = False
        objWord = CreateObject("Word.Application")
        objWord.visible = False
        objWord.application.WindowState = 2
        objWord.application.DisplayAlerts = False
        Try
            objWord.Documents.Open(
                nomeFile, PasswordDocument:=password)
            risultato = True
        Catch ex As Exception
            risultato = False
        End Try
        Return risultato
    End Function
End Class

L’istruzione objWord.Quit() è fondamentale, perché la sua mancanza provocherebbe il permanere del processo “Microsoft Word” in memoria: più chiamate del metodo, poi, aprirebbero ulteriori istanze del processo, causando un’occupazione di memoria anomala, fino al punto di iniziare ad avere qualche problema di funzionamento.

Pubblicato il 22 gennaio 2013 su Novità. Aggiungi ai preferiti il collegamento . Lascia un commento.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: