Điểm:1

Làm cách nào để tạo trình khởi chạy máy tính để bàn cho ứng dụng .exe sẽ được khởi chạy bằng rượu trong thư mục của nó?

lá cờ zw

Tôi có một ứng dụng MS Windows cần phiên bản Wine mới. Tôi đã cài đặt nó cục bộ vào thư mục chính bằng PlayOnLinux.

Tôi gặp khó khăn với việc tạo tập lệnh bash/dash/sh đơn giản để khởi chạy ứng dụng .exe bên trong thư mục của nó. Tôi đã thử tiêu chuẩn pushd/popd, cd && exec, (cd && exec) tiếp cận nhưng nó không thành công.

Tôi cân gi:

  • Tệp máy tính để bàn làm trình khởi chạy cho tập lệnh

  • Một kịch bản mà:

    1. thay đổi thư mục thành thư mục của ứng dụng .exe
    2. thực hiện rượu .exe bên trong thư mục ứng dụng

Hiện tại tôi hài lòng với mã Python sau đây cho tập lệnh bao bọc (được đặt trong /usr/local/bin/wine32-wrapper):

#!/usr/bin/python3
nhập hệ điều hành
nhập khẩu hệ thống
quy trình con nhập khẩu

nếu len(sys.argv) >= 2:
    đường dẫn = sys.argv[1]
    wd = os.path.dirname(đường dẫn)
    exec_path = ["/home/{}/.PlayOnLinux/wine/linux-x86/6.15/bin/wine".format(os.getenv('USER'), đường dẫn), "{}".format(đường dẫn)]
    p = sub process.run(exec_path, cwd=wd)
khác:
    print("\nUsage {} với một đối số - đường dẫn tệp đầy đủ.".format(sys.argv[0]));

và .desktop-file (được đặt trong ~/.local/share/applications/wine32.desktop), cho nó:

#!/usr/bin/env xdg-open
[Mục nhập máy tính để bàn]
Phiên bản=1.0
Loại=Ứng dụng
Thiết bị đầu cuối = sai
Icon=mate-panel-launcher
Exec=wine32-wrapper %f
Tên=Rượu địa phương32-6.15

sau đó tôi liên kết các tệp exe của mình với tập lệnh rượu này bằng Caja.

Có thể thay thế tập lệnh python ở trên bằng tập lệnh bash/dash/sh có cùng chức năng không?

jpbrain avatar
lá cờ ca
Xin chào Norbert. không đủ để đặt xdg-open trên dòng exec với %F?
N0rbert avatar
lá cờ zw
Cảm ơn, @jpbrain, Như vậy là chưa đủ, vì ứng dụng .exe đọc dữ liệu từ thư mục của nó.
Điểm:1
lá cờ zw

Sau khi phân tích sâu hơn, tôi đã tìm thấy các tệp máy tính để bàn hay và thú vị cho "Trình tải chương trình Windows Wine" đến từ các gói Wine. Nó có các tùy chọn đặc biệt trong điều hành cánh đồng:

Exec=rượu bắt đầu/unix %f

và buộc khởi chạy tệp exe trong thư mục của nó.

Đối với trường hợp của tôi, nó có thể được điều chỉnh cho ~/.local/share/applications/wine32.desktop như hình dưới đây:

#!/usr/bin/env xdg-open
[Mục nhập máy tính để bàn]
Phiên bản=1.0
Loại=Ứng dụng
Thiết bị đầu cuối = sai
Icon=mate-panel-launcher
Exec=/home/user/.PlayOnLinux/wine/linux-x86/6.15/bin/wine start /unix %f
Tên=Rượu địa phương32-6.15

Do đó, phần tập lệnh là không cần thiết, chúng tôi kết thúc bằng một tệp máy tính để bàn với đặc biệt bắt đầu/unix Tùy chọn.

Lưu ý: khi Wine được cài đặt từ kho chính thức của Ubuntu, "Wine Windows Program Loader" có thể được đăng ký bằng các lệnh như mkdir -p ~/.local/share/applications/ && cp /usr/share/doc/wine-stable/examples/wine.desktop ~/.local/share/applications/ .

Điểm:1
lá cờ cn

Đối với các mục Máy tính để bàn, có một Con đường tham số có sẵn. Đây là giao diện của trình khởi chạy StarCraft II (được tạo trong quá trình cài đặt bởi Wine):

[Mục nhập máy tính để bàn]
Tên=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
Loại=Ứng dụng
StartupNotify=true
Bình luận=Chơi StarCraft II
Đường dẫn=/home/spas/.wine/dosdevices/c:/Program Files (x86)/StarCraft II
Biểu tượng=89A5_StarCraft II.0
StartupWMClass=starcraft ii.exe
N0rbert avatar
lá cờ zw
Vấn đề ở đây là `Đường dẫn` là động. Tôi không thể dự đoán người dùng sẽ khởi chạy .exe từ thư mục nào. Hãy tưởng tượng tình huống trong đó .exe đọc .ini (hoặc DB hoặc một số tài nguyên) của nó từ cùng một thư mục.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.