なでしこを明後日の方向に

日本語プログラム言語なでしこを応援しています

なでしこでフォルダの最新画像を取得する

f:id:tkizzz:20210630192002j:plain ブラウザゲームがサービス終了するのでスクリーンショットをたくさん撮ってきました。

F11キーを押すとスクリーンショットを保存してくれるソフトは……
自力で作らずとも優れたものがちまたにあるので、
今回は「撮れた中で最新のものを表示する」プログラムを書きました。

たくさん撮っていると「今F11ちゃんと押したかな……」ってなるので、
横に最新のスクショが常に出るようにしたかったんです。

動作

・フォルダをちょくちょく監視
・ファイルが増えていたら、最新のスクリーンショットを母艦に表示

プログラム

表イメージとはイメージ
その位置「0,0」ループ開始
100回
 スクショ確認
 0.1秒待つ
「ループ開始」飛ぶ

●スクショ確認
 今リスト母艦パス「*.jpg」ファイル列挙
 もし前リスト==今リストならば戻る
 
 もし今リストならば戻る
 n=今リスト配列要素数-1
 file=今リスト[n]
 もしfile==""ならば
   表イメージ画面クリア
   戻る
 エラー監視
   表イメージ画像file
   前リスト今リスト
   表イメージ600,600画像比率変えずリサイズ
 エラーならば
   //とくになし

工夫したところ

エラー監視 のなかで 表イメージ画像file をしています。
ファイル列挙 したあとすぐに開いているから不要では?と思ったのですが
F11でスクショ撮るソフトの挙動が
 0バイトのファイルができる→中身のあるjpgになる
という感じなので、タイミングがバッティングすると0バイトのjpgを開いてエラーになってしまうという。

「ループ開始」飛ぶ を使っているのは、無限ループ(1でループ)だとしばらくたつと処理が遅くなるのでその対策。

雑なところ

かなり適当。 でも動くし!
サービス終了までに作って使えたのでよし!