heute gibt's 'was Leckeres!
Verwendet hier jemand Windowsprogramme unter Wine?
Schon 'mal geärgert, daß manche Programme sich nicht voll funktionsfähig mit bestimmten Dateitypen verknüpfen lassen?
Voll funktionsfähig meint hier, daß eine übermittelte Datei auch tatsächlich in das Windowsprogramm geladen wird.
Das gehört nun der Vergangenheit an.
Seit meinen LazY-Puppy-Anfängen besitze ich ein Wine SFS, das Corel Photopaint 8 installiert hat. Alles funktioniert wunderbar, bis auf das Übermitteln einer Datei an Corel Photopaint 8. Heute habe ich dies gelöst.
Zuerst habe ich ein Skript mit folgendem Inhalt erstellt:
Code: Select all
#!/bin/bash -a
#------------------------------------------------------------------------------
# Executing Corel Photopaint 8 in Wine and submit a File
# 2014-08-21 RSH for LazY Puppy
#------------------------------------------------------------------------------
SUBMIT="$1"
exec wine "C:\\Corel\\Graphics8\\Programs\photopnt.exe" "C:\\`basename "$SUBMIT"`" >/dev/null
# End
Dann habe ich ein zweites Skript erstellt, das in der Lage ist, ein im Skript definiertes Wine SFS zu laden, bevor es das gewünschte Programm startet und die Datei lädt:
Code: Select all
#! /bin/sh
#------------------------------------------------------------------------------
# Load Wine SFS and execute Windows .exe Application
#------------------------------------------------------------------------------
# Set Name of your Wine SFS here
WineSFS="LP2_Wine.sfs"
FileLoopMnt() { mount |grep loop* |sed 's# .*$##' | while read N
do losetup-FULL $N |grep $WineSFS |sed 's#^.* .##;s#.$##' ;done ; }
fm=$(FileLoopMnt)
bfm=`basename $fm`
if [ "$bfm" = "" ]; then
sfs_load --cli --skip-fixmenus --quiet "$WineSFS"
cp -af "$1" "/root/.wine/drive_c/"
/usr/local/bin/corelphotopaint-executor "$1" >/dev/null
#rox "/root/.wine/drive_c"
cp -af -u "/root/.wine/drive_c/`basename "$1"`" "$1"
rm -f "/root/.wine/drive_c/`basename "$1"`"
#######################
else # [ "$bfm" = "" ];
#######################
cp -af "$1" "/root/.wine/drive_c/"
/usr/local/bin/corelphotopaint-executor "$1" >/dev/null
#rox "/root/.wine/drive_c"
cp -af -u "/root/.wine/drive_c/`basename "$1"`" "$1"
rm -f "/root/.wine/drive_c/`basename "$1"`"
fi
Anschließend noch die Standardaktion für den Dateityp .cpt auf das Kommando, /usr/local/bin/defaultcorelphotoeditor "$@", gesetzt.
Das Mysterium liegt darin begründet, daß echte Windowsprogramme noch nie ein GNU/Linux Dateisystem gesehen haben, und deshalb mit Pfaden, wie: /mnt/sda1, nichts anfangen können. Anders bei z.B. Audacity, das ein Cross-Plattform-Programm ist, welchem (dem Source Code) das GNU/Linux Dateisystem bekannt ist.
Kopiert man nun die übermittelte Datei zuerst nach /root/.wine/drive_c und übermittelt die Datei von dort, dann wird sie anstandslos geladen, sofern das Programm selbst über eine solche Funktion verfügt.
Anschließend kopiert man die Datei mit der Option, -u (für nur Neuere), zurück und entfernt jene am neuen Ort.
Das war's...
Für LazY Puppy Anwender ist es wahrscheinlich sinnvoll, im Skript den Befehl, sfs_load, durch lazy_sfs_load zu ersetzen und den Pfad des SFS nach $LP2BDL/$WineSFS abzuändern. Müßt ihr ausprobieren. Das originale Wine SFS von LazY Puppy heißt: LP2_Wine.sfs und ist unter WineSFS= bereits definiert.
Ich denke, es ist offensichtlich, was geändert werden muß, um diese Skripte für ein anderes Windowsprogramm verwenden zu können.
I'm a Hacker
(Richard Stallman, RSH)