আমি যখনই স্ক্রিনটি লক করব তখন উইন্ডোজ 7 এ কোনও প্রোগ্রামকে স্বয়ংক্রিয়ভাবে প্রস্থান করার কোনও উপায় আছে কি?
আমি যখনই স্ক্রিনটি লক করব তখন উইন্ডোজ 7 এ কোনও প্রোগ্রামকে স্বয়ংক্রিয়ভাবে প্রস্থান করার কোনও উপায় আছে কি?
উত্তর:
মাধ্যাকর্ষণ পরামর্শ অনুসারে, এই উত্তরটির শেষে আমি যে ব্যাচফাইলটি রেখেছি তা ব্যবহার করবেন না । এটি কারণ Win32 এপিআই ফাংশনের কলিং কনভেনশনটির সাথে মেলে rundll32.exe নাLockWorkStation ( বিবরণের জন্য এই এমএসডিএন ব্লগ এন্ট্রি দেখুন)। বলা হচ্ছে, এর চেয়ে আরও ভাল বিকল্প রয়েছে, যা খুব বেশি কাজের সাথে জড়িত না।
কল স্ট্যাকটিকে কলুষিত না করে আপনি উইন 32 এপিআই ফাংশনটিতে কল করতে অটোআইটি স্ক্রিপ্টিং ভাষা এবং DllCallফাংশনটি ব্যবহার করতে পারেন । এর ProcessCloseপরিবর্তে আপনিও ব্যবহার করতে পারেন TASKKILL। আপনার রেফারেন্সের জন্য, এখানেLockWorkStation এমএসডিএন থেকে রেফারেন্স দেওয়া আছে।
একটি ফাইলের জন্য নিম্নলিখিত দুটি লাইন রাখুন এবং এটি exitandlock.au3(বা অনুরূপ কিছু) হিসাবে সংরক্ষণ করুন । তারপরে আপনি এটিকে অটোআইটি দিয়ে চালাতে পারেন (বা আপনি চাইলে এটি একটি .exe মধ্যেও সংকলন করতে পারেন)।
ProcessClose("yourapp.exe")
DllCall("user32.dll", "BOOL", "LockWorkStation")
এটি কল স্ট্যাককে ক্ষতিগ্রস্থ না করে আপনি যা চান তা সরবরাহ করবে। তারপরে আপনি সেই ফাইলটিকে হটকিতে বাঁধতে পারেন এবং এটি আপনার ওয়ার্কস্টেশনটি লক করতে ব্যবহার করতে পারেন। বিকল্পভাবে, আপনি এটি একটি .exe ফাইলে সংকলন করতে পারেন এবং আপনার কম্পিউটারটি নিষ্ক্রিয় হওয়ার পরে একটি নির্ধারিত টাস্ক হিসাবে চালানোর জন্য সেট করতে পারেন।
অবশেষে, আপনি WinCloseবিকল্প হিসাবে বিকল্পটি ব্যবহার করতে পারেন ProcessClose।
আমি যেমন বলেছি, দয়া করে এই পদ্ধতিটি ব্যবহার করবেন না । আমি এটি কেবল সম্পূর্ণতার জন্য এখানে রেখেছি, কারণ এটি ইন্টারনেটে সর্বাধিক ব্যবহৃত একটি উপায়। TASKKILLকমান্ডটি ব্যবহার করে আপনি এটি করতে একটি সাধারণ ব্যাচফাইল ব্যবহার করতে পারেন :
@ECHO OFF
TASKKILL /IM yourapp.exe
Rundll32.exe User32.dll,LockWorkStation
তারপরে, আপনি যখন আপনার ওয়ার্কস্টেশনটি লক করতে চান তখন কেবল ব্যাচফাইলটি চালান। বিকল্পভাবে, আপনি ব্যাচফায়াল চালানোর জন্য একটি হটকিও নির্ধারণ করতে পারেন এবং আপনি যখন লক করতে চান তখন কেবল সেই কী কম্বোতে চাপুন। TASKKILLকমান্ড সম্পর্কে আরও তথ্যের জন্য , মাইক্রোসফ্ট থেকে এই নিবন্ধটি দেখুন ।
taskkillকেবল ডাব্লুএম_সিএলএস পাঠায়; আপনি ব্যবহার না করা হলে এটি প্রক্রিয়াটি শেষ করে না /f।
terminate.vbsএই বিষয়বস্তু সহ একটি ফাইল তৈরি করুন :
set objwmiservice = getobject("winmgmts:\\.\root\cimv2")
strprocessname = wscript.arguments.item(0)
strquery = "select * from win32_process where name='" & strprocessname & "'"
set colitems = objwmiservice.execquery(strquery,,48)
for each objitem in colitems
objitem.terminate
next
কমান্ড প্রম্পট এবং খোলার মাধ্যমে এই স্ক্রিপ্টটি পরীক্ষা করুন cscript.exe "C:\path\to\terminate.vbs" notepad.exe। notepad.exeআপনি যে প্রক্রিয়াটি শেষ করতে চান তার নামটি প্রতিস্থাপন করুন ।
ওপেন কার্য পরিকল্পনাকারী (যদি আপনি এটি জন্য স্টার্ট মেনু অনুসন্ধান করতে পারেন), ডান-ক্লিক কার্য পরিকল্পনাকারী লাইব্রেরী নির্বাচন টাস্ক তৈরি করুন ... । উপর সাধারণ ট্যাব, আপনার টাস্ক একটি নাম ও বিবরণ দেব। আপনি পরিবর্তন করতে পারেন জন্য কনফিগার করুন: থেকে উইন্ডোজ 7, উইন্ডোজ সার্ভার 2008 R2 যদি আপনি চান, কিন্তু যে প্রয়োজন হয় না পারেন।

উপর ট্রিগারসমূহ ট্যাব, একটি নতুন ট্রিগার তৈরি এবং সেট টাস্ক শুরু করুন: থেকে উপর ওয়ার্কস্টেশন লক । বাকি ডিফল্ট সেটিংস ঠিক আছে।

উপর পদক্ষেপ ট্যাব, যে একটি নতুন কর্ম তৈরি একটি প্রোগ্রাম শুরু । প্রোগ্রাম / স্ক্রিপ্ট: cscript.exe হওয়া উচিত । যুক্ত আর্গুমেন্টগুলি (alচ্ছিক): বাক্সে terminate.vbsআপনি যে প্রসেসের নামটি শেষ করতে চান তাতে প্রবেশ করুন । আমার যুক্তি হয়"C:\Users\Public\Documents\terminate.vbs" notepad.exe

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