Skip to content

Instantly share code, notes, and snippets.

@eyasuyuki
Last active February 6, 2025 01:32
Show Gist options
  • Save eyasuyuki/1d6cd16d4aa9586695ba33b49b30b467 to your computer and use it in GitHub Desktop.
Save eyasuyuki/1d6cd16d4aa9586695ba33b49b30b467 to your computer and use it in GitHub Desktop.
Windows 11でタスクバーを上下左右に表示するJSCript
var WshShell = new ActiveXObject("WScript.Shell");
var FSO = new ActiveXObject("Scripting.FileSystemObject");
var regPath = "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\StuckRects3";
var backupFile = "backup.txt";
// タスクバーの位置を定義(分かりやすい名前)
var taskbarPositions = {
"LEFT": "00", // 左
"TOP": "01", // 上
"RIGHT": "02", // 右
"BOTTOM": "03" // 下(デフォルト)
};
try {
if (FSO.FileExists(backupFile)) {
// 既にバックアップがある場合、元の設定を復元
var file = FSO.OpenTextFile(backupFile, 1);
var originalValue = file.ReadLine();
file.Close();
WshShell.RegWrite(regPath, originalValue, "REG_BINARY");
FSO.DeleteFile(backupFile);
WScript.Echo("タスクバーの位置を元に戻しました。");
} else {
// 現在のレジストリ値をバックアップ
var originalValue = WshShell.RegRead(regPath);
var file = FSO.CreateTextFile(backupFile, true);
file.WriteLine(originalValue);
file.Close();
// ユーザーに選択させる
var userInput = WshShell.Popup(
"タスクバーの位置を選択してください:\n1 - 左 (LEFT)\n2 - 上 (TOP)\n3 - 右 (RIGHT)\n4 - 下 (BOTTOM)",
0, "タスクバーの位置変更", 1
);
// 選択値を変換
var positionMap = {
1: "LEFT",
2: "TOP",
3: "RIGHT",
4: "BOTTOM"
};
if (userInput === null || !(userInput in positionMap)) {
WScript.Echo("無効な入力です。スクリプトを終了します。");
WScript.Quit();
}
var selectedPosition = positionMap[userInput];
var newValue = "00000000 00000000 " + taskbarPositions[selectedPosition] + "000000 00ffffff ffffffff ffffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000";
// レジストリを書き換え
WshShell.RegWrite(regPath, newValue, "REG_BINARY");
WScript.Echo("タスクバーの位置を「" + selectedPosition + "」に変更しました。元に戻すにはこのスクリプトを再実行してください。");
}
// エクスプローラーを再起動
WshShell.Run("taskkill /F /IM explorer.exe", 0, true);
WshShell.Run("explorer.exe", 0, false);
} catch (e) {
WScript.Echo("エラー: " + e.message);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment