Как программно скрыть приложение (окно) ? [РЕШЕНО]

Автор Vadim, 16 сентября 2010, 22:12

0 Пользователи и 1 гость просматривают эту тему.

Vadim

OOo 3.2.1
 Пишу автоматизацию нескольких таблиц в C#, нужно скрыть окно приложения после его запуска, чтобы оно не мешало работать на машине (автом. действия выполняться относительно долго).
Такой функции (API) пока еще не нашел. Свойства Visibility тоже не увидел.

Рыбка Рио

На Basic:
ThisComponent.getCurrentController().getFrame().getContainerWindow().setVisible(FALSE)
ubuntu 12.04 + LibO3.6.0

Vadim

Благодарю !
Помог еще вот этот раздел в документации:
Getting Frames, Controllers and Models from Each Other

На C# получилось так:
        XComponentLoader oDesk = (XComponentLoader)ServiceFactory.createInstance("com.sun.star.frame.Desktop");
        XComponent oDoc = oDesk.loadComponentFromURL(filePath, "_blank", 0, propVals);
        OOo.frame.XFrame oFrame = ((OOo.frame.XDesktop)oDesk).getCurrentFrame();
        OOo.awt.XWindow oWindow = oFrame.getContainerWindow();
        oWindow.setVisible(false);


может кому еще на VB пригодиться:
        Set objCurrentController = objDocument.getCurrentController()
        Set objFrame = objCurrentController.getFrame()
        Set objContainer = objFrame.getContainerWindow()
        objContainer.setVisible(True)


Рыбка Рио

Если нужно открыть документ скрытым от глаз, то можно так:

Dim aMediaDesc(0) As New com.sun.star.beans.PropertyValue
aMediaDesc(0).Name  = "Hidden"
aMediaDesc(0).Value = TRUE
Document = StarDesktop.loadComponentFromURL(filePath, "_default", 0, aMediaDesc())


Java (API/Tutorials/PDF export — OpenOffice.org Wiki):
    public static XComponent createNewHiddenDoc(
                                    XComponentContext xContext,
                                    String sDocType)
    {
        XComponent xComp = null;
        try {
            PropertyValue[] aMediaDescriptor = new PropertyValue[1];
            aMediaDescriptor[0] = new PropertyValue();
            aMediaDescriptor[0].Name = "Hidden";
            aMediaDescriptor[0].Value = Boolean.TRUE;

            xComp = createNewDoc(xContext, sDocType, aMediaDescriptor);

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return xComp;
    }
ubuntu 12.04 + LibO3.6.0

Vadim

Еще раз благодарен ;)
так даже проще и лучше.

C#
PropertyValue[] propVals = new PropertyValue[1];
propVals[0] = new PropertyValue();
propVals[0].Name = "Hidden";
propVals[0].Value = new uno.Any(true);

dr.Faust

Осторожнее. Когда документ открывается скрытым, некоторые интерфейсы и сервисы для него не создаются. 
Свобода информации - свобода личности!