2019年7月10日水曜日

キャプチャソフト開発 はじめました

現在進行形で記事を書くのは初めてです。
あまり硬くならずに書iいていこうと思います。

制作の動機

スクリーンキャプチャソフトを作ります。
わざわざ自作しなくても、フリーのキャプチャソフトはたくさんあります。
しかし、自分で作ってみるのも一興です。
軽くggってみたところ、技術的にいろいろ勉強できそうです。

要件・仕様など

  • デスクトップ画像キャプチャソフト
    • ウィンドウの選択はめんどくさいのでやらない
    • 範囲選択は後々ペイントで行えばよい
  • タスクトレイ常駐型
    • バックグラウンドで動作
    • 保存先フォルダの設定と終了を右クリックメニューに表示
  • キー入力をトリガとして撮影、保存を行う
    • シャッターキーはPauseやScrLkキーなど、使用頻度の低いキーに固定
    • 非アクティブウインドウがキー入力を知るためには、「グローバルフック」なる技術が必要らしい
    • グローバルフックはDLLで実装する必要があり、システム全体に影響を与えるので慎重な開発が必要とのこと
  • デスクトップ画面をPNG形式で保存
    • 個人情報保護の観点から、クリップボードを経由しない(PrtScr劣化互換にしない)
    • 一時ファイルをキャッシュとして使用する方法も回避したい
    • メモリに一時的に画像データを蓄えるとすると、RGB24ビットだと、1920x1080のMy PCの画面サイズでは、6MBytes程度の動的メモリ確保が必要
    • PNG画像の出力にはオープンソースのlibpngライブラリを使う
    • ファイル名はキャプチャ日時で自動的に設定

ポンチ絵



段階を追って進める
プログラミングは順を追って進めるものです。
特に、タスクトレイ常駐型、DLL開発、グローバルフックなど、私にとっては未知の技術が多いので、一歩ずつ着実に進んでいこうと思います。

今後の予定
  • キャプチャソフト開発 その1 フォルダの選択ダイアログを表示する
  • キャプチャソフト開発 その2 タスクトレイに常駐するモックを作る
  • キャプチャソフト開発 その3 DLLを作ってみる
  • キャプチャソフト開発 その4 キーボードフックの実装
  • キャプチャソフト開発 その5 libpngを使う
  • キャプチャソフト開発 その6 全体の統合

0 件のコメント:

コメントを投稿

コメント表示は承認制に設定しています