Hallo,
ich habe vor einigen Jahren mit MS Visual C++ 6.0 (also für Windows) ein Programm geschrieben, welches eine RTF-Datei generiert und diese dann per ShellExecute()-Aufruf startet. Damals unter Windows XP SP3 hat das mit MS Word 2003 wunderbar funktioniert. Aber jetzt habe ich Windows 7 und LibreOffice 6.4. Jetzt wird zwar LibreOffice gestartet, aber es erscheint kein Fenster. Per Doppelklick im Explorer lässt sich die Datei jedoch problemlos mit LibreOffice öffnen. In beiden Fällen erscheinen im Taskmanager drei Prozesse: soffice.bin, soffice.exe und swriter.exe. Der einzige wahrnehmbare Unterschied ist, dass beim Start aus meinem Programm heraus kein Writer-Fenster erscheint. Zu beobachten ist noch, dass kurz der Start-Screen von LibreOffice erscheint und gleichzeitig mein Programm den Fokus verliert. Dann passiert nichts mehr. Wenn ich dann im Taskmanager soffice.bin beende, verschwinden alle drei Prozesse, allerdings nicht die beim Aufruf erzeugte Datei namens '.~lock.....rtf#'. Wenn ich dann die Datei im Explorer aufrufe, erscheint das LibreOffice-Fenster zum Wiederherstellen der Datei, was problemlos funktioniert.
Der Aufruf in meinem Programm lautet folgendermaßen :
ShellExecute( NULL, NULL, </Pfad zu//r generierten RTF-Datei/>, NULL, NULL, 0 );
Ist dieses ein bekanntes Problem? Kennt irgendjemand dafür eine Lösung? Liegts an Windows 7, an meinem alten Visual C++ oder an einem unzureichenden Aufruf? Den Quellcode des Programms kann ich ggf. anpassen, falls erforderlich, allerdings nach wie vor nur unter Windows XP, da mein altes Visual C++ 6.0 unter Windows 7 nicht installationsfähig ist, und beim neuen Visual C++ 2010 Express einige von mir benötigte Bibliotheken fehlen.
Das Programm ist (trotz meiner Firmen-E-Mail-Adresse) ein privates Freizeitprojekt.
Ich wäre sehr dankbar für ein bisschen Hilfe.
Freundliche Grüße
Torsten