2010-03-25 15 views
6

Sto usando MS Word tramite OLE per produrre documenti dalla mia applicazione. Voglio dare agli utenti che MS Office 2007 SP2 ha installato la possibilità di salvare i documenti come PDF. Questo è disponibile solo in SP2 e l'opzione deve essere nascosta se il service pack non è installato (e ovviamente anche per gli utenti di versioni precedenti di MS Office).Come posso determinare se MS Office 2007 SP2 è installato?

Queste informazioni sono disponibili ovunque, come nel Registro di sistema o in qualsiasi file di configurazione?

risposta

4

Non ho trovato nulla di utile per te, ma qui è qualcosa che potresti trovare utile.

versione di Office viene memorizzato nel registro

HKEY_LOCAL_MACHINE \Software\Microsoft\Office\12.0\Common\productVersion 

il valore 12.0 modifiche per Office 2003 e 2007. Questo tasto ha un numero. Penso di controllare questo numero per versione diversa (con/senza SP1/SP2) e vedere se c'è differenza.

+0

Grazie! Ci proverò! – alfjorgen

+0

C'è una differenza! Molte grazie! – alfjorgen

+0

alfjorgen! Per l'amore di dio qual'era la differenza !? – Dlongnecker

1

Ci sono diversi plugin da Microsoft per fornire la stampa funzione PDF:

  • 2007 di Microsoft Office Add-in: Microsoft Salva come PDF o XPS
  • Microsoft Office 2007 Add-in: Microsoft Save as PDF
  • Microsoft Office 2007 Add-in: Microsoft Save as XPS (nON sono dotati di supporto PDF)

e SP2 installa questi componenti aggiuntivi troppo.

Stavo cercando un modo per verificare se la funzionalità PDF è installata o meno. Il seguente file è presente solo se la funzione PDF viene installata (da un componente aggiuntivo o dalla SP) su una macchina:

C:\Program Files\Common Files\Microsoft Shares\Office12\EXP_PDF.DLL 
+0

su un sistema x64, è necessario esaminare la cartella "Programmi (x86)". Per farlo bene anche su versioni linguistiche diverse è possibile utilizzare il seguente percorso di base (in .net): Environment.GetFolderPath (Environment.SpecialFolder.CommonProgramFilesX86) – irgendwienet

+0

Trova interessante. Grazie! – alfjorgen

1

L'aggiornamento viene installato nella seguente chiave di registro.

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData \ S-1-5-18 \ Prodotti \ 00002109030000000000000000F01FEC \ Patches \ 6D6C63B08D5FFAE4FB4934672A03DAB5

1

Ok, questo è un po 'tardi, ma è in grado di determinare il service pack direttamente da VBA, senza dover pasticciare con il registro. Ovviamente avresti bisogno di aggiornarlo come Microsoft aggiorna Office.

Utilizzando le pagine di supporto per le diverse versioni di Office è possibile ottenere il numero di build e utilizzare una funzione per determinare il service pack, ecc. Office 2007 mostra leggere discrepanze tra le diverse applicazioni all'interno dell'ufficio in modo da dover modificare come necessario.

Poi una funzione farà il lavoro per Excel Ufficio 2007+ come segue:

Function DetermineExcelServicePack() As String 
    Dim sReturn As String 

    If Application.Version = "12.0" Then 
     If Application.Build < 6214 Then 
      sReturn = "Excel 2007, RTM" 
     ElseIf Application.Build < 6425 Then 
      sReturn = "Excel 2007, SP1" 
     ElseIf Application.Build < 6611 Then 
      sReturn = "Excel 2007, SP2" 
     Else 
      sReturn = "Excel 2007, SP3" 
     End If 
    ElseIf Application.Version = "14.0" Then 
     If Application.Build < 6029 Then 
      sReturn = "Excel 2010, RTM" 
     ElseIf Application.Build < 7015 Then 
      sReturn = "Excel 2010, SP1" 
     Else 
      sReturn = "Excel 2010, SP2" 
     End If 
    ElseIf Application.Version = "15.0" Then 
     sReturn = "Excel 2013, RTM" 
    Else 
     sReturn = "This version (" & Application.Version & "-" & Application.Build & ") is not supported by this function" 
    End If 

    DetermineExcelServicePack = sReturn 
End Function 
0

Controllare a livello di programma se la versione del file MSO.DLL è maggiore o uguale a:

"12.0.6425.1000"

Questo è il valore per il file se è installato SP2 e versioni successive.

Problemi correlati