読者です 読者をやめる 読者になる 読者になる

yamamoWorks

.NET技術を中心に気まぐれに更新していきます

タスクバーのGoogleカレンダーアイコンを正しい日付にする

PowerShell Google カレンダー

Chromeの「アプリケーションのショートカット」でGoogleカレンダーWindows7のタスクバーに固定する事ができますが、アイコンの日付が動的に更新されないのが残念です。
Googleカレンダーを開いた時の日付が残ったままになります。
そこで自動的に日付が変わるようにしてみました。





まず、表示されているアイコンは下記の場所にあります。
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Applications\www.google.com\https_80


そして、アイコンの元ファイルは下記のURLから取得できます。
https://calendar.google.com/googlecalendar/images/favicon_v2014{day}.ico
. . .



あとは、該当する日付のアイコンをダウンロードして置き換える処理をタスクスケジューラで午前0時とログオン時に実行させればOK。

PowerShellならこんな感じでしょうか。
$icoFile = [Environment]::GetFolderPath('LocalApplicationData') + '\Google\Chrome\User Data\Default\Web Applications\www.google.com\https_80\Google カレンダー.ico'
$day = Get-Date -Format %d
Invoke-WebRequest -Uri "https://calendar.google.com/googlecalendar/images/favicon_v2014
$day.ico" -OutFile $icoFile
Remove-Item "$icoFile.md5" -ErrorAction Ignore
ie4uinit.exe -ClearIconCache
md5ファイルは無くても問題ないので削除しちゃってます。
※アイコンファイルを置き換えただけではタスクバーの描画が更新されないので、最後に「ie4uinit.exe -ClearIconCache」を実行。


でも、PowerShellではウィンドウを非表示で起動できないので、PowerShellを起動するVBScriptを用意しました。(ならば全てVBScriptで作れって)
CreateObject("WScript.Shell").Run "powershell reflesh_gcal_icon.ps1", 0

最後に、タスクスケジューラへ登録。

これで常に正しい日付を示してくれるようになります。