¿Cómo exportar una lista de archivos abiertos recientemente desde Office: MAC? 2011?

0

Recientemente heredé algunas máquinas Mac antiguas y me dijeron que buscara algo importante en el formato anterior.

Una de las cosas que se instala en estas máquinas es Office: MAC 2011, y cada vez que abro uno de estos documentos me preocupa que otro se caiga de la lista recientemente abierta.

Me gustaría guardar la lista de archivos recientes de alguna manera para no perder más documentos abiertos recientemente.

¿Es posible exportar de alguna manera esta lista para que pueda verla sin destruirla?

    
pregunta leeand00 07.02.2014 - 22:26

4 respuestas

1

Puedes hacer esto, pero es complicado.

Los documentos recientes de todos los productos de Microsoft Office se almacenan en un archivo de preferencias (plist) en la biblioteca de cada usuario:

~/Library/Preferences/com.microsoft.office.plist

Este archivo está en formato plist estándar y se puede ver utilizando el visor de plist integrado en Xcode. Si lo abres se verá así:

LalistadeelementosrecientesparacadaaplicaciónsealmacenaenlaclaveFileMRU.ElejemploanterioresparaWord,quecorrespondealcódigoMSWD.Cadadocumentocomprometeunelementonumeradobajoestaclavedelista.

Comopuedever,desafortunadamente,losvaloresdeestasclavesestáncodificadosenformatobinario,nodetextosimple,porloquedebepegarlascadenasdevalorenuneditorHexparaverlosnombresylasrutasdelosarchivos.(Youso HexFiend .)

Conclusión:Copieelarchivocom.microsoft.office.plistenunaubicaciónsegura.Conunpocodegrasaparacodos,puedesacartodoslosarchivosrecientesdeestedocumento.

Tambiénpuedesconsultar esta secuencia de comandos de Python que hace un poco de este análisis automáticamente, pero su kilometraje puede variar.

    
respondido por el BringMyCakeBack 08.02.2014 - 00:14
0

Según mi investigación, no hay manera de hacer esto. Sin embargo, lo que podrías hacer es:

  1. Cambiar el número de archivos que aparecen en la lista

    o

  2. Fija los archivos a la lista

Vea este enlace para más información.

    
respondido por el Chris Mukherjee 07.02.2014 - 22:57
0

Si desea mantener una lista actualizada de documentos que va a abrir más adelante, agregue esta macro a su Normal.dot

Sub AutoOpen()
    Dim ff As Long
    Dim logpath As String

    logpath = MacScript("return (path to desktop) as string") & "autoopen_log.txt"

    ff = FreeFile
    Open logpath For Append As #ff
    Print #ff, ActiveDocument.FullName
    Close #ff
End Sub

Registrará la ruta de acceso de cada archivo que abra en Word al archivo de texto especificado en su escritorio. Simplemente puede volver a abrir los archivos recientes existentes para agregarlos al registro.

    
respondido por el Patrick Wynne 08.02.2014 - 04:33
0

Terminé implementando esto en Swift y ni siquiera lo uso (porque el formato cambió en Office 15), pero si alguien más lo necesita:

import Foundation

func getMRUList(forApp: String) -> [String]? {
    guard let defaults = NSUserDefaults.standardUserDefaults().persistentDomainForName("com.microsoft.office") else {
        NSLog("Unable to find Office defaults")
        return nil
    }

    guard let mruList = defaults["14\File MRU\" + forApp ] as? [NSDictionary] else {
        NSLog("Unable to find recent documents for Office application \(forApp)")
        return nil
    }

    return mruList.flatMap { (mruItem: NSDictionary) in
        guard let mruFileAliasData = mruItem["File Alias"] as? NSData else {
            NSLog("Unable to extract file alias from MRU item \(mruItem)")
            return nil
        }
        do {
            let mruFileBookmarkData = CFURLCreateBookmarkDataFromAliasRecord(nil, mruFileAliasData).takeRetainedValue()
            let mruFileURL = try NSURL.init(byResolvingBookmarkData: mruFileBookmarkData, options: NSURLBookmarkResolutionOptions(), relativeToURL: nil, bookmarkDataIsStale: nil)
            return mruFileURL.path
        } catch let error as NSError {
            NSLog("Unable to resolve file alias for MRU item \(mruFileAliasData): \(error.localizedDescription)")
            return nil
        }
    }
}

if let mruList = getMRUList("MSWD") {
    print(NSString.init(data: try! NSJSONSerialization.dataWithJSONObject(mruList, options: NSJSONWritingOptions()), encoding: NSUTF8StringEncoding)!)
}

Puede reemplazar MSWD con el creador de otra aplicación de Office 14 (por ejemplo, PPT3 para PowerPoint, XCEL para Excel) según corresponda.

    
respondido por el Nicholas Riley 28.05.2016 - 23:50

Lea otras preguntas en las etiquetas