Hallo, ich habe ein Wine Programm das ist unter "Programm Files (X86)" gespeichert. Bisher rufe ich winefile per Terminal auf und navigiere zu den Programmdateien. Wie könnte ich eine Verknüpfung davon auf dem Desktop (oder Startleiste) erstellen?
Wine Verknüpfung erstellen
![]() Anmeldungsdatum: Beiträge: 766 |
|
Anmeldungsdatum: Beiträge: 14945 |
Hallo gnude, Indem du dir eine .desktop Datei lt. WIKI erstellst .... Gruss Lidux |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 766 |
Hallo, die einfache Version klappt.... ich starte ne Shell Datei in der eine Wine Sitzung gestartet wird. Das klappt. #!/usr/bin/env xdg-open [Desktop Entry] Exec=/home/meinname/radmin.sh Name=Radmin GenericName=Radmin Comment=Verwaltungstools Encoding=UTF-8 Terminal=false Type=Application Categories=Application Und nun ist das Problem.... ich will ein Shell Programm mit Parameter starten. Im Grunde soll es so aussehen.... aber es funktioniert nicht: #!/bin/sh wine "/home/meinname/.wine/drive_c/Program Files (x86)/Radmin Viewer 3/Radmin.exe" "/pbpath c:\datei.rdb /pbid:70" Was muss ich genau tun um einem Wine Programm die Parameter und vor allem dem Pfad zu einer Datei zu übergeben? |
Anmeldungsdatum: Beiträge: 2627 |
Du musst auf jeden Fall den backslash mit einem backslash escapen. Da die Zeile 2-mal interpretiert wird, benötigst du sogar 4 backslash, also c:\\\\datei.rdb |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 766 |
Das Programm das ich nutzen möchte hat automatisch eine Verknüpfung auf dem Desktop erstellt, die aber auch nicht funktioniert. Vielleicht hilft das bei der Fehlersuche weiter...? [Desktop Entry] Name=Programmname Exec=env WINEPREFIX="/home/meinusername/.wine" wine-stable C:\\\\Program\\ Files\\ \\(x86\\)\\\\Radmin\\ Viewer\\ 3\\\\Radmin.exe /pbpath\\"C:\\\\Datei.rpb\\"\\ /pbid:70\\ Type=Application StartupNotify=true Icon=5356_Radmin.0 StartupWMClass=radmin.exe |
Anmeldungsdatum: Beiträge: 611 |
Hallo gnude, ich mache es auch über ein Shell-Script. Da der übergebene Parameter häufig ein variabler Parameter (Pfad zum Dateinamen) ist, nutze ich den "winepath" Befehl. Im folgenden Beispiel verwende ich den "AdobeReader XI", der unter Win 7 mal auf der Windows Partition installiert wurde. cat /home/shiro/.local/share/applications/AdobeReaderXI.desktop [Desktop Entry] Name=Adobe Reader XI MimeType=application/pdf;application/vnd.fdf;application/vnd.adobe.pdx;application/vnd.adobe.xdp+xml;application/vnd.adobe.xfdf; Exec=/home/shiro/bin/AdobeReaderXI.sh %u Type=Application GenericName=PDF Viewer Terminal=false Icon=postscript-viewer Caption=PDF Viewer X-KDE-StartupNotify=false Categories=Application;Office;Viewer;X-Red-Hat-Base; Comment= Path= StartupNotify=false $ #---------------------------------------------------------------------------- $ cat /home/shiro/bin/AdobeReaderXI.sh #!/usr/bin/sh # startet den Adobe Reader XI der Win7 Installation #set -x AcroRd32="/mnt/Windows7_OS/Program Files (x86)/Adobe/Reader 11.0/Reader/AcroRd32.exe" file=$(winepath -w "$@") wine "$AcroRd32" $file >/dev/null 2>&1 $ # |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 766 |
@shiro das ist gut um die Variablen per Hand zu übergeben aber ich komm noch nicht weiter wie ich das in der .desktop Datei mache. Damit es leichter ist habe ich mich entschieden mit der .desktop Datei ein Shell-SCript zu starten. Unter Windows würde mich dieser Befehl weiter bringen: c:\program files\radmin\radmin.exe /pbppath c:\datei.rpb /pbid:6 unter Linux muss ja ein wine davor. Aber wie mach ich ihm die Parameter klar? Das Programm selbst starte ich leicht im SCript wine "/home/nitschke/.wine/drive_c/program files/radmin/radmin.exe" Aber die Parameter die ich bei Windows übergebe beinhalten ja Slashes verschiedener Art..... |
Anmeldungsdatum: Beiträge: 611 |
Das Windows-Progrogram wird "wine" in Unix Form übergeben. Die dahinter stehenden Parameter werden vom Programm als Befehlszeile in Windows-Stil interpretiert. Wenn du daher eine Datei durch das Windows-Programm bearbeiten willst, muss der Pfad zu der Datei auch über "wine" erreichbar sein. Häufig nutzt man hier das "Z:" Laufwerk. $ winepath -w ~/Downloads/pdf/y.pdf Z:\home\shiro\Downloads\pdf\y.pdf $ winepath -w ~/Downloads/pdf/Eine\ Datei\ mit\ Leerzeichen.pdf Z:\home\shiro\Downloads\pdf\Eine Datei mit Leerzeichen.pdf Bei der Übergabe sollte allerdings wegen des Backslash der Dateiname gequoted angegeben werden. Also: $ # NICHT $ wine notepad c:\users\Public\Documents\x.txt ... Die Datei 'c:usersPublicDocumentsx.txt' existiert nicht. $ # SONDERN $ wine notepad "c:\users\Public\Documents\x.txt" $ # ODER $ wine notepad 'c:\users\Public\Documents\x.txt' Beim Aufruf des Programms kannst du aber auch die Windows-Datei Notation verwenden (z.B.): wine "c:\Program Files (x86)\Radmin Viewer 3\Radmin.exe" "/pbpath" "c:\datei.rdb" "/pbid:70" |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 766 |
So ich habe jetzt nochmal Dokumentation gewälzt und folgendes gefunden.... Der korrekte Aufruf unter Windows sieht wie folgt aus: c:\Program Files (x86)\Radmin Viewer 3\Radmin.exe /pbpath"c:\datei.rdb" /pbid:70 Das Problem ...... der Dateiname steht direkt hinter dem Parameter in Anführungszeichen. Diese Zeile müsste ich irgendwie Wine übergeben so das dort auch die Parameterübergabe wie oben ist. Da komme ich mit dem Quoten durcheinander. |
Anmeldungsdatum: Beiträge: 611 |
Ok, so langsam beginne ich dein Problem zu verstehen. Ich habe zwar kein Programm "Radmin.exe", daher habe ich ein kleines ".bat" Script geschrieben, was die Parameter, die über wine an das Windows-Programm geleitet werden, ausgibt. $ cd ~/Dokumente $ cat tst.bat @echo off echo "1:>%1%<" echo "2:>%2%<" $ wine cmd /c $HOME/Dokumente/tst.bat '/pbpath"c:\datei.rdb"' /pbid:70 "1:>/pbpath\"c:\datei.rdb\"<" "2:>/pbid:70<" Wie man sieht, wird das Gänsefüßchen ($'\x22') als Quote mit dem Unix-Escape-Backslash an das Windows-Programm weiter geleitet (Parameter 1). Kannst du mal probieren, ob der erste Parameter zwingend $ wine cmd /c $HOME/Dokumente/tst.bat "/pbpath'c:\datei.rdb'" /pbid:70 "1:>/pbpath'c:\datei.rdb'<" "2:>/pbid:70<" Zur Not müsste dann dein "Radmin.exe" in einem .bat-Script aufgerufen werden. Dort hättest du dann die Möglichkeit mit Gänsefüßchen zu quoten. |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 766 |
"1:>/pbpath\"c:\datei.rdb\"<" Das Bekomme ich auch als Ausgabe aber die \ müssen noch weg.... |
Anmeldungsdatum: Beiträge: 611 |
Ich hatte doch geschrieben, dass die "\" an Wine als Text mitgegeben werden. Daher war meine Frage, ob statt des " auch das ' verwendet werden kann und vom Programm "Radmin.exe" korrekt verarbeitet werden kann. Daher wäre es hilfreich, wenn du in shell-Script, das den wine Befehl ausführt den folgenden Eintrag stehen hast: wine "c:\Program Files (x86)\Radmin Viewer 3\Radmin.exe" "/pbpath'c:\datei.rdb'" "/pbid:70" Wenn das nicht erfolgreich ist, wäre das "Radmin.exe" Programm sinnvollerweise in einer .bat Datei aufzurufen und die .bat-Datei über wine zu starten wie in folgendem Beispiel: $ # zunächst den Launcher $ echo "[Desktop Entry] Name=tst Exec=wine cmd /c \"$HOME/Dokumente/tst.bat\" Type=Application Terminal=false Icon= StartupNotify=false Comment= Path= " > ~/.local/share/applications/tst.desktop $ # und nun die .bat Datei $ echo "@echo off echo \"c:\Program Files (x86)\Radmin Viewer 3\Radmin.exe\" /pbpath\"c:\datei.rdb\" /pbid:70 > c:\users\public\documents\x.xxx notepad c:\users\public\documents\x.xxx " > ~/Dokumente/tst.bat In obigem Beispiel wird durch "wine" die Datei "$HOME/Dokumente/tst.bat" ausgeführt. Diese .bat Datei schreibt per "echo" die von dir gewünschte Befehlszeile in die Datei "c:\users\public\documents\x.xxx". Danach wird "notepad" gestartet um anzuzeigen, dass das " als Zeichen vorhanden ist. Wenn du das "echo" und den Text ab ">" weg lässt, sollte dein Programm korrekt gestartet werden. |