Windowsprogramme unter Wine

Post Reply
Message
Author
User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

Windowsprogramme unter Wine

#1 Post by RSH »

Ok,

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
Skriptpfad und -name: /usr/local/bin/corelphotopaint-executor

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
Skriptpfad und -name: /usr/local/bin/defaultcorelphotoeditor

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)
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

slackfan
Posts: 208
Joined: Sun 29 Mar 2009, 09:31

#2 Post by slackfan »

Hab' alles mal testen wollen, aber, wenn ich mich gut erinnere, als Du, als Du Deine ursprüngliche Depository gelöscht hast, da einiges vermasselt: von Corel ist meines Erachtens heute nichts, gar nichts mehr zu finden, und damit auch nicht Veranlassung, nach mehr zu suchen:

Du lebst ja mit den Depots aus Deiner Festplatte!

sollte ich mich irren, nehme ich gern alles zurück, aber momentan sehe ich da nichts...

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#3 Post by RSH »

Hallo slackfan.

Die obige Anleitung und die darin enthaltenen Informationen und Skripte sind nicht dafür veröffentlicht worden, um bei Euch anderen Puppy Anwendern Corel-eigene Dateien nach Corel Photopaint senden zu können. Es hat nie ein Wine SFS mit integriertem Corel Photopaint zum Heruntergeladen gegeben, denn Corel Photopaint ist keine Open Source Software. Dieses SFS existiert nur in meiner lokalen Modulsammlung.

Neben Corel Photopaint gibt es andere Programme, die mit Pfaden, die mit /mnt beginnen, nichts anfangen können. Für die Verwendung mit diesen anderen Programmen, müssen die veröffentlichten Skriptbeispiele natürlich angepaßt werden. Also z.B. den Programmpfad, C:\\Corel\\Graphics8\\Programs\photopnt.exe, bearbeiten und an den Programmpfad des gewünschten Programmes angleichen und die Skripte natürlich dem Programm zugeordnet umbenennen.

Gruß,

RSH

P.S.

Sicher gibt es noch eine smartere Möglichkeit, allerdings habe ich bisher keine gefunden.
Last edited by RSH on Fri 22 Aug 2014, 02:55, edited 1 time in total.
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#4 Post by RSH »

Und da ist sie auch schon, die smartere Möglichkeit.

Skript 1 folgendermaßen abgeändert:

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
exec wine start /Unix "/root/.wine/drive_c/Corel/Graphics8/Programs/photopnt.exe $@"
	
# End
Skript 2 folgendermaßen abgeändert:

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"
	/usr/local/bin/corelphotopaint-executor "$1" >/dev/null
	#######################
	else # [ "$bfm" = "" ];
	#######################
	/usr/local/bin/corelphotopaint-executor "$1" >/dev/null
fi
Das Kopieren der übermittelten Datei entfällt nun.

Anscheinend kann man Wine einige Kommandos oder Optionen übermitteln, wie z.B.: start oder /Unix. Die Eingabe # Wine --help im Terminal brachte jedoch nichts dergleichen zutage.
Geoffrey wrote:I use this command to run windows apps, as an example:

Code: Select all

exec wine start /Unix "/root/.wine/drive_c/Program Files/Foxit Software/Foxit Reader/Foxit Reader.exe $@"
the quotes are needed if there are spaces in the path or file names
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

Post Reply