緊急地震速報アラーム、アラーム+をお使いの方へ、お知らせいたします。
・緊急地震速報アラーム
The Last 10-Secondのサービス終了にともない、利用できなくなります。
長い間ご利用いただき、ありがとうございました。
・緊急地震速報アラーム+
SignalNow Professionalとの連携機能は、SignalNow Professionalの旧バージョンでのみ、
引き続きご利用いただけます。
ご理解の程、お願いいたします。
緊急地震速報アラーム、アラーム+をお使いの方へ、お知らせいたします。
・緊急地震速報アラーム
The Last 10-Secondのサービス終了にともない、利用できなくなります。
長い間ご利用いただき、ありがとうございました。
・緊急地震速報アラーム+
SignalNow Professionalとの連携機能は、SignalNow Professionalの旧バージョンでのみ、
引き続きご利用いただけます。
ご理解の程、お願いいたします。
緊急地震速報アラーム+ で気象庁の 「 緊急地震速報を適切に利用するために必要な受信端末の機能及び配信能力に関するガイドライン 」 の適合状態に近くなる設定を紹介します。
ご参考までに。
2024年1月1日に発生した能登半島地震で緊急地震速報のソフトウェアが受信し、 緊急地震速報アラーム+ が
自動的に保存した速報ファイルを、訓練機能で読み込み、再現した様子の動画を YouTube にアップロードしました。
※2024年1月1日の当時は SignalNow Professional から警報地域を取得する機能はありません。
この投稿の日本語文章と動画と画像のライセンス : 
スマートライト Hue 連携 :
設定 :
緊急地震速報アラーム+ の本体、 alarm.exe のプロパティから互換性、設定より高 DPI 設定の変更から高 DPI スケール設定の上書きにチェックを入れ、拡大縮小の実行元をシステム ( 拡張 )としています。


注 : 同時配信機能で受信専用の PC のため、 SignalNow Professional 連携設定の読み込み条件と時刻補正設定は設定していません。


当方のソフトウェア、 アラーム ないし アラーム+ の企業内で無許諾利用とみられる事案を確認しています。
アラーム や アラーム+ は著作権法により保護されています。
商用利用などの著作権法違反にあたる行為には法的措置をとることがあります。
当方のソフトウェア、 アラーム ないし アラーム+ の無許諾翻案とみられる製品や作品を確認しています。
アラーム や アラーム+ は著作権法により保護されています。
翻案権の侵害などの著作権法違反にあたる行為には法的措置をとることがあります。
各種振り込みは下記の口座までお願いいたします。
PayPay 銀行 002 ( すずめ支店 )
普通 1960347
イシダ ユウスケ 宛
PayPay 銀行の口座をお持ちの方は こちら からもお振込みいただけます。
緊急地震速報アラーム+ で実行ファイルのパスを指定する場合の PowerShell スクリプトの例を示します。
なお、下記のスクリプトの著作権は apit が保有します。
また、お使いになりたい方は私の銀行口座に PC 1 台 につき月額 2200 円 をお振込みください。振込手数料はご負担ください。
下記のスクリプトにおけるコマンド実行機能に設定する文字列の例 : 「 powershell “( PowerShell スクリプトファイルの絶対パス )” “<ソース>” “<推定震度>” “<マグニチュード>” “<最大震度>” 」
( 2026/3/11 更新済み )
# PowerShell Code
# Copyright(C) 2026 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
$MAX_ESI=$args[3]
$MAX_ESI_OVER = $FALSE
if ($SOURCE -eq "SNP") { $SOURCE_MATCH = $TRUE }
elseif ($SOURCE -eq "L10S") { $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 ($MAX_ESI -eq "不明") { $MAX_ESI_OVER = $FALSE }
if ($MAX_ESI -eq "1未満") { $MAX_ESI_OVER = $FALSE }
if ($MAX_ESI -eq "1") { $MAX_ESI_OVER = $FALSE }
if ($MAX_ESI -eq "2") { $MAX_ESI_OVER = $FALSE }
if ($MAX_ESI -eq "3") { $MAX_ESI_OVER = $FALSE }
if ($MAX_ESI -eq "4") { $MAX_ESI_OVER = $FALSE }
if ($MAX_ESI -eq "5弱") { $MAX_ESI_OVER = $TRUE }
if ($MAX_ESI -eq "5強") { $MAX_ESI_OVER = $TRUE }
if ($MAX_ESI -eq "6弱") { $MAX_ESI_OVER = $TRUE }
if ($MAX_ESI -eq "6強") { $MAX_ESI_OVER = $TRUE }
if ($MAX_ESI -eq "7") { $MAX_ESI_OVER = $TRUE }
if ($SOURCE_MATCH)
{
if ((($SOURCE -eq "SNP") -and ($ESI_OVER -or $MAG_OVER)) -or (($SOURCE -eq "L10S") -and ($MAX_ESI_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))
{
if (Test-Path -Path "${CurrentDir}\\WaitLoop")
{
try
{
Remove-Item -Path "${CurrentDir}\\WaitLoop"
}
catch
{
}
}
Start-Sleep -Milliseconds 20;
}
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"))
{
$DATE_BEGIN = Get-Date;
# 実行ファイルを閉じるまでの時間を指定(秒: AddSeconds で指定)
# 注: 延長式
$DATE_END = $DATE_BEGIN.AddSeconds(300);
while($TRUE)
{
$DATE_NOW = Get-Date;
$TIME_SPAN = $DATE_END - $DATE_NOW;
if ($TIME_SPAN -lt 0)
{
break;
}
if (-not (Test-Path -Path "${CurrentDir}\\WaitLoop"))
{
if (Test-Path -Path "${CurrentDir}\\WaitLoop")
{
try
{
Remove-Item -Path "${CurrentDir}\\WaitLoop"
}
catch
{
}
}
# ミューテックスを解放します。
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 -Milliseconds 20;
}
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 (Test-Path -Path "${CurrentDir}\\WaitLoop")
{
try
{
Remove-Item -Path "${CurrentDir}\\WaitLoop"
}
catch
{
}
}
# ミューテックスを解放します。
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 -Milliseconds 20;
}
}
#}
}
finally
{
try
{
if (Test-Path -Path "${CurrentDir}\\WaitLoop")
{
try
{
Remove-Item -Path "${CurrentDir}\\WaitLoop"
}
catch
{
}
}
# ミューテックスを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.ReleaseMutex();
}
# ミューテックスのリソースを解放します。
if ($mutexObject -ne $null)
{
$mutexObject.Close();
}
}
catch
{
}
}
}
}
生成 AI で 緊急地震速報アラーム+ の歌を作りました。「 カウントダウンの向こうへ 」です。
ぜひ聴いてください。
|
generated by SUNO v5 lyrics generated by ChatGPT lyrics edited by apit |
生成 AI で 緊急地震速報アラーム+ のテーマソングとイメージソングを作りました。「 零秒の予告 」です。
ぜひ聴いてください。
|
generated by SUNO v5 lyrics generated by ChatGPT lyrics edited by apit |
|
generated by SUNO v5 lyrics generated by ChatGPT lyrics edited by apit |