স্টারক্রাফ্ট II আমাকে একাধিক ইনস্ট্যান্স চালানো থেকে বিরত রাখে , তবে আমি যদি স্যান্ডবক্সিতে দ্বিতীয় বার স্যান্ডবক্সযুক্ত চালনা করি তবে এটি কার্যকর হয়। এর জন্য কী হতে পারে?
আমি কীভাবে নিজের গেমগুলির জন্য এই আচরণটির প্রতিলিপি করতে পারি?
স্টারক্রাফ্ট II আমাকে একাধিক ইনস্ট্যান্স চালানো থেকে বিরত রাখে , তবে আমি যদি স্যান্ডবক্সিতে দ্বিতীয় বার স্যান্ডবক্সযুক্ত চালনা করি তবে এটি কার্যকর হয়। এর জন্য কী হতে পারে?
আমি কীভাবে নিজের গেমগুলির জন্য এই আচরণটির প্রতিলিপি করতে পারি?
উত্তর:
স্টারক্রাফ্ট 2 বাদে, এর সাধারণ উত্তরটি হ'ল: অর্জন (এবং লক করুন, যদি অধিগ্রহণটি ইতিমধ্যে লকিংয়ের সমতুল্য না হয়) অপারেটিং সিস্টেম থেকে একটি নির্দিষ্ট উত্স। অধিগ্রহণ / লকিং ব্যর্থ হলে গেমটি থেকে প্রস্থান করুন। এই জাতীয় সংস্থার উদাহরণ হ'ল:
উপরের প্রান্তে, গ্রাহক উপায়ে বেশিরভাগ ব্যথা-অন-গাধা, বিশেষায়িত হার্ডওয়্যার যা (কখনও কখনও অগত্যা কিছু রোবোটিক নিয়ন্ত্রণের উপাদানগুলির মতো হয়) কেবলমাত্র একক থ্রেডের দ্বারা কেবল এইভাবে ব্যবহার করা যেতে পারে।
আমি মিটেক্স পদ্ধতির প্রস্তাব দিই, তবে:
প্রায়শই ব্যবহৃত হয় এমন অন্য পদ্ধতিটি হ'ল একই নামের অন্য কোনও প্রক্রিয়া চলমান কিনা তা খতিয়ে দেখা হচ্ছে।
সুবিধাটি হ'ল এটি হাস্যকরভাবে সহজ - আপনাকে ফাইলের অনুমতি সম্পর্কে চিন্তা করতে হবে না বা মিউটেক্স কী তা জানার দরকার নেই। ক্ষতিটি হ'ল, যদি মেশিনে কোনও ভিন্ন প্রোগ্রাম বলা starcraft2.exeহয় তবে আপনি একটি মিথ্যা-পজিটিভ পাবেন ।
আপনি যদি সি ++ এবং উইন্ডোজ এপিআই ব্যবহার করে থাকেন তবে আপনি যা করতে পারেন তার একটি উপায় হ'ল FindWindowআপনি ক্লাসের নাম এবং / অথবা উইন্ডো নামের মতো প্যারামিটারগুলি পাস করতে পারেন। তারপরে যদি আপনি কোনও মিল খুঁজে পান তবে আপনি উইন্ডো লোড বা তৈরি করার আগে কেবল আপনার প্রোগ্রামটি থেকে প্রস্থান করুন।