Tastaturmakros unter OO

Setup und Komponenten-übergreifende Probleme.

Moderator: Moderatoren

Hartmut

Tastaturmakros unter OO

Beitrag von Hartmut » Fr, 27.06.2003 15:13

Hallo,

habe gerade OO installiert und wollte eine Tastaturfolge als Makro aufzeichnen lassen. Diese Option gibts wohl nicht mehr (StarOffice 5.2 hat die Möglichkeit).
Was für Möglichkeiten hat man da mit OO ? Tastaturfolgen kann man unter StarOffice (Starbasic) auch mit "Selection.XXX()" ausführen lassen. Funzt aber mit OO nicht.

Habt Ihr eine Tipp ?

Danke
Ciao
Hartmut

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

Beitrag von openmind » So, 29.06.2003 15:32

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 » So, 29.06.2003 15:41

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/

Gast

Beitrag von Gast » Mo, 30.06.2003 13:17

Vielen Dank openmind,

das mit dem Makro habe ich auf der 1.0.3 ausprobiert. Da fehlt aber scheinbar dieser DispatchHelper, das Makro steigt an der Dispatcher-Anweisung aus. Werde also warten, bis 1.1 stabil und freigegeben ist und solange Staroffice 5.2 für meine Zwecke verwenden.

Nochmals vielen Dank für die professionelle Hilfe

Ciao
Hartmut

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste