StarDesktop vom Formular aus manipulieren
Verfasst: Do, 21.09.2006 08:08
Wie kann ich per Auto-Makro das Datenbank-Fenster ausblenden (oder
wenigstens automatisch beim Start minimieren), damit nur mein aktives
Formular auf dem Desktop sichbar bleibt (manche nennen sowas auch
"Runtime-Simulation")?
ACHTUNG: das Makro soll sich *nicht* im "MyMacro"- oder
"openoffice.org"-Verzeichnis, sondern nur innerhalb des
Formular-Containers befinden!
Ich habe folgenden Lösungsansatz zum Minimieren per Windows-API:
Declare Function ShowWindow Lib "user32" (ByVal lHwnd As Long, ByVal
lCmdShow As Long) As Boolean
Sub MinimizeDesktop
Dim WindowFrame as Object, WindowContainer As Object, WindowHandle As
Long
WindowFrame = StarDesktop.getActiveFrame()
WindowContainer = WindowFrame.getContainerWindow
WindowHandle = WindowContainer.getWindowHandle(dimarray(), 1)
' call the WIN32-API function (declaration: see module-header above!)
ShowWindow(WindowHandle, 2)
End Sub
... das funk't aber nur, wenn sich das Makro im Ausführungsbereich
von "MyMacros" befindet und läßt sich nicht innerhalb des Formulars
starten (Fehler: unbekannte Objekt-Eigenschaft oder so).
Die Kern-Frage ist demnach: wie spreche ich das StarDesktop vom
Formular aus an? Das Objekt "StarDesktop.getActiveFrame()" liefert
mir nur einen Handle zu dem gerade aktiven Frame (was bei einem
geöffneten Formular eben das Formular selbst ist und im vorliegenden
Fall nicht die gewünschte Eigenschaft liefert).
Wenn diese Frage geklärt ist, läßt sich (hoffentlich) auch eine
Methode finden, den StarDesktop vollständig zu verstecken, anstatt
ihn nur zu minimieren.
Ich hoffe, ich habe mich verständlich ausgedrückt?!
Herzliche Grüße und vorab schon mal vielen Dank für die Antworten:
ejomi
wenigstens automatisch beim Start minimieren), damit nur mein aktives
Formular auf dem Desktop sichbar bleibt (manche nennen sowas auch
"Runtime-Simulation")?
ACHTUNG: das Makro soll sich *nicht* im "MyMacro"- oder
"openoffice.org"-Verzeichnis, sondern nur innerhalb des
Formular-Containers befinden!
Ich habe folgenden Lösungsansatz zum Minimieren per Windows-API:
Declare Function ShowWindow Lib "user32" (ByVal lHwnd As Long, ByVal
lCmdShow As Long) As Boolean
Sub MinimizeDesktop
Dim WindowFrame as Object, WindowContainer As Object, WindowHandle As
Long
WindowFrame = StarDesktop.getActiveFrame()
WindowContainer = WindowFrame.getContainerWindow
WindowHandle = WindowContainer.getWindowHandle(dimarray(), 1)
' call the WIN32-API function (declaration: see module-header above!)
ShowWindow(WindowHandle, 2)
End Sub
... das funk't aber nur, wenn sich das Makro im Ausführungsbereich
von "MyMacros" befindet und läßt sich nicht innerhalb des Formulars
starten (Fehler: unbekannte Objekt-Eigenschaft oder so).
Die Kern-Frage ist demnach: wie spreche ich das StarDesktop vom
Formular aus an? Das Objekt "StarDesktop.getActiveFrame()" liefert
mir nur einen Handle zu dem gerade aktiven Frame (was bei einem
geöffneten Formular eben das Formular selbst ist und im vorliegenden
Fall nicht die gewünschte Eigenschaft liefert).
Wenn diese Frage geklärt ist, läßt sich (hoffentlich) auch eine
Methode finden, den StarDesktop vollständig zu verstecken, anstatt
ihn nur zu minimieren.
Ich hoffe, ich habe mich verständlich ausgedrückt?!
Herzliche Grüße und vorab schon mal vielen Dank für die Antworten:
ejomi