আমি কীভাবে শেল প্রসঙ্গে মেনু আইটেম তৈরি করতে পারি যা একাধিক ফাইলকে আর্গুমেন্ট হিসাবে গ্রহণ করে?


11

একটি উইন্ডোজ শেল প্রসঙ্গ মেনু আইটেম তৈরি করা যা একটি একক ফাইলকে আর্গুমেন্ট হিসাবে গ্রহণ করা সহজ। উদাহরণস্বরূপ এই প্রশ্নটি দেখুন ।

তবে, আপনি কীভাবে একটি প্রসঙ্গ মেনু আইটেম তৈরি করবেন যা একাধিক ফাইলকে আর্গুমেন্ট হিসাবে গ্রহণ করে? বলুন, একটি আলাদা-মার্জ সরঞ্জামের জন্য (আমার ক্ষেত্রে P4Merge), যদিও একই কৌশলটি অন্যান্য অ্যাপ্লিকেশনগুলির ক্ষেত্রেও প্রযোজ্য হবে।

আমি পি 4 মার্জ ইনস্টল করেছি তবে এটি কনটেক্সট মেনুতে কোনও আইটেম স্বয়ংক্রিয়ভাবে যুক্ত হয় না তাই আমাকে এটি নিজেই করতে হবে।

যখন আমি ব্যবহার করার চেষ্টা করেছি:

"C:\Program Files\Perforce\p4merge.exe" %1 %2

কমান্ড লাইন হিসাবে আমি একটি ত্রুটি পেয়েছি:

ত্রুটি: কমপক্ষে দুটি ফাইলের প্রয়োজন। শুধুমাত্র একটি ফাইল খুলতে পারে না। P4Merge এর 0, 2 বা 3 ফাইল দরকার।

যখন আমি ব্যবহার করার চেষ্টা করেছি:

"C:\Program Files\Perforce\p4merge.exe" %0 %1

কমান্ড লাইন হিসাবে এটি দুটি ফাইলের জন্য পি 4 মার্জ খুলেছে, প্রতিটি ফাইলের জন্য একটি।

এটি প্রদর্শিত হচ্ছে যে সঠিক ফাইলের নামগুলি% 0 এবং% 1 এর মধ্য দিয়ে গেছে কিন্তু P4Merge অ্যাপ্লিকেশনটির একটি আলাদা উদাহরণ প্রতিটিটির জন্য কার্যকর করা হচ্ছে।

আমার কাছে বর্তমানে সোর্সগিয়ারের ডিফমার্জ সরঞ্জাম রয়েছে যার শেল প্রসঙ্গ মেনুতে একটি আইটেম রয়েছে এবং এটি খুব সুন্দরভাবে কাজ করে, কারণ আমি দুটি ফাইল নির্বাচন করতে সক্ষম হয়েছি এবং প্রসঙ্গ মেনু আইটেমটি তার মধ্যে একটি ডিফ চালানোর জন্য ব্যবহার করতে সক্ষম হয়েছি। ডিফফর্মেজ কী যুক্তি ব্যবহার করে তা দেখার জন্য আমি রেজিস্ট্রিটি অনুসন্ধান করার চেষ্টা করেছি কিন্তু আমি একটি ডিফর্মার্জ কমান্ডলাইন খুঁজে পাইনি যার মধ্যে যুক্তিগুলি অন্তর্ভুক্ত রয়েছে।


3
আপনি যেমনটি খুঁজে পেয়েছেন, সাধারণ রেজিস্ট্রি হ্যাক দিয়ে আপনি যা চান তা করার কোনও উপায় নেই। কেবলমাত্র% 1 রয়েছে কারণ এক্সটেনশনটি কেবল একটি বস্তুর জন্য প্রযোজ্য এবং একাধিক বস্তুর জন্য পৃথকভাবে কার্যকর করা হয়। এটির জন্য একটি সম্পূর্ণ অন শেল-এক্সটেনশন প্রোগ্রামিং প্রয়োজন। তবে কিছু প্রোগ্রাম / শেল-এক্সটেনশান রয়েছে যা আপনাকে রেজিস্ট্রি হ্যাকের অনুমতি দেওয়ার চেয়ে আরও কিছু উন্নত প্রসঙ্গ-মেনু স্টাফ করতে দেয়। (কেবলমাত্র আমি মনে করতে পারি এটি এমএমএম ।) দুর্ভাগ্যক্রমে, আমি মনে করি যে তারা একাধিক বস্তু বাদ দেওয়ার পরিবর্তে আপনাকে সাবমেনাস তৈরি করতে দেওয়ার মধ্যে সীমাবদ্ধ রয়েছে।
সিনিটেক

উত্তর:


20

আপনি প্রোগ্রামটি সেন্ডটো মেনুতে যুক্ত করার চেষ্টা করতে পারেন।


হ্যাঁ, এটি দুর্দান্তভাবে কাজ করে।
সিনিটেক

1
নিখুঁতভাবে কাজ করেছেন। উইন্ডোজ in-এর সেন্ডটো মেনুতে কীভাবে কোনও অ্যাপ্লিকেশন যুক্ত করতে হয় তার জন্য এখানে নির্দেশাবলী রয়েছে। কোনও কমান্ড-লাইন প্যারামিটার যুক্ত করার দরকার ছিল না, কেবলমাত্র অ্যাপ্লিকেশন শর্টকাটটি% অ্যাপডিটা% \ মাইক্রোসফ্ট \ উইন্ডোজ \ সেন্ডটো ফোল্ডারে ফেলে দেওয়া হয়েছে। উইন্ডোজ এক্সপ্লোরারে ফিরে, দুটি ফাইল নির্বাচন করে ডান ক্লিক করে এবং প্রেরণে> P4Merge নির্বাচন করা বাছাই করা ফাইলগুলিতে আলাদা পারফরম্যান্স সম্পাদন করে।
সাইমনটিউসি

4

উত্তরের জন্য ব্রাউজ করা মনে হচ্ছে কোনও সাধারণ সমাধান নেই এবং শেল এক্সটেনশান প্রয়োজন। ডিফফর্মজের জন্য রেজিস্ট্রি এন্ট্রিগুলিতে আবার তাকালে এটি শেল এক্সটেনশানটি ব্যবহার করে বলে মনে হয়: ডিফফর্মজেলশেলএক্সটেনশন 64.dll। যদি P4Merge এর শেল এক্সটেনশন না থাকে তবে উইন্ডোজ এক্সপ্লোরার কনটেক্সট মেনুতে এটি সঠিকভাবে কাজ করতে পারার মতো মনে হচ্ছে এটি নিজেই লিখতে হবে।

কোড প্রজেক্টে শেল এক্সটেনশানস সিরিজ রচনায় সম্পূর্ণ ইডিয়টসের গাইড শেল এক্সটেনশনগুলি লেখার জন্য একটি দরকারী গাইড। সিরিজের দ্বিতীয় খণ্ডটি এমন একটি এক্সটেনশান লেখার বিষয়ে যা একসাথে একাধিক ফাইল হ্যান্ডেল করে (আমার যা প্রয়োজন ঠিক তাই)।

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


2

আপনি এটি আমার প্রোগ্রামের প্রসঙ্গে-মেনু-লঞ্চার (একক স্থানে) দিয়ে করতে পারেন :

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\SystemFileAssociations\.txt\Shell\p4merge]
"MultiSelectModel"="Player"

[HKEY_CLASSES_ROOT\SystemFileAssociations\.txt\Shell\p4merge\Command]
@="\"d:\\singleinstance.exe\" %1 \"C:\\Program Files\\Perforce\\p4merge.exe\" $files --si-timeout 400"

.exeএকটি স্বয়ংক্রিয় ডাউনলোড শুরু হবে তা পরিষ্কার না করে দয়া করে আপনার উত্তরের ফাইলগুলিতে সরাসরি লিঙ্ক করবেন না ।
DavidPostill

ধন্যবাদ একটি মোহন মত কাজ করে। এককভাবে প্রতিটি ফাইল টাইপের জন্য ফাইল সংযোগগুলিতে আলাদাভাবে যুক্ত না করে কোনও ফাইল টাইপের সাথে একক সংস্থার অ্যাপ্লিকেশনটি যুক্ত করার কোনও উপায় আছে কি? উদাহরণস্বরূপ, আমি বর্তমানে এক্সএমএল ফাইল, এসকিউএল স্ক্রিপ্ট, কনফিগার ফাইল, * .সিএস ফাইল, .গিটিগনোর ফাইল, এবং অন্যদের মতো জিনিসের তুলনায় ডিফফর্ম ব্যবহার করি।
সাইমনটিউসি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.