はじめに
Windows 11には、タスクバーに秒数を表示するオプションができた。それを切り替えやすくするバッチを組んだので、共有する。
内容
メモ帳を起動して以下の内容をコピーしメモ帳に貼り付ける。名前をToggleSystemClockSeconds.batとして保存する。
@echo off
reg query HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v ShowSecondsInSystemClock | find "0x0"
if %ERRORLEVEL%==0 (
goto Set_1
) else if %ERRORLEVEL%==1 (
goto Set_0
)
:Set_1
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v ShowSecondsInSystemClock /t REG_DWORD /d 0x1 /f
exit /b
:Set_0
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v ShowSecondsInSystemClock /t REG_DWORD /d 0x0 /f
exit /b
これをダブルクリック等で実行するとタスクバーの秒数表示が切り替わる。
やってることは単純で、HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
というレジストリのキーにあるShowSecondsInSystemClock
という値の0と1を切り替えているだけである。
何のレジストリかというと、
ここである。
これだけだとつまらないが、ショートカットファイルを作るととても便利になる。
適当なショートカットキーを設定。実行時の大きさを最小化とすると、ショートカットキーを押すだけで秒数表示が切り替わる。便利。
おわりに
標準機能で秒数を簡単に(一時的に)確認できました。
付録
ショートカットを作るバッチ
@if(0)==(0) echo off
cscript.exe //nologo //E:JScript "%~f0" %*
goto :EOF
@end
// メイン処理
function main() {
var shortcut = null;
try {
// ショートカットを作成する
shortcut = new ShortcutCreater();
shortcut.create();
// 作成したショートカットをコンソールに出力する
Console.println("ショートカットを作成しました");
Console.println(shortcut);
} catch (e) {
// 例外原因をコンソールに出力する
Console.println("[error occured]: " + e.description);
// 異常終了でコマンドを返す
Console.back(e.number);
} finally {
// WSHオブジェクトを片付ける
if (shortcut !== null)
shortcut.cleanup();
}
// 正常終了でコマンドを返す
Console.back(0);
}
// コンソール汎用クラス
var Console = ((function() {
var constructor = function() {}
constructor.println = echoConsole;
constructor.back = exitScript;
return constructor;
})())
// ショートカットを作るクラス
var ShortcutCreater = function() {
this.wshObj = openWsh();
this.file = this.wshObj.SpecialFolders("Desktop") + "\\秒数表示切替.lnk";
this.link = "%USERPROFILE%\\Downloads\\ToggleSystemClockSeconds.bat";
this.hotkey = "Ctrl+Shift+C";
this.winStyle = 7;
this.desc = "システム トレイの時計の秒表示を切り替える";
this.icon = "%SystemRoot%\\System32\\SHELL32.dll,249";
this.create = createShortcut;
this.cleanup = closeWsh;
this.toString = createrToString;
}
// ----- 以降関数群 -------
function createShortcut() {
var lnkFile = this.wshObj.CreateShortcut(this.file);
lnkFile.TargetPath = this.link;
lnkFile.Hotkey = this.hotkey;
lnkFile.WindowStyle = this.winStyle;
lnkFile.Description = this.desc;
lnkFile.IconLocation = this.icon;
lnkFile.Save();
}
function createrToString() {
return "file=\"" + this.file + "\", linkTo=\"" + this.link + "\"";
}
function openWsh() {
return WScript.CreateObject("WScript.Shell");
}
function closeWsh() {
this.wshObj = null;
}
function echoConsole(msg) {
WScript.echo(msg);
}
function exitScript(errNum) {
WScript.Quit(errNum);
}
// メイン処理呼び出し
main();
参考
以下の記事のバッチをベースに改変しました。
https://qiita.com/y-takano/items/b94312abc17159dce8be