0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows 11でPS5 DualSenseの電源をワンボタンで切る方法(AutoHotkey + PowerShell)

0
Last updated at Posted at 2025-12-13

はじめに

PS5のDualSenseコントローラーをWindowsにBluetooth接続して使っていると、コントローラーの電源を切るのが面倒です。コントローラー側にはPCとの接続を切断するボタンがなく、放置してバッテリーが切れるのを待つか、Windowsの設定画面からBluetoothをOFF/ONするしかありません。

この記事では、F13キー(または任意のキー)一発でDualSenseの電源を切る方法を紹介します。

仕組み

WindowsのBluetooth無線をOFF→ONすることで、DualSenseとの接続を切断します。DualSenseはBluetooth接続が切れると自動的に電源OFFになります。他のBluetoothデバイス(マウス、キーボードなど)は500ms後に自動で再接続されます。

必要なもの

  • Windows 11
  • AutoHotkey v2
  • F13キーを送信できるデバイス(Elgato Stream Deck、プログラマブルキーボードなど)

※ F13以外のキーでも可

F13キーを送信できるデバイスの例:FiiO KB1

私は FiiO KB1 というUSBマルチメディアコントローラーを使っています。3つのボタンとダイヤルがあり、専用ソフトウェアでキーを自由に割り当てられます。

FiiO KB1の設定画面

右のボタンに「Keyboard F13」を割り当て、DualSense切断専用ボタンとして使っています。左2つのボタンはPrev/Play/Pause、ダイヤルは音量調整に設定しています。

ボタンをクリックすると設定ダイアログが開きます。modeを「鍵盤」に設定し、General keyで「F13」を選択します。

F13キーの設定

FiiO KB1以外にも、以下のようなデバイスでF13キーを送信できます:

  • Elgato Stream Deck
  • プログラマブルキーボード(QMK対応など)
  • 左手デバイス(Tourbox、Loupedeck等)

セットアップ

1. PowerShellスクリプトの作成

C:\Tools\disconnect-dualsense.ps1 として保存:

# Windows Bluetooth Toggle OFF/ON (WinRT API)
Add-Type -AssemblyName System.Runtime.WindowsRuntime

$asTaskGeneric = ([System.WindowsRuntimeSystemExtensions].GetMethods() | Where-Object { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and $_.GetParameters()[0].ParameterType.Name -eq 'IAsyncOperation`1' })[0]

Function Await($WinRtTask, $ResultType) {
    $asTask = $asTaskGeneric.MakeGenericMethod($ResultType)
    $netTask = $asTask.Invoke($null, @($WinRtTask))
    $netTask.Wait(-1) | Out-Null
    $netTask.Result
}

[Windows.Devices.Radios.Radio,Windows.System.Devices,ContentType=WindowsRuntime] | Out-Null
$radios = Await ([Windows.Devices.Radios.Radio]::GetRadiosAsync()) ([System.Collections.Generic.IReadOnlyList[Windows.Devices.Radios.Radio]])

$bluetooth = $radios | Where-Object { $_.Kind -eq 'Bluetooth' }
if ($bluetooth) {
    Await ($bluetooth.SetStateAsync('Off')) ([Windows.Devices.Radios.RadioAccessStatus]) | Out-Null
    Start-Sleep -Milliseconds 500
    Await ($bluetooth.SetStateAsync('On')) ([Windows.Devices.Radios.RadioAccessStatus]) | Out-Null
}

2. AutoHotkeyスクリプトの作成

任意の場所に DualSense-Disconnect.ahk として保存:

#Requires AutoHotkey v2.0

F13::RunWait("powershell.exe -ExecutionPolicy Bypass -File C:\Tools\disconnect-dualsense.ps1",, "Hide")

3. 動作確認

  1. DualSense-Disconnect.ahk を右クリック → 管理者として実行
  2. F13キーを押す
  3. DualSenseの電源が切れれば成功

自動起動の設定(タスクスケジューラ)

毎回手動で起動するのは面倒なので、ログイン時に自動起動するよう設定します。

PowerShellを管理者として実行し、以下を実行:

$action = New-ScheduledTaskAction -Execute "C:\Users\YOUR_USERNAME\Desktop\DualSense-Disconnect.ahk"
$trigger = New-ScheduledTaskTrigger -AtLogOn -User $env:USERNAME
$principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -RunLevel Highest
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -ExecutionTimeLimit 0

Register-ScheduledTask -TaskName "DualSense-Disconnect" -Action $action -Trigger $trigger -Principal $principal -Settings $settings

YOUR_USERNAME は自分のユーザー名に置き換えてください。

別のキーを使いたい場合

F13以外のキーを使いたい場合は、AHKスクリプトのキー指定を変更します:

; 例: Ctrl + Shift + D
^+d::RunWait("powershell.exe -ExecutionPolicy Bypass -File C:\Tools\disconnect-dualsense.ps1",, "Hide")

; 例: F12
F12::RunWait("powershell.exe -ExecutionPolicy Bypass -File C:\Tools\disconnect-dualsense.ps1",, "Hide")

他の方法:Steam Input

Steamをインストールしている場合、PSボタン + △ボタンでDualSenseの電源を切ることができます。

ただし、本記事の方法には以下のメリットがあります:

  • Steamが不要:非Steamゲームのみで遊んでいる方や、Steamをインストールしていない環境でも使える
  • ワンタッチで完結:コントローラーを持ち上げて2つのボタンを同時押しする必要がなく、デスク上のボタン1つで電源OFF

注意点

  • 管理者権限が必要:Bluetooth無線の制御には管理者権限が必要です
  • 他のBluetoothデバイスも一時切断される:マウスやキーボードも一瞬切断されますが、500ms後に自動で再接続されます
  • DualSenseだけを切断したい場合:この方法では他のデバイスも影響を受けます。DualSenseのみを切断する方法もありますが、WinRT APIによるBluetooth OFF/ONの方が確実に電源が切れます

まとめ

これでワンボタンでDualSenseの電源を切れるようになりました。Stream Deckなどと組み合わせると、ゲーム終了時にサッと電源を切れて便利です。

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?