アクティブウインドウのスクリーンショットを周期的に撮るだけ
ストアアプリのスクショを撮ろうと思ったら
ドスパラのwinタブレットで仕様でできなかったので、
どうにかすることにしました。
以下コードです。
using System; using System.Windows.Forms; using System.Threading; namespace AutoScreenShot { class Program { //撮影周期(秒) const uint PERIOD_SECOND = 5; static void Main(string[] args) { Console.WriteLine("アクティブなウインドウのスクショを約" + PERIOD_SECOND + "秒周期で撮ります"); Console.WriteLine("撮るたびにシステム音が鳴ります"); Console.WriteLine("撮り終わったらコンソールを閉じてください"); Console.WriteLine("ほっとくといつまでも動きます"); var count = PERIOD_SECOND; while (true) { if (count == 0) { System.Media.SystemSounds.Asterisk.Play(); SendKeys.SendWait("%{PRTSC}"); Console.WriteLine("スクショを撮影しました"); count = PERIOD_SECOND; } Console.WriteLine(count--); Thread.Sleep(1000); } } } }
・コードの解説
PERIOD_SECONDを変えれば撮影周期(デフォルトで5秒)を変更できます。
撮るたびにシステム音を鳴らして合図にしています。
SendKeys.SendWait("%{PRTSC}");
でAlt+PrintScreenキーを押したことになっています。
・使い方
起動してから撮りたい画面に移れば後は勝手に撮ります。
本当に撮るだけなので画像生成はしていません。
すべて保存する場合はCLCLなど
クリップボード履歴のソフトを使うなどしてください。
もちろんコード改変でもどうぞ。
用が済んだらアプリを閉じてください。
一応アプリも置いておきます。
置き場所