ব্যাটারি স্তর পরিবর্তনের জন্য উইন্ডোজ ইভেন্ট আইডি


9

আমাকে ব্যাটারি স্তর পরিবর্তনের উপর ভিত্তি করে টিএসে একটি টাস্ক তৈরি করতে হবে। ধরা যাক আমার ব্যাটারি 67% থেকে 66% এ নেমে গেছে । আমি কীভাবে এই ইভেন্টের উপর ভিত্তি করে কোনও কাজ চালাতে পারি। উইন্ডোজ কি আদৌ এটি লগ করে? আমি এই তথ্য কোথাও খুঁজে পাইনি।


উইন্ডোজ কোন সংস্করণ?
ডেভিডপস্টিল

উইন্ডোজ 10 (এবং আরও পছন্দসই
ডাব্লু

উত্তর:


11

ব্যাটারি স্তর পরিবর্তনের উপর ভিত্তি করে আমাকে টাস্ক শিডিয়ুলারে একটি টাস্ক তৈরি করতে হবে

উইন্ডোজ ইভেন্ট হিসাবে এই ধরণের বিবরণ লগ না। তবে আপনি নীচের ব্যাচ ফাইলের মতো কিছু ব্যবহার করতে পারেন এবং একটি কাস্টম ইভেন্ট তৈরি করতে পারেন।


Battery.cmd

এই ব্যাচ ফাইলটি বর্তমান ব্যাটারি শতাংশের চার্জ পর্যবেক্ষণ করে এবং ব্যবহারকারী নির্ধারিত প্রান্তিক মানের নীচে চার্জটি নামলে ব্যবহারকারী নির্ধারিত ইভেন্ট তৈরি করে।

@echo off
setlocal EnableDelayedExpansion
rem set threshold value
set _threshold=82
:start
rem get the battery charge
rem use findstr to strip blank lines from wmic output
for /f "usebackq skip=1 tokens=1" %%i in (`wmic Path Win32_Battery Get EstimatedChargeRemaining ^| findstr /r /v "^$"`) do (
  set _charge=%%i
  echo !_charge!
  if !_charge! lss !_threshold! (
    echo threshold reached
    rem create a custom event in the application event log
    rem requires administrator privileges 
    eventcreate /l APPLICATION /t WARNING /ID 999 /D "Battery charge has dropped"
    goto :done
    ) else (
    rem wait for 10 minutes then try again
    timeout /t 600 /nobreak
    goto :start
    )
  )
:done
endlocal

মন্তব্য:

  • Eventcreateএবং সহ উইন্ডোজ 10 পর্যন্ত Windows XP তে কমান্ড কাজ, এটা কাজ প্রশাসকের প্রাধিকার প্রয়োজন
  • _thresholdপ্রয়োজনীয় হিসাবে সেট করুন
  • ব্যাটারি যদি এই মানের নীচে পড়ে তবে আইডি সহ একটি ইভেন্ট 999বর্ণনার সাথে অ্যাপ্লিকেশন ইভেন্ট লগে উত্পন্ন হবেBattery charge has dropped
  • eventcreateআপনার পরিস্থিতির জন্য প্রয়োজনীয় কমান্ডটি পরিবর্তন করুন ।
  • timeoutআপনার পরিস্থিতির জন্য প্রয়োজনীয় হিসাবে বিলম্ব পরিবর্তন করুন ।

উদাহরণ আউটপুট:

আমার ব্যাটারির বর্তমানে চার্জ রয়েছে 81%। আমি প্রান্তিকতা সেট 82। আমি দৌড়ানোর সময় যা ঘটে তা এখানে Battery.cmd:

> battery
81
threshold reached

SUCCESS: An event of type 'WARNING' was created in the 'APPLICATION' log with 'EventCreate' as the source.

এবং ইভেন্ট লগতে এখানে নতুন এন্ট্রি রয়েছে:

এখানে চিত্র বর্ণনা লিখুন


ইভেন্টক্রিট সিনট্যাক্স

EVENTCREATE [/S system [/U username [/P [password]]]] /ID eventid
            [/L logname] [/SO srcname] /T type /D description

Description:
    This command line tool enables an administrator to create
    a custom event ID and message in a specified event log.

Parameter List:
    /S    system           Specifies the remote system to connect to.

    /U    [domain\]user    Specifies the user context under which
                           the command should execute.

    /P    [password]       Specifies the password for the given
                           user context. Prompts for input if omitted.

    /L    logname          Specifies the event log to create
                           an event in.

    /T    type             Specifies the type of event to create.
                           Valid types: SUCCESS, ERROR, WARNING, INFORMATION.

    /SO   source           Specifies the source to use for the
                           event (if not specified, source will default
                           to 'eventcreate'). A valid source can be any
                           string and should represent the application
                           or component that is generating the event.

    /ID   id               Specifies the event ID for the event. A
                           valid custom message ID is in the range
                           of 1 - 1000.

    /D    description      Specifies the description text for the new event.

    /?                     Displays this help message.


Examples:
    EVENTCREATE /T ERROR /ID 1000
        /L APPLICATION /D "My custom error event for the application log"

    EVENTCREATE /T ERROR /ID 999 /L APPLICATION
        /SO WinWord /D "Winword event 999 happened due to low diskspace"

    EVENTCREATE /S system /T ERROR /ID 100
        /L APPLICATION /D "Custom job failed to install"

    EVENTCREATE /S system /U user /P password /ID 1 /T ERROR
        /L APPLICATION /D "User access failed due to invalid user credentials"

আরও পড়া


আমি সত্যিই এটি পছন্দ করি! আপনার পিওভি থেকে, ইভেন্টগুলি তৈরি করা এবং ইভেন্ট ভিত্তিক টাস্ক চালানো ভাল (যেমন পিএস স্ক্রিপ্ট)? বা ... আমার পিএস স্ক্রিপ্টটি চালানোর জন্য এই স্ক্রিপ্টটি সংশোধন করুন, যদি ব্যাটারির স্তর 1% হ্রাস পায়। আমি ধরে নিয়েছি উইন্ডোজ ব্যাটারি স্তর পরিবর্তনের জন্য ইভেন্ট তৈরি করছে। আমি এই পদ্ধতির বিষয়ে ভাবি নি, এটি আরও ভাল হতে পারে।
রিডলমেটি এই

1
@ মিহাহা আপ আপনার উপর যা বোঝার এবং বজায় রাখা সবচেয়ে সহজ :)
ডেভিডপস্টিল


6

আইডি 13 Microsoft-Windows-Batteryসহ BatteryPercentRemainingইভেন্ট সহ একটি ETW সরবরাহকারী রয়েছে You আপনি এই প্রকল্পটির কোড করতে পারেন যা এই সরবরাহকারীর জন্য রিয়েলটাইম শ্রোতা তৈরি করতে ট্রেসইভেন্ট ব্যবহার করে । ইভেন্টটি স্থিতিটি দেখানোর জন্য এবং পরিবর্তনটি দেখার জন্য এন্ট্রি দেয় :Microsoft-Windows-BatteryRemainingPercentagePercentageChange

এখানে চিত্র বর্ণনা লিখুন

আপনি যখন এই ইভেন্টটি দেখেন এবং এর -1জন্য পরিবর্তনটি দেখেন PercentageChange, আপনি চান এমন প্রোগ্রামটি চালান।


2

ঠিক আছে, ডেভিডপস্টিলের সরবরাহিত স্ক্রিপ্টটি কাজ করে না। এটি দুর্দান্ত ছোট স্ক্রিপ্ট, তবে কোডটি ভুল বা পুরানো।

এখানে স্থির একটি:

@echo off
setlocal EnableDelayedExpansion
rem set threshold value
set _threshold=30
:start
rem get the battery charge
rem use findstr to strip blank lines from wmic output
for /f "usebackq skip=1 tokens=1" %%i in (`wmic Path Win32_Battery Get EstimatedChargeRemaining ^| findstr /r /v "^$"`) do (
  set _charge=%%i
  echo !_charge!
  if !_charge! lss !_threshold! (
    echo threshold reached
    rem create a custom event in the application event log
    rem requires administrator privileges
    eventcreate /l APPLICATION /t WARNING /ID 999 /D "Battery charge has dropped below the threshold."
    goto :done
  ) else (
    rem wait for 1 minute then try again
    timeout /t 60 /nobreak
    goto :start
  )
)
:done
endlocal

আমি ডেভিডপস্টিলের উত্তরে এই সম্পাদনার পরামর্শ দিয়েছি, তবে কেন এটি অনুমোদিত হয়নি তা আমি জানি না ...


তিনি আমাকে সঠিক ট্র্যাকের উপরে দাঁড়ালেন, এজন্যই আমি তাঁর উত্তরটি গ্রহণ করেছি, তবে আপনাকে অনেক ধন্যবাদ! আপনার নির্দিষ্ট স্ক্রিপ্ট জন্য।
রিডলমেটি এই

কোডটি ঠিক করার সময়, আমি বুঝতে পেরেছিলাম যে এটি কতটা বগি এবং ভুল findstr! ... উপায় খুব খারাপ! সিরিয়াসলি, মাইক্রোসফ্ট? কাজটি করার জন্য আমি ডেভিডপস্টিলের নোংরা ছোট্ট হ্যাক দেখে মুগ্ধ।
আনিসআহমেড 777

0

ব্যাটারির স্তর চেক করার জন্য আরও অনেক সহজ উপায় রয়েছে। নেভিগেশন অঞ্চলে কেবল ব্যাটারি আইকনটির উপরে মাউস রাখুন এবং এটি একটি শতাংশ দেবে।


হ্যাঁ, তবে সত্যিই আমি যা চাইছিলাম তা তা নয় ... আমি ব্যাটারি স্তরটি স্বয়ংক্রিয়ভাবে নিরীক্ষণ করতে চেয়েছিলাম এবং ব্যাটারি স্তরের উপর ভিত্তি করে কিছু জিনিস (আবার স্বয়ংক্রিয়ভাবে) করতে পারি
রিডলমেট এই

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