Windowsを使っているとどうしても避けられない再インストール。
最近はライセンス管理がずいぶん楽になりましたがそれでも複数台のパソコンを使っているとどのパソコンにどのライセンスを割り当てたかわからなくなることがあります。
今回、パソコンにインストールされているMicrosoft Officeのプロダクトキーを確認するためのツールを作成したのでプログラムとソースを公開します。
SNS上で「Raspberry PiやM5Stackなどを使ってSDカードを簡単に消去したい」というお題を見つけたので作ってみました。
SDカードメディアを廃棄するため復元不可能なレベルに完全削除するといった本格的なものではなく、いまあるファイルを消去するといったレベルですが、M5Stack本体のTF/SDカードスロットに差し込んでボタン一発でファイルが消去されます。
国立研究開発法人防災科学技術研究所(NIED)が提供しするサービス『強震モニタ』( http://www.kmoni.bosai.go.jp/ )のデータをM5Stackを使って監視し、地震の発生を示すデータを見つけたときに予想震度、震源、リアルタイム震度を表示するプログラムを公開します。
実際にしばらく使ってみて、地震発生時に自分がいる場所にいつ地震波が到来するのかわかり、テレビやスマホの緊急地震速報よりもおどろおどろしい音ではないため、気持ちに余裕を持って揺れに備えることができました。
2021/05/01 10:27ごろに発生した地震
『M5Stackを使ってCO2モニタを自作する(SCD30編)』、『もっと安価にCO2モニタを自作する(SGP30編)』と異なる方式で二酸化炭素濃度を測定してみたところ、驚くほどの差が出てしまったので、どちらの値が正しいのか確かめてみたくなりました。
第3のセンサーを投入し同じ部屋で計測をした記録です。
前回『M5Stackを使ってCO2モニタを自作する(SCD30編)』でM5Stack GrayとNDIR型のCO2センサー(SCD30搭載)を使い二酸化炭素濃度モニタを自作してみましたが1万円を超えてしまうので、もっと安価に自作できないものかとM5StickCとM5Stack社から発売されているTVOC/eCO2ガスセンサーユニット(SGP30搭載)の組み合わせなら5000円程度で実現できるのではないかと試してみました。
新型コロナウイルス感染拡大防止対策の一環として、空気中の二酸化炭素濃度(CO2)をはかって換気のタイミングを知るというのが打ち出されてきたようです。
M5Stack ( https://ja.wikipedia.org/wiki/M5Stack ) という小さいコンピュータとCO2センサーを組み合わせてリアルタイムにCO2濃度を測定・表示する環境モニタを自作してみました。
文字認識が必要になりそうなお仕事で、実装方法と難しさ、文字認識の精度を調べるために作った簡易OCRツールです。
Windows 10に標準搭載されているOCR( Microsoft OCR / Windows.Media.Ocr )を使っただけなのですが、機能として面白かったのでプログラムとソースを公開します。
※実行画面のサンプルとして、青空文庫で公開されている『吾輩は猫である』のスクリーンショットを使用しました。
※2022/02/05 『GUI対応したPDFをページごとに画像変換(PNG/BMP/JPEG/GIF/TIFF形式)するツール [WPF]』で応用アプリケーションを掲載しました。
Visual Studio 2019でフォントの変更が行えなくなりました。
前日まで問題なくカスタマイズした状態で好みのフォントが表示されていたのに、今朝立ち上げたときから知らないフォント(おそらくCourier New)に変わっています。
解決までにけっこう時間がかかったので試したことを記録として残します。
WPFで、あるウインドウから子ウインドウを開き、子ウインドウが閉じたときに元のウインドウにフォーカスが戻らないという現象に遭遇しました。
この現象をネットを検索してみると以前からある問題のようでいろいろな解決方法が提案されていました。
その中からいくつかの方法を試してみたのですが、残念ながら期待通りに動きませんでした。
自分が試してみてうまく機能した方法を紹介します。
public void ForceActivate() { this.Activate(); System.Threading.Tasks.Task.Run(async () => { await System.Threading.Tasks.Task.Delay(100); Dispatcher.Invoke(() => this.Focus()); }); }
Task.Delayメソッドを使って処理をずらすよう工夫したのが効いているようです。
最初はDispatcher.Invokeメソッドのアクションデリゲート内で定番のTopmostプロパティをtrue、falseの順に設定するなども含めていたのですが、ディレイをかけてFocusメソッドを呼び出すだけで良いようです。