আমি যদি আমার ব্যাখ্যাটি জুড়ে পুনরায় বলি তবে আমি ক্ষমাপ্রার্থী, তবে আমি এই বিষয়টিকে খুব জটিল মনে করি তাই এটি প্রাসঙ্গিকভাবে পাঠকদের কাছে বোঝার চেষ্টা করার চেষ্টা করেছি:
এটি কোনও বাগ বা এটির উদ্দেশ্য ছিল কিনা তা জানা না গেলেও আমরা হার্ড আর্গুমেন্ট "%" এর পরিবর্তে DDE বার্তা তৈরি করে ডায়নামিক ডেটা এক্সচেঞ্জ প্রোটোকল (ডিডিই) ব্যবহার করে "একই" উদাহরণে এটি খুলতে বাধ্য করতে পারি% 1 "ফাইলটি কার্যকর করতে গিয়ে ফাইলটি খোলার জন্য সেটির জন্য নির্দেশ করে। (যদিও, ডিডিই কঠোর যুক্তি দিয়েও ব্যবহৃত হয়)।
এই ক্ষেত্রে ডিডিই বার্তাটি কোনও ফাইল খোলার জন্য প্রোগ্রামটি বলতে ব্যবহৃত হয়। এক্সিকিউট হওয়া প্রতিটি ফাইলের জন্য এটি প্রতিটি সময়ই নতুন ঘটনা তৈরি করে। কিন্তু যখন ডিডিই প্রোটোকল ব্যবহার করা হয়, এটি পরীক্ষা করে দেখা দেয় যে কোনও দৃষ্টান্ত ইতিমধ্যে তৈরি হয়েছে কিনা এবং যদি এটি প্রথমে ডিডিই মেসেজটির সাথে সম্পর্কিত হয় এবং প্রস্থান করে এইভাবে এই ধারণাটি দেয় যে সমস্ত ফাইলগুলি তাত্ক্ষণিক হওয়ার কারণে একক দৃষ্টিতে খোলে।
speculations
একাধিক উদাহরণগুলিতে ফাইলগুলি খোলার বিষয়টি সম্ভবত অন্য একটি দৃষ্টান্ত আহ্বান করার সময় একক নজরে ইতিমধ্যে কতটা লোড হয়েছে তার সাথে সম্পর্কিত। প্রথমবারের মতো মৃত্যুর সময় পার্থক্যের মধ্যেকার প্রবণতা হ'ল মৃত্যুদণ্ড কার্যকর করার সময় যতটা বৃদ্ধি পায় তা একক উদাহরণ দেয় এবং হ্রাস হওয়ায় এটি দু'টি উদাহরণ দেয়। এটি সুপারিশ করে যে অন্য ফাইলটি চালিত হলে এবং একই ফাইলটিতে প্রথম ফাইলটি লোড করতে হবে বা "প্রস্তুত" হতে হবে যদি তা না হয় তবে ফাইলটি নিজেই খুলতে হবে itself
ফাইল পাথটি প্রোগ্রামের একটি আর্গুমেন্ট হিসাবে ব্যবহৃত হয় বলে মনে হয়, কেবলমাত্র এই প্রবণতাটি অনুসরণ করা হবে বলে মনে হয়:
প্রথমটি প্রস্তুত হয়ে থাকলে প্রথম নজির অতিক্রম করার জন্য যখন আর্গুমেন্ট হিসাবে ব্যবহৃত হয় (বা যদি অ-প্রথম দিকগুলি প্রস্তুত থাকে তবে), অ-প্রথম উদাহরণটি প্রথমে ডিডিই বার্তা হিসাবে যুক্তিটি রিলে করতে সক্ষম হবে বলে মনে হয়।
তবে, আমরা যদি প্রোগ্রামটি চালিয়ে যাই এবং ফাইলটি খোলার জন্য কোনও ডিডিই মেসেজ ব্যবহার করি তবে মনে হয় ডিডিই প্রোটোকলটি তাত্ক্ষণিকভাবে ডিডিই বার্তাকে গ্রহণ করার জন্য প্রস্তুত কিনা বা ঠিক এখনই তা অনুসরণ করবে। প্রথম উদাহরণটি প্রস্তুত কিনা বা না তা নির্ভর করে যদি অ-প্রথম প্রথম উদাহরণটিকে প্রস্তুত হিসাবে দেখায় এবং এটি ডিডিই বার্তাটি প্রথমটিতে না প্রেরণ করে, যা কেবল তখনই যুক্তি দিয়ে প্রকাশিত হয় বলে মনে হয় । প্রথমটিকে "প্রস্তুত" বা "অস্তিত্বহীন" হিসাবে প্রথম দেখানোর অনুমান এই সত্য দ্বারা প্রস্তাবিত হয় যে ডিডিই বার্তাগুলি (অ-প্রথম দিক থেকে) প্রথম দ্বারা গ্রহণ করা হয়: অ-প্রথমটির মাধ্যমে মৃত্যুদন্ড কার্যকর করা হয় না একটি আর্গুমেন্ট কনটেন্টেশন "% 1"; এবং এটি একটি ডিডিই মেসেজের মাধ্যমে খোলার কথা বলা হয়।
যেমনটি আমার অনুমান: এই অ্যাপ্লিকেশনগুলির কোডটি অন্য কোনও উদাহরণ "প্রস্তুত" কিনা তা নির্ধারণের জন্য কিছু অস্পষ্ট পদ্ধতি ব্যবহার করে এবং যদি তাই হয় তখন কোনও যুক্তি ব্যবহার করার সময় ডিডিই প্রোটোকল ব্যবহার করবে। এটি অন্য কোনও উদাহরণে প্রেরণ করবে কিনা তা নির্ধারণের জন্য এটি যখন ডিডিই প্রোটোকল গ্রহণ করে তার চেয়ে আলাদা পদ্ধতি ব্যবহার করে বলে মনে হয়। এটি সিউডোকোডটি কার্যকরভাবে উপস্থিত হবে:
if(argrument.wasUsed()){
// Office's obscure condition
if(Office.thinksInstanceIsReady(anotherInstance)){
// Use DDE Protocol
if(anotherInstance.exists()){ // already knew that
sendDDEmessage(anotherInstance);
exitThisInstance();
}
} else {
selfFollowDDEmessage(); // Leave open this instance
}
if(givenDDEMessage()){
// Use DDE Protocol
if(anotherInstance.exists()){
sendDDEmessage(anotherInstance);
exitThisInstance();
} else {
selfFollowDDEmessage();
}
}
প্রোগ্রামাররা আমাদের না জানিয়ে এটি কোনও ত্রুটিযুক্ত বা এটি কোনও কারণে অস্পষ্ট হওয়ার উদ্দেশ্যে তৈরি করার তাগিদ দেওয়ার কোনও উপায় নেই।
সমাধান
আমরা কিছু ফাইল এক্সটেনশনের কার্যকারিতা সামঞ্জস্য করতে চাই যাতে আরগ্যু হিসাবে মৃত্যুদণ্ডপ্রাপ্ত ফাইলটির ফাইল পাথ ("% 1") প্রেরণ করা হয় না, বরং ডিডিই ম্যাসেজের বিষয়বস্তুতে কর্ম সম্পাদন করার জন্য প্রোগ্রামটি কার্যকর করা হয় তা বলি একটি ফাইল খোলার জন্য একটি অনুরোধ রয়েছে, যা এটি উপস্থিত থাকলে এবং যদি এটি নিজেই ব্যবহার না করে তবে এটি ইতিমধ্যে বিদ্যমান একটি উদাহরণে রিলে দেবে। যা অনুমানমূলকভাবে, অন্য কোনও উদাহরণের জন্য এই অ্যাপ্লিকেশনগুলির অস্পষ্ট প্রয়োজনীয়তাগুলি বাইপাস করবে "ফাইল" হিসাবে যদি কোনও পথের জন্য একটি আর্গুমেন্ট ব্যবহার করা হয় তবে "প্রস্তুত" হিসাবে দেখা যায়।
এগুলি ক্লাস কীগুলির সাথে সম্পর্কিত সমস্ত ফাইল এক্সটেনশন যা এর সাথে প্রতিস্থাপন করা হবে x
:
শব্দ জন্য
FILEEXT CLASS NAME (x)
.doc* Word.Document.8
.docm† Word.DocumentMacroEnabled.12
.docx* Word.Document.12
.dot Word.Template.8
.dotm† Word.TemplateMacroEnabled.12
.dotx† Word.Template.12
.odt Word.OpenDocumentText.12
.rtf† Word.RTF.8
.wbk Word.Backup.8
.wiz Word.Wizard.8
.wll Word.Addin.8
এক্সেলের জন্য
FILEEXT CLASS NAME (x)
.csv* Excel.CSV
.ods Excel.OpenDocumentSpreadsheet.12
.slk Excel.SLK
.xla Excel.Addin
.xlam† Excel.AddInMacroEnabled
.xld Excel.Dialog
.xlk Excel.Backup
.xll Excel.XLL
.xlm Excel.Macrosheet
.xls* Excel.Sheet.8
.xlsb† Excel.SheetBinaryMacroEnabled.12
.xlshtml Excelhtmlfile
.xlsm† Excel.SheetMacroEnabled.12
.xlsx* Excel.Sheet.12
.xlt† Excel.Template.8
.xlthtml Excelhtmltemplate
.xltm† Excel.TemplateMacroEnabled
.xltx† Excel.Template
.xlw Excel.Workspace
.xlxml Excelxmlss
* সবচেয়ে গুরুত্বপূর্ণ / সাধারণ ফাইল এক্সটেনশন যা সর্বনিম্ন হিসাবে করা উচিত। বিষয়ী.
† গৌণতম সর্বাধিক গুরুত্বপূর্ণ / সাধারণ ফাইল এক্সটেনশানগুলি যা সর্বনিম্ন হিসাবে করা উচিত। বিষয়ী.
এই তালিকাগুলি কম্যান্ড-লাইন মাধ্যমে প্রতিলিপি করা যেতে পারে: assoc | findstr Word
প্রতিস্থাপন Word
কর্মকর্তা সংক্ষিপ্ত নাম (কেস সংবেদনশীল) সঙ্গে।
আপনি যদি প্রয়োজন মনে করেন তবে এটির সমস্ত বিকল্প আপনার কাছে রয়েছে। আপনি যদি আরও বেশি কিছু করতে চান তবে আপনি আমার পছন্দনীয় বিকল্পগুলি অনুসরণ করতে চাইতে পারেন যা প্রয়োজনীয় কাজ হ্রাস করতে পারে।
আপনি নীচের প্রতিটি রেজিস্ট্রি কী x
জন্য আপনার পছন্দের (টি) এর সম্পর্কিত ক্লাস (এস) এর সাথে প্রতিস্থাপনের জন্য নিম্নলিখিত নির্দেশাবলী অনুসরণ করবেন :
HKEY_CLASSES_ROOT\x\shell\Open
HKEY_CLASSES_ROOT\x\shell\OpenAsReadOnly
(প্রাক্তন HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open
:)
আবার, OpenAsReadOnly
কীটি, অপশনযোগ্য এটি যখন ফাইলটি সম্পাদন করা হয় তখন এটি কেবল পঠনযোগ্য হবে ready
একটি ছোট সতর্কতা - একটি ব্যাকআপ
পরিবর্তনের আগে রেজিস্ট্রি মানগুলি কী ছিল তা সেরাভাবে মনে রাখতে আপনি কী শাখায় ডান ক্লিক করতে পারেন HKEY_CLASSES_ROOT
এবং প্রসঙ্গ মেনুতে "রফতানি" ক্লিক করুন এবং নিবন্ধকরণ ফাইলটি কোনও স্থানে সংরক্ষণ করুন। ডক ব্রাউন যদি "আমাদের ফিরে যেতে হবে" বলে থাকে তবে আপনি কেবল রেজিস্ট্রি কীটি সম্পাদন করে এবং নির্দেশাবলী অনুসরণ করে আমদানি করতে পারেন।
বিকল্পভাবে, আপনি এটিও চালাতে পারেন যাতে আপনি মনে করতে পারেন যে এর command
সাথে ছোট ভুলগুলি সংশোধন করার জন্য মানগুলি এবং শ্রেণীর নামগুলি কী ছিল:
assoc>>fileexts.txt
যা ব্যবহার করে ফিল্টার করা যায় type fileexts.txt | findstr Word
ftype>>classnames.txt
যা ব্যবহার করে ফিল্টার করা যায় type classnames.txt | findstr Word
নির্দেশনা
উপরের তালিকাভুক্ত প্রতিটি মূল মানগুলির জন্য এটি অনুসরণ করা হবে, যেমন আপনি করতে ইচ্ছুক।
আপনার পছন্দের রেজিস্ট্রি এডিটরে প্রবেশ করুন বা regedit
আপনি যে ক্লাসটি সংশোধন করতে চান তাতে যান।
নামক কীটিতে প্রবেশ করুন, মানটিতে command
ডান ক্লিক (Default)
করুন এবং প্রসঙ্গ মেনুতে "সংশোধন করুন" ক্লিক করুন।
বর্তমানে সেটটি কার্যকর করা উচিত যা হওয়া উচিত ftype | findstr Word
স্থানটি সহ মানের শেষে সরাসরি যুক্তিগুলি সরাতে এটি পরিবর্তন করুন :
"C:\Program Files\Microsoft Office\Root\Office16\EXCEL.EXE"
(এক্সেল 64৪-বিটের জন্য)
"C:\Program Files\Microsoft Office\Root\Office16\WINWORD.EXE"
(ওয়ার্ড 64৪-বিটের জন্য)
"C:\Program Files (x86)\Microsoft Office\Root\Office16\WINWORD.EXE"
(শব্দ 32-বিটের জন্য)
"C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE"
(এক্সেল 32-বিটের জন্য)
চাবিতে প্রবেশ করান ddeexec
(যদি এটি বিদ্যমান না থাকে তবে কী তৈরি করুন) যা কীটির পাশে থাকবে command
, (Default)
মানটি ডান ক্লিক করুন , এবং প্রসঙ্গ মেনুতে "সংশোধন করুন" ক্লিক করুন এবং মানটি সেট হয়ে যান:
[REM _DDE_Direct][FileOpen("%1")]
- (শব্দটির জন্য)
[open("%1")]
- (এক্সেলের জন্য)
নীচে ddeexec
একটি নতুন কী তৈরি করুন topic
(এটি উপস্থিত না থাকলে), মানটিতে ডান ক্লিক করুন (Default)
, এবং প্রসঙ্গ মেনুতে "সংশোধন করুন" ক্লিক করুন এবং মানটি system
(যদি ইতিমধ্যে না থাকে) তে সেট করুন ।
পরিবর্তনের পরে রেজিস্ট্রিতে এই পরিবর্তনগুলি তৈরির পরে আপনাকে একটি উন্নত কমান্ড প্রম্পট বা শেল দিয়ে চালিয়ে শেল 32.dll রিফ্রেশ করতে হবে:
regsvr32 /i shell32.dll
এটি একটি উইন্ডোজ 10 অফিস 2016 সংস্করণ 16.0.8625.2127 এ পরীক্ষা করা হয়েছে
বিকল্প শর্টকাট
আপনি ফাইল এক্সটেনশনের জন্য কীতেও যেতে পারেন (যেমন HKEY_CLASSES_ROOT\.xlsx
) এবং একক শ্রেণিতে "(ডিফল্ট)" মানটি সংশোধন করতে পারেন, এই পদ্ধতি অনুসরণ করা হলে একাধিক ফাইল এক্সটেনশানগুলি একই শ্রেণীর মানকে (যেমন Excel.Sheet.12
) নির্দেশ করতে পারে যা আপনি কেবলমাত্র ডিডিই মেসেজের মাধ্যমে এই শ্রেণিটি একবারে সংশোধন করতে হবে। আপনি যদি এটি করেন তবে সেই রেজিস্ট্রি শাখার অভ্যন্তরে শ্রেণীর নামের সমস্ত পুনরায় নামকরণও উচিত name তবে, এই উপায়ে সুপারিশ করা হয় না, কারণ এটি সহজেই ভেঙে যেতে পারে, এবং সময় সাশ্রয়ের জন্য সমস্ত ফাইল এক্সটেনশানগুলি করতে হলে এটি করা উচিত।
Sidenotes:
/o
যুক্তি URL- এর একটি আর্গুমেন্ট, তাই যেমন খুব কমই পাস করা হয়েছে এই কার্যকারিতা হারানোর একটি বড় উদ্বেগের বিষয় নয়। তবে, আপনি যদি চান, আপনি (Default)
মানগুলি সামঞ্জস্য করার সময় যুক্তির এই অংশটি চেষ্টা করে ছেড়ে যেতে পারেন ।
আমি এটি একটি সম্প্রদায় উইকি হিসাবে বিবেচনা করছি, যেহেতু এটি অত্যন্ত অনুমানমূলক এবং অসম্পূর্ণ (যদি ওয়ার্ড এবং এক্সেল কেবলমাত্র না থাকত)। এটি সম্পর্কে একটি মতামত মন্তব্য করুন।