以下の内容はhttps://ujimushisradjp.hatenablog.jp/entry/2024/07/03/222633より取得しました。


Julia言語(他力本願)でWindowsのOSの通知にメッセージを表示する

Julia言語でシミュレーションや時間のかかる処理を実行させると,終了を通知してほしい方も いるかと思います。

世界一簡単にCUIからWindowsのトースト通知を送信する手順を見て,これを使えばJulia言語の関数として実行できるのではないかと思いました。

そこで,ほぼJulia言語以外の機能を駆使してWindowsのOSの通知にメッセージを送るものを作ってみます。

PowershellへのBurntToastモジュールのインストール

世界一簡単にCUIからWindowsのトースト通知を送信する手順の内容と同じです。

管理者権限でPowerShellを起動して,

Install-Module -Name BurntToast

します。

セキュリティ関連の質問が二回出てくるので,どちらもy⮐です。

通知用関数の実装

次のような感じで実装しました。 PowerShellのセキュリティ関係から-ExecutionPolicyを変更するのがミソかもしれません。

最初PowerShellから実行してもうまく実行されませんでした。 PowerShellを起動する時のコマンドラインオプションで一時的にこの実行ポリシーを変更できる ようです。

"""
    send_windows_notification(msg, title="Julia")

Windowsの通知にメッセージを表示する。

* `msg`: 通知のメッセージ文
* `title`: 通知のタイトル

"""
function send_windows_notification(
    msg::AbstractString, title::AbstractString="Julia")
    
    julia_ico = joinpath(Sys.STDLIB, "..", "..", "..", "doc", "julia",
                         "html", "en", "assets", "julia.ico") |> abspath

    ps_cmds = ["powershell.exe", "-ExecutionPolicy", "Unrestricted", "-Command"]
    bt_cmds = ["New-BurntToastNotification", "-Text", "'$title',", "'$msg'", "-AppLogo",
               "'$julia_ico'"]
    my_cmd = `$ps_cmds "$bt_cmds"`
    run(my_cmd)
    nothing
end

実行例は次のような感じです。

BurntToastのドキュメントを見るとその他にも色々オプションが変えられるので,自分好みにカスタマイズして利用してはどうでしょうか?




以上の内容はhttps://ujimushisradjp.hatenablog.jp/entry/2024/07/03/222633より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14