Hi Niklas,

thanks a lot for that. I can confirm that these macros do work... I will
analyse them and should be able to adapt them to my needs.

Cheers Jon

----original message----
From: Niklas Johansson <[email protected]>
Date: Mon, 21 Jul 2014 11:22:53 +0200
Subj: Re: [libreoffice-users] Macro to autoload first recent doc
> Let's improve the code a bit...
> 
> When we open the registry key we do not need it to be editable so let's 
> open it as read only. By default GetRegistryKeyContent opens it as such. 
> For some reason LibreOffice complains about named arguments not 
> supported for the object, as Jon pointed out to me.
> 
> I've changed the key as well to correspond exactly with the key in 
> registry. You can search for the key in the registrymodifications.xcu 
> file (with the path 
> %appdata%\LibreOffice\4\user\registrymodifications.xcu on windows).
> 
> I've added a new sub which opens the file and sets some open arguments 
> according to what is saved in the registry and if the file is a template 
> it should be opened in edit mode. I do not think that the password part 
> works at the moment, so that part of the code probably needs some love. ;)
> 
> Sub Load1st()
> Dim oCUA, oList, oItem As Object
>   If Not BasicLibraries.isLibraryLoaded("Tools") Then 
> BasicLibraries.LoadLibrary("Tools")
>   REM use GetRegistryKeyContent function from the module Tools.Misc
>   oList = 
> GetRegistryKeyContent("/org.openoffice.Office.Histories/Histories/org.openoffice.Office.Histories:HistoryInfo['PickList']/OrderList")
>   If oList.hasByName("0") Then
>    oItem = oList.getByName("0")
>    OpenRecentFile(oItem.HistoryItemRef)
>   End If
> End Sub
> 
> Sub OpenRecentFile(sFileURL as String)
> Dim oPickList As Object, oPickListArgs As Object
> Dim loadArgs(2) As New com.sun.star.beans.PropertyValue
>   If Not BasicLibraries.isLibraryLoaded("Tools") Then 
> BasicLibraries.LoadLibrary("Tools")
>   oPickList = 
> GetRegistryKeyContent("/org.openoffice.Office.Histories/Histories/org.openoffice.Office.Histories:HistoryInfo['PickList']/ItemList")
>   If oPickList.hasByName(sFileURL) Then
>    oPickListArgs = oPickList.getByName(sFileURL)
>    If FileExists(sFileURL) Then
>     loadArgs(0).Name  = "AsTemplate"    'We never want to open a recent 
> file as template
>     loadArgs(0).Value = false
>     loadArgs(1).Name  = "Filter"
>     loadArgs(1).Value = oPickListArgs.getByName("Filter")
>     loadArgs(2).Name  = "Password"
>     loadArgs(2).Value = oPickListArgs.getByName("Password")
>     REM use OpenDocument function from the module Tools.Misc
>     OpenDocument(sFileURL, loadArgs())
>    End If
>   End If
> End Sub
> 
> 
> 'I loosely took inspiration from the LibreOffice code 
> http://opengrok.libreoffice.org/xref/core/unotools/source/config/historyoptions.cxx
>  
> 
> 
> Regards,
> Niklas Johansson

-- 
To unsubscribe e-mail to: [email protected]
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted

Reply via email to