codex で 実行終わったらslackに通知させる方法(windows)

※まだ処理途中でも通知来ることあるな・・・

C:\Users\<ユーザー名>\.codex\notify-slack.ps1を作成。UTF8のBOM付で保存

param(
    [string]$payloadJson
)

$logFile = "C:\Users\<ユーザー名>\.codex\notify-slack.log"
$webhookUrl = "https://hooks.slack.com/services/XXXX/XXXX/XXXX"

Add-Content -Path $logFile -Value "---- $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') ----"
Add-Content -Path $logFile -Value "RAW: $payloadJson"

try {
    $payload = $payloadJson | ConvertFrom-Json

    if ($payload.type -ne "agent-turn-complete") {
        Add-Content -Path $logFile -Value "SKIP: not agent-turn-complete"
        exit 0
    }

    $lastMessage = $payload.'last-assistant-message'
    if ([string]::IsNullOrWhiteSpace($lastMessage)) {
        $lastMessage = "Codex の処理が完了しました"
    }

    if ($lastMessage.Length -gt 200) {
        $lastMessage = $lastMessage.Substring(0, 200) + "..."
    }

    $text = "Codex 完了`n$lastMessage"

    $json = @{
        text = $text
    } | ConvertTo-Json -Compress -Depth 5

    $bodyBytes = [System.Text.Encoding]::UTF8.GetBytes($json)

    Invoke-RestMethod `
        -Uri $webhookUrl `
        -Method Post `
        -ContentType "application/json; charset=utf-8" `
        -Body $bodyBytes | Out-Null

    Add-Content -Path $logFile -Value "POST OK"
}
catch {
    Add-Content -Path $logFile -Value ("ERROR: " + $_.Exception.Message)
    throw
}

C:\Users\<ユーザー名>\.codex\config.tomlに以下を追加

上の方

...
notify = [
  "powershell",
  "-NoProfile",
  "-ExecutionPolicy", "Bypass",
  "-File", "C:\\Users\\<ユーザー名>\\.codex\\notify-slack.ps1"
]
v

[tui]のところ

[tui]
notifications = true
notification_method = "auto"
...

win11で一般ユーザー追加する方法(ローカルアカウント)

1. Win + R
2. `control` と入力して Enter
3. ユーザーアカウント
4. 別のアカウントの管理
5. PC 設定で新しいユーザーを追加
6. その他のユーザーを追加するで「アカウントの追加」
7.「このユーザーのサインイン情報がありません」
8.「Microsoft アカウントを持たないユーザーを追加する」
9. ユーザー名入力して「次へ」

コスパのいい動画編集ソフト DaVinci Resolve

2時間を超える長尺動画の「オープニング付け」や「カット編集」を行いたい時に、安くて扱いやすく、しかもPC負荷が軽めなツール

DaVinci Resolve(無料版)

www.blackmagicdesign.com

特徴

無料でプロレベルの編集が可能

カット編集が非常に快適な「カットページ」がある

テンプレを使って簡単にオープニングも作成できる

長時間動画に強く、安定性も高い

Windowsでも軽め

向いている人

無料で最高クラスの編集をしたい

2時間以上の素材でも問題なく扱いたい

ExcelVBA マクロにデジタル署名するために必要なレジストリ設定について

Excelマクロにデジタル署名を付けようとしても、証明書の問題ではなく、Windows側の仕様によってエラーになる場合があります。
実はこれ、マイクロソフトのデジタル署名アルゴリズムに関するダブルスタンダードが原因です。

なぜエラーが起きるのか

マイクロソフトの仕様書
https://msopenspecs.azureedge.net/files/MS-OVBA/%5bMS-OVBA%5d-230221.pdf

に記載されている通り、VBAプロジェクトの署名では「VBAプロジェクト・データ・ハッシュ」が使われます。

問題はここで、
証明書が新しいアルゴリズム(SHA系)を使っていても、VBA署名側では古いMD5ハッシュを依然として要求している
という点です。

MD5はすでに非推奨であり、Windowsや新しいeTokenではサポートされていないため、MD5を使おうとすると署名が失敗します。

つまり、証明書が悪いのではなく、VBA署名プロセスが古い仕様のまま更新されていないことが原因です。

署名を成功させるためのレジストリ設定

VBAコードを正常に署名するには、Windows側で SafeNet の SHA-1 アルゴリズムを有効にする必要があります。
これを行うには以下のようにレジストリキーを追加します。

HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider\Microsoft Base Cryptographic Provider v1.0
  Disable-Crypto = None

※「Disable-Crypto」という値を作成して「None」を設定します。

この設定を行うことで、VBA署名プロセスがSHA-1アルゴリズムを利用できるようになり、署名処理が通るようになります。

なお、これはセキュリティ的に重大な問題を引き起こすものではなく、現時点でVBAプロジェクトに署名する唯一の現実的な方法となっています。

参考リンク

StackOverflowにスクリーンショット付きの手順があります。
設定方法を確認したい場合はこちらがわかりやすいです。

https://stackoverflow.com/questions/73584355/signing-vba-code-in-excel-xlsm-files-there-was-a-problem-with-the-digital-cert

Dropbox 強制再起動

30分だけ一時停止、って指示してもずっと一時停止になってて困るケースが増えてきた。

なので強制的にやってやるぞ

batファイル

echo ■Dropbox再起動
rem Dropbox を強制終了
taskkill /IM Dropbox.exe /F
rem 少し待つ
timeout /t 3 > nul
rem Dropbox を再起動
start "" "C:\Program Files (x86)\Dropbox\Client\Dropbox.exe"

powershell

Stop-Process -Name "Dropbox" -Force
Start-Sleep -Seconds 3
Start-Process "C:\Program Files (x86)\Dropbox\Client\Dropbox.exe"