Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

classic Classic list List threaded Threaded
38 messages Options
Next » 12
Jürgen Klatt Jürgen Klatt
Reply | Threaded
Open this post in threaded view
|

Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

Hallo,

ich habe hier in einer ZIP-Datei (Musterdatei.zip) zwei Dateien hochgeladen.
https://c.web.de/@693152299987503749/c_8KMmxvSECrDWBwx8_83Q

a) Die Writerdatei enthält das Makro, welches über eine Schaltfläche
gestartet werden kann.
b) Die Calcdatei enthält Texte, welche vom Makro in ein Array eingelesen
werden.
c) Nach dem Lesen werden diese Text, entsprechend des Musters in der
Calcdatei,
in das Writerdokuemnt geschrieben/ verteilt.

Das Makro läuft fehlerfrei durch, d.h. es werden alle Texte verteilt und
nach Abschluß erscheint eine Messagebox, mit dem Hinweis,
dass alle Texte geschrieben wurden.
Genau in diesem Augenblick friert LibreOffice ein.
Man kann LibreOffice nur über den Taskmanager abschießen.

a) In allen LibreOffice-Versionen VOR 6.2.1.2, funktioniert das Makro
einwandfrei.
b) In AOO 4.1.6 funktioniert das Makro einwandfrei
c) Mit LibreOffice-Version 6.3 (Master vom 28.03.2019)*) friert
LibreOffice ein.
*)
Version: 6.3.0.0.alpha0+ (x64)
Build ID: ed6a71eafa61bade50219d2ff6233a42ab6d1c17
CPU threads: 4; OS: Windows 10.0; UI render: default; VCL: win;
TinderBox: Win-x86_64@42, Branch:master, Time: 2019-03-28_01:15:23
Locale: de-DE (de_DE); UI-Language: en-US
Calc: CL

Da das Makro in den LO-Vorgängerversionen funktioniert und
in AOO 4.1.6 heute noch funktioniert, bezweifele ich eigentlich,
das die Problem an einem Programmierfehler liegt. Es sei denn
die LO-Vorgängerversionen und AOO sind fehlertoleranter.
Deshalb bitte ich jemanden mein Makro zu testen und mir ggf. eine Lösung
anzubieten.
Hinweis:
Der Absturz, bzw. das Einfrieren erfolgt in der Sub-Routine "Sub Seite",
direkt vor "END SUB" an Position:
     MsgBox("Die Kopfzeileninhalte wurden ab Seite 2 bis zur Seite "...
Die Messagebox wird noch angezeigt, aber es ist nicht möglich den
OK-Button zu betätigen.

Viele Grüße

Jürgen


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
-----------------------------------------------------------------------------------------
WIN 10 Pro  64-bit • LO 6.1.5.2 64-bit • JAVA JRE1.8.0_202
Thomas Krumbein-3 Thomas Krumbein-3
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

Hallo Jürgen,

Am 28.03.2019 um 20:14 schrieb Jürgen Klatt:
> ...
> ich habe hier in einer ZIP-Datei (Musterdatei.zip) zwei Dateien
> hochgeladen.
> https://c.web.de/@693152299987503749/c_8KMmxvSECrDWBwx8_83Q
>
in der heruntergeladenen zip-Datei ist bei mir lediglich einen
Calc-Datei drin - und die besitzt keine Makros.

Kann also wenig zu sagen....

Viele Grüße

Thomas


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Jürgen Klatt Jürgen Klatt
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

Hallo Thomas,

sorry, so passiert es wenn man nicht alles überprüft.
Der vorherige Link funktioniert jetzt, bzw. in der ZIP sind beide
Dateien enthalten.

Viele Grüße

Jürgen

Am 28.03.2019 um 20:58 schrieb Thomas Krumbein:

> Hallo Jürgen,
>
> Am 28.03.2019 um 20:14 schrieb Jürgen Klatt:
>> ...
>> ich habe hier in einer ZIP-Datei (Musterdatei.zip) zwei Dateien
>> hochgeladen.
>> https://c.web.de/@693152299987503749/c_8KMmxvSECrDWBwx8_83Q
>>
> in der heruntergeladenen zip-Datei ist bei mir lediglich einen
> Calc-Datei drin - und die besitzt keine Makros.
>
> Kann also wenig zu sagen....
>
> Viele Grüße
>
> Thomas
>
>

--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
-----------------------------------------------------------------------------------------
WIN 10 Pro  64-bit • LO 6.1.5.2 64-bit • JAVA JRE1.8.0_202
Jürgen Klatt Jürgen Klatt
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

Hallo Thomas,

habe nun meinen Code entsprechend Deines Ratschlags und diverser anderer
Ungereimtheiten überarbeitet.

Musterdateien_02.zip
steht hier zum Download bereit:
https://c.web.de/@693152299987503749/RJCw-SFyQFK1cq8oL0FtFA

Das Programm läuft jetzt unter diesen OfficeVersionen:
a)  LO 6.1.4.2 Portable
b)  LO 6.2.1.2
c)  LO 6.3.0.0.alpha0+ (x64)
d) AOO 4.1.6 --> rasend schnell

ABER:
Sobald ich im Code unter LibreOffice (egal welche Version) die
abschließende Messagebox aktiviere, friert LO ein.
Unter OpenOffice funktioniert die Ausführung auch mit der letzten
Messagebox. Zu dem mit rasantem Tempo.

Die Passagen an denen ich die MsgBox platziert habe und wo diese zum
Einfrieren führen, habe ich wie folgt gekennzeichnet:
REM ???????????????????
...

Ich bitte Dich den Code nochmals zu analysieren und mir einen Tipp zu geben.

Vielen Dank und Grüße

Jürgen

Am 28.03.2019 um 21:45 schrieb Jürgen Klatt:

> Hallo Thomas,
>
> sorry, so passiert es wenn man nicht alles überprüft.
> Der vorherige Link funktioniert jetzt, bzw. in der ZIP sind beide
> Dateien enthalten.
>
> Viele Grüße
>
> Jürgen
>
> Am 28.03.2019 um 20:58 schrieb Thomas Krumbein:
>> Hallo Jürgen,
>>
>> Am 28.03.2019 um 20:14 schrieb Jürgen Klatt:
>>> ...
>>> ich habe hier in einer ZIP-Datei (Musterdatei.zip) zwei Dateien
>>> hochgeladen.
>>> https://c.web.de/@693152299987503749/c_8KMmxvSECrDWBwx8_83Q
>>>
>> in der heruntergeladenen zip-Datei ist bei mir lediglich einen
>> Calc-Datei drin - und die besitzt keine Makros.
>>
>> Kann also wenig zu sagen....
>>
>> Viele Grüße
>>
>> Thomas
>>
>>
>

--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
-----------------------------------------------------------------------------------------
WIN 10 Pro  64-bit • LO 6.1.5.2 64-bit • JAVA JRE1.8.0_202
Gerhard Weydt Gerhard Weydt
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

Hallo Jürgen,

bevor ich dir eine wahrscheinliche Erklärung liefere, möchte ich eine
leise Kritik loswerden: so ein kompliziertes Programm zu liefern mit der
Aussage, dass jetzt eine Msgbox nicht funktioniert, ist ein bisschen
wenig. Als erstes solltest du versuchen, das Problem einzugrenzen, das
Programm zu reduzieren auf möglichst einfache und kurze Codes, damit es
für jemand anderen leichter nachvollziehbar ist. Das erhöht auch die
Chance, dass jemand dran bleibt und den Grund findet und nicht die Lust
verliert.
Ich denke, in meinem Fall bin ich glücklicherweise schnell auf etwas
gestoßen: Ich habe mir - ein Reduktionsfaktor - nur die Routine
btnStart.. angeschaut. Bei xSeite mit der anschließenden Msgbox habe ich
nichts Auffälliges gesehen, daher habe ich die davor liegende Routine
DateiDialog ins Visier genommen, da war auch nichts offensichtlich
Verdächtiges, also weiter zu FileOperation. Da habe ich Xray oDocC
eingefügt; du hast ja mri drin, aber das scheint ja irgendwie
eingefroren zu sein, hanya hat erklärt, dass er das nicht mehr weiter
betreibt; aber Xray würde ja im Grunde das gleiche liefern.
Nun blieb aber auch Xray hängen; übrigens ist dann wie auch beim
ursprünglichen Fall LibO aktiv, der TaskManager zeigt 27 - 30 % an.
So war das nun schon ziemlich eingeschränkt, das Öffnen des
Calc-Dokuments, das in dieser Routine geschieht, ist wohl irgendwie
problematisch. Vorher war mir schon aufgefallen, dass die
Dimensionierung von FileProperties mit 1 falsch war, weil du nur ...(0)
zuweist, aber das hatte keinen Einfluss. Das solltest du zwar ändern,
aber das ist eher Kosmetik (technisch gesehen), aber sinnvoll (für das
Verständnis).
Aber der Grund für das Problem scheint zu sein, dass der Name
FileProperties natürlich verdächtig ist. Wenn ich den bei allen
Vorkommen in dieser Routine ändere, durch einen vorangestellten
Buchstaben z. B., dann friert LibO bei mir nicht mehr ein, das Programm
läuft durch.
Man kann wohl daraus schließen, dass jetzt irgendwo eine Abfrage auf den
String "FileProperties" erfolgt, der ja auch irgendwie nach
systemimmanent riecht, die irgend etwas bewirkt, das in unserem Kontext
schädlich ist. Die Wahl "FileProperties" ist ja nicht wirklich falsch,
obwohl es strenggenommen keine Eigenschaften der Datei selbst sind, die
du in diesem Fall angibst, sondern speziell für das Öffnen in diesem
konkreten Fall verwendete Parameter. Aber du solltest hier eine andere
Variablenbenennung verwenden, weil offensichtlich "FileProperties" schon
belegt ist.
Ich hoffe, dass damit dein Problem auch in der Originaldatei gelöst ist.

Gruß

Gerhard
Am 30.03.2019 um 19:33 schrieb Jürgen Klatt:

> Hallo Thomas,
>
> habe nun meinen Code entsprechend Deines Ratschlags und diverser anderer
> Ungereimtheiten überarbeitet.
>
> Musterdateien_02.zip
> steht hier zum Download bereit:
> https://c.web.de/@693152299987503749/RJCw-SFyQFK1cq8oL0FtFA
>
> Das Programm läuft jetzt unter diesen OfficeVersionen:
> a)  LO 6.1.4.2 Portable
> b)  LO 6.2.1.2
> c)  LO 6.3.0.0.alpha0+ (x64)
> d) AOO 4.1.6 --> rasend schnell
>
> ABER:
> Sobald ich im Code unter LibreOffice (egal welche Version) die
> abschließende Messagebox aktiviere, friert LO ein.
> Unter OpenOffice funktioniert die Ausführung auch mit der letzten
> Messagebox. Zu dem mit rasantem Tempo.
>
> Die Passagen an denen ich die MsgBox platziert habe und wo diese zum
> Einfrieren führen, habe ich wie folgt gekennzeichnet:
> REM ???????????????????
> ...
>
> Ich bitte Dich den Code nochmals zu analysieren und mir einen Tipp zu
> geben.
>
> Vielen Dank und Grüße
>
> Jürgen
>
> Am 28.03.2019 um 21:45 schrieb Jürgen Klatt:
>> Hallo Thomas,
>>
>> sorry, so passiert es wenn man nicht alles überprüft.
>> Der vorherige Link funktioniert jetzt, bzw. in der ZIP sind beide
>> Dateien enthalten.
>>
>> Viele Grüße
>>
>> Jürgen
>>
>> Am 28.03.2019 um 20:58 schrieb Thomas Krumbein:
>>> Hallo Jürgen,
>>>
>>> Am 28.03.2019 um 20:14 schrieb Jürgen Klatt:
>>>> ...
>>>> ich habe hier in einer ZIP-Datei (Musterdatei.zip) zwei Dateien
>>>> hochgeladen.
>>>> https://c.web.de/@693152299987503749/c_8KMmxvSECrDWBwx8_83Q
>>>>
>>> in der heruntergeladenen zip-Datei ist bei mir lediglich einen
>>> Calc-Datei drin - und die besitzt keine Makros.
>>>
>>> Kann also wenig zu sagen....
>>>
>>> Viele Grüße
>>>
>>> Thomas
>>>
>>>
>>
>


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Thomas Krumbein-3 Thomas Krumbein-3
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

In reply to this post by Jürgen Klatt
Hallo Jürgen,


Am 30.03.2019 um 19:33 schrieb Jürgen Klatt:
> Hallo Thomas,
>
> habe nun meinen Code entsprechend Deines Ratschlags und diverser anderer
> Ungereimtheiten überarbeitet.

Schon mal gut :)

Könntest aber noch ein paar andere "Kleinigkeiten" bereinigen:

Keine Variable als "global" definieren!!!! "Global"-Variable werden im
Arbeitsspeicher aktiv gehalten, auch wen Dein (Makro-) Programm bereits
beendet ist. Jedes andere Programm oder Modul kann darauf zugreifen und
diese auslesen oder verändern. Ist eine Sicherheitslücke und ganz
schlechter Programmierstiel (es sei denn, es ist tatsächlich notwendig).
Du brauchst keine Global-Variablen! In Deinem Fall würde DIM immer
ausreichen, falls Du mehrere Module betreibst und kein Windows benutzt,
wäre "Privat" die korrekte Definition.

Die "Call" Aufrufe kannst Du Dir ersparen. Ist in VBA nötig, nicht aber
in LO/AOO Basic. Hier reicht es völlig, den Funktionsnamen zu verwenden.
"CAll" errinnert zu sehr an VBA und ist nur der Kompatibilität mit im
Funktionsumfang.

Zu den Variablen-Namen hat Gerhard schon was gesagt. Es gibt einfach
Namen, die werden auch vom Programm intern verwendet - wenn Du diese
dann noch als "globale" Variablen festlegst, ist Chaos vorprogrammiert.
Leider gibt es keine Liste interner Variablen-Namen. Hier ist einfach
etwas Phantasie gefragt: je eindeutiger eigene Namen sind um so
unverdächtiger. HIer gilt es: experimentieren.

Wenn das Programm bei der msgbox abschmiert (wie Du selbst scheibst und
wahrscheinlich nach vielen Versuchen identifiziert hast?) würde ich mal
mit einer Pause vor der msgbox arbeiten. Manchmal "überholen" sich
interne Prozesse - sie sind dann einfach zu schnell. Ergebnis: Absturz.
Oft hilft dann einfach eine wait() Funktion vor dem Absturzprozess - bei
Dir also vor der Msgbox. Starte mit "Wait(500)" - und reduziere den
später auf den kleinst möglichen Wert. Ein Wait(100) ist meist kaum zu
spüren vom Anwender.

Einen "echten" Fehler konnte ich jetzt nicht entdecken im Code - hab
aber auch nicht intensiv gesucht;)


Viele Grüße

Thomas



--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
OoOHWHOoO OoOHWHOoO
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

In reply to this post by Jürgen Klatt
Hallo,

ich habe diesbezüglich auch mal ein wenig getestet:

[1] Mit "Hidden" und "False" friert LO bei "MsgBox ("FileOperation: NACH
StarDesktop.loadComponentFromURL")" ein (s.u.).
[2] Mit "Hidden" und "True" friert LO bei "MsgBox ("NACH
FileOperation")" ein (s.u.).

In beiden Fällen hat "soffice.bin" eine CPU-Auslastung von zirka 25%.

Bei diesen Zeilen ( >>>>> ) habe ich das Makro modifiziert (s.u.).

Testumgebung:  LO 6.2.2.2 (x64) @ Windows 7 Home Premium 64-bit.

Eine Erklärung für das oben geschilderte Verhalten habe ich leider
nicht.

ANMERKUNG:

Ich selbst habe bei einem MAKRO im Kontext mit dem Öffnen einer
CALC-Datei das Problem, wenn ich den  "Folder Picker Betriebs System"
auswähle, dass das MAKRO einfriert, nicht aber, wenn ich den "Folder
Picker Open Office" auswähle. Nicht aber bei früheren LO-Versionen.
Vielleicht besteht ja ein Zusammenhang zu obigem Problem, dass die
BASIC-MAKRO-Picker nicht mehr 100%ig funktionieren, ist aber nur eine
vage Vermutung:

' Folder Picker Betriebs System:
Const FPBS = "com.sun.star.ui.dialogs.FolderPicker"
' Folder Picker Open Office:
Const FPOO = "com.sun.star.ui.dialogs.OfficeFolderPicker"


Grüße
Hans-Werner :-))


[3] Makro-Modifikationen

Option Explicit

 >>>>>   Private oDlgM as Object         ' das Modell des Dialogs
 >>>>>   Private oDlg as Object         ' Dialogfenster
 >>>>>   Private oMod as Object         ' nimmt jeweils das Modell der
Objekte auf    (Textfeld)
 >>>>>   Private oMod1 as Object         ' nimmt jeweils das Modell der
Objekte auf    (Button)
 >>>>>   Private oMod2 as Object         ' nimmt jeweils das Modell der
Objekte auf    (Button)
 >>>>>   Private oMod3 as Object         ' nimmt jeweils das Modell der
Objekte auf    (Button)
 >>>>>   Private oWin as Object

 >>>>>   Private oListener1 as Object
 >>>>>   Private oListener2 as Object
 >>>>>   Private oListener3 as Object
 >>>>>   Private oControl1 as Object
 >>>>>   Private oControl2 as Object
 >>>>>   Private oControl3 as Object

REM Deklaration der Variablen

 >>>>>   Private oDocW as Object            ' Writer-Dokument
 >>>>>   Private oDocC as Object            ' Calc-Dokument (wird
versteckt geöffnet)

:
:

Sub Dateidialog
On Error GoTo ErrorHandler

         MsgBox "Der nachfolgende Dateidialog fordert sie zum Öffnen
dieser Datei auf:" & chr(10) & _
                     ">>> Kopfzeilen_Texte.ods <<<" & chr(10) & _
                     "Wählen Sie zunächst den korrekten Pfad zu dieser
Datei aus." ,64,"Hinweis"
     ' Filepicker (Datei-Dialog)
     sUrl = FileOpenDialog ("Bitte wählen Sie eine Calc-Datei aus!")
             if sURL = "" then
                 Msgbox "Sie haben den Dateidialog abgebrochen!" &
chr(10) & _
                     "Starten Sie das Programm erneut und wählen eine
Calc-Datei aus!", 48, "Fehler: Anwender hat Dateiauswahl abgebrochen!"

                     exit sub
             end if
         sExt=getFileNameExtension(sURL)
             ' Fehlermeldung für den Fall, dass kein Calc-Dokument
ausgewählt wurde
             if sExt <> "ods" then
                 MsgBox("Bitte wählen Sie ein Calc-Dokument aus!" &
chr(10) & _
                             "Das Programm wird beendet!"  & chr(10)   &
chr(10) & _
                                 "Starten Sie das Programm erneut.", 48,
"Fehler: Dateiauswahl")

                     exit sub
             end if
REM Calc-Datei im Hintergrund öffnen

 >>>>>   MsgBox ("VOR FileOperation")

FileOperation

 >>>>>   MsgBox ("NACH FileOperation")

' MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")"
'oCC.getFrame().getContainerWindow().setVisible(True)

Exit Sub

REM ErrorHandler für den Fall, dass im Dateidialog auf "ABRUCH" geklickt
wurde
ErrorHandler:
'MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")"
Msgbox "Sie haben den Dateidialog abgebrochen!" & chr(10) & _
             "Starten Sie das Programm erneut und wählen eine Calc-Datei
aus!", 48, "Fehler: Anwender hat Dateiauswahl abgebrochen!"
End Sub

REM
════════════════════════════════════════════════════════════════════════════════════════════════════════
REM Calc-Datei im Hintergrund öffnen
REM Dateioperation: Datei öffnen und auslesen
Sub FileOperation
'oCC.getFrame().getContainerWindow().setVisible(False)
     ' Eigenschaften
 >>>>>   Dim myFileProperties(0) As New com.sun.star.beans.PropertyValue

     ' Dokument im Hintergrund öffnen
 >>>>>    myFileProperties(0).Name = "Hidden"
 >>>>>    myFileProperties(0).Value = False

REM
-------------------------------------------------------------------------------------------------------
         ' Datei im Hintergrund öffnen

 >>>>>   MsgBox ("FileOperation: VOR StarDesktop.loadComponentFromURL")

 >>>>>   sURL = ConvertToURL(sURL)

 >>>>>   oDocC = StarDesktop.loadComponentFromURL(sURL, "_blank", 0,
myFileProperties())

 >>>>>   MsgBox ("FileOperation: NACH StarDesktop.loadComponentFromURL")

'mri oDocC
             ' Daten aus Tabelle einlesen und in die Arrays verteilen
             ' mArray1() = Daten für die linke Seite (gerade Seitenzahl)
             
mArray1()=oDocC.Sheets().getByName("KopfZeilenTexte").getCellRangeByName("A1:B10").getDataArray()

             ' mArray2() = Daten für die rechte Seite (ugerade
Seitenzahl)
             
mArray2()=oDocC.Sheets().getByName("KopfZeilenTexte").getCellRangeByName("A11:B20").getDataArray()

REM
-------------------------------------------------------------------------------------------------------
     ' Calc-Datei korrekt schließen
     CALL CloseDocC
End Sub
--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Oliver Brinzing Oliver Brinzing
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

Hallo,

 > ANMERKUNG:
 > Ich selbst habe bei einem MAKRO im Kontext mit dem Öffnen einer CALC-Datei das Problem, wenn ich
 > den  "Folder Picker Betriebs System" auswähle, dass das MAKRO einfriert, nicht aber, wenn ich den
 > "Folder Picker Open Office" auswähle. Nicht aber bei früheren LO-Versionen. Vielleicht besteht ja
 > ein Zusammenhang zu obigem Problem, dass die BASIC-MAKRO-Picker nicht mehr 100%ig funktionieren, ist
 > aber nur eine vage Vermutung:
 > ' Folder Picker Betriebs System:
 > Const FPBS = "com.sun.star.ui.dialogs.FolderPicker"
 > ' Folder Picker Open Office:
 > Const FPOO = "com.sun.star.ui.dialogs.OfficeFolderPicker"

Das Problem habe ich auch, es tritt seit Version 6.1 auf, vgl.:
Bug 123502 - crash: use of "com.sun.star.ui.dialogs.FolderPicker" service from java seems to cause
crashes since LO 6.1
https://bugs.documentfoundation.org/show_bug.cgi?id=123502

Irgendetwas stimmt mit dem System-Folder Picker nicht mehr..

Wenn Du ein ein einfaches Basic Makro Demo hast, füge es bitte dem issue bei.

Gruß
Oliver


Am 31.03.2019 um 12:15 schrieb OoOHWHOoO:

> Hallo,
>
> ich habe diesbezüglich auch mal ein wenig getestet:
>
> [1] Mit "Hidden" und "False" friert LO bei "MsgBox ("FileOperation: NACH
> StarDesktop.loadComponentFromURL")" ein (s.u.).
> [2] Mit "Hidden" und "True" friert LO bei "MsgBox ("NACH FileOperation")" ein (s.u.).
>
> In beiden Fällen hat "soffice.bin" eine CPU-Auslastung von zirka 25%.
>
> Bei diesen Zeilen ( >>>>> ) habe ich das Makro modifiziert (s.u.).
>
> Testumgebung:  LO 6.2.2.2 (x64) @ Windows 7 Home Premium 64-bit.
>
> Eine Erklärung für das oben geschilderte Verhalten habe ich leider nicht.
>
> ANMERKUNG:
>
> Ich selbst habe bei einem MAKRO im Kontext mit dem Öffnen einer CALC-Datei das Problem, wenn ich
> den  "Folder Picker Betriebs System" auswähle, dass das MAKRO einfriert, nicht aber, wenn ich den
> "Folder Picker Open Office" auswähle. Nicht aber bei früheren LO-Versionen. Vielleicht besteht ja
> ein Zusammenhang zu obigem Problem, dass die BASIC-MAKRO-Picker nicht mehr 100%ig funktionieren, ist
> aber nur eine vage Vermutung:
>
> ' Folder Picker Betriebs System:
> Const FPBS = "com.sun.star.ui.dialogs.FolderPicker"
> ' Folder Picker Open Office:
> Const FPOO = "com.sun.star.ui.dialogs.OfficeFolderPicker"
>
>
> Grüße
> Hans-Werner :-))
>
>
> [3] Makro-Modifikationen
>
> Option Explicit
>
>  >>>>>   Private oDlgM as Object         ' das Modell des Dialogs
>  >>>>>   Private oDlg as Object         ' Dialogfenster
>  >>>>>   Private oMod as Object         ' nimmt jeweils das Modell der Objekte auf    (Textfeld)
>  >>>>>   Private oMod1 as Object         ' nimmt jeweils das Modell der Objekte auf    (Button)
>  >>>>>   Private oMod2 as Object         ' nimmt jeweils das Modell der Objekte auf    (Button)
>  >>>>>   Private oMod3 as Object         ' nimmt jeweils das Modell der Objekte auf    (Button)
>  >>>>>   Private oWin as Object
>
>  >>>>>   Private oListener1 as Object
>  >>>>>   Private oListener2 as Object
>  >>>>>   Private oListener3 as Object
>  >>>>>   Private oControl1 as Object
>  >>>>>   Private oControl2 as Object
>  >>>>>   Private oControl3 as Object
>
> REM Deklaration der Variablen
>
>  >>>>>   Private oDocW as Object            ' Writer-Dokument
>  >>>>>   Private oDocC as Object            ' Calc-Dokument (wird versteckt geöffnet)
>
> :
> :
>
> Sub Dateidialog
> On Error GoTo ErrorHandler
>
>          MsgBox "Der nachfolgende Dateidialog fordert sie zum Öffnen dieser Datei auf:" & chr(10) & _
>                      ">>> Kopfzeilen_Texte.ods <<<" & chr(10) & _
>                      "Wählen Sie zunächst den korrekten Pfad zu dieser Datei aus." ,64,"Hinweis"
>      ' Filepicker (Datei-Dialog)
>      sUrl = FileOpenDialog ("Bitte wählen Sie eine Calc-Datei aus!")
>              if sURL = "" then
>                  Msgbox "Sie haben den Dateidialog abgebrochen!" & chr(10) & _
>                      "Starten Sie das Programm erneut und wählen eine Calc-Datei aus!", 48, "Fehler:
> Anwender hat Dateiauswahl abgebrochen!"
>
>                      exit sub
>              end if
>          sExt=getFileNameExtension(sURL)
>              ' Fehlermeldung für den Fall, dass kein Calc-Dokument ausgewählt wurde
>              if sExt <> "ods" then
>                  MsgBox("Bitte wählen Sie ein Calc-Dokument aus!" & chr(10) & _
>                              "Das Programm wird beendet!"  & chr(10)   & chr(10) & _
>                                  "Starten Sie das Programm erneut.", 48, "Fehler: Dateiauswahl")
>
>                      exit sub
>              end if
> REM Calc-Datei im Hintergrund öffnen
>
>  >>>>>   MsgBox ("VOR FileOperation")
>
> FileOperation
>
>  >>>>>   MsgBox ("NACH FileOperation")
>
> ' MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")"
> 'oCC.getFrame().getContainerWindow().setVisible(True)
>
> Exit Sub
>
> REM ErrorHandler für den Fall, dass im Dateidialog auf "ABRUCH" geklickt wurde
> ErrorHandler:
> 'MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")"
> Msgbox "Sie haben den Dateidialog abgebrochen!" & chr(10) & _
>              "Starten Sie das Programm erneut und wählen eine Calc-Datei aus!", 48, "Fehler:
> Anwender hat Dateiauswahl abgebrochen!"
> End Sub
>
> REM
> ════════════════════════════════════════════════════════════════════════════════════════════════════════
>
> REM Calc-Datei im Hintergrund öffnen
> REM Dateioperation: Datei öffnen und auslesen
> Sub FileOperation
> 'oCC.getFrame().getContainerWindow().setVisible(False)
>      ' Eigenschaften
>  >>>>>   Dim myFileProperties(0) As New com.sun.star.beans.PropertyValue
>
>      ' Dokument im Hintergrund öffnen
>  >>>>>    myFileProperties(0).Name = "Hidden"
>  >>>>>    myFileProperties(0).Value = False
>
> REM
> -------------------------------------------------------------------------------------------------------
>          ' Datei im Hintergrund öffnen
>
>  >>>>>   MsgBox ("FileOperation: VOR StarDesktop.loadComponentFromURL")
>
>  >>>>>   sURL = ConvertToURL(sURL)
>
>  >>>>>   oDocC = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, myFileProperties())
>
>  >>>>>   MsgBox ("FileOperation: NACH StarDesktop.loadComponentFromURL")
>
> 'mri oDocC
>              ' Daten aus Tabelle einlesen und in die Arrays verteilen
>              ' mArray1() = Daten für die linke Seite (gerade Seitenzahl)
> mArray1()=oDocC.Sheets().getByName("KopfZeilenTexte").getCellRangeByName("A1:B10").getDataArray()
>
>              ' mArray2() = Daten für die rechte Seite (ugerade Seitenzahl)
> mArray2()=oDocC.Sheets().getByName("KopfZeilenTexte").getCellRangeByName("A11:B20").getDataArray()
>
> REM
> -------------------------------------------------------------------------------------------------------
>      ' Calc-Datei korrekt schließen
>      CALL CloseDocC
> End Sub


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Robert Großkopf Robert Großkopf
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

In reply to this post by OoOHWHOoO
Hallo *,

> Ich selbst habe bei einem MAKRO im Kontext mit dem Öffnen einer
> CALC-Datei das Problem, wenn ich den  "Folder Picker Betriebs System"
> auswähle, dass das MAKRO einfriert, nicht aber, wenn ich den "Folder
> Picker Open Office" auswähle. Nicht aber bei früheren LO-Versionen.
> Vielleicht besteht ja ein Zusammenhang zu obigem Problem, dass die
> BASIC-MAKRO-Picker nicht mehr 100%ig funktionieren, ist aber nur eine
> vage Vermutung:
>
> ' Folder Picker Betriebs System:
> Const FPBS = "com.sun.star.ui.dialogs.FolderPicker"
> ' Folder Picker Open Office:
> Const FPOO = "com.sun.star.ui.dialogs.OfficeFolderPicker"

Ist nicht seit den Versionen LO 6.0 der interne Dialog ganz
verschwunden? Oder hat das nichts mit der GUI zu tun. Wählbar ist da
jedenfalls nicht mehr in der grafischen benutzeroberfläche. Es wird
immer der Dialog des Betriebssystems genommen.

Gruß

Robert
--
Homepage: http://robert.familiegrosskopf.de
LibreOffice Community: http://robert.familiegrosskopf.de/map_3


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Oliver Brinzing Oliver Brinzing
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

Hallo Robert,

>> ' Folder Picker Betriebs System:
>> Const FPBS = "com.sun.star.ui.dialogs.FolderPicker"
>> ' Folder Picker Open Office:
>> Const FPOO = "com.sun.star.ui.dialogs.OfficeFolderPicker"
>
> Ist nicht seit den Versionen LO 6.0 der interne Dialog ganz
> verschwunden? Oder hat das nichts mit der GUI zu tun. Wählbar ist da
> jedenfalls nicht mehr in der grafischen benutzeroberfläche. Es wird
> immer der Dialog des Betriebssystems genommen.

Du kannst ihn über die API direkt instanzieren, bzw. in in den Experteneinstellungen auch generell
freischalten:

Menü Extras/Optionen.../LibreOffice/Erweitert
-> [Experteneinstellungen]

Suche nach: UseSystemFileDialog

Gruß
Oliver



--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
OoOHWHOoO OoOHWHOoO
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

In reply to this post by Robert Großkopf
Hallo Robert,

ich habe es eben nochmals (schnell) getestet (LO 6.2.2.2 (x64) @ Windows
7 Home Premium 64-bit)

[1] com.sun.star.ui.dialogs.FolderPicker

MAKRO bleibt hängen vor/am folgenden MsgBox-Aufruf.

ABER: Wenn ich während dieses Hängenbleibens eine neue CALC-Datei öffne,
läuft das MAKRO fehlerfrei weiter.

[2] com.sun.star.ui.dialogs.OfficeFolderPicker => MAKRO läuft
fehlerfrei.

Gruß
Hans-Werner


------ Originalnachricht ------
Von: "Robert Großkopf" <[hidden email]>
An: [hidden email]
Gesendet: 31.03.2019 15:00:05
Betreff: Re: [de-users] Versionsabhängiges Einfrieren von LibreOffice
nach Makrodurchlauf

>Hallo *,
>
>>  Ich selbst habe bei einem MAKRO im Kontext mit dem Öffnen einer
>>  CALC-Datei das Problem, wenn ich den  "Folder Picker Betriebs System"
>>  auswähle, dass das MAKRO einfriert, nicht aber, wenn ich den "Folder
>>  Picker Open Office" auswähle. Nicht aber bei früheren LO-Versionen.
>>  Vielleicht besteht ja ein Zusammenhang zu obigem Problem, dass die
>>  BASIC-MAKRO-Picker nicht mehr 100%ig funktionieren, ist aber nur eine
>>  vage Vermutung:
>>
>>  ' Folder Picker Betriebs System:
>>  Const FPBS = "com.sun.star.ui.dialogs.FolderPicker"
>>  ' Folder Picker Open Office:
>>  Const FPOO = "com.sun.star.ui.dialogs.OfficeFolderPicker"
>
>Ist nicht seit den Versionen LO 6.0 der interne Dialog ganz
>verschwunden? Oder hat das nichts mit der GUI zu tun. Wählbar ist da
>jedenfalls nicht mehr in der grafischen benutzeroberfläche. Es wird
>immer der Dialog des Betriebssystems genommen.
>
>Gruß
>
>Robert
>--
>Homepage: http://robert.familiegrosskopf.de
>LibreOffice Community: http://robert.familiegrosskopf.de/map_3
>
>
>--
>Liste abmelden mit E-Mail an: [hidden email]
>Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
>Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
>Listenarchiv: https://listarchives.libreoffice.org/de/users/
>Datenschutzerklärung: https://www.documentfoundation.org/privacy
--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
OoOHWHOoO OoOHWHOoO
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

In reply to this post by Jürgen Klatt
Bezug: https://listarchives.libreoffice.org/de/users/msg21444.html

Hallo Oliver,

ich habe mal bissel was zusammengestellt. Die Makros habe ich so klein
wie nur möglich gehalten (SourceCodes siehe ganz unten):

[1] FolderPicker (Dateiauswahl via OperatingSystem)

[1.1] Sub TEST_FolderPicker (Makro)
[1.2] TEST_FolderPicker.cmd (externer Makro-Aufruf via WinBatch)
[1.3] TEST_FolderPicker.pl (externer Makro-Aufruf via Perl)

[2] FolderPickerOffice (Dateiauswahl via LibreOffice)

[2.1] Sub TEST_FolderPickerOffice (Makro)
[2.2] TEST_FolderPicker.cmd (externer Makro-Aufruf via WinBatch)
[2.3] TEST_FolderPicker.pl (externer Makro-Aufruf via Perl)

[A] Wenn man [1.1] und [2.1] in der BASIC-IDE (in einem geöffneten
CALC-Dokument) startet, funktionieren beide Makros fehlerfrei.

[B] Wenn man [1.1] extern startet via [1.2] oder [1.3], bleibt das Makro
vor dem ERSTEN MsgBox-Aufruf hängen. Öffnet man während des
Hängenbleibens ein neues CALC-Dokument, wird das Makro weiter
ausgeführt.

[C] Wenn man [2.1] extern startet via [2.2] oder [2.3], wird das Makro
fehlerfrei ausgeführt.

[D] Seit wann dieses Problem genau auftritt kann ich leider nicht sagen,
aber mit "LO 6.2.2.2 (x64) @ Windows 7 Home Premium 64-bit" tritt es
sicher auf.

[E] Du kannst die SourceCodes für Deinen BugReport benutzen. Wenn ich es
in Englisch erklärte, wäre es wohl mehr verwirrend als erklärend ...

[F] Es könnte schon sein, dass diese FolderPicker-Problematik auch ein
Hinweis auf die FilePicker-Problematik dieses Threads sein könnte,
zumindest aber, dass die Picker-Software nicht mehr sauber funktioniert,
an was auch immer es liegen mag.

Gruß
Hans-Werner

SourceCodes:

[1.1] Sub TEST_FolderPicker (Makro)

Sub TEST_FolderPicker
Const FolderPicker = "com.sun.star.ui.dialogs.FolderPicker"
Dim DialogFolderPicker as Object
Dim FolderPickerService as String
Dim SelectedFolder as String
Dim PropertyValue(0) as New com.sun.star.beans.PropertyValue
DialogFolderPicker = CreateUnoService(FolderPicker)
DialogFolderPicker.execute()
SelectedFolder = DialogFolderPicker.getDirectory()
MsgBox("SelectedFolder = " & SelectedFolder)
PropertyValue(0).name = "Hidden"
PropertyValue(0).value = False
StarDesktop.loadComponentFromURL("private:factory/scalc","_blank",0,PropertyValue())
MsgBox ("new CALC opened")
End Sub

[1.2] TEST_FolderPicker.cmd (externer Makro-Aufruf via WinBatch)

SET L="C:/Program Files/LibreOffice/program/soffice.exe"
SET M="macro:///Standard.Test.TEST_FolderPicker()"
%L% --nologo %M%

[1.3] TEST_FolderPicker.pl (externer Makro-Aufruf via Perl)

$L = "C:/Program Files/LibreOffice/program/soffice.exe";
$M = "macro:///Standard.Test.TEST_FolderPicker()";
`"$L" --nologo "$M"`;

[2.1] Sub TEST_FolderPickerOffice (Makro)

Sub TEST_FolderPickerOffice
Const FolderPicker = "com.sun.star.ui.dialogs.OfficeFolderPicker"
Dim DialogFolderPicker as Object
Dim FolderPickerService as String
Dim SelectedFolder as String
Dim PropertyValue(0) as New com.sun.star.beans.PropertyValue
DialogFolderPicker = CreateUnoService(FolderPicker)
DialogFolderPicker.execute()
SelectedFolder = DialogFolderPicker.getDirectory()
MsgBox("SelectedFolder = " & SelectedFolder)
PropertyValue(0).name = "Hidden"
PropertyValue(0).value = False
StarDesktop.loadComponentFromURL("private:factory/scalc","_blank",0,PropertyValue())
MsgBox ("new CALC opened")
End Sub

[2.2] TEST_FolderPicker.cmd (externer Makro-Aufruf via WinBatch)

SET L="C:/Program Files/LibreOffice/program/soffice.exe"
SET M="macro:///Standard.Test.TEST_FolderPickerOffice()"
%L% --nologo %M%

[2.3] TEST_FolderPicker.pl (externer Makro-Aufruf via Perl)

$L = "C:/Program Files/LibreOffice/program/soffice.exe";
$M = "macro:///Standard.Test.TEST_FolderPickerOffice()";
`"$L" --nologo "$M"`;


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
OoOHWHOoO OoOHWHOoO
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

In reply to this post by Jürgen Klatt
Bezug: https://listarchives.libreoffice.org/de/users/msg21448.html

Da ist mir leider ein Kopierfehler unterlaufen :-0 ...

Falsch:

[2.2] TEST_FolderPicker.cmd (externer Makro-Aufruf via WinBatch)
[2.3] TEST_FolderPicker.pl (externer Makro-Aufruf via Perl)

Richtig:

[2.2] TEST_FolderPickerOffice.cmd (externer Makro-Aufruf via WinBatch)
[2.3] TEST_FolderPickerOffice.pl (externer Makro-Aufruf via Perl)

Gruß
Hans-Werner
--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Oliver Brinzing Oliver Brinzing
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

In reply to this post by OoOHWHOoO
Hallo Hans-Werner,

ich hab's grad mit LO 6.1.5.2 versucht:

 > [B] Wenn man [1.1] extern startet via [1.2] ,
 > bleibt das Makro vor dem ERSTEN MsgBox-Aufruf hängen.
 > Öffnet man während des Hängenbleibens ein neues CALC-Dokument,
 > wird das Makro weiter ausgeführt.

Ich kann das so nicht bestätigen, das Makro läuft bei mir durch.

Gruß
Oliver


Am 31.03.2019 um 19:19 schrieb OoOHWHOoO:

> Bezug: https://listarchives.libreoffice.org/de/users/msg21444.html
>
> Hallo Oliver,
>
> ich habe mal bissel was zusammengestellt. Die Makros habe ich so klein wie nur möglich gehalten
> (SourceCodes siehe ganz unten):
>
> [1] FolderPicker (Dateiauswahl via OperatingSystem)
>
> [1.1] Sub TEST_FolderPicker (Makro)
> [1.2] TEST_FolderPicker.cmd (externer Makro-Aufruf via WinBatch)
> [1.3] TEST_FolderPicker.pl (externer Makro-Aufruf via Perl)
>
> [2] FolderPickerOffice (Dateiauswahl via LibreOffice)
>
> [2.1] Sub TEST_FolderPickerOffice (Makro)
> [2.2] TEST_FolderPicker.cmd (externer Makro-Aufruf via WinBatch)
> [2.3] TEST_FolderPicker.pl (externer Makro-Aufruf via Perl)
>
> [A] Wenn man [1.1] und [2.1] in der BASIC-IDE (in einem geöffneten CALC-Dokument) startet,
> funktionieren beide Makros fehlerfrei.
>
> [B] Wenn man [1.1] extern startet via [1.2] oder [1.3], bleibt das Makro vor dem ERSTEN
> MsgBox-Aufruf hängen. Öffnet man während des Hängenbleibens ein neues CALC-Dokument, wird das Makro
> weiter ausgeführt.
>
> [C] Wenn man [2.1] extern startet via [2.2] oder [2.3], wird das Makro fehlerfrei ausgeführt.
>
> [D] Seit wann dieses Problem genau auftritt kann ich leider nicht sagen, aber mit "LO 6.2.2.2 (x64)
> @ Windows 7 Home Premium 64-bit" tritt es sicher auf.
>
> [E] Du kannst die SourceCodes für Deinen BugReport benutzen. Wenn ich es in Englisch erklärte, wäre
> es wohl mehr verwirrend als erklärend ...
>
> [F] Es könnte schon sein, dass diese FolderPicker-Problematik auch ein Hinweis auf die
> FilePicker-Problematik dieses Threads sein könnte, zumindest aber, dass die Picker-Software nicht
> mehr sauber funktioniert, an was auch immer es liegen mag.
>
> Gruß
> Hans-Werner
>
> SourceCodes:
>
> [1.1] Sub TEST_FolderPicker (Makro)
>
> Sub TEST_FolderPicker
> Const FolderPicker = "com.sun.star.ui.dialogs.FolderPicker"
> Dim DialogFolderPicker as Object
> Dim FolderPickerService as String
> Dim SelectedFolder as String
> Dim PropertyValue(0) as New com.sun.star.beans.PropertyValue
> DialogFolderPicker = CreateUnoService(FolderPicker)
> DialogFolderPicker.execute()
> SelectedFolder = DialogFolderPicker.getDirectory()
> MsgBox("SelectedFolder = " & SelectedFolder)
> PropertyValue(0).name = "Hidden"
> PropertyValue(0).value = False
> StarDesktop.loadComponentFromURL("private:factory/scalc","_blank",0,PropertyValue())
> MsgBox ("new CALC opened")
> End Sub
>
> [1.2] TEST_FolderPicker.cmd (externer Makro-Aufruf via WinBatch)
>
> SET L="C:/Program Files/LibreOffice/program/soffice.exe"
> SET M="macro:///Standard.Test.TEST_FolderPicker()"
> %L% --nologo %M%
>
> [1.3] TEST_FolderPicker.pl (externer Makro-Aufruf via Perl)
>
> $L = "C:/Program Files/LibreOffice/program/soffice.exe";
> $M = "macro:///Standard.Test.TEST_FolderPicker()";
> `"$L" --nologo "$M"`;
>
> [2.1] Sub TEST_FolderPickerOffice (Makro)
>
> Sub TEST_FolderPickerOffice
> Const FolderPicker = "com.sun.star.ui.dialogs.OfficeFolderPicker"
> Dim DialogFolderPicker as Object
> Dim FolderPickerService as String
> Dim SelectedFolder as String
> Dim PropertyValue(0) as New com.sun.star.beans.PropertyValue
> DialogFolderPicker = CreateUnoService(FolderPicker)
> DialogFolderPicker.execute()
> SelectedFolder = DialogFolderPicker.getDirectory()
> MsgBox("SelectedFolder = " & SelectedFolder)
> PropertyValue(0).name = "Hidden"
> PropertyValue(0).value = False
> StarDesktop.loadComponentFromURL("private:factory/scalc","_blank",0,PropertyValue())
> MsgBox ("new CALC opened")
> End Sub
>
> [2.2] TEST_FolderPicker.cmd (externer Makro-Aufruf via WinBatch)
>
> SET L="C:/Program Files/LibreOffice/program/soffice.exe"
> SET M="macro:///Standard.Test.TEST_FolderPickerOffice()"
> %L% --nologo %M%
>
> [2.3] TEST_FolderPicker.pl (externer Makro-Aufruf via Perl)
>
> $L = "C:/Program Files/LibreOffice/program/soffice.exe";
> $M = "macro:///Standard.Test.TEST_FolderPickerOffice()";
> `"$L" --nologo "$M"`;
>
>


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
OoOHWHOoO OoOHWHOoO
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

Hallo Oliver,

nur zu Sicherheit:

Du hast das Makro extern gestartet mit einer Aufruf-Variante der Art

via Windows-Batch

SET L="C:/Program Files/LibreOffice/program/soffice.exe"
SET M="macro:///Standard.Test.TEST_FolderPicker()"
%L% --nologo %M%

oder

via Perl

$L = "C:/Program Files/LibreOffice/program/soffice.exe";
$M = "macro:///Standard.Test.TEST_FolderPicker()";
`"$L" --nologo "$M"`;

oder

einem entsprechenden Aufruf in einer Linux-Umgebung ?

Wie ich in meiner Mail erwähnte:

[D] Seit wann dieses Problem genau auftritt kann ich leider nicht sagen,
aber mit "LO 6.2.2.2 (x64) @ Windows 7 Home Premium 64-bit" tritt es
sicher auf.

Ich habe [D] jetzt nochmals getestet und [B] trifft weiterhin zu.

Es kann schon sein, dass der Fehler mit 6.1. noch nicht auftrat, ich
weiß es aber nicht mehr(mit Sicherheit). Aber ich werde mal 6.1.5.2
parallel installieren und testen, es wird nur bis morgen dauern, aber
ich melde mich diesbezüglich auf jeden Fall wieder.

Viele Grüße
Hans-Werner

------ Originalnachricht ------
Von: "Oliver Brinzing" <[hidden email]>
An: [hidden email]
Gesendet: 01.04.2019 18:50:16
Betreff: Re: [de-users] Versionsabhängiges Einfrieren von LibreOffice
nach Makrodurchlauf

>Hallo Hans-Werner,
>
>ich hab's grad mit LO 6.1.5.2 versucht:
>
> > [B] Wenn man [1.1] extern startet via [1.2] ,
> > bleibt das Makro vor dem ERSTEN MsgBox-Aufruf hängen.
> > Öffnet man während des Hängenbleibens ein neues CALC-Dokument,
> > wird das Makro weiter ausgeführt.
>
>Ich kann das so nicht bestätigen, das Makro läuft bei mir durch.
>
>Gruß
>Oliver
>
>
>Am 31.03.2019 um 19:19 schrieb OoOHWHOoO:
>>Bezug: https://listarchives.libreoffice.org/de/users/msg21444.html
>>
>>Hallo Oliver,
>>
>>ich habe mal bissel was zusammengestellt. Die Makros habe ich so klein wie nur möglich gehalten
>>(SourceCodes siehe ganz unten):
>>
>>[1] FolderPicker (Dateiauswahl via OperatingSystem)
>>
>>[1.1] Sub TEST_FolderPicker (Makro)
>>[1.2] TEST_FolderPicker.cmd (externer Makro-Aufruf via WinBatch)
>>[1.3] TEST_FolderPicker.pl (externer Makro-Aufruf via Perl)
>>
>>[2] FolderPickerOffice (Dateiauswahl via LibreOffice)
>>
>>[2.1] Sub TEST_FolderPickerOffice (Makro)
>>[2.2] TEST_FolderPicker.cmd (externer Makro-Aufruf via WinBatch)
>>[2.3] TEST_FolderPicker.pl (externer Makro-Aufruf via Perl)
>>
>>[A] Wenn man [1.1] und [2.1] in der BASIC-IDE (in einem geöffneten CALC-Dokument) startet,
>>funktionieren beide Makros fehlerfrei.
>>
>>[B] Wenn man [1.1] extern startet via [1.2] oder [1.3], bleibt das Makro vor dem ERSTEN
>>MsgBox-Aufruf hängen. Öffnet man während des Hängenbleibens ein neues CALC-Dokument, wird das Makro
>>weiter ausgeführt.
>>
>>[C] Wenn man [2.1] extern startet via [2.2] oder [2.3], wird das Makro fehlerfrei ausgeführt.
>>
>>[D] Seit wann dieses Problem genau auftritt kann ich leider nicht sagen, aber mit "LO 6.2.2.2 (x64)
>>@ Windows 7 Home Premium 64-bit" tritt es sicher auf.
>>
>>[E] Du kannst die SourceCodes für Deinen BugReport benutzen. Wenn ich es in Englisch erklärte, wäre
>>es wohl mehr verwirrend als erklärend ...
>>
>>[F] Es könnte schon sein, dass diese FolderPicker-Problematik auch ein Hinweis auf die
>>FilePicker-Problematik dieses Threads sein könnte, zumindest aber, dass die Picker-Software nicht
>>mehr sauber funktioniert, an was auch immer es liegen mag.
>>
>>Gruß
>>Hans-Werner
>>
>>SourceCodes:
>>
>>[1.1] Sub TEST_FolderPicker (Makro)
>>
>>Sub TEST_FolderPicker
>>Const FolderPicker = "com.sun.star.ui.dialogs.FolderPicker"
>>Dim DialogFolderPicker as Object
>>Dim FolderPickerService as String
>>Dim SelectedFolder as String
>>Dim PropertyValue(0) as New com.sun.star.beans.PropertyValue
>>DialogFolderPicker = CreateUnoService(FolderPicker)
>>DialogFolderPicker.execute()
>>SelectedFolder = DialogFolderPicker.getDirectory()
>>MsgBox("SelectedFolder = " & SelectedFolder)
>>PropertyValue(0).name = "Hidden"
>>PropertyValue(0).value = False
>>StarDesktop.loadComponentFromURL("private:factory/scalc","_blank",0,PropertyValue())
>>MsgBox ("new CALC opened")
>>End Sub
>>
>>[1.2] TEST_FolderPicker.cmd (externer Makro-Aufruf via WinBatch)
>>
>>SET L="C:/Program Files/LibreOffice/program/soffice.exe"
>>SET M="macro:///Standard.Test.TEST_FolderPicker()"
>>%L% --nologo %M%
>>
>>[1.3] TEST_FolderPicker.pl (externer Makro-Aufruf via Perl)
>>
>>$L = "C:/Program Files/LibreOffice/program/soffice.exe";
>>$M = "macro:///Standard.Test.TEST_FolderPicker()";
>>`"$L" --nologo "$M"`;
>>
>>[2.1] Sub TEST_FolderPickerOffice (Makro)
>>
>>Sub TEST_FolderPickerOffice
>>Const FolderPicker = "com.sun.star.ui.dialogs.OfficeFolderPicker"
>>Dim DialogFolderPicker as Object
>>Dim FolderPickerService as String
>>Dim SelectedFolder as String
>>Dim PropertyValue(0) as New com.sun.star.beans.PropertyValue
>>DialogFolderPicker = CreateUnoService(FolderPicker)
>>DialogFolderPicker.execute()
>>SelectedFolder = DialogFolderPicker.getDirectory()
>>MsgBox("SelectedFolder = " & SelectedFolder)
>>PropertyValue(0).name = "Hidden"
>>PropertyValue(0).value = False
>>StarDesktop.loadComponentFromURL("private:factory/scalc","_blank",0,PropertyValue())
>>MsgBox ("new CALC opened")
>>End Sub
>>
>>[2.2] TEST_FolderPicker.cmd (externer Makro-Aufruf via WinBatch)
>>
>>SET L="C:/Program Files/LibreOffice/program/soffice.exe"
>>SET M="macro:///Standard.Test.TEST_FolderPickerOffice()"
>>%L% --nologo %M%
>>
>>[2.3] TEST_FolderPicker.pl (externer Makro-Aufruf via Perl)
>>
>>$L = "C:/Program Files/LibreOffice/program/soffice.exe";
>>$M = "macro:///Standard.Test.TEST_FolderPickerOffice()";
>>`"$L" --nologo "$M"`;
>>
>>
>
>
>-- Liste abmelden mit E-Mail an: [hidden email]
>Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
>Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
>Listenarchiv: https://listarchives.libreoffice.org/de/users/
>Datenschutzerklärung: https://www.documentfoundation.org/privacy
--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
OoOHWHOoO OoOHWHOoO
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

In reply to this post by Jürgen Klatt
Bezug 1: https://listarchives.libreoffice.org/de/users/msg21463.html
Bezug 2: https://listarchives.libreoffice.org/de/users/msg21448.html

Hallo Oliver,

ich habe jetzt mal ganz ausführlich getestet (s.u. TESTREIHE):

[1] Es ist unerheblich, ob man den extern Makro-Aufruf via
"WindowsBatch" oder "Perl" durchführt. Sollte also auch mit einem
(vergleichbaren) Linux-BASH-Aufruf funktionieren.

[2] Mit der LO-Dateiauswahl (com.sun.star.ui.dialogs.OfficeFolderPicker)
funktioniert das Makro IMMER FEHLERFREI.

[3] Mit der Betriebssystem-Dateiauswahl
(com.sun.star.ui.dialogs.FolderPicker) funktioniert das Makro ab "LO
6.2.1.2" NICHT MEHR.

[3.1] Das Makro bleibt hängen, wenn man via angezeigter Dateiauswahl ein
Verzeichnis ausgewählt hat und danach die Dateiauswahl wieder
(automatisch) ausgeblendet wurde.
[3.2] Der WindowsTaskManager zeigt an, dass die Prozesse "soffice.bin"
und "soffice.exe" existieren, aber keinerlei CPU-Last erzeugen.

[4] Startet man in der Hängenbleiben-Situation [3.1] zusätzlich manuell
"soffice.exe" nochmals, läuft das Makro dann fehlerfrei weiter.

[4.1] Entgegen meiner früheren Aussage, muss man (beispielsweise) nicht
eine neue CALC manuell öffnen, es reicht "soffice.exe" manuell (nachzu)
starten.

Wie das jetzt alles zusammenhängt ( Warum läuft das Makro weiter, wenn
man "soffice.exe" manuell nachstartet ?) kann ich nicht erklären, da ich
zu wenig über die LO-internen Abläufe weiß.

Grüße
Hans-Werner

TESTREIHE

(A)   LO 5.3.7.2 (x64) - Installation PARALLEL

"com.sun.star.ui.dialogs.FolderPicker" => OKAY
"com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY

(B)   LO 6.1.5.2 (x64) - Installation PARALLEL

"com.sun.star.ui.dialogs.FolderPicker" => OKAY
"com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY

(C)   LO 6.2.1.2 (x64) - Installation PARALLEL

"com.sun.star.ui.dialogs.FolderPicker" => ERROR
+ Makro bleibt hängen.
+ Startet man in dieser Situation "...\LibreOffice\program\soffice.exe"
zusätzlich manuell nach, läuft das Makro fehlerfrei weiter.

"com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY

(D)   LO 6.2.2.2 (x64) - Installation STANDARD

"com.sun.star.ui.dialogs.FolderPicker" => ERROR
+ Makro bleibt hängen.
+ Startet man in dieser Situation "...\LibreOffice\program\soffice.exe"
zusätzlich manuell nach, läuft das Makro fehlerfrei weiter.

"com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY

--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Oliver Brinzing Oliver Brinzing
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

Hallo Hans-Werner,

also ich hab das Makro extern via Batch gestartet - mit und ohne aktiven Schnellstarter.
Bei mir läuft das durch, hab es mehrfach versucht.

Gruß
Oliver

Am 02.04.2019 um 08:51 schrieb OoOHWHOoO:

> Bezug 1: https://listarchives.libreoffice.org/de/users/msg21463.html
> Bezug 2: https://listarchives.libreoffice.org/de/users/msg21448.html
>
> Hallo Oliver,
>
> ich habe jetzt mal ganz ausführlich getestet (s.u. TESTREIHE):
>
> [1] Es ist unerheblich, ob man den extern Makro-Aufruf via "WindowsBatch" oder "Perl" durchführt.
> Sollte also auch mit einem (vergleichbaren) Linux-BASH-Aufruf funktionieren.
>
> [2] Mit der LO-Dateiauswahl (com.sun.star.ui.dialogs.OfficeFolderPicker) funktioniert das Makro
> IMMER FEHLERFREI.
>
> [3] Mit der Betriebssystem-Dateiauswahl (com.sun.star.ui.dialogs.FolderPicker) funktioniert das
> Makro ab "LO 6.2.1.2" NICHT MEHR.
>
> [3.1] Das Makro bleibt hängen, wenn man via angezeigter Dateiauswahl ein Verzeichnis ausgewählt hat
> und danach die Dateiauswahl wieder (automatisch) ausgeblendet wurde.
> [3.2] Der WindowsTaskManager zeigt an, dass die Prozesse "soffice.bin" und "soffice.exe" existieren,
> aber keinerlei CPU-Last erzeugen.
>
> [4] Startet man in der Hängenbleiben-Situation [3.1] zusätzlich manuell "soffice.exe" nochmals,
> läuft das Makro dann fehlerfrei weiter.
>
> [4.1] Entgegen meiner früheren Aussage, muss man (beispielsweise) nicht eine neue CALC manuell
> öffnen, es reicht "soffice.exe" manuell (nachzu) starten.
>
> Wie das jetzt alles zusammenhängt ( Warum läuft das Makro weiter, wenn man "soffice.exe" manuell
> nachstartet ?) kann ich nicht erklären, da ich zu wenig über die LO-internen Abläufe weiß.
>
> Grüße
> Hans-Werner
>
> TESTREIHE
>
> (A)   LO 5.3.7.2 (x64) - Installation PARALLEL
>
> "com.sun.star.ui.dialogs.FolderPicker" => OKAY
> "com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>
> (B)   LO 6.1.5.2 (x64) - Installation PARALLEL
>
> "com.sun.star.ui.dialogs.FolderPicker" => OKAY
> "com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>
> (C)   LO 6.2.1.2 (x64) - Installation PARALLEL
>
> "com.sun.star.ui.dialogs.FolderPicker" => ERROR
> + Makro bleibt hängen.
> + Startet man in dieser Situation "...\LibreOffice\program\soffice.exe" zusätzlich manuell nach,
> läuft das Makro fehlerfrei weiter.
>
> "com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>
> (D)   LO 6.2.2.2 (x64) - Installation STANDARD
>
> "com.sun.star.ui.dialogs.FolderPicker" => ERROR
> + Makro bleibt hängen.
> + Startet man in dieser Situation "...\LibreOffice\program\soffice.exe" zusätzlich manuell nach,
> läuft das Makro fehlerfrei weiter.
>
> "com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
OoOHWHOoO OoOHWHOoO
Reply | Threaded
Open this post in threaded view
|

Re[2]: [de-users] Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

Hallo Oliver,

da fällt mir jetzt nichts mehr dazu ein, außer:

Hast Du das Makro mit "LO 6.2.1.2 (x64)" oder neuer getestet ? Der
Fehler tritt erst ab "LO 6.2.x.x" auf !

Aus Deinem BugReport geht hervor, dass Dein Betriebssystem "Windows 10"
ist, meines ist "Windows 7 Home Premium 64-bit". So könnte das Ganze
auch eine "Windows 7"-spezifisches Problem sein, wenn Du das Makro mit
"LO 6.2.1.2 (x64)" oder neuer getestet hast.

Grüße
Hans-Werner

------ Originalnachricht ------
Von: "Oliver Brinzing" <[hidden email]>
An: [hidden email]
Gesendet: 02.04.2019 19:02:17
Betreff: Re: [de-users] Versionsabhängiges Einfrieren von LibreOffice
nach Makrodurchlauf

>Hallo Hans-Werner,
>
>also ich hab das Makro extern via Batch gestartet - mit und ohne aktiven Schnellstarter.
>Bei mir läuft das durch, hab es mehrfach versucht.
>
>Gruß
>Oliver
>
>Am 02.04.2019 um 08:51 schrieb OoOHWHOoO:
>>Bezug 1: https://listarchives.libreoffice.org/de/users/msg21463.html
>>Bezug 2: https://listarchives.libreoffice.org/de/users/msg21448.html
>>
>>Hallo Oliver,
>>
>>ich habe jetzt mal ganz ausführlich getestet (s.u. TESTREIHE):
>>
>>[1] Es ist unerheblich, ob man den extern Makro-Aufruf via "WindowsBatch" oder "Perl" durchführt.
>>Sollte also auch mit einem (vergleichbaren) Linux-BASH-Aufruf funktionieren.
>>
>>[2] Mit der LO-Dateiauswahl (com.sun.star.ui.dialogs.OfficeFolderPicker) funktioniert das Makro
>>IMMER FEHLERFREI.
>>
>>[3] Mit der Betriebssystem-Dateiauswahl (com.sun.star.ui.dialogs.FolderPicker) funktioniert das
>>Makro ab "LO 6.2.1.2" NICHT MEHR.
>>
>>[3.1] Das Makro bleibt hängen, wenn man via angezeigter Dateiauswahl ein Verzeichnis ausgewählt hat
>>und danach die Dateiauswahl wieder (automatisch) ausgeblendet wurde.
>>[3.2] Der WindowsTaskManager zeigt an, dass die Prozesse "soffice.bin" und "soffice.exe" existieren,
>>aber keinerlei CPU-Last erzeugen.
>>
>>[4] Startet man in der Hängenbleiben-Situation [3.1] zusätzlich manuell "soffice.exe" nochmals,
>>läuft das Makro dann fehlerfrei weiter.
>>
>>[4.1] Entgegen meiner früheren Aussage, muss man (beispielsweise) nicht eine neue CALC manuell
>>öffnen, es reicht "soffice.exe" manuell (nachzu) starten.
>>
>>Wie das jetzt alles zusammenhängt ( Warum läuft das Makro weiter, wenn man "soffice.exe" manuell
>>nachstartet ?) kann ich nicht erklären, da ich zu wenig über die LO-internen Abläufe weiß.
>>
>>Grüße
>>Hans-Werner
>>
>>TESTREIHE
>>
>>(A)   LO 5.3.7.2 (x64) - Installation PARALLEL
>>
>>"com.sun.star.ui.dialogs.FolderPicker" => OKAY
>>"com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>>
>>(B)   LO 6.1.5.2 (x64) - Installation PARALLEL
>>
>>"com.sun.star.ui.dialogs.FolderPicker" => OKAY
>>"com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>>
>>(C)   LO 6.2.1.2 (x64) - Installation PARALLEL
>>
>>"com.sun.star.ui.dialogs.FolderPicker" => ERROR
>>+ Makro bleibt hängen.
>>+ Startet man in dieser Situation "...\LibreOffice\program\soffice.exe" zusätzlich manuell nach,
>>läuft das Makro fehlerfrei weiter.
>>
>>"com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>>
>>(D)   LO 6.2.2.2 (x64) - Installation STANDARD
>>
>>"com.sun.star.ui.dialogs.FolderPicker" => ERROR
>>+ Makro bleibt hängen.
>>+ Startet man in dieser Situation "...\LibreOffice\program\soffice.exe" zusätzlich manuell nach,
>>läuft das Makro fehlerfrei weiter.
>>
>>"com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>>
>
>
>-- Liste abmelden mit E-Mail an: [hidden email]
>Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
>Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
>Listenarchiv: https://listarchives.libreoffice.org/de/users/
>Datenschutzerklärung: https://www.documentfoundation.org/privacy
--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Jürgen Klatt Jürgen Klatt
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

Hallo,

vielen Dank für Eure vielfältigen Ratschläge, Tests und Eure Zeit.

Auch ich war in der Zwischenzeit nicht untätig.
Mein Betreibssystem ist Win 10 Pro (x64) 1809 Build (17763.379)

Habe nach wie vor Probleme mit den Abstürzen, wenn ich die abschließende
Messagebox aktiviere.
Auch Verzögerungen durch Wait haben nichts gebracht.
Das Makro habe ich nun umgeschrieben und zwei Labels oberhalb der
Schaltflächen eingefügt,
welche nun den jeweiligen Status farblich und mit Meldungen versehen
anzeigen.
Dies funktioniert ohne Absturz.

Zum Absturz, bzw. Einfrieren habe ich die Windows-Prozesse, bzw. die
Libreoffice-Prozesse
im Augenblick des Einfrieren genauer unter die Lupe genommen.
Zur Analyse von Prozessen habe ich mir vor längerer Zeit das Tool
"ProcMon.Exe 3.5" heruntergeladen.
Download unter:
https://live.sysinternals.com/ <https://live.sysinternals.com/>

Mit dem Tool habe ich mir zum Zeitpunkt des Einfrierens
eine CSV-Datei mit alle aktiven Prozesses schreiben lassen.
Dann habe ich die LibO-Prozesse mittels Calc herausfiltern lassen.
Im Anschluß die Duplikate der Spalte "Results" herausgefiltert.
Dabei kamen diese Results heraus:

SUCCESS
REPARSE
NAME NOT FOUND
FILE LOCKED WITH ONLY READERS
NO MORE ENTRIES
BUFFER OVERFLOW
ACCESS DENIED
NO SUCH FILE
NAME COLLISION
NO MORE FILES
PATH NOT FOUND
END OF FILE
INVALID PARAMETER
NOT A DIRECTORY
SHARING VIOLATION
0xC00004AE
FILE LOCKED WITH WRITERS
BUFFER TOO SMALL
IS DIRECTORY
NOT REPARSE POINT
FS DRIVER REQUIRED
OBJECT PATH INVALID

Zu den einzelnen Results, gibt es in der Spalte Path Hinweise zum
Ursprung der Meldung.

Bei meinen weiteren Überlegungen hatte ich auch meine Firewall und den
Virenscanner in Verdacht.
Denn zum Zeitpunkt des Absturzes schnellt bekanntlich die CPU-Last auf
25-28% hoch und
außerdem wird ein sehr hoher Stromverbrauch gemessen. Da lag die
Vermutung nahe,
dass die Firewall einen Angriff vermutet. Das hat sich nicht bewahrheitet.
Hatte Virenscanner und Firewall abgeschaltet und einen Crash provoziert.

Die nächste Überlegung geht in Richtung Betriebssytem.
Da ich nach der Erstellung meines ursprüglichen Makros ein
WIN-Update von 1803 auf 1809 durchgeführt hatte.
Ggf. gibt ist in 1809 irgendwelche neuen Sicherheitsfunktionen,
welche Programme mit sehr hohem Stromverbraucxh blocken.
Diese ist aber auch nur eine Vermutung. Möchte auch nicht an meinem
störungsfrei laufenden Betriebsystem herumbasteln.

Die Frage welche sich abschließend stellt, warum kommt es zu einem
BUFFER OVERFLOW, BUFFER TOO SMALL, etc. wenn eine Messagebox aufpoppt?
Und warum wird ein so hoher Stromverbrauch gemessen?

Ach ja, warum dies: NAME COLLISION?
Dieses Result wird mir durchgängig bei Prozess soffice.bin in Verbindung
mit meinem Windows-User-Pfad bishin zum LibO\4\User angezeigt.
Mein Name ohne Umlaut geschrieben: Juergen

Nochmals Dank für Alles und an Alle!

Viele Grüße

Jürgen




Am 02.04.2019 um 20:22 schrieb OoOHWHOoO:

> Hallo Oliver,
>
> da fällt mir jetzt nichts mehr dazu ein, außer:
>
> Hast Du das Makro mit "LO 6.2.1.2 (x64)" oder neuer getestet ? Der
> Fehler tritt erst ab "LO 6.2.x.x" auf !
>
> Aus Deinem BugReport geht hervor, dass Dein Betriebssystem "Windows
> 10" ist, meines ist "Windows 7 Home Premium 64-bit". So könnte das
> Ganze auch eine "Windows 7"-spezifisches Problem sein, wenn Du das
> Makro mit "LO 6.2.1.2 (x64)" oder neuer getestet hast.
>
> Grüße
> Hans-Werner
>
> ------ Originalnachricht ------
> Von: "Oliver Brinzing" <[hidden email]>
> An: [hidden email]
> Gesendet: 02.04.2019 19:02:17
> Betreff: Re: [de-users] Versionsabhängiges Einfrieren von LibreOffice
> nach Makrodurchlauf
>
>> Hallo Hans-Werner,
>>
>> also ich hab das Makro extern via Batch gestartet - mit und ohne
>> aktiven Schnellstarter.
>> Bei mir läuft das durch, hab es mehrfach versucht.
>>
>> Gruß
>> Oliver
>>
>> Am 02.04.2019 um 08:51 schrieb OoOHWHOoO:
>>> Bezug 1: https://listarchives.libreoffice.org/de/users/msg21463.html
>>> Bezug 2: https://listarchives.libreoffice.org/de/users/msg21448.html
>>>
>>> Hallo Oliver,
>>>
>>> ich habe jetzt mal ganz ausführlich getestet (s.u. TESTREIHE):
>>>
>>> [1] Es ist unerheblich, ob man den extern Makro-Aufruf via
>>> "WindowsBatch" oder "Perl" durchführt.
>>> Sollte also auch mit einem (vergleichbaren) Linux-BASH-Aufruf
>>> funktionieren.
>>>
>>> [2] Mit der LO-Dateiauswahl
>>> (com.sun.star.ui.dialogs.OfficeFolderPicker) funktioniert das Makro
>>> IMMER FEHLERFREI.
>>>
>>> [3] Mit der Betriebssystem-Dateiauswahl
>>> (com.sun.star.ui.dialogs.FolderPicker) funktioniert das
>>> Makro ab "LO 6.2.1.2" NICHT MEHR.
>>>
>>> [3.1] Das Makro bleibt hängen, wenn man via angezeigter Dateiauswahl
>>> ein Verzeichnis ausgewählt hat
>>> und danach die Dateiauswahl wieder (automatisch) ausgeblendet wurde.
>>> [3.2] Der WindowsTaskManager zeigt an, dass die Prozesse
>>> "soffice.bin" und "soffice.exe" existieren,
>>> aber keinerlei CPU-Last erzeugen.
>>>
>>> [4] Startet man in der Hängenbleiben-Situation [3.1] zusätzlich
>>> manuell "soffice.exe" nochmals,
>>> läuft das Makro dann fehlerfrei weiter.
>>>
>>> [4.1] Entgegen meiner früheren Aussage, muss man (beispielsweise)
>>> nicht eine neue CALC manuell
>>> öffnen, es reicht "soffice.exe" manuell (nachzu) starten.
>>>
>>> Wie das jetzt alles zusammenhängt ( Warum läuft das Makro weiter,
>>> wenn man "soffice.exe" manuell
>>> nachstartet ?) kann ich nicht erklären, da ich zu wenig über die
>>> LO-internen Abläufe weiß.
>>>
>>> Grüße
>>> Hans-Werner
>>>
>>> TESTREIHE
>>>
>>> (A)   LO 5.3.7.2 (x64) - Installation PARALLEL
>>>
>>> "com.sun.star.ui.dialogs.FolderPicker" => OKAY
>>> "com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>>>
>>> (B)   LO 6.1.5.2 (x64) - Installation PARALLEL
>>>
>>> "com.sun.star.ui.dialogs.FolderPicker" => OKAY
>>> "com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>>>
>>> (C)   LO 6.2.1.2 (x64) - Installation PARALLEL
>>>
>>> "com.sun.star.ui.dialogs.FolderPicker" => ERROR
>>> + Makro bleibt hängen.
>>> + Startet man in dieser Situation
>>> "...\LibreOffice\program\soffice.exe" zusätzlich manuell nach,
>>> läuft das Makro fehlerfrei weiter.
>>>
>>> "com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>>>
>>> (D)   LO 6.2.2.2 (x64) - Installation STANDARD
>>>
>>> "com.sun.star.ui.dialogs.FolderPicker" => ERROR
>>> + Makro bleibt hängen.
>>> + Startet man in dieser Situation
>>> "...\LibreOffice\program\soffice.exe" zusätzlich manuell nach,
>>> läuft das Makro fehlerfrei weiter.
>>>
>>> "com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>>>
>>
>>
>> -- Liste abmelden mit E-Mail an: [hidden email]
>> Probleme?
>> https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
>> Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
>> Listenarchiv: https://listarchives.libreoffice.org/de/users/
>> Datenschutzerklärung: https://www.documentfoundation.org/privacy

--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
-----------------------------------------------------------------------------------------
WIN 10 Pro  64-bit • LO 6.1.5.2 64-bit • JAVA JRE1.8.0_202
Gerhard Weydt Gerhard Weydt
Reply | Threaded
Open this post in threaded view
|

Re: Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

In reply to this post by OoOHWHOoO
Hallo Jürgen, Hans-Werner, Oliver,

ich habe nun das Problem ziemlich eingrenzen können, kann aber keine
Erklärung für das Verhalten finden.

Aber im Detail:
Ich habe Jürgens Programm reduziert, bis ich zu dem folgenden Rumpf
gekommen bin:

Sub StartKopfzeile

     DialogLibraries.LoadLibrary("Standard")    'auch ein fester Dialog
bringt keine Änderung
     oDlg = createUnoDialog(DialogLibraries.Standard.Dialog1)
     oDlg.execute

End Sub


REM Aktion Pseudo-Kopfzeilen eintragen und formatieren
Sub btnStart_actionPerformed(oEvent2)

      sUrl =
converttoUrl("C:\Users\zwi\Musterdateien_02\Kopfzeilen_Texte.ods")
     Dim zFileProperties() As New com.sun.star.beans.PropertyValue
         ' Datei im Hintergrund öffnen
         oDocC = StarDesktop.loadComponentFromURL(sURL, "_blank", 0,
zFileProperties())
Xray oDocC

End Sub

Ich habe einen festen Dialog verwendet und auch den Dateinamen fest
eingegeben und das Hidden weggelassen, es war ja sowieso nicht aktiv,
dadurch fällt sehr viel im Code weg.

Das Verhalten ändert sich dadurch nicht, nach dem Xray bleibt LibO
hängen; das scheint bei jeder Art von Dialog zu passieren.
_*Das Wichtige aber:*_ startet man StartKopfzeile statt über die
Schaltfläche direkt aus der Basic-IDE, dann läuft das Programm durch!
Das ist möglicherweise auch der Grund, warum es bei Olivers Test im
Batch geklappt hat.

Ich habe dafür keine Erklärung.
Ich habe dann ein neues Writer-Dokument erzeugt, habe die Schaltfläche,
den Dialog und den Makro-Code kopiert und eingefügt. Dieses Dokument
liefert nun aber keinen Fehler, so dass ich annehmen möchte, dass irgend
etwas im Dokument von Jürgen faul ist.

Das gleiche Vorgehen würde ich Jürgen empfehlen, ob sich jemand findet,
der den wirklichen Grund rauskriegt, halte ich doch für fraglich.

Frage noch an Jürgen: Warum wird der Dialog erst zur Laufzeit erzeugt,
gibt es da einen Grund in dem wahrscheinlich komplizierteren
Originaldokument? Ein vorab definierter Dialog ist viel bequemer, man
muss sich nicht mit den Listenern befassen.

Gruß

Gerhard


Am 02.04.2019 um 20:22 schrieb OoOHWHOoO:

> Hallo Oliver,
>
> da fällt mir jetzt nichts mehr dazu ein, außer:
>
> Hast Du das Makro mit "LO 6.2.1.2 (x64)" oder neuer getestet ? Der
> Fehler tritt erst ab "LO 6.2.x.x" auf !
>
> Aus Deinem BugReport geht hervor, dass Dein Betriebssystem "Windows
> 10" ist, meines ist "Windows 7 Home Premium 64-bit". So könnte das
> Ganze auch eine "Windows 7"-spezifisches Problem sein, wenn Du das
> Makro mit "LO 6.2.1.2 (x64)" oder neuer getestet hast.
>
> Grüße
> Hans-Werner
>
> ------ Originalnachricht ------
> Von: "Oliver Brinzing" <[hidden email]>
> An: [hidden email]
> Gesendet: 02.04.2019 19:02:17
> Betreff: Re: [de-users] Versionsabhängiges Einfrieren von LibreOffice
> nach Makrodurchlauf
>
>> Hallo Hans-Werner,
>>
>> also ich hab das Makro extern via Batch gestartet - mit und ohne
>> aktiven Schnellstarter.
>> Bei mir läuft das durch, hab es mehrfach versucht.
>>
>> Gruß
>> Oliver
>>
>> Am 02.04.2019 um 08:51 schrieb OoOHWHOoO:
>>> Bezug 1: https://listarchives.libreoffice.org/de/users/msg21463.html
>>> Bezug 2: https://listarchives.libreoffice.org/de/users/msg21448.html
>>>
>>> Hallo Oliver,
>>>
>>> ich habe jetzt mal ganz ausführlich getestet (s.u. TESTREIHE):
>>>
>>> [1] Es ist unerheblich, ob man den extern Makro-Aufruf via
>>> "WindowsBatch" oder "Perl" durchführt.
>>> Sollte also auch mit einem (vergleichbaren) Linux-BASH-Aufruf
>>> funktionieren.
>>>
>>> [2] Mit der LO-Dateiauswahl
>>> (com.sun.star.ui.dialogs.OfficeFolderPicker) funktioniert das Makro
>>> IMMER FEHLERFREI.
>>>
>>> [3] Mit der Betriebssystem-Dateiauswahl
>>> (com.sun.star.ui.dialogs.FolderPicker) funktioniert das
>>> Makro ab "LO 6.2.1.2" NICHT MEHR.
>>>
>>> [3.1] Das Makro bleibt hängen, wenn man via angezeigter Dateiauswahl
>>> ein Verzeichnis ausgewählt hat
>>> und danach die Dateiauswahl wieder (automatisch) ausgeblendet wurde.
>>> [3.2] Der WindowsTaskManager zeigt an, dass die Prozesse
>>> "soffice.bin" und "soffice.exe" existieren,
>>> aber keinerlei CPU-Last erzeugen.
>>>
>>> [4] Startet man in der Hängenbleiben-Situation [3.1] zusätzlich
>>> manuell "soffice.exe" nochmals,
>>> läuft das Makro dann fehlerfrei weiter.
>>>
>>> [4.1] Entgegen meiner früheren Aussage, muss man (beispielsweise)
>>> nicht eine neue CALC manuell
>>> öffnen, es reicht "soffice.exe" manuell (nachzu) starten.
>>>
>>> Wie das jetzt alles zusammenhängt ( Warum läuft das Makro weiter,
>>> wenn man "soffice.exe" manuell
>>> nachstartet ?) kann ich nicht erklären, da ich zu wenig über die
>>> LO-internen Abläufe weiß.
>>>
>>> Grüße
>>> Hans-Werner
>>>
>>> TESTREIHE
>>>
>>> (A)   LO 5.3.7.2 (x64) - Installation PARALLEL
>>>
>>> "com.sun.star.ui.dialogs.FolderPicker" => OKAY
>>> "com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>>>
>>> (B)   LO 6.1.5.2 (x64) - Installation PARALLEL
>>>
>>> "com.sun.star.ui.dialogs.FolderPicker" => OKAY
>>> "com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>>>
>>> (C)   LO 6.2.1.2 (x64) - Installation PARALLEL
>>>
>>> "com.sun.star.ui.dialogs.FolderPicker" => ERROR
>>> + Makro bleibt hängen.
>>> + Startet man in dieser Situation
>>> "...\LibreOffice\program\soffice.exe" zusätzlich manuell nach,
>>> läuft das Makro fehlerfrei weiter.
>>>
>>> "com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>>>
>>> (D)   LO 6.2.2.2 (x64) - Installation STANDARD
>>>
>>> "com.sun.star.ui.dialogs.FolderPicker" => ERROR
>>> + Makro bleibt hängen.
>>> + Startet man in dieser Situation
>>> "...\LibreOffice\program\soffice.exe" zusätzlich manuell nach,
>>> läuft das Makro fehlerfrei weiter.
>>>
>>> "com.sun.star.ui.dialogs.OfficeFolderPicker" => OKAY
>>>
>>
>>
>> -- Liste abmelden mit E-Mail an: [hidden email]
>> Probleme?
>> https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
>> Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
>> Listenarchiv: https://listarchives.libreoffice.org/de/users/
>> Datenschutzerklärung: https://www.documentfoundation.org/privacy


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Next » 12