জয়স্টিকের সাথে বাজানোর সময় উইন্ডোজ স্ক্রিন লকটি প্রতিরোধ করুন


12

আমার উইন্ডোজ 7 সিস্টেমটি 20 মিনিটের নিষ্ক্রিয়তার পরে স্ক্রিনটি লক করতে সেট করেছে (এটি একটি কর্মক্ষেত্র-প্রয়োগকারী নীতি; আমি এই সেটিংটি পরিবর্তন করতে পারি না)।

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

জয়স্টিক-ভিত্তিক গেমগুলি ব্যবহার করার সময় পর্দা লক প্রতিরোধের কোনও উপায় আছে কি?

কার্যতাকার হিসাবে, আমি বর্তমানে ভিএলসি ব্যবহার করে ব্যাকগ্রাউন্ডে কিছু এলোমেলো ভিডিও (নিঃশব্দ) খেলছি যা স্ক্রিন লক প্রতিরোধ করে। তবে এই সমস্যাটি হ্যান্ডেল করার আরও ভাল উপায় থাকা উচিত ...

আমি সম্ভবত একটি স্ক্রিপ্ট লিখতে পারি, যা কিছু কীস্ট্রোকের {NUMLOCK}{NUMLOCK}মাধ্যমে অনুকরণ করতে পারে sendkeys। যাইহোক, সর্বদা এটির অনিচ্ছাকৃত পার্শ্ব-প্রতিক্রিয়া হওয়ার সম্ভাবনা থাকে যেমন আমার গেমের বিকল্পগুলিতে আমাকে এই কীগুলি ব্যবহার করা থেকে বিরত রাখা।


হ্যাঁ আপনার পরামর্শ অনুসারে এটি অর্জন করা যেতে পারে। তবে আপনি কী বিদ্যুৎ পরিকল্পনা স্যুইচ করতে পারবেন কিনা তা পরীক্ষা করে দেখেছেন? (পাওয়ার প্ল্যান সেটিংস পরিবর্তন করার পরিবর্তে)) কখনও কখনও হাই পারফরম্যান্স পাওয়ার পরিকল্পনায় শক্তি-সংরক্ষণ বৈশিষ্ট্যগুলি অক্ষম থাকে। এবং এছাড়াও: যদি তারা আপনার পাওয়ার প্ল্যান সেটিংস লক করে রাখে তবে তারা প্রশাসকদের দ্বারা অনুমোদিত নয় এমন সফ্টওয়্যার ইনস্টল করার বা চালানোর দক্ষতাটি কি আনলক করে রেখেছিল?
মিরোক্লাভ

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

ভিডিএল-এর মতো মিডিয়া প্লেয়াররা ভিডিও প্লে করার সময়, স্ক্রিন লক প্রতিরোধের জন্য কি কোনও উইন্ডোজ এপিআই সম্পর্কে জানেন?
আনিসনে

উত্তর:


1

আপনি যখনই কীবোর্ডে একটি কী টিপুন, বা মাউসটি সরিয়ে / ক্লিক করুন, উইন্ডোজ তার নিষ্ক্রিয় টাইমারটি পুনরায় সেট করে । একটি উইন্ডোজ এপিআই ফাংশন রয়েছে যা আপনি কল করতে পারেন যা ঠিক একইভাবে অলস টাইমারটিকে পুনরায় সেট করে। নিয়মিত বিরতিতে ফাংশনটি কল করে, স্ক্রিন-সেভার কখনও সক্রিয় হবে না এবং কম্পিউটারটি কখনও লক হবে না। এটিই ভিএলসি এবং অন্যান্য অ্যাপ্লিকেশনগুলি করে।

ফাংশনটির নামটি SetThreadExecutionStateপাওয়া যায় এবং পাওয়া যায় kernel32.dll। ভিবিতে আসল কলটি এরকম দেখাচ্ছে:

SetThreadExecutionState(ES_SYSTEM_REQUIRED Or ES_DISPLAY_REQUIRED)

দুটি ধ্রুবক হচ্ছে:

ES_SYSTEM_REQUIRED = &H1 এবং ES_DISPLAY_REQUIRED = &H2

আপনি ভিবিএস স্ক্রিপ্ট থেকে এই কলগুলি করতে পারবেন না, তাই এটিকে কোড করার জন্য আপনার আরও কিছু উন্নত প্রয়োজন need

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

যাইহোক, আমি খুব বেশি খনন করেছি। এই জাতীয় জিনিস স্ট্যাক ওভারফ্লোতে অন্তর্ভুক্ত।


0

SetThreadExecutionStateপাইথনের সিটিপস মডিউল দ্বারা সরবরাহিত হিসাবে আপনি ফাংশনটি ব্যবহার করতে পারেন , স্ট্যান্ডেলোন পাইথন অ্যাপ্লিকেশনটির অংশ হিসাবে আপনি পটভূমিতে চালাতে পারেন এবং Ctrl + C দিয়ে প্রস্থান করতে পারেন। (এই ফাংশনটির ব্যাখ্যার জন্য ব্যাখ্যাটির জন্য @ Misha256 এর উত্তরের জন্য ধন্যবাদ!)

import ctypes
from time import sleep

ES_CONTINUOUS        = 0x80000000
ES_SYSTEM_REQUIRED   = 0x00000001

# CONTINUOUS repeats the action until the application closes,
# SYSTEM_REQUIRED 'forces the system to be in the working state by resetting the system idle timer.'
ctypes.windll.kernel32.SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED)

# wait until broken
while True:
    # attempt to run the following code
    try:
        sleep(1) # thanks @anishsane
    except(KeyboardInterrupt): # catch a Ctrl+C
        break # stop waiting

আমি উইন্ডোজের জন্য এই স্ক্রিপ্টটি তৈরি করেছি। এখানে গিটহাব প্রকাশের পৃষ্ঠাটি দেখুন ।


1
0স্থানধারক হিসাবে পরিবর্তে, মানক উপায় pass
আনিসনে

1
এছাড়াও, পাসের পরিবর্তে কিছুটা ঘুম রাখা ভাল। অন্যথায়, এটি ব্যস্ত-অপেক্ষা এবং সিপিইউ গ্রাস করবে। এমনকি আপনি সেখানে কয়েক ঘন্টা ঘুমাতে পারেন।
আনিসনে

0

শুধু নামে একজন ফাইলটি রান: no_sleep.vbs। এই পাঠ্য ফাইলটিতে no_sleep.vbsনীচের পাঠ্য বিষয় থাকা উচিত।
কীভাবে একটি ফাঁকা পাঠ্য ফাইল তৈরি করবেন এবং এর এক্সটেনশনটির নতুন নাম কীভাবে করবেন তা অনুগ্রহ করে গুগল করুন।

set wsc = CreateObject("WScript.Shell")
Do
   'Five minutes
    WScript.Sleep(5*60*1000)
    wsc.SendKeys("{F13}")
Loop

কী F13 গেম বিকল্পগুলির সাথে হস্তক্ষেপ করা উচিত নয়


হুম। কাজ করতে পারে.
আনিসনে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.