2017/04/08(土)ドライブ空き容量をチェックしてトースト通知する
ドライブ空き容量をチェックしてトースト通知する
PowerShellで空き容量チェックスクリプトを書いてみました。Windows 10 のアクションセンターで通知されます(トースト通知)。
ソースコード
# ドライブごとにしきい値を設定 $min_freespace = @{ "C" = 30GB; "D" = 10GB; "E" = 50GB; } function ShowBalloonTip( [string] $tilte = "件名", [string] $body = "本文" ) { #[Reference] # PowerShell can I use balloons, toasts and notifications? # https://deploywindows.info/2015/12/01/powershell-can-i-use-balloons-toasts-and-notifications/ # Toasts templates # https://msdn.microsoft.com/en-us/library/windows/apps/hh761494.aspx [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null $template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02) # Convert to .NET type for XML manipuration $toastXml = [xml] $template.GetXml() # Customize the toast message $text = $toastXml.GetElementsByTagName("text") $text[0].AppendChild($toastXml.CreateTextNode($tilte)) > $null $text[1].AppendChild($toastXml.CreateTextNode($body)) > $null # Convert back to WinRT type $xml = New-Object Windows.Data.Xml.Dom.XmlDocument $xml.LoadXml($toastXml.OuterXml) $Toast = [Windows.UI.Notifications.ToastNotification]::new($xml) $AppID = 'Microsoft.Explorer.Notification.{3e1c1f24-a023-49cf-98ff-90cdabb9930b}' [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($AppID).Show($Toast) } $msg = "" foreach ($drive_letter in $min_freespace.Keys) { $drive = Get-PSDrive $drive_letter if ( $drive.Free -lt $min_freespace[$drive_letter] ) { $msg += "{0}ドライブ空き容量:{1,0:0.00}GB`n" -f $drive_letter, ($drive.Free/1GB); } } if ( $msg ) { ShowBalloonTip "空き容量警告" $msg }
準備
以下のレジストリを登録しないとトースト通知を履歴に残せないようです。(通知自体はされる。)
- HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Notifications\Settings\Microsoft.Explorer.Notification.3e1c1f24-a023-49cf-98ff-90cdabb9930b
- 値の名前: ShowInActionCenter
- 値のデータ: 1
- 種類: REG_DWORD
コマンドで追加するなら、
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Notifications\Settings\Microsoft.Explorer.Notification.{3e1c1f24-a023-49cf-98ff-90cdabb9930b}" /v ShowInActionCenter /t REG_DWORD /d 1
「Microsoft.Explorer.Notification.3e1c1f24-a023-49cf-98ff-90cdabb9930b」*1のところに特に意味は無く、ソースコード内のIDと一致していれば良いです。
自動実行
タスクスケジューラーに登録すれば、自動実行できます。
- プリグラム/スクリプト: %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe
- 引数の追加(オプション): -ExecutionPolicy RemoteSigned -File スクリプトのパス
ただ、普通に登録するだけではどうしてもウィンドウが表示されてしまうようです。検索するとWSH(VBScriptやJScript)経由でPowerShellを呼び出すことでウィンドウを隠す方法が見つかります。PowerShell単体でできるようにして欲しい(-_-;)
更新履歴
- 2017/04/08: 不要な記述が残っていたので削除。
2017/03/20(月)JPEGエンコーダーguetzliを試してみた
JPEGエンコーダーguetzliを試してみた
Googleが新しいJPEGエンコーダー「Guetzli」を発表したので試してみました。
入手元
guetzliと比較用のmozjpegのWindows向けバイナリは以下のサイトから入手しました。
圧縮手順
- guetzli
guetzli_windows_x86-64.exe --quality 95 RanHeart.jpg guetzli_RanHeart_q95.jpg
- mozjpeg
cjpeg.exe --quality 95 -outfile mozjpeg_RanHeart_q95.jpg RanHeart.jpg
いずれも、RanHeart.jpgが入力画像。
画像比較
画像アップローダー - ECO-Wiki (acronia)に上がっていたちょうど良さそうな大きさの画像で試してみました。
guetzliでQualityを95/90/85の3通りで圧縮し、mozjpegで近いファイルサイズになった画像を比較用に並べています。(なお、元画像はjpegtranで可逆最適化してあります。)
分類 | guetzli | mozjpeg |
---|---|---|
元画像 | 元画像 (29,871B) | 元画像 (29,871B) |
高画質 | Quality 95 (24,596B) | Quality 93 (25,557B) |
中画質 | Quality 90 (19,051B) | Quality 88 (19,378B) |
低画質 | Quality 85 (15,658B) | Quality 82 (15,764B) |
・・・どうしよう、ぱっと見どれも違いがよく分からない(^_^;)
とりあえず分かりやすいのは口元の赤色で、guetzliの方は元の色合いが大分保たれています。
JPEG高圧縮時に現れるモスキートノイズの現れ方はよく見るとguetzliとmozjpegで違っているのですが、特にどちらの方が良いというわけではない気がしました。
エンコード時間
1回しか測ってませんが、guetzliが6.6秒で、mozjpegが0.05秒でした。かなり遅いです。
感想
JPEGが苦手な赤に強いのは良さそうです。
エンコード時間がかかるのは難点ですが、Web公開する画像がそんなに大量にあるわけでも無いので、そう考えれば許容範囲でしょうか。(デジカメで撮った大きな写真を片っ端から圧縮するような使い方は難しそう。)
出たばっかりのソフトですし、もうちょっと速度とか改善されるまで様子見が無難かも。
2017/03/06(月)スロット拡張成功率調査(イリスカード強化祭+OTPボーナス)
スロット拡張成功率調査(イリスカード強化祭+OTPボーナス)
スロット上限が10スロットまで拡張されたので、武器と服を400個ずつスロット拡張してみました。
スロット | S1 | S2 | S3 | S4 | S5 | S6 | S7 | S8 | S9 | S10 |
---|---|---|---|---|---|---|---|---|---|---|
成功数 | - | 334 | 255 | 142 | 63 | 32 | 13 | 8 | 4 | 4 |
失敗数 | - | 66 | 79 | 113 | 79 | 31 | 19 | 5 | 4 | 0 |
成功割合[%] | - | 83.50 | 76.35 | 55.69 | 44.37 | 50.79 | 40.63 | 61.54 | 50.00 | 100.00 |
スロット | S1 | S2 | S3 | S4 | S5 | S6 | S7 | S8 | S9 | S10 |
---|---|---|---|---|---|---|---|---|---|---|
成功数 | 400 | 341 | 254 | 143 | 66 | 36 | 21 | 12 | 7 | 1 |
失敗数 | 0 | 59 | 87 | 111 | 77 | 30 | 15 | 9 | 5 | 6 |
成功割合[%] | 100.00 | 85.25 | 74.49 | 56.30 | 46.15 | 54.55 | 58.33 | 57.14 | 58.33 | 14.29 |
ポーチS10が4個できたのは運が良かっただけのようで、サマートップスは最後のS9→S10でかなり失敗してしまいました。
とは言え、S9とS10の成功率は凄く低いと言うほどではなさそうな感触です。保険を使った強化の時も半分くらいは成功してましたし。