私の銀行口座

各種振り込みは下記の口座までお願いいたします。
PayPay銀行 002(すずめ支店)
普通 1960347
イシダ ユウスケ 宛

PayPay銀行の口座をお持ちの方はこちらからもお振込みいただけます。

PowerShellスクリプトの例: 実行パスを指定する場合

緊急地震速報アラーム+で実行ファイルのパスを指定する場合のPowerShellスクリプトの例を示します。
なお、下記のスクリプトの著作権はapitが保有します。
また、お使いになりたい方は私の銀行口座にPC1台につき月額2200円をお振込みください。振込手数料はご負担ください。
(2025/12/30 14:40 更新済み)

# PowerShell Code
# Copyright(C) 2025 apit.

$CurrentDir = Split-Path $MyInvocation.MyCommand.Path

$SOURCE=$args[0]
$SOURCE_MATCH = $FALSE
$ESI=$args[1]
$ESI_OVER = $FALSE
$MAG=$args[2]
$MAG_OVER = $FALSE

if ($SOURCE -eq "SNP") { $SOURCE_MATCH = $TRUE }

if ($ESI -eq "不明") { $ESI_OVER = $FALSE }
if ($ESI -eq "1未満") { $ESI_OVER = $FALSE }
if ($ESI -eq "1") { $ESI_OVER = $TRUE }
if ($ESI -eq "2") { $ESI_OVER = $TRUE }
if ($ESI -eq "3") { $ESI_OVER = $TRUE }
if ($ESI -eq "4") { $ESI_OVER = $TRUE }
if ($ESI -eq "5弱") { $ESI_OVER = $TRUE }
if ($ESI -eq "5強") { $ESI_OVER = $TRUE }
if ($ESI -eq "6弱") { $ESI_OVER = $TRUE }
if ($ESI -eq "6強") { $ESI_OVER = $TRUE }
if ($ESI -eq "7") { $ESI_OVER = $TRUE }

if ($MAG -eq "不明") { $MAG_OVER = $FALSE }
elseif ($MAG -ge 6.0) { $MAG_OVER = $TRUE }

if ($SOURCE_MATCH)
{
if ($ESI_OVER -or $MAG_OVER)
{
try
{
if (Test-Path -Path "${CurrentDir}\\WaitLoop")
{
Remove-Item -Path "${CurrentDir}\\WaitLoop"
}

$mutexObject = New-Object System.Threading.Mutex($false, "Global\MYCMDS_MUTEX")

if (-not $mutexObject.WaitOne(0, $false))
{
while($true)
{
$mutexObject = New-Object System.Threading.Mutex($false, "Global\MYCMDS_MUTEX")
if (-not $mutexObject.WaitOne(0, $false))
{
Start-Sleep -Seconds 1
}
else
{
break;
}
}
}

# 監視対象のプロセスを取得
$process = Get-Process -Name "MyProcess" -ErrorAction SilentlyContinue;

# 監視対象のプロセスを監視して実行されていないときはプロセスを立ち上げる
# プロセス待機する場合はifを外す
if (!$process) {
Out-File -FilePath "${CurrentDir}\\WaitLoop"

if (!$process) {
(実行ファイルのパス)
}

if (-not (Test-Path -Path "${CurrentDir}\\KeepRunning"))
{
# 実行ファイルを閉じるまでの時間を指定(秒)
# 注: 延長式
for($i=0; $i -lt 300; $i++)
{
if (-not (Test-Path -Path "${CurrentDir}\\WaitLoop"))
{
# ミューテックスを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.ReleaseMutex();
}
# ミューテックスのリソースを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.Close();
}
exit;
}
if (Test-Path -Path "${CurrentDir}\\WaitLoop - コピー")
{
Out-File -FilePath "${CurrentDir}\\KeepRunning"
if (Test-Path -Path "${CurrentDir}\\WaitLoop")
{
Remove-Item -Path "${CurrentDir}\\WaitLoop"
}
# Change the " - コピー" part to the expression for the post-copy string in Windows in your language.
if (Test-Path -Path "${CurrentDir}\\WaitLoop - コピー")
{
Remove-Item -Path "${CurrentDir}\\WaitLoop - コピー"
}
# ミューテックスを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.ReleaseMutex();
}
# ミューテックスのリソースを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.Close();
}
exit;
}
if (Test-Path -Path "${CurrentDir}\\KeepRunning")
{
if (Test-Path -Path "${CurrentDir}\\WaitLoop")
{
Remove-Item -Path "${CurrentDir}\\WaitLoop"
}
# Change the " - コピー" part to the expression for the post-copy string in Windows in your language.
if (Test-Path -Path "${CurrentDir}\\WaitLoop - コピー")
{
Remove-Item -Path "${CurrentDir}\\WaitLoop - コピー"
}
# ミューテックスを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.ReleaseMutex();
}
# ミューテックスのリソースを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.Close();
}
exit;
}
$process = Get-Process -Name "MyProcess" -ErrorAction SilentlyContinue;
if (!$process)
{
if (Test-Path -Path "${CurrentDir}\\WaitLoop")
{
Remove-Item -Path "${CurrentDir}\\WaitLoop"
}
# ミューテックスを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.ReleaseMutex();
}
# ミューテックスのリソースを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.Close();
}
exit;
}
Start-Sleep -Seconds 1
}
if (Test-Path -Path "${CurrentDir}\\WaitLoop")
{
Remove-Item -Path "${CurrentDir}\\WaitLoop"
}

# 監視対象のプロセスを取得
$process2 = Get-Process -Name "MyProcess" -ErrorAction SilentlyContinue;

# 監視対象のプロセスを監視して実行されていないときはプロセスを立ち上げる
if ($process2) {
Stop-Process -Name "MyProcess"
}
}
else
{
$process = Get-Process -Name "MyProcess" -ErrorAction SilentlyContinue;
while($process)
{
if (-not (Test-Path -Path "${CurrentDir}\\WaitLoop"))
{
# ミューテックスを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.ReleaseMutex();
}
# ミューテックスのリソースを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.Close();
}
exit;
}
if (Test-Path -Path "${CurrentDir}\\WaitLoop - コピー")
{
Out-File -FilePath "${CurrentDir}\\KeepRunning"
if (Test-Path -Path "${CurrentDir}\\WaitLoop")
{
Remove-Item -Path "${CurrentDir}\\WaitLoop"
}
if (Test-Path -Path "${CurrentDir}\\WaitLoop - コピー")
{
Remove-Item -Path "${CurrentDir}\\WaitLoop - コピー"
}
# ミューテックスを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.ReleaseMutex();
}
# ミューテックスのリソースを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.Close();
}
exit;
}
$process = Get-Process -Name "MyProcess" -ErrorAction SilentlyContinue;
if (!$process)
{
Remove-Item -Path "${CurrentDir}\\WaitLoop"
# KeepRunningを自分で消す場合は次の行をコメントアウト
Remove-Item -Path "${CurrentDir}\\KeepRunning"
# ミューテックスを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.ReleaseMutex();
}
# ミューテックスのリソースを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.Close();
}
exit;
}
Start-Sleep -Seconds 1
}
}
#}
}
finally
{
try
{
# ミューテックスを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.ReleaseMutex();
}
# ミューテックスのリソースを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.Close();
}
}
catch
{
}
}
}
}

ライセンス形態と標準価格の早見表

緊急地震速報アラーム+をお使いいただく場所によっては、ライセンスの購入が必要です。
分類は次のとおりです。

  • 個人利用・家庭での利用
    無料でお使いいただけます。
  • 営利利用・法人での利用
    ライセンスをお買い上げください。
  • 官公庁での利用
    ライセンスをお買い上げいただけると嬉しいです。

標準価格: 1PCあたり22万円(月額・税込み)
よろしくお願いいたします。

おすすめのスターターセットを紹介します

緊急地震速報アラーム+を初めて導入される方へ、おすすめのセットを紹介します。
商品のリンクを張っておきますが、アフィリエイトリンクではありませんのでご安心ください。

以上の4点と同じ構成を当方の自宅で問題なく使用しております。
※適宜LANケーブルやスイッチングハブ、ルーター等を使用してください。

IPアドレスを設定する際の注意点

緊急地震速報アラーム+で同時配信機能(TCP)やHue連携機能の設定画面にIPアドレスの
項目がありますが、指定のIPアドレスが変わるとアクセス出来なくなるため、ルーターの設定で
IPアドレスを固定してください。同時配信機能(TCP)を利用する場合はサーバー側の
IPアドレスを固定してください。なお、IPアドレスを固定する際には装置の
MACアドレスが必要です。

IPアドレスを固定する手順は次のとおりです。

  1. IPアドレスを参照する
    • 同時配信機能(TCP)でサーバーのIPアドレス
      サーバー側のPCで [Windowsキー]+Rを同時に押す→cmd→ipconfig→IPv4 アドレスをメモ
    • HueブリッジのIPアドレス
      Hueアプリ→設定→わたしの Hue システム→Hue ブリッジ 右端の i→IPアドレスをメモ
  2. MACアドレスを参照する
    サーバー側やHueブリッジと同じネットワーク上のPCで [Windowsキー]+Rを同時に押す→cmd→arp -a→1.で参照したIPアドレスに対応するMACアドレスをメモ
  3. ルーターの設定画面でIPアドレスの固定設定を開き、1.と2.でメモしたIPアドレスとMACアドレスを指定して設定を反映させる

また、同時配信機能(TCP)でPCのモダンスタンバイから復帰直後の確実な受信を望む場合はクライアント側のIPアドレスの固定もおすすめします。
(モダンスタンバイ中にIPアドレスが変わってもサブスクリプションは出来ないため)