Googleカレンダーの予定をデスクトップに表示したい!

 きっかけなど

今年の夏休み、なんと6~7年ぶりに職場の作業用PCが入れ替わったのです。
これまでは、Win7なPCでしたので、アプリのインストールは禁止されているもののサイドバーガジェットは好きな物が入れ放題でした。そこで、「Google Calendar Agenda」というのを使って、予定管理をしてました。

ところが!新しいPCはWindows10です。サイドバーガジェットは残念ながらセキュリティーの関係で廃止になったのです。
ということは、愛用のガジェットは使えないのです・・・。

Vectorなどのフリーソフトを集めたサイトを探し回りましたが、それらしいものはどこにも見当たりません。

それならば、自分で作るしかないじゃないですか!!!

 準備とコンセプト

○準備
 ・開発ツール … Visual Studio Community 2019/Microsoft
 ・Googleのアカウント

〇コンセプト
 ・インストーラーを使わずに、実行ファイル(.exe)を起動するだけで使える。
 ・デスクトップに常駐できる。
 ・Googleカレンダーの今後の予定がパッとわかる。
 ・今日の日付が確認できる。
 ・誰にもエレガント。

 Googleカレンダーの予定にアクセス!

さて、Googleカレンダーの予定にアクセスするにはどうしたらいいのかな?と、ネットをうろつきました。
その結果わかったことは、まずGoogleのホームページで設定が必要だということでした。

そこでまず、Google Cloud Platformへ行きます。そこで自分のアカウントでログインし、新しいプロジェクトを作って、そのプロジェクトにGoogleカレンダーを組み込みました。次いでスコープを設定して、OAuth認証用の.jsonファイルをダウンロードしました。

そして、いよいよVisual C#でプログラミングです。
Googleカレンダーのサンプルを参考に、OAuth認証をする部分を作り、Googleカレンダーから予定を取得するプログラムを作りました。
ここで新しい疑問に出会いました。
===============
await ・・・なんだこれは???
=============
==
そうか、私のプログラミング概念はもう古くなっていたのです。世の中は平行動作。マルチタスクです!
Googleの認証を受けるのを待つのに、await命令を使うのですね。
その関係でasyncが必要になるんだと。なんか、勉強しちゃいました。

これさえ出来れば、あとは画面を作るだけ。
どうせだから、自由自在にアレンジできるようにしよう!と、設定を豊富にしてみました。
↓設定画面

そして、ついに出来上がったのでした!!!
命名:Yotemi ・・・よていをるツール です。単純ですね。けど、かわいい名前でしょ!?
←Yotemiの画面(初期状態)

 スリープからの復帰でハマる!

そんなわけで、テスト運用を開始したら、さっそく不具合が発生!!!
なんと、Windowsをスリープにして、そこから復帰すると固まります。
何でだ...。半日悩みました。
そして、いろいろ実験した結果、原因がほぼ分かりました。
============================
スリープから復帰してすぐには、ネットにつながっていない。
=========================
===
これです。
だったら、復帰後にウェイトを入れてみるかということで、1分間のウェイトを
Thread.Sleep(60000);
と入れた所、完璧にうまく行きました。(ただ、我が家の環境でですけど。)


 終わりに

いやぁ完成しました。職場でも運用を開始しました。
これで、予定の確認は今まで通りに行きそうです。

しかし、コンピュータ・プログラミングの世界は、どんどん進歩しているのですね。
面白いなぁ。

配布してます!

ということで、完成したYotemiをおすそ分けします。
この眠眠工房のホームページからダウンロードできますので、どうぞ使ってみてください。
Yotemiのページ


もどる