LoginSignup
2
1

More than 1 year has passed since last update.

在宅勤務になって作ってみたミニプログラムたち

Posted at

はじめに

本記事は、Code Polaris 2021 Advent Calendar 2021 の21日目の記事です。

思いつきで書き始めたので、公開後も適宜修正をかける可能性があります。

在宅勤務を始めてから作ってみて、我ながら便利だと感じたミニプログラム1 たちを紹介してみます。

自分が使うだけなので、プログラム的に配慮が足りなかったり、よくあるコーディングルールに則ってなかったりするのは承知してます。薄目で見るか、気になるようでしたらコメントでこそっと教えていただけると嬉しいです。

ディスプレイの明るさを切り替えるプログラム

仕事をしているデスクが窓際にあるもんで、時間帯によって日が差し込んだりします。その都度、パソコンのディスプレイの設定を開いて、明るさを調整するのが面倒なので、プログラムで制御できないかな?というのが、最初のニーズです。

それと、私の場合、ディスプレイの明るさは暗め(Windows 10の設定を見ると10でした)が好きですが、たまーに出社して同僚にディスプレイ見せながら話そうと思ったら「暗くない?」って言われて、それでいちいちまた設定開いて・・・というのが面倒というのもありました。

暗くするプログラムで説明します。

display_darker.cmd
powercfg -setacvalueindex 381b4222-f694-41f0-9685-ff5bb260df2e 238c9fa8-0aad-41ed-83f4-97be242c8f20 29f6c1db-86da-48c5-9fdb-f2b67b1f44da 0
powercfg -setdcvalueindex 381b4222-f694-41f0-9685-ff5bb260df2e 238c9fa8-0aad-41ed-83f4-97be242c8f20 29f6c1db-86da-48c5-9fdb-f2b67b1f44da 0
powercfg -setactive 381b4222-f694-41f0-9685-ff5bb260df2e

まず1行目と2行目をMicrosoft社のDocsを参考に、構文的に書き換えると下記の通り。

powercfg /setacvalueindex scheme_GUID sub_GUID setting_GUID setting_index
powercfg /setdcvalueindex scheme_GUID sub_GUID setting_GUID setting_index

オプションの意味は下記の通り。
/setacvalueindex は、電源(ACアダプタ)に接続している時の設定。
/setdcvalueindex は、バッテリ駆動時の設定。

引数は下記の通り。Microsoft社のDocsからつまんできています。

引数名 説明 設定値の調べ方
scheme_GUID 電源設定 GUID コマンドプロンプトで powercfg /list を実行して返ってきた値
sub_GUID 電源設定サブグループ GUID コマンドプロンプトで powercfg /query を実行して返ってきた値の(ディスプレイ)と書かれている項目
setting_GUID 電源設定 GUID コマンドプロンプトで powercfg /query を実行して返ってきた値の(ディスプレイの明るさ)と書かれている項目
setting_index 指定できる値(明るさのレベル) コマンドプロンプトで powercfg /query を実行して返ってきた値の(ディスプレイの明るさ)と書かれている項目
powercfg /query

これで確認してみると、結構たくさんの情報が出力されてきますが、びっくりせず1つ1つ確認しましょう。
明るさはsetting_indexに入れる値を変えることで調整できます。

参考にしたWebサイトは下記の通りです。
Powercfg のコマンドライン オプション
【Windows 7】 powercfg.exeで設定を変更する

プロキシの設定を切り替えるプログラム

ネットワーク環境が在宅と出社で異なるため、プロキシの設定を切り替える必要があって、これもまたいちいち設定を開いて・・・とするのが面倒なので、プログラムを書いたファイルをキックするだけで済ませたいというニーズです。

環境はWindows 10 Proです。

細かい設定もできるのですが、ここではプロキシサーバを使うかどうかの切り替えをするだけに留めます。

proxy_flg.bat
@echo off
set PROXY_FLG=
set /P PROXY_FLG="フラグを入力(1=ON, 0=OFF):"
if %PROXY_FLG% == 1 (
    reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t reg_dword /d 1
) else if %PROXY_FLG% == 0 (
    reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t reg_dword /d 0
)

proxy_flg.bat をダブルクリックすると、下記の標準入力を受け付けます。

C:\Users\XXXXXXXX\Desktop\tools>echo off
フラグを入力(1=ON, 0=OFF):

フラグは、1:プロキシサーバを使う(オン)、0:プロキシサーバを使わない(オフ)という意味です。
最初は、プロキシサーバを使う設定にするプログラムとプロキシサーバを使わない設定にするプログラムとを分けて作っていましたが、set /P で尋ねればいいなと。

ちなみに、プロキシサーバを使わない設定をする方でもreg addを使用しているのには意味があります。プロキシサーバの情報や設定は残しておきたいから。reg deleteもありますが、削除してしまうので。

PROXY_FLGの判定が甘いですね、流用されたい方はこの辺りを修正してお使いください。

参考にしたWebサイトは下記の通りです。
reg コマンド
コマンドでのProxy設定
【Windows 10対応】Windowsのバッチファイルの基本的な使い方

在宅勤務になって作ってみたミニプログラムたち

ほんとはあと1つあるんですが、ちょっと見せられない(エラー処理が雑すぎて・・・)ので、概要をザクッとだけ書いておきます。

会社の勤怠管理システムの「出勤」ボタンをプログラムで押すというものです。PythonでSeleniumを使って、スクレイピングするという、よくあるやつです。

在宅勤務開始時のPCは重かったり、VPNが重かったりしたので、メーラーや社内チャットを立ち上げつつ、裏で出勤処理もしたいというニーズで作ってみたものです。また、バージョンアップさせてマシになったら、投稿するかも・・・。


  1. ミニプログラム:コメント行を含めて100行に満たない、自分が使用するだけのプログラムやコマンドのこと。勝手に命名してます。 

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1