Tastenkombination per Makro zuweisen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Tastenkombination per Makro zuweisen

von Steffan » So, 10.09.2006 10:48

Hallo zusammen,

der Vollständigkeit halber will ich noch folgendes hinzufügen:
Das Ereignis 'Dokument deaktivieren' wird nicht beim Schließen des Dokuments ausgelöst und natürlich nicht beim Absturz des Dokuments. Damit man nicht in diesen Fällen seinen geänderten Tastenkombinationen 'sitzenbleibt' muss man noch folgendes tun:
den Ereignisen 'Dokument wird geschlossen' und 'Programmstart' das Makro 'OnDeactivate' zuweisen

Steffan.

[gelöst] Tastenkombination per Makro zuweisen

von Steffan » Do, 07.09.2006 09:00

Hallo zusammen,

ich hab das Problem inzwischen durch einen Codebeispiel (http://codesnippets.services.openoffice ... tcuts.snip), dass ich angepasst habe, lösen können und poste hier die Lösung für alle die es interessiert:

In meinem Beispiel wird bei Aktivierung des Dokuments der Taste 'A' das Makro 'showAddressinfo1' zugewiesen. Bei Deaktivierung des Dokument wird diese Zuweisung gelöscht

Code: Alles auswählen

Sub onActivate
	 sMacro = "vnd.sun.star.script:Standard.info.showAddressinfo1?language=Basic&location=document"
	 call setShortCut(512, 0, sMacro)
End Sub

Sub onDeactivate
	 call setShortCut(512, 0, "")
End Sub

Sub setShortCut(lKey as long, iMod as integer, sFunction as String)
'Ändert Shortcuts für Tasten bzw. Tastenkombinationen
'alte Shortcut werden ohne Rückfrage überschrieben!
'	lKey ... die Taste (Keykonstanten unter http://api.openoffice.org/docs/common/ref/com/sun/star/awt/Key.html)
'	iMod ... Zusatztaste (Shift = 1, Ctrl = 2, Alt =4)
'	sFunction ... Makro, das ausgeführt werden soll

	' Short-Cut-Manager holen
	oModuleCfgMgrSupplier = createUnoService("com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
	oModuleCfgMgr = oModuleCfgMgrSupplier.getUIConfigurationManager("com.sun.star.text.TextDocument")
	oWriterShortCutMgr = oModuleCfgMgr.getShortCutManager
	
	' Werte definieren
	Dim aKeyEvent As New com.sun.star.awt.KeyEvent
	aKeyEvent.KeyCode = lKey
	aKeyEvent.Modifiers = iMod
	
	' vorhandene Belegung auslesen
	On Error Resume Next
	sLocCommand = oWriterShortCutMgr.getCommandByKeyEvent(aKeyEvent)
	On Error GoTo 0 
	
	' neue Belegung zuweisen
	Select Case sLocCommand
		Case = "" 'Shortcut ist nicht belegt
			oWriterShortCutMgr.setKeyEvent( aKeyEvent, sFunctiom )
			oWriterShortCutMgr.store
			
		Case = sFunction 'Shortcut ist schon mit richtiger Funktion belegt
					
		Case Else 'Shortcut mit anderer Funktion belegt
			oWriterShortCutMgr.removeKeyEvent( aKeyEvent)
			if sFunction <>"" then oWriterShortCutMgr.setKeyEvent( aKeyEvent, sFunction )
			oWriterShortCutMgr.store
		
	End Select
End Sub
Steffan

Tastenkombination per Makro zuweisen

von Steffan » Mi, 06.09.2006 10:13

Hallo zusammen,

ich würde gern Tastenkombinationen für ein bestimmtes (Writer-)Dokument separat einstellen. Bei >Eintellungen>Anpassen>Tastatur kann ich diese allerdings nur für OpenOffice bzw. für Writer ändern.
Gibt es eine Möglichkeit das ganze per Makro durchzuführen? Dann könnte ich das Änderungsmakro dem Ereignis "Dokument aktivieren" und das Rücksetzen dem Ereignis "Dokument deaktivieren" zuweisen. Allerdings habe ich nichts über einen entsprechenden StarBasic-Befehl gefunden und der Makrorekordr hilft auch nicht weiter. Kann mir jemand von Euch weiterhelfen?

Danke,
Steffan.

Nach oben