web-dev-qa-db-ja.com

Windows 10の「カラーフィルター」機能をプログラムでスクリプト化する方法はありますか?

GoogleがAndroid 9と一緒にリリースした新しい「デジタルウェルビーイング」機能をエミュレートするようにWindows10を取得しようとしています。基本的には夜間に画面をグレースケールに変更してインセンティブを与えようとしています人々は彼らの電話を降りて眠りにつく。

Windows 10の「カラーフィルター」機能(カラープロファイルをグレースケールに設定することもできます)を知ったとき、これをスクリプト化するのは簡単かもしれないと思いましたが、これを行う方法を見つけることができないようです。スクリプトを直接作成します。

現時点では、基本的に電源を入れて動作させています Win+Ctrl+C ホットキーを切り替え、基本的にこれらのキーを押してショートカットをトリガーするAutoHotkeyスクリプトを実行するようにスケジュールされたタスクを設定します。これは問題なく機能しますが、ショートカットキーを無効のままにして、誤って押してしまわないようにするか、この機能を無効にする(そして「デジタルウェルビーイング」効果を弱める)簡単な方法を用意したいと思います。また、スクリプトには、設定の状態が何であるかを知る方法がありません。 2回実行すると、元に戻ります。現在、機能の設定を解除するためのスクリプトを作成したマシンはありませんが、そのためのタスクを作成し、夜間のトリガーの前にマシンをシャットダウンすると、午前中にグレースケールになる可能性があります。

私の質問は、ショートカットキーに依存せずに、「カラーフィルターをオン」または「カラーフィルターをオフ」に直接(PowerShell、Batch、VBSなどを介して)明示的に設定できる方法があるかどうかを尋ねることです。そしてできればそれは切り替わりませんか?

4
Nakamura2828

だから私は同じことを試みていて、プログラムで簡単にトリガーできるグレースケールモードで https://zerowidthjoiner.net/negativescreen を使用することになりました。


それを試す前に、私は何か面白いことに遭遇しました。レジストリエントリを設定して、カラーフィルタリングを有効にしようとしました。

 [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Accessibility]
"Configuration"="colorfiltering"

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig]

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\colorfiltering]
"Active"=dword:00000001
"FilterType"=dword:00000000

[HKEY_CURRENT_USER\Software\Microsoft\ColorFiltering]
"HotkeyEnabled"=dword:00000001
"Active"=dword:00000001
"FilterType"=dword:00000000

設定が適用されていないため、これは単独では機能しません。興味深いことに、UACポップアップをトリガーすると、カラーフィルターが適用されます。だから

powershell Start-Process cmd.exe -Verb RunAs

設定はプログラムで適用できます。ただし、実際のUACポップアップが生成されるため、このソリューションはひどいものです。

ただし、ウィンドウの再描画を強制する別の方法(またはUACを開いたときに何が起こるか)を知っている人は、変更した設定をプログラムで適用できるはずです。

3
user1165115