Tastaturmakros unter OO

Antwort erstellen


Um automatische Eingaben zu unterbinden, musst du die nachfolgende Aufgabe lösen.

BBCode ist eingeschaltet
[img] ist ausgeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Tastaturmakros unter OO

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

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

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 ;-)

Tastaturmakros unter OO

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

Nach oben