Tastaturmakros unter OO

Setup und Komponenten-übergreifende Probleme.

Moderator: Moderatoren

openmind
****
Beiträge: 184
Registriert: So, 29.06.2003 15:00
Wohnort: Schweiz

Beitrag von openmind »

OpenOffice 1.1beta2 verfügt über einen Macro-Recorder.

Du findest diese Beta unter http://de.openoffice.org/about-downloads.html

Der Recorder produziert Code wie folgenden. Die Anweisungen werden dabei über einen Dispatcher (com.sun.star.frame.DispatchHelper) abgearbeitet:

Code: Alles auswählen


' -----------------------------------------------------------------------------
' recorded macro um toolbar, objectbar and functionbar auszublenden
sub hideBars
	rem ----------------------------------------------------------------------
	rem define variables
	dim document   as object
	dim dispatcher as object
	
	rem ----------------------------------------------------------------------
	rem get access to the document
	document   = ThisComponent.CurrentController.Frame
	
	rem create the dispatcher
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

	rem ----------------------------------------------------------------------
	rem hide FunctionBar
	dim args1(0) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "FunctionBarVisible"
	args1(0).Value = false
	dispatcher.executeDispatch(document, ".uno:FunctionBarVisible", "", 0, args1())

	rem ----------------------------------------------------------------------
	rem hide ObjectBar
	dim args2(0) as new com.sun.star.beans.PropertyValue
	args2(0).Name = "ObjectBarVisible"
	args2(0).Value = false
	dispatcher.executeDispatch(document, ".uno:ObjectBarVisible", "", 0, args2())

	rem ----------------------------------------------------------------------
	rem hide toolbar
	dim args3(0) as new com.sun.star.beans.PropertyValue
	args3(0).Name = "ToolBarVisible"
	args3(0).Value = false
	dispatcher.executeDispatch(document, ".uno:ToolBarVisible", "", 0, args3())

end sub
Ohne es jetzt gerade ausprobieren zu wollen, würde es mich interessieren, ob ein Macro (z.B. obiges), das mit 1.1beta2 aufgenommen wurde, auch unter Ooo 1.x funktionieren. Testresultate sind also willkommen ;-)
Meine Installation: AMD Athlon XP 1600+, 512 MB RAM, SuSE Linux 8.2, OpenOffice 1.1
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
openmind
****
Beiträge: 184
Registriert: So, 29.06.2003 15:00
Wohnort: Schweiz

Beitrag von openmind »

Zur Ergänzung habe ich noch eine Tastatureingabe mit dem Macrorecorder aufgenommen, zu welcher eigentlich Deine Frage war. Versuch mal ob das funktioniert.

Code: Alles auswählen

sub testmacro
	rem ----------------------------------------------------------------------
	rem define variables
	dim document   as object
	dim dispatcher as object

	rem ----------------------------------------------------------------------
	rem get access to the document
	document   = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

	rem ----------------------------------------------------------------------
	rem texteingabe
	dim args1(0) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "Text"
	args1(0).Value = "Eine Tastatureingabe die aufgezeichnet wird"

	dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())

	rem ----------------------------------------------------------------------
	rem zeilenumbruch (neuer Abschnitt)
	dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array())


	rem ----------------------------------------------------------------------
	rem texteingabe
	dim args3(0) as new com.sun.star.beans.PropertyValue
	args3(0).Name = "Text"
	args3(0).Value = "Eine zeite zeile wird nachträglich als ÜBerschrift 1 formatiert"

	dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args3())

	rem ----------------------------------------------------------------------
	rem aufruf des stylisten-dialogs
	dim args4(0) as new com.sun.star.beans.PropertyValue
	args4(0).Name = "DesignerDialog"
	args4(0).Value = true

	dispatcher.executeDispatch(document, ".uno:DesignerDialog", "", 0, args4())

	rem ----------------------------------------------------------------------
	rem formatierung als Überschrift 1
	dim args5(1) as new com.sun.star.beans.PropertyValue
	args5(0).Name = "Template"
	args5(0).Value = "Überschrift 1"
	args5(1).Name = "Family"
	args5(1).Value = 2

	dispatcher.executeDispatch(document, ".uno:StyleApply", "", 0, args5())


end sub
Meine Installation: AMD Athlon XP 1600+, 512 MB RAM, SuSE Linux 8.2, OpenOffice 1.1
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
Antworten