স্ক্রিনগুলি ক্যাচিং করা / চালু এবং স্ক্রিপ্ট বা প্রোগ্রামটি যখন ঘটে তখন চলছে


4

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

এখন পর্যন্ত আমি ইভেন্টগুলি 4802 (স্ক্রিনসেভার স্টার্ট) এবং 4803 (স্ক্রিনসেভার স্টপ) ধরতে এবং টাস্ক শিডিয়ুলার এবং কার্ল স্ক্রিপ্টটি ব্যবহার করে লাইটগুলি পরিচালনা করে এমন মেশিনে HTTP অনুরোধটি ফায়ার করতে, এবং এটি কিছুটা কাজ করে works

সমস্যাটি হ'ল যখনই মেশিনটি নিম্ন বিদ্যুতের স্থানে প্রবেশ করে তখন স্ক্রিনসভারটি মারা যায় এবং 4803 লগ হয় এবং আমি ইউজার ইনপুট দ্বারা বা উইন্ডো দ্বারা স্বল্প শক্তি অবস্থায় প্রবেশ করার পরে স্ক্রিনসেভার মারা যাওয়ার মধ্যে পার্থক্য করতে পারি না।

মূলত আমার কিছু ইভেন্টগুলি ধরা দরকার যা স্ক্রিনগুলি বন্ধ হয়ে গেলে চালু হয়। কিছু আছে (জেনেরিক win7 ইনস্টলেশন মধ্যে) আমি কাজটি আটকাতে পারি?

ধন্যবাদ।

সম্পাদনা করুন:

আমি ইতিমধ্যে এই প্রশ্নের উত্তর দিয়ে এমন লোকদের কাছে ক্ষমা চাইছি, আমার প্রশ্নটি যথেষ্ট পরিমাণে পরিষ্কারভাবে উচ্চারণ করা হয়নি। প্রশ্নযুক্ত মেশিনটি আসলে ঘুমের রাজ্যে প্রবেশ করে না, তাই ইভেন্ট লগগুলিতে কোনও ইভেন্ট 42 (কার্নেল-পাওয়ার) বা ইভেন্ট 1 (পাওয়ার-সমস্যা সমাধানকারী) তৈরি হয় না, মেশিনটি কেবলমাত্র একরকম নিম্ন-শক্তি অবস্থায় প্রবেশ করে যেখানে এটি গ্রাস করে 53W, পরিবর্তে সাধারণ 180W এর পরিবর্তে, যখন আমি এই নির্দিষ্ট একটি মেশিনের পাওয়ারের অবস্থাটি ট্র্যাক করতে এটি ব্যবহার করতে পারি, আমি ঘরে অন্যান্য 3 কম্পিউটারের জন্য সনাক্তকরণের একই পদ্ধতিটি ব্যবহার করতে সক্ষম হব না, যেহেতু তাদের কাছে নেই প্রয়োজনীয় হার্ডওয়্যার (ইউপিএস) তাদের সাথে সংযুক্ত রয়েছে।

আমি যা খুঁজছি তা হ'ল উইন্ডোজ শক্তি পরিচালনার ফলে কম্পিউটারের মনিটরগুলি যখন উইন্ডোজ দ্বারা চালিত হয় এবং পিছনে ফিরে আসে (তাদের নিজ নিজ পাওয়ার বোতামগুলির দ্বারা নয়)) মূলত এমন কিছু যা আমাকে মনিটরের রাজ্যের সাথে গুহার আলোগুলিকে সিঙ্ক্রোনাইজ করতে এবং টাস্ক শিডিয়ুলারকে লাইটগুলি সামাল দেয় এমন স্ক্রিপ্ট বন্ধ করার অনুমতি দেয়।



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

আমার সমস্যাটি হ'ল আমাকে এটি 4 টি পৃথক কম্পিউটারে কাজ করা দরকার, এবং শেষ পর্যন্ত 6, প্রতিটি নিজস্ব আলো নিয়ন্ত্রণ করে, আমি সত্যিই কেবল এটি করার জন্য পটভূমিতে বাসিন্দা চালানো এড়াতে চেয়েছিলাম। এবং আমি আমার ক্রেজি আইডিয়াগুলির ভাগ ছিলাম ... ভিডিও সিগন্যালের উপস্থিতি (বা অনুপস্থিতি) সনাক্ত করার জন্য ভিডিও তারের চারপাশের তামাটের কুণ্ডুলির মতো .. তবে এটি নখ সমাপ্তির উপর স্লেজ হাতুড়িটি ব্যবহার করার মতো, আরও ভাল সমাধান করতে হবে - কোথাও, চতুর কিছু , হতে পারে একটি পরিষেবা যা মনিটরগুলি বন্ধ হয়ে গেলে বন্ধ হয়ে যায়, এবং যখন আবার চালু হয়, তখন যথেষ্ট চালাক কিছু আমি এর জন্য কখনই ভাবি না ...
ডিঙ্গো

দেখে মনে হচ্ছে আপনার কাছে একটি হার্ডওয়্যার সমাধানের জন্য দৃ pre অগ্রাধিকার রয়েছে তবে ডাব্লুএমআই এর উইন 32_ কম্পিউটার কম্পিউটার সিস্টেম P পাওয়ার স্টেট বা উইন 32_পাওয়ারমিটার সহায়তা করতে পারে। আরো দেখুন Win32_PowerMeterEvent , যা আপনি প্রোগ্রামেটিক্যালি পোলিং ছাড়া ক্ষমতা মিটার পরিবর্তন সাড়া ব্যবহার করতে পারেন।
জেভ স্পিটজ

আপনি দেখেছ এই ?
জেভ স্পিটজ

উত্তর:


2

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

সংক্ষিপ্ত বিবরণ

  • "নিষ্ক্রিয়" উইন্ডোজ নির্ধারিত টাস্কটি "নিষ্কলুষ" স্ক্রিপ্টটি ট্রিগার করে এবং কম্পিউটার শুরুর আগে অবধি অপেক্ষা করতে শর্ত ট্যাবটিতে অন্তর্নির্মিত বিকল্পগুলি ব্যবহার করে এবং / যদি কম্পিউটারটি নিষ্ক্রিয় হয়ে থেকে যায় তবে / যদি বন্ধ হয়ে যায়।
  • "নিষ্ক্রিয়" স্ক্রিপ্টটি "ওয়াচচার" স্ক্রিপ্টটি ট্রিগার করে, আপনার নির্বাচিত ক্রিয়া গ্রহণ করে (ম্লান আলো) তারপরে প্রস্থান করার জন্য এক্সপ্লোরার.অ্যাক্সেসের অপেক্ষায় চলতে থাকে, যা কখনই ঘটবে না (হওয়া উচিত)।
  • "নজরদারি" স্ক্রিপ্টটি "নিষ্ক্রিয়" স্ক্রিপ্টের জন্য প্রক্রিয়াটি আবিষ্কার করে এবং এর ক্রিয়াটি শেষ করার আগে প্রস্থান করার জন্য অপেক্ষা করে (লাইটগুলি আবার চালু করুন)।

ঘটনার মূল পথ

  1. "নিষ্ক্রিয়" কাজটি প্রতি 1 মিনিটে চালানোর চেষ্টা করে তবে কেবল তখনই চলবে যদি পিসি আপনার নির্বাচিত সময়ের জন্য অলস থাকে।
  2. "অলস" টাস্কটি "নিষ্ক্রিয়" স্ক্রিপ্টটি চালায়। স্ক্রিপ্টটি "প্রহরী" স্ক্রিপ্টটিকে ট্রিগার করে, আপনার নির্বাচিত ক্রিয়া (ম্লান আলো) শুরু করে এবং তারপরে এক্সপ্লোরার এক্সেক্সের অপেক্ষা করার জন্য "অপেক্ষার প্রক্রিয়া" সেন্টিমিডলেট ব্যবহার করে, যা উইন্ডোজ স্থিতিশীল বলে ধরে নি এবং কখনও ঘটতে হবে না, এবং এরপরে চলতে থাকবে যতক্ষণ না পিসি অলস থাকে।
  3. "প্রহরী" স্ক্রিপ্টটি শুরু হয় এবং প্রস্থান করার জন্য "অলস" স্ক্রিপ্টটির প্রক্রিয়া দেখায়।
  4. ব্যবহারকারী ইনপুট পিসিকে নিষ্ক্রিয় অবস্থা থেকে বেরিয়ে আসে এবং "অলস" টাস্কটিকে হত্যা করে, সুতরাং "নিষ্ক্রিয়" স্ক্রিপ্টটির পাওয়ারশেল.এক্সে প্রক্রিয়াটিকে হত্যা করে।
  5. "প্রহরী" স্ক্রিপ্টটি "নিষ্ক্রিয়" স্ক্রিপ্ট প্রক্রিয়াটি প্রস্থান করতে দেখে লাইটগুলি আবার চালু করে এবং তারপরে প্রস্থান করে।

সেটআপ

  1. আপনার স্ক্রিপ্ট ফোল্ডার তৈরি করুন যা উভয় স্ক্রিপ্ট থাকবে।
  2. আপনার নতুন ফোল্ডার ফোল্ডারে এক্সিকিউটযোগ্য পাওয়ারশেলটি অনুলিপি করুন:

    "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" >>>> C:\scripts\dimlights\
    
  3. "আইডেল.পিএস 1" তৈরি করুন এবং স্ক্রিপ্টে আটকান। স্ক্রিপ্টের প্রথম লাইনে, আপনার ফোল্ডারটি স্ক্রিপ্ট এবং পাওয়ারশেল.এক্সপির অনুলিপি সহ নির্দিষ্ট করুন:

    $myScriptDir = "C:\scripts\dimlights\"
    #============= Variables ==================
    $logfile = join-path $myScriptDir log.txt
    $nid = (Get-Process explorer).Id
    $mydate = Get-date
    
    #============= Code ==================
    start-process powershell.exe -argumentlist "-NonInteractive –ExecutionPolicy Bypass -file $myScriptDir\watcher.ps1"
    echo "$mydate - PID: $nid - Idle start action" | out-file -Append $logfile
    #----------------Insert chosen action code here----------------
    Wait-Process $nid
    

    $ mydate = গেট-ডেট প্রতিধ্বনি "$ mydate - PID: $ nid - নিষ্ক্রিয়তার শেষ লাইনটি পৌঁছানো উচিত ছিল না।" | আউট-ফাইল -এপেন্ড করুন $ লগফাইলে

  4. একই ফোল্ডারে "ওয়াচার.পিএস 1" তৈরি করুন এবং স্ক্রিপ্টে পেস্ট করুন, ফোল্ডারটি আবার নির্দিষ্ট করে:

    $myScriptDir = "C:\scripts\dimlights\"
    #============= Variables ==================
    $myPSPath = join-path $myScriptDir powershell.exe
    $logfile = join-path $myScriptDir log.txt
    $nid = (Get-Process powershell | Where-Object {$_.path -eq $myPSPath}).id
    $mydate = Get-date
    
    #============= Code ==================
    echo "$mydate - PID: $nid - Watcher started" | out-file -Append $logfile
    if ($nid -ne $null){
    Wait-Process -id $nid
    $mydate = Get-date
    echo "$mydate - PID: $nid - Watcher end action" | out-file -Append $logfile
    #---------------- Insert chosen wake up action code here ----------------
    }
    else {
    echo "$mydate - PID: $nid - No such process, exiting watcher." | out-file -Append $logfile
    

    }

  5. অ্যাডমিন হিসাবে টাস্ক শিডিয়ুলার খুলুন এবং "অলস" টাস্ক তৈরি করুন;

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

      -অ্যাক্সিউশন পলিসি বাইপাস-ফাইল "সি: rip স্ক্রিপ্টস \ idle.ps1"

    • শর্তাবলীর ট্যাবে যান এবং অকার্যকর হলেই আপনার বাছাই করা সময়টির অলস সময়টি সেট করে শুরু করতে বাক্সটি চেক করুন।

    • নিষ্ক্রিয় বিভাগের অধীনে অন্য দুটি বাক্স পরীক্ষা করে দেখুন "কম্পিউটার যদি নিষ্ক্রিয় হয়ে পড়ে তবে বন্ধ করুন", এবং "নিষ্ক্রিয় অবস্থা পুনরায় শুরু হলে পুনরায় চালু করুন"।
    • নির্ধারিত কাজটি সংরক্ষণ এবং বন্ধ করতে "ঠিক আছে" ক্লিক করুন।

আশা করি কেউ এই কাজে লাগবে!

টিম


আমি লাইট বন্ধ হওয়া উচিত কিনা তা নির্ধারণ করার জন্য জিনিসের সংমিশ্রণটি ব্যবহার করে শেষ করেছি, ইভেন্ট 4802 স্ক্রিপ্ট ফায়ারগুলিকে 25% কমিয়ে দেয়, একই সাথে ইউপিএস প্রতি 10 সেকেন্ডে বিদ্যুতের ব্যবহারের জন্য পোল হয়ে যায় যতক্ষণ না ড্রটি 65 ওয়াটের নীচে নেমে যায় (এই কম্পিউটারে মনিটরের সাথে নিষ্ক্রিয় অবস্থায় 61 ওয়াট আঁকুন), তারপরে লাইটগুলি বন্ধ থাকে। পর্দাগুলি আসা এবং লাইট চালু হওয়ার মধ্যে দেরি হ্রাস করতে আমার সমস্যা হয়েছিল তবে আমি মনে করি যে আপনার পদ্ধতির সাথে এটি কীভাবে মোকাবেলা করা যায় তা আমাকে একটি নতুন ধারণা দেয়। ধন্যবাদ :)
ডিঙ্গো

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

হ্যাঁ, প্রতিটি মনিটর প্রায় 15 ওয়াট আঁকেন এবং সেগুলি একই সাথে উপস্থিত হয়। মধ্যরাতে উইন্ডোজ আপডেট হওয়ার ঘটনা এবং লাইটগুলিকে ট্রিগার করা বর্ধিত বিদ্যুতের খরচ বাদ দেওয়ার জন্য এটি পাওয়ার ড্র (~ 60W) এর যথেষ্ট পরিমাণ বৃদ্ধি।
ডিঙ্গো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.