Score:1

วิธีสร้าง desktop-launcher สำหรับแอปพลิเคชัน .exe ซึ่งควรเปิดใช้งานโดยใช้ไวน์ภายในไดเร็กทอรี

ธง zw

ฉันมีแอปพลิเคชัน MS Windows ซึ่งต้องการ Wine เวอร์ชันใหม่ ฉันได้ติดตั้งลงในโฮมโฟลเดอร์โดยใช้ PlayOnLinux

ฉันติดอยู่กับการสร้างสคริปต์ bash/dash/sh เพื่อเรียกใช้แอปพลิเคชัน .exe ภายในโฟลเดอร์ ฉันพยายามมาตรฐาน พุช/ป๊อป, ซีดี && ผู้บริหาร, (ซีดี && ผู้บริหาร) เข้าใกล้แต่ก็ไม่สำเร็จ

สิ่งที่ฉันต้องการ:

  • ไฟล์เดสก์ท็อปเป็นตัวเรียกใช้งานสำหรับสคริปต์

  • สคริปต์ที่:

    1. เปลี่ยนไดเร็กทอรีเป็นไดเร็กทอรีของแอปพลิเคชัน .exe
    2. ดำเนินการ ไวน์ .exe ภายในไดเรกทอรีแอปพลิเคชัน

ขณะนี้ฉันพอใจกับ Python-code ต่อไปนี้สำหรับสคริปต์ตัวตัดคำ (ที่จะใส่ใน /usr/local/bin/wine32-wrapper):

#!/usr/bin/python3
นำเข้าระบบปฏิบัติการ
นำเข้าระบบ
นำเข้ากระบวนการย่อย

ถ้า len(sys.argv) >= 2:
    เส้นทาง = sys.argv[1]
    wd = os.path.dirname (เส้นทาง)
    exec_path = ["/home/{}/.PlayOnLinux/wine/linux-x86/6.15/bin/wine".format(os.getenv('USER'), path), "{}".format(path)]
    p = subprocess.run(exec_path, cwd=wd)
อื่น:
    พิมพ์ ("\nUsage {} ด้วยหนึ่งอาร์กิวเมนต์ - เส้นทางไฟล์แบบเต็ม.".format(sys.argv[0]));

และ .desktop-file (ที่จะใส่ใน ~/.local/share/applications/wine32.desktop), สำหรับมัน:

#!/usr/bin/env xdg-เปิด
[รายการเดสก์ท็อป]
เวอร์ชัน=1.0
Type=ใบสมัคร
เทอร์มินัล = เท็จ
ไอคอน = mate-panel-launcher
Exec=wine32-wrapper %f
Name=ไวน์ท้องถิ่น32-6.15

จากนั้นฉันก็เชื่อมโยงไฟล์ exe ของฉันกับสคริปต์ไวน์นี้โดยใช้ Caja

เป็นไปได้ไหมที่จะแทนที่สคริปต์ python ด้านบนด้วยสคริปต์ bash/dash/sh ที่มีฟังก์ชันการทำงานเหมือนกันทุกประการ

jpbrain avatar
ca flag
สวัสดีนอร์เบิร์ต ไม่เพียงพอที่จะใส่ xdg-open ในบรรทัด exec ด้วย %F?
N0rbert avatar
zw flag
ขอบคุณ @jpbrain ยังไม่พอ เนื่องจากแอปพลิเคชัน .exe อ่านข้อมูลจากไดเร็กทอรีของมัน
Score:1
ธง cn

สำหรับรายการเดสก์ท็อปมี เส้นทาง พารามิเตอร์ที่มีอยู่ นี่คือลักษณะของตัวเรียกใช้งาน StarCraft II (สร้างขึ้นระหว่างการติดตั้งโดย Wine) มีลักษณะดังนี้:

[รายการเดสก์ท็อป]
ชื่อ = StarCraft II
Exec=env WINEPREFIX="/home/spas/.wine" /opt/wine-staging/bin/wine C:\windows\command\start.exe /Unix /home/spas/ .wine/dosdevices/c:/users/Public/Desktop/StarCraft\ II.lnk
Type=ใบสมัคร
StartupNotify=จริง
ความคิดเห็น=เล่น StarCraft II
Path=/home/spas/.wine/dosdevices/c:/ไฟล์โปรแกรม (x86)/StarCraft II
ไอคอน=89A5_StarCraft II.0
StartupWMClass=starcraft ii.exe
N0rbert avatar
zw flag
ปัญหาคือ `Path` เป็นไดนามิก ฉันไม่สามารถคาดเดาได้ว่าผู้ใช้ไดเร็กทอรีใดจะเปิดใช้ .exe ลองนึกภาพสถานการณ์ที่ .exe อ่าน .ini (หรือ DB หรือทรัพยากรบางอย่าง) จากไดเร็กทอรีเดียวกัน
Score:1
ธง zw

หลังจากการวิเคราะห์เชิงลึกมากขึ้น ฉันพบไฟล์เดสก์ท็อปที่ดีและน่าสนใจสำหรับ "Wine Windows Program Loader" ซึ่งมาจากแพ็คเกจไวน์ มีตัวเลือกพิเศษใน ผู้บริหาร สนาม:

เอ็กเซก = ไวน์ สตาร์ท / ยูนิกซ์ %ฉ

และบังคับให้เปิดไฟล์ exe ในไดเร็กทอรี

สำหรับกรณีของฉันอาจดัดแปลงเป็น ~/.local/share/applications/wine32.desktop ดังแสดงด้านล่าง:

#!/usr/bin/env xdg-เปิด
[รายการเดสก์ท็อป]
เวอร์ชัน=1.0
Type=ใบสมัคร
เทอร์มินัล = เท็จ
ไอคอน = mate-panel-launcher
Exec=/home/user/.PlayOnLinux/wine/linux-x86/6.15/bin/wine start /unix %f
Name=ไวน์ท้องถิ่น32-6.15

ดังนั้นจึงไม่จำเป็นต้องใช้ส่วนสคริปต์ เราจบด้วยไฟล์เดสก์ท็อปเดี่ยวแบบพิเศษ สตาร์ท / ยูนิกซ์ ตัวเลือก.

หมายเหตุ: เมื่อติดตั้ง Wine จากที่เก็บอย่างเป็นทางการของ Ubuntu เช่น "Wine Windows Program Loader" สามารถลงทะเบียนได้โดยใช้คำสั่งเช่น mkdir -p ~/.local/share/applications/ && cp /usr/share/doc/wine-stable/examples/wine.desktop ~/.local/share/applications/ .

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา