前座(自己紹介)
- 現役高校生
- Windows10より11の方が触っている時間が長い
- scratchから脱出できるまでに6年かかった
- Python大好き
- Typescriptも使いこなせるようになりたい
- GitHub Copilot2年生
状況など
状況
- 文化祭で、各物販の在庫状況をリアルタイムで表示する仕組みを前日に引き受ける
- 各クラスの担当者が手動でGoogleフォームを通じてデータを入力し、その情報をGoogleスプレッドシートに反映。スプレッドシートのグラフをGoogle Sitesに埋め込んで表示した
- 設置場所は会場の通路やエントランス、休憩スペースなど人が集まる場所で、休憩スペースではイベント映像と交互に表示
問題①: 自動更新の不備
Google sitesに埋め込んだスプレッドシートのグラフは自動更新されなかった。つまりリアルタイムでデータを更新するには、ページをリロードし続ける必要がある。
→自分たちでサイトを作っていればjsで定期的にGETしてくるなどできた。時間がなかったためchrome拡張機能をインストールして自動リロードを実現
→なぜか数十分後に止まってしまう
→Wi-Fiの電波が弱くて届いたり届かなかったりしたことが後に判明。一度インターネットにつながっていない状態で自動リロードが入ると、拡張機能ごと停止してしまうため自動更新がされなかった。
問題②: 熱でスティックPCがやばい
猛暑日に小型スティックPC(低スペック)を使用した結果、過熱によるパフォーマンス低下が発生。
→窓を開けるなど環境調整を行い、大きなトラブルは回避。
問題③: タスクスケジューラーがわからない
これが今回の記事の本題。いままでWindowsはたくさん触ってきましたが、この件で初めてタスクスケジューラーなるものの存在を知りました。が、使い方が結構難解。
→ChatGPTとGoogleを横断しつつ対応...
→フルスクリーンで起動できない!
問題④: 動画を流すときにフルスクリーンで起動できない
Windows 10標準の「メディアプレーヤー」でフルスクリーン起動を試みたが、ネット情報と実際の挙動が一致せず失敗。
→/fullscreen
オプションではフルスクリーンにならず、--start-fullscreen
も動作が不安定。
→最終的にVLCメディアプレーヤーを使用して解決。あんまり良くないけど。
問題⑤: 秒数を指定して動画再生後のプロセス終了
動画とサイネージの表示を繰り返す設計において、指定秒数後に動画再生を終了させる必要があった。が、その起動オプションがうまくいかず。
→秒数を遅らせてtaskkillコマンドをタスクスケジューラーに登録して対応した。
解決手順詳細
フルスクリーンで起動する
/fullscreen # MS以外のソフト
--start-fullscreen # MSのソフト
Windowsのメディアプレイヤー(従来版)では、/fullscreenが使えるものの、メディアプレイヤーのウィンドウがフォーカスされていないと自動的にフルスクリーンが閉じます
一応nircmdというものを入れればフォーカスをあてるコマンドを使用できるそうですが、試していません。
従来版ではない方のメディアプレイヤー
"C:\Program Files\WindowsApps\Microsoft.ZuneMusic_11.2405.8.0_x64__8wekyb3d8bbwe\Microsoft.Media.Player.exe"
上記にある従来版でない方のメディアプレイヤーでは、特定のファイルを指定して開くコマンドラインが見当たらなかった(そのままパスを渡してもダメだった)。
したがって、動画をタスクスケジューラにて動かしたい場合はVLCなど別のソフトを使う方が私としては良かったです。
VLCでは--start-fullscreen
が機能しました。同時に動画のファイルパスをそのまま渡せば、フルスクリーンで特定の動画ファイルを起動できます。(執筆時点)
秒数を指定して閉じる(ことはできない)
秒数を指定して閉じることはできない?(もしやり方知っている方いれば教えて下さい)ため、代わりに次にやりたいタスクの上に、前のタスクをキルするタスクを設定しておく。
taskkill
/im (タスクキルしたいEXEの名前)
Chromeをタスクキルして閉じたあとにexample.comをEdgeでフルスクリーンで開く。
実際にはmsedge.exeではなく、msedge.exeへの絶対パスを入力してください。
引数としてそのままURLやパスをダブルクォーテーションでくくることで、ブラウザやその他のプログラムにおける「ファイルをプログラムから開く」と同等の動作をすると思われます。
タスクの順番を切り替えるときは、タスクを左クリックして選択した状態で右側にある矢印を押す。
学びと今後の展望
時間やリソースの制約下で迅速なトラブルシューティングを実施した経験は大きな収穫。
今後、より柔軟でリアルタイム性の高いシステムを構築するための準備を進めたい。
参考文献