Windowsタブレットをデジタルフォトフレームにしてみた

---
# Windowsをデジタルフォトフレームにしてみた

デジカメやスマートフォンで撮影した写真や動画を、フォトフレームのようにスライドショー端末にWindowsを使う方法

んでもって、Googleドライブにアップロードすれば、フォトフレームのリストが更新されてスライドショーに追加される。

そんな、Windowsタブレットの使用方法を紹介。

こんなWindowsタブレットを実家で使ってみようと思ったのが事の始まり。

んでもって、Androidタブレットで実現しようと思ったけど、AndroidStudioでプログラム作るのが面倒くさくなったのと、Windowsなら[IrfanView](https://www.irfanview.com/)とバッチファイルでできるかな、と思ったのが事の始まり。

---
# 私が考えた仕様

- 写真とちょっとした動画をクラウドにアップロードして、それをダウンロードしながらスライドショー。
- クラウドをアップデートすれば、スライドショーの一覧もアップデートされる

---
# 私が考えた仕様(追加)

- 日中はスライドショーするが、夜間は静かにする。

親に「(動画の音声が)夜中うるさい」と言われたので...

---
# 使用するプログラム

- Windowsタブレット
- Googleドライブ
- [IrfanView](https://www.irfanview.com/)

---
# 作り方

---
## 1. Windowsタブレットの購入

まずは、端末となるWindowsタブレットを購入

私が購入したのは「TECLAST X16タブレット」という中華製!?のタブレット。

日本製がいいとは思ったけど、なんとなく、Amazonで購入。

物理キーボード無しで購入したけど、ソフトキーボードもそこそこ使えるし、既存のUSBキーボードやUSBマウスも使えたので、専用キーボードはいらないかもしれない。
(初期設定では物理キーボードがないと、かなり煩わしいよ...)

<font color="red">物理キーボードのレイアウトとして、日本語が認識しない → 未解決</font>

試してはないけど、Bluetoothキーボード/マウスも使えるとは思う。

---
## 2. Windowsタブレットの設定

---
### 2.1 WindowsUpdateの設定

これは、既定のまま。

最近のWindowsは、自動でアップデートされて、自動で再起動するので、便利。

一方で、勝手に再起動するで、、、いつでも再起動しても大丈夫なようにバッチファイルなどの設定をしておかないといけないと心に誓う。

---
### 2.2 自動ログインの設定

Windows3.1時代は、ログインなんてしなくてよかったけど、最近のWindowsはログインという手続きというか処理が必要。

それを自動化するのでレジストリをいじる。

\\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\AutoAdminLogon
文字列(REG_SZ)
値は「1」

\\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\DefaultUserName
文字列(REG_SZ)
値はユーザ名

\\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\DefaultPassword
文字列(REG_SZ)
値はパスワード

![017.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/6cd9fb30-2a3c-5dc3-c7d9-009c47da0e77.jpeg)

HKLM は HKEY_LOCAL_MACHINEを意味する。

これで、起動直後に自動的にログインまで完了する

<font color="red">何かの拍子でスクリーンロックしたりする可能性を考慮して、どこかにメモしておいた方がいいだろうね</font>

---
### 2.3 電源設定

無操作状態で、スリープ状態に移行されても困るので、電源設定をいじって、無操作状態でも何も変化しないようにする

![014.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/3af9754c-84e0-6efd-a6cf-21ac86672acc.jpeg)

![015.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/d8273e2f-fd3f-c56e-3d26-3f3cb527fc39.jpeg)

![016.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/4ed089f5-e00b-bf42-eecf-db68fe310d35.jpeg)

---
### 2.4 スクリーンロック時のパスワード

実家でこういう操作はできないので、無効化しておく必要がある。

![018.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/eca147e8-11a5-5c5f-968a-73abb18fc6aa.jpeg)

---
### 2.5 スクリーンセーバーの設定

私の(追加の)仕様によって、

- 日中はスライドショー(7:00～22:30)
- 夜間はスライドショーの停止

として考えたので(夜間に動画の音声がうるさいかな、と思ったので)、
スライドショー以外の時間帯はスクリーン保護に、スクリーンセーバーを選択した。

![006.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/0903d575-f063-102a-d170-464ce89f8c1c.jpeg)

「再開時にログイン画面に戻る」とパスワードを求められるので、<font color="red"><b>オフ</b></font>にすること

<b><font color="red" size="+1">Irfan Viewはスライドショー動作中は、スクリーンセーバーが起動しないのはとても便利</font></b>

---
### 2.6 タスクスケジューラーの設定

タスクスケジューラーで、時間指定のプログラムを設定する

- 定期的な再起動(理由は後述)
- Googleドライブの指定フォルダを検索して、スライドショーのリストを更新する

の2つ

![007.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/c95e5ddc-ea96-aac1-a225-febdd98afd10.jpeg)

![008.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/c661c7c7-45c3-fe6f-24fc-3cf58b27570c.jpeg)

スタートメニュー → コンピュータの管理
でタスクスケジューラーは起動する

---
### 2.7 タスクスケジューラーの設定(再起動の設定)

まずは定期的な再起動の設定

IrfanViewのスライドショーには、時間指定で終了させる方法がないので、Windows自体を再起動させる。という方法を選択した。

![010.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/cfd6f168-a271-4b1b-44d6-06dc2057bc10.jpeg)

時間は、

- 07:00
- 22:30

22:30の再起動によって、IrfanViewのスライドショーは停止される。
07:00の再起動によって(メニューのスタートアップに登録したバッチファイルによって)IrfanViewのスライドショーがスタートする

![009.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/3bd7c464-cf97-7508-c67e-b723bddcbb72.jpeg)

Windowsの再起動には「Shutdown」コマンドがあるので、それを使う。
引数「/r」は再起動というオプション、「/t 秒数」で、指定秒数後に実行、という意味

---
### 2.8 タスクスケジューラーの設定(Googleドライブのチェック)

適当な時間で、Googleドライブをスキャンして、スライドショーの画像/動画のリストを更新するバッチファイルを起動させる。

私の場合は、毎日の深夜に実行するようにした。

![011.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/ad10dbc6-7866-92a8-039c-d8d94247e6e9.jpeg)

バッチファイルの詳細は後述

---
### 2.9 スタートアップの設定

ログインした時に、IrfanViewのスライドショーを起動する。
というバッチファイルを動かす必要があるのだけど、、、

タスクスケジューラーの「ログイン時に起動」に登録してもよかったんだけど、

私は、Windows95時代からのスタートアップフォルダにバッチファイルのショートカットを入れることにした。

<font color="red">エクスプローラで開かないかもしれないので、コマンドプロンプトで操作した。</font>
(cdコマンドで異動して、copyコマンドで、ショートファイルをコピー)

![012.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/3d2e4c1d-c958-9636-d924-1037202fe0c9.jpeg)

c:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 以下がそのフォルダ

バッチファイル自体の中身は後述

---
## 3. GoogleIDの作成

まぁ、専用に作ってもいいし、既存のgMailのIDを使ってもいいけど、、、とにかくGoogleのIDが必要なので、用意/作成しておく。

私は専用のアカウントを作った。

---
## 4. Googleドライブのインストール

[Googleドライブをダウンロード](https://www.google.com/intl/ja_jp/drive/download/)してインストールする。

![005.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/b5e11c0c-faf0-8414-64c6-db7fd0217f6c.jpeg)

3.のGoogleIDを入力して、常時ログインにしておくと、Gドライブが、Googleドライブにマッピングされる。

![013.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/b09b1234-fb3e-1829-9c9f-38a46193efbe.jpeg)

Googleドライブのアプリケーションをインストールすると、Gドライブにマッピングされる。
普通のローカルのハードディスクのような操作性は、Good!!ですよ

無料で15GBまで使えるのもいいね♪...既に7GB越えだけど...

---
## 5. 写真/動画をGoogleドライブにアップロード

私は<b>「G:\マイドライブ」</b>下に<b>「image」</b>というフォルダを作って、その下に大量にアップロードした。

---
## 6. 写真/動画のファイルパスの一覧をファイルに収める

こんなバッチファイルを書く。

```batchfile:aaa.bat
DIR G:\マイドライブ\image /S /B > C:\Users\ユーザ名\img.lst.bak
IF NOT EXISTS C:\Users\ユーザ名\img.lst.bak GOTO :EOF
TYPE C:\Users\ユーザ名\img.lst.bak | FIND /I ".jpg" || GOTO :EOF
TYPE C:\Users\ユーザ名\img.lst.bak | FIND /I ".jpg" > C:\Users\ユーザ名\img.lst.bak0
TYPE C:\Users\ユーザ名\img.lst.bak | FIND /I ".mp4" >> C:\Users\ユーザ名\img.lst.bak0
MOVE /Y C:\Users\ユーザ名\img.lst.bak0 C:\Users\ユーザ名\img.lst.bak
TYPE C:\Users\ユーザ名\img.lst.bak | SORT > C:\Users\ユーザ名\img.lst.bak0
MOVE /y C:\Users\ユーザ名\img.lst.bak0 C:\Users\ユーザ名\img.lst.bak
IF NOT EXIST C:\Users\ユーザ名\img.lst COPY C:\Users\ユーザ名\img.lst.bak C:\Users\sanaki\img.lst
FC /B C:\Users\ユーザ名\img.lst.bak C:\Users\ユーザ名\img.lst && GOTO :EOF
COPY /Y C:\Users\ユーザ名\img.lst.bak C:\Users\ユーザ名\img.lst
REM shutdown /r /t 30
```

これは、前述のGoogleドライブをチェックして、一覧を更新するバッチファイル。

内容は、

- Googleドライブのファイル一覧を取得して、
- 次は、jpgのファイルパスがなければ終了させる。
- それから jpg/mp4のみを抽出して、、、ソート。
- 既存のファイル一覧と比較して、変化があれば、一覧を更新して再起動(Windowsの再起動でIrfanViewに反映)

(追加の仕様によって、IrfanViewが起動しっぱなしってことではなくなったので、最後の再起動は必要なくなった。したがってコメントアウト(REM)した)

ちなみに `GOTO :EOF` はファイルの最後にジャンプする(つまり終了する)という意味

---
## 6. IrfanViewをインストール

Windowsのスライドショーといえば、IrfanViewでしょう。...

[本家はここ](https://www.irfanview.com/)だけど、日本語版もあるので、日本語版をダウンロードしてもいいかもしれない。

そのまま普通にインストールして、スライドショーの各種設定をしておく。

---
## 7 IrfanViewの設定

---
### 7.1 IrfanViewの設定1

2つあるので、適宜設定しておく(その1)。

Options → Properties/Setting → Full Screen/Slideshow

![001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/fed35751-c16f-2e5e-559c-93e44cb46082.jpeg)

からの

![002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/b151f69c-924c-2103-7d46-9023109f1633.jpeg)

ポイントは、

- スクリーンへの表示方法(画像のスクリーンへのフィッティング方法)
- ファイル名/フォルダ名のテキストの大きさ
- Show text で、ファイル名/フォルダ名の表示書式

あたりかな...

---
### 7.2 IrfanViewの設定2

2つあるので、適宜設定しておく(その2)。

File → Slideshow

![003.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/a8dc961d-0330-75f5-69c8-e531ad7df409.jpeg)

![004.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/1a0eab8c-0571-4822-e54c-f63fe064999a.jpeg)

ポイントは、

- Automatic after.... の秒数
- Remember last the index on exit → Onにしておかないと、常に最初からになってしまうよ
- Loop slideshow → Onにしておかないと、最後で終了してしまうよ
- Show text → 大量の写真は、ファイル名とかフォルダ名が頼りかもしれない
- Play mode → 後述しているけど、フルスクリーンは最後の最後で、テストはWindow modeをお勧めしたい
- Include subfolders → Onにしないと、Add all でサブフォルダ以下がスライドショーのリストに追加されないよ

---
### 7.3 IrfanViewの設定3(スライドショーのテスト)

テスト実行してみて、思い通りかどうかは確認しておく必要がある。

<b><font color="red" size="+1">注意点 : フルスクリーンでスライドショーをすると、それを止めるのはキーボードの「ESC」キーだけなので、
ソフトキーボードだと、スライドショーを終了できないので、テスト実行するには、物理的なキーボードを準備しておいた方がいい。
→ フルスクリーンのスライドショーを止めるには、シャットダウンしか手がなくなるのよ。</font></b>

---
## 8. IrfanViewをコマンドラインでスライドショー起動させる

「i_view64.exe /slideshow=ファイル名」でスライドショーモードで起動できる。

こんなバッチファイルを書く。
```batchfile:bbb.bat
TIME /t | FIND "22:" && GOTO :EOF
TIME /t | FIND "23:" && GOTO :EOF
TIME /t | FIND "00:" && GOTO :EOF
TIME /t | FIND "01:" && GOTO :EOF
TIME /t | FIND "02:" && GOTO :EOF
TIME /t | FIND "03:" && GOTO :EOF
TIME /t | FIND "04:" && GOTO :EOF
TIME /t | FIND "05:" && GOTO :EOF
TIME /t | FIND "06:" && GOTO :EOF
IF NOT EXIST C:\Users\ユーザ名\img.lst GOTO :EOF
CD "C:\Program Files\IrfanView\"
START i_view64.exe /slideshow=C:\Users\ユーザ名\img.lst
```

これを、前述のスタートアッププログラムとして登録すれば、
日中であれば、ログイン直後に、IrfanViewのスライドショーが開始される。

---
## 9. 最後に

実家に持って行って、電源On でおしまい

---
# 心残り

- 一日2回の再起動は、、、もう少し減らせたかも...<br>IrfanViewの起動をスタートアップメニューからタスクスケジューラにすれば、朝の再起動は必要ないような気がするけど、IrfanViewの多重起動するかもしれない可能性を排除しきれなかった...
- スピーカーの音量設定が固定なのが、、、なんとかしたかった...
- OneDriveの方が楽だったかもしれない!?
- 複数のクラウドを駆使した場合、最終フォルダ名でソートしたいなぁ～
- - ⇒ [LastFolderNameSort.exe](http://rocketeer.dip.jp/sanaki/free/free169.htm)

---
## 蛇足

設定して、作業して、テスト中に、私が購入したWindowsタブレットは、Windows10からWindows11になってしまったよ。

---
# 以上