当方のソフトウェア、アラームないしアラーム+の無許諾翻案とみられる製品や作品を確認しています。
アラームやアラーム+は著作権法により保護されています。
翻案権の侵害などの著作権法違反にあたる行為には法的措置をとることがあります。
私の銀行口座
各種振り込みは下記の口座までお願いいたします。
PayPay銀行 002(すずめ支店)
普通 1960347
イシダ ユウスケ 宛
PayPay銀行の口座をお持ちの方はこちらからもお振込みいただけます。
PowerShellスクリプトの例: 実行パスを指定する場合
緊急地震速報アラーム+で実行ファイルのパスを指定する場合のPowerShellスクリプトの例を示します。
なお、下記のスクリプトの著作権はapitが保有します。
また、お使いになりたい方は私の銀行口座にPC1台につき月額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 |
私の設定を公開します
設定に悩まれている方のために、私の設定を公開します。
通常設定:


補注: 安心のために、次のようにも可能です。


緊急地震速報アラーム+の歌「知らせの光」
生成AIで緊急地震速報アラーム+の歌を作りました。「知らせの光」です。
ぜひ聴いてください。
|
Original: |
|
generated by SUNO lyrics generated by ChatGPT |
|
Cover: |
|
generated by SUNO lyrics generated by ChatGPT |
ライセンス形態と標準価格の早見表
緊急地震速報アラーム+をお使いいただく場所によっては、ライセンスの購入が必要です。
分類は次のとおりです。
- 個人利用・家庭での利用
無料でお使いいただけます。 - 営利利用・法人での利用
ライセンスをお買い上げください。 - 官公庁での利用
ライセンスをお買い上げいただけると嬉しいです。
標準価格: 1PCあたり22万円(月額・税込み)
標準買い切り価格: 1PCあたり2億2000万円(税込み)
よろしくお願いいたします。
2026年3月13日 改定
【YouTube】緊急地震速報アラームの使い方
緊急地震速報アラーム+の使い方をYouTubeの動画にまとめました。
緊急地震速報アラーム+を導入したいけど使い方がわからない、という方はぜひご覧ください。
おすすめのスターターセットを紹介します
緊急地震速報アラーム+を初めて導入される方へ、おすすめのセットを紹介します。
商品のリンクを張っておきますが、アフィリエイトリンクではありませんのでご安心ください。
- PC
[アマゾン認定の中古品] Dell Latitude 52855290
※PCの設定については、こちらのページを参考にしてください。 - USBイーサネットアダプタ
BUFFALO 有線LANアダプター
※無線LANでネットワークに接続する場合は不要です。 - スマートライト
Philips社Hue スターターセット(フルカラー) - 電球用のソケット
E26 スイッチ付き電球ソケット
以上の4点と同じ構成を当方の自宅で問題なく使用しております。
※適宜LANケーブルやスイッチングハブ、ルーター等を使用してください。