je sais déplacer à la main le fichier contenant les touches de raccourci de Writer.
Je souhaiterai automatiser cette action grâce à une macro pour faciliter l'installation d'un programme (Rédaction de textes mathématiques dans la rubrique projets de ce forum), mais en deux mois, je n'ai pas trouvé le moindre début de commencement d'idée qui fonctionne pour y arriver.
A défaut, je serai intéressé par une macro pouvant créer un raccourci.
Je sollicite donc à nouveau votre aide et vos idées.
Merci
Joël
Dernière édition le 4/1/2010
Autre édition le 5/1/2010
finalement, j'ai trouvé (autre fausse piste?) le service "com.sun.star.ui.GlobalAcceleratorConfiguration" qui donne accès aux raccourcis de OpenOffice.org et à un interface "XAcceleratorConfiguration" qui bien que "Unpublished" (?) semble prometteur.
j'ai trouvé également à l'adresse http://codesnippets.services.openoffice ... tcuts.snip une macro de Paolo Mantovani qui permet d'ajouter un ou plusieurs raccourcis à un module (ctrl est le numéro de la touche modifiante, Touche est com.sun.star.awt.Key.F pour la touche F et une macro est de la forme: Bibliothèque.Module.NomMacro
Code : Tout sélectionner
Sub ChargeRaccourcis(ctrl as integer, Touche as Integer, uneMacro as String)
Dim oModuleCfgMgrSupplier As Object, oModuleCfgMgr As Object, oWriterShortCutMgr As Object, 'jdObject as Object
Dim sCommand As String, sLocCommand As String, sMsg As String, combi as String
Dim aKeyEvent As New com.sun.star.awt.KeyEvent
sCommand = "vnd.sun.star.script:" & uneMacro & "?language=Basic&location=application"
oModuleCfgMgrSupplier = createUnoService("com.sun.star.ui.ModuleUIConfigurationManagerSupplier") ' UNPUBLISHED service!!
oModuleCfgMgr = oModuleCfgMgrSupplier.getUIConfigurationManager("com.sun.star.text.TextDocument")
oWriterShortCutMgr = oModuleCfgMgr.getShortCutManager
With aKeyEvent
.Modifiers = ctrl
.KeyCode = Touche
End With ' attention aux IIf qui sont parfois capricieux!
combi = IIf(ctrl And 2, "CTRL+", "") & IIf(ctrl And 1, "MAJ+", "") & IIf(ctrl And 4, "ALT+", "") & "H"
On Error Resume Next ' CommandByKeyEvent renvoie une erreur si aKeyEvent n'est pas affectée
sLocCommand = oWriterShortCutMgr.getCommandByKeyEvent(aKeyEvent)
On Error GoTo 0
Select Case sLocCommand
Case ""
oWriterShortCutMgr.setKeyEvent(aKeyEvent, sCommand)
oWriterShortCutMgr.store
Case = sCommand 'ok sKeyEvent est déjà affectée à notre commande
Case Else ' sKeyEvent est déjà affectée à une autre commande
sMsg = "Le raccourci " & combi & " est déjà utilisé par: " & sLocCommand & Chr(10)
sMsg = sMsg & "Voulez-vous le remplacer par: " & uneMacro & "?"
If MsgBox(sMsg, 1) = 1 Then
oWriterShortCutMgr.removeKeyEvent(aKeyEvent)
oWriterShortCutMgr.setKeyEvent(aKeyEvent, sCommand)
oWriterShortCutMgr.store
End If
End Select
End SubEdition le 21/11/2010:
Code : Tout sélectionner
en remplaçant
oModuleCfgMgrSupplier = createUnoService("com.sun.star.ui.ModuleUIConfigurationManagerSupplier") ' UNPUBLISHED service!!
oModuleCfgMgr = oModuleCfgMgrSupplier.getUIConfigurationManager("com.sun.star.text.TextDocument")
oWriterShortCutMgr = oModuleCfgMgr.getShortCutManager
par:
oModuleCfgMgr = Thiscomponent.getUIConfigurationManager() 'raccourcis au niveau document
oDocShortCutMgr = oModuleCfgMgr.getShortCutManagerMerci donc à Spyre
