web-dev-qa-db-ja.com

バッテリー電源を抜いたり抜いたりしたときにラップトップ画面の明るさが変化しないようにする方法

ラップトップを使用しているときは、部屋の照明条件(窓からの光の量など)に基づいて、画面の明るさを絶えず調整しています。しかし、ラップトップを取り外したり、再度接続したりすると、Windowsは電源プロファイルのデフォルトの明るさ設定を「バッテリー使用時」または「プラグインされた状態」で調べ、それに応じて明るさを変更します。これは不快な経験であり、仕事を続けるのではなく、現在の状況に理想的な明るさを再び突き詰める必要があります。

バッテリーの抜き差しが画面の明るさを調整するきっかけにならないようにしたいのですが。画面の明るさが変わるのは、自分で調整したときだけです。これがどのように達成されるかを誰かが知っていますか?

編集:Windows VistaとWindows 7の両方でこの問題が発生しました。

23
Nomad

さて、数時間の脳のエクササイズの後、このPowerShellスクリプトを作成しました。

while($true)
{

$a = Get-WmiObject -ns root/wmi -class wmiMonitorBrightNess
$a1 = $a.Currentbrightness

$b = Get-WmiObject -ns root/wmi -class batterystatus
$b1 = $b.poweronline

start-sleep 1

$b = Get-WmiObject -ns root/wmi -class batterystatus
$b2 = $b.poweronline

If ($b2 -ne $b1)
{
$c = Get-WmiObject -ns root/wmi -class wmiMonitorBrightNessMethods
$c.WmiSetBrightNess(0,$a1)
}

}

メモ帳にコピーして、「。ps1」拡張子を付けて保存します。

それが何をするか、それは頻繁に接続されているかどうか電源状態をチェックします。電源状態が変更されると、以前の輝度値に戻ります。

Win8.1を搭載したラップトップでこれをテストしましたが、正常に動作します。

  • start-sleepの値を変更して応答性を調整できます(現在は1秒です)。

  • このスクリプトを実行するには、Powershell実行ポリシーをデフォルトから変更する必要があります。

  • このスクリプトは単なる理論上の例であり、実際にはPowerShellウィンドウが開いたままになり、一部のユーザーにとって問題になる可能性があります。ウィンドウを非表示にする方法については説明していません。

7
DrNT007

私はNomadとDrNT007のソリューションが同じように機能するのと同じ問題に腹を立てていました。

私はpowershellウィンドウを非表示にするためにネットで少し検索し、 this thread に到達しました ser2656928の解決策 私に最適です:次のコードをDrNT007のスクリプトの上部とpowershellウィンドウが一瞬表示されてから消えます。

$t = '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);'
add-type -name win -member $t -namespace native
[native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle, 0)

次に、スクリプトをWindowsのスタートアップフォルダーに入れたいのですが、エラーが発生しました。私は間違いなく初心者で、試行錯誤によってこの問題を解決しました:スクリプト名(およびそのパス、私は推測します)にスペースを含めてはいけないことがわかりましたが、それでも直接エラーが発生する理由がわかりませんスタートアップウィンドウに配置します...とにかく、私はそれをwindowsフォルダーに配置し、スタートアップフォルダーにショートカットしました。このように、Windows 8.1では、魅力のように動作します。

4
Jacopo Irace

windows 7

コントロールパネル\ハードウェアとサウンド\電源オプション\プラン設定の編集\

バッテリーまたはプラグイン

0
Logman