Disabilitare/Abilitare comando nel menu con macro

Creare una macro - Scrivere uno script - Usare le API
Rispondi
geovign
Messaggi: 215
Iscritto il: domenica 13 gennaio 2019, 11:19
Località: Modena

Disabilitare/Abilitare comando nel menu con macro

Messaggio da geovign »

Un saluto al forum.
Nel progetto a cui sto, ancora, lavorando, mi piacerebbe impedire, almeno nel menu, di fare copie del file, quindi disabilitare (all'apertura del file) e abilitare (alla chiusura del file) i comandi "Salva con nome","Salva remoto","Salva una copia" presenti nel menu File.
Ho trovato e provato questa macro

Codice: Seleziona tutto

Sub HideAllMenuToolbars
   Dim xCurrentController as Object
   Dim xLayoutManager as Object
' If Design mode, just exit the routine and display standard menu and toolbars'
   xCurrentController = thisComponent.CurrentController
   If xCurrentController.isFormDesignMode Then
       Exit Sub
   End If
   xLayoutManager = thisComponent.CurrentController.Frame.LayoutManager
   xLayoutManager.visible = false
End Sub
ma nasconde l'intero menu e barra degli strumenti.
Presumo che attraverso l'interfaccia xLayoutManager si possa disabilitare i comandi di cui sopra, ma non sono ancora riuscito a trovare il modo.
Qualcuno ha un'idea?
Saluti
Geo
LibO 7 su LinuxMint 21
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2995
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Disabilitare/Abilitare comando nel menu con macro

Messaggio da lucky63 »

Se ti può interessare puoi personalizzare il Menu > File (del file stesso) senza macro.
Si possono togliere tutte le voci di comando ritenute superflue (ma le combinazioni da tastiera a loro associate rimarrebbero però comunque operative).
Vedi allegato.
Allegati
Test - Menu File personalizzato senza Salva ecc.ods
(11.34 KiB) Scaricato 210 volte
geovign
Messaggi: 215
Iscritto il: domenica 13 gennaio 2019, 11:19
Località: Modena

Re: Disabilitare/Abilitare comando nel menu con macro

Messaggio da geovign »

Ciao @lucky63,
Grazie del suggerimento.
Ho letto diversi interventi nel forum riguardo la tua soluzione e ci stavo pensando.
Se le combinazioni da tastiera restano operative, anche con l'utilizzo di macro, tutto questo "lavoro" per evitare, parzialmente, la creazione di copie è assolutamente inutile, ahimè.
Se, comunque interessa, proviamoci ugualmente a scrivere una macro....
Saluti
Geo
LibO 7 su LinuxMint 21
geovign
Messaggi: 215
Iscritto il: domenica 13 gennaio 2019, 11:19
Località: Modena

Re: Disabilitare/Abilitare comando nel menu con macro

Messaggio da geovign »

Andrew Pitonyak, nella sua guida Useful Macro Information For OpenOffice.org, al capitolo 4.4 - Intercept menu commands using Basic, propone un codice creato da Paolo Mantovani e da lui modificato, per disabilitare i comandi presenti nel menu. Nel file allegato riporto l'intero codice che disabilita il solo comando "Save" (.uno:Save).
Lanciando la "Sub RegisterInterceptor()" vengono disabilitati i comandi scelti; se successivamente si lancia la "Sub ReleaseInterceptor()" questi dovrebbero nuovamente essere abilitati, da quanto ho capito io. Purtroppo però non succede nulla.
Non ho idea se quanto riportato nella guida sia effettivamente tutto funzionante oppure manca qualcosa.
Qualcuno riesce a controllarla?
Saluti
Geo
Allegati
Disabilita_comandi.ods
(15.39 KiB) Scaricato 196 volte
LibO 7 su LinuxMint 21
nickGiard
Messaggi: 65
Iscritto il: lunedì 14 maggio 2012, 22:04

Re: Disabilitare/Abilitare comando nel menu con macro

Messaggio da nickGiard »

Ciao geovign,
non ti so dare una soluzione, ma solo un'osservazione. Nel menù Personalizza scheda Eventi hai tutti gli eventi generali di LO, tra i quali Salva, Salva con nome ... Posso pensare che ci possa essere una macro associata che possa interrompere l'evento, ossia denegarlo (io in questo momento non saprei come farlo, ma sicuramente si trova).
Ma allora come fai a salvare le tue modifiche ? Distribuisci una copia che ha questo evento bloccato, oppure che non si attiva per un particolare utente o directory?
Nicola con LibreOffice 7.1 (x64) su Windows 11
geovign
Messaggi: 215
Iscritto il: domenica 13 gennaio 2019, 11:19
Località: Modena

Re: Disabilitare/Abilitare comando nel menu con macro

Messaggio da geovign »

Ciao nickGiard,
il codice inibisce, ad esempio, l'uso del comando "Salva" tramite menu e combinazione da tastiera, ma non lo inibisce se utilizzato all'interno di una macro.
Quindi ogni modifica può essere salvata utilizzando un codice.
Saluti
Geo
LibO 7 su LinuxMint 21
Rispondi