ওয়াইন আবেদনের জন্য .ডেস্কটপ ফাইলটিতে আর্গুমেন্ট হিসাবে ফাইল কীভাবে পাস করবেন


11

আমি আসলে দুটি প্রশ্ন জিজ্ঞাসা করতে চাই:

  1. ডেস্কটপ ফাইলগুলিতে এক্সেক এন্ট্রি করার জন্য উপলব্ধ আর্গুমেন্টগুলি / পরামিতিগুলির শর্টকাটগুলি সম্পর্কে আমি আরও কোথায় পেতে পারি (যেমন% U,% u,% f ...)

  2. মূল প্রশ্ন, ওয়াইন আবেদনের জন্য .ডেস্কটপ লঞ্চারটিতে যুক্তি হিসাবে ফাইল কীভাবে পাস করবেন?

আমি এখানে এই পরামর্শটি সন্ধান করতে পেয়েছি: z:%fযা আমার কোনও উপকারে আসে না, যেমন আমি কেবল ফাইল ডেস্কটপ ছাড়াই ডেস্কটপ ফাইল চালাই, এটি ধরে নিয়েছে যে আর্গুমেন্টটি "ড্রাইভ" z:স্ক্যান করা শুরু করেz:


উদাহরণ:

[Desktop Entry]
Name=Some Windows program
Exec=wine "program.exe" z:%f
Type=Application
Terminal=false
MimeType=application/docbook+xml

আমি এই ওয়াইন অ্যাপ্লিকেশনটির জন্য আমার কাস্টম .ডেস্কটপ লঞ্চারে এক্সএমএল ফাইলটি ফেলে দিতে চাই এবং আমি এইভাবে পারি। সমস্যাটি হ'ল যদি আমি এই প্রোগ্রামটি চালিত করতে লঞ্চার আইকনে ক্লিক করি তবে যুক্তিটি z:সর্বদা এর উপর দেওয়া হয় এবং এটি গ্রহণযোগ্য নয়


আপনি কী বিটিডব্লিউ করার চেষ্টা করছেন? আপনি একটি উদাহরণ যোগ করতে পারেন?
ব্রুনো পেরেইরা

আরে ব্রুনো;) আমি ভেবেছিলাম এটি স্পষ্ট - আমি ওয়াইন আবেদনের জন্য ডেস্কটপ ফাইল (উদ্দেশ্য - লঞ্চার) তৈরি করেছি এবং আমি এতে ফাইল পাস করতে সক্ষম হতে চাই। উপরের z:%fকাজটি যেমন ভাল হয় না তখনই আমি যখনই এই মদ প্রয়োগের z:
তর্কটি

সুতরাং আপনার কাছে একটি উইন্ডোজ প্রোগ্রাম রয়েছে (অর্থাত্) application.exeযা আপনি বর্তমান নির্বাচিত ফাইলটি নটিলাসে অর্থাৎ পাস করতে চান file.txt?
ব্রুনো পেরেইরা

দুঃখিত, আমার প্রথম পোস্টে আমার উদাহরণ যুক্ত করা উচিত ছিল। আমি এটি এখনই
জুড়েছি

আমি এখনও অবধি এটি ঘুরে দেখছি এবং এর জন্য কেবলমাত্র অন্য বিকল্পটি একটি স্ক্রিপ্ট execলাইনে স্থাপন করা হয়েছে যা পরীক্ষা করে %f, যদি এটি উপস্থিত থাকে তবে কেবলমাত্র অ্যাপ্লিকেশন আরম্ভ না করে যদি ফাইলটিতে অ্যাপ্লিকেশন চালু করে launch এটি যত্নশীল বা এটি বিকল্প নয়?
ব্রুনো পেরেইরা

উত্তর:


8

আমি এ পর্যন্ত এটি সেরা সেরা (নোটপ্যাড উদাহরণ)

[Desktop Entry]
Name=Notepad
Exec=sh -c "echo %f | sed 's/^\//z:\//' | xargs wine /home/zetah/.wine/drive_c/windows/notepad.exe"
Type=Application
Terminal=false
Categories=Wine
MimeType=text/plain

আমি শিক্ষানবিশ বিবেচনা করে আরও ভাল উত্তর আশা করি


একাধিক ফাইল পাস করার জন্য নীচে আমার উন্নতি দেখুন।
হার্ভে


1

জেটাহর উত্তরের উন্নতি। এটি প্রোগ্রামটিতে একাধিক ফাইল পাস করার জন্য কাজ করে। % F কে% F (আপার কেস) এ পরিবর্তিত করে সমস্ত ফাইল ফেলে দেওয়া হবে, path (লাইনের শুরুতে) এর পরিবর্তে যথেষ্ট পথের নাম দিয়ে এটি সম্ভবত আরও অনন্য করে তুলবে, শেষে 'g' পাস হওয়া সমস্ত ফাইলগুলির পুনরায় প্রতিস্থাপনের জন্য সেড কমান্ডটি এবং অবশেষে / এর পরিবর্তে / যাতে পালানো অক্ষরগুলি প্রয়োজনীয় না হয়।

Exec=sh -c "echo %F | sed 's$/home$z:/home$g' | xargs wine /home/owner/.wine/dosdevices/c:/Progs/Boxer/b.exe"

আমি প্রোগ্রামটি এমন একটি পথে চালিত করার জন্যও স্থানান্তরিত করেছি যেখানে পাথের নামের কোনও স্থান নেই, তাই আমি আমার বক্সার সম্পাদককে এখান থেকে সরিয়ে নিয়েছি:

/home/owner/.wine/dosdevices/c:/Program Files/Boxer Text Editor/

প্রতি:

/home/owner/.wine/dosdevices/c:/Progs/Boxer/

1

এই থ্রেডে প্রচুর হ্যাকিশ সমাধান পোস্ট করা হয়েছিল। এখানে একাধিক আরও ভাল সমাধান যা একাধিক ফাইল এবং ফাইল নামগুলির ফাঁকা স্থানগুলির সাথে সম্পর্কিত।

আপনি যেমন করেন ঠিক তেমন .ডেস্কটপ ফাইলটি তৈরি করুন এবং কেবল এই এক্সিকিউট লাইনটি ব্যবহার করুন:

Exec=/usr/bin/env bash -c "printf 'z:%%q\\n' %F | WINEPREFIX='/home/<your username>/.wine' xargs wine 'C:\\Path\\to the executable\\app.exe'"

সম্পাদনা করুন : যদি আপনার অ্যাপ্লিকেশনটি একক পরিস্থিতিতে একাধিক ফাইল পরিচালনা করতে পারে (উদাহরণস্বরূপ একটি মাল্টি-ট্যাবড পিডিএফ ভিউয়ার) এবং আপনি যখনই কোনও নতুন ফাইল লঞ্চ করেন তখন বর্তমান দৃষ্টান্তটি স্বয়ংক্রিয়-দৃষ্টি নিবদ্ধ রাখতে চান তবে আপনাকে নিম্নলিখিতগুলি করতে হবে:

  • .ডেস্কটপ ফাইলটিতে এই লাইনটি যুক্ত করুন: StartupWMClass=app.exe

  • এই নির্বাহী আদেশটি ব্যবহার করুন:

    Exec=/usr/bin/env bash -c "(printf 'z:%%q\\n' %F | WINEPREFIX='/home/<your username>/.wine' xargs wine 'C:\\Path\\to the executable\\app.exe' &); xdotool windowactivate \$(xdotool search --sync --onlyvisible --class \"app.exe\")"
    

1

ওয়াইনপথ থেকে এক্সগার্সের পাইপের সাথে একটি এক্সিকিউ লাইন , যথাযথ উদ্ধৃতি এবং তাদের -0 বিকল্পের সাথে ব্যবহৃত, একক এবং একাধিক ফাইল খোলার জন্য উবুন্টু 14.04 এ নির্বিঘ্নে কাজ করে।

Exec=/usr/bin/env sh -c "winepath -w -0 %F | WINEPREFIX='/home/your_user_name/.wine' xargs -0 wine 'C:\\\\Program Files\\\\Some Vendor\\\\SomeProgram.exe'"

0

কিছু উপায় এবং ত্রুটি এবং ডেস্কটপ এন্ট্রি স্পেসিফিকেশন পড়ার পরে কেবল এইভাবেই তিনি আমার জন্য একটি RHEL 6.3 বাক্সে কাজ করেছিলেন। এটি আর্গুমেন্ট সহ ওয়াইনের সাথে নির্দিষ্ট নয় তবে এর মতো কিছু নিয়ে কাজ করা উচিত Exec=wine \"filename.exe\"

আশা করি এটি কারওর কাছে সহায়তা করবে কারণ এটি কাজ করার জন্য আমাকে কিছুটা অনুসন্ধান করেছে।

আমি মনে করি আপনাকে ডাবল কোট ব্যবহার করতে হবে এবং এগুলি এড়াতে হবে পাশাপাশি কোনও ব্যাকস্ল্যাশ ব্যবহার করে কোনও বিশেষ অক্ষর রয়েছে।

[Desktop Entry]
Version=1.0
Name=Ansys User Lic Prefs 12.1
GenericName=Ansys User Lic Prefs 12.1
Comment=Ansys User License Prefs 12.1
Encoding=UTF-8
Exec=anslic_admin \"\-userprefs121\"
Icon=ansysLogo_16x16.png
Terminal=false
Type=Application
Categories=Ansys;

0

আমি কেবল একটি ছোট পাইথন স্ক্রিপ্ট লিখেছি যা ইউনিক্স-স্টাইলের পাথগুলিকে ওয়াইন পাথ ফর্ম্যাটে রূপান্তর করে।

ডাউনলোড জিপ , নিষ্কর্ষ wine-launcher.py আপনার হোম ফোল্ডারে এবং সম্পাদনা এই মত আপনার .desktop ফাইলে:

Exec=python ~/wine-launcher.py "program.exe" %F
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.