save_clipboard プログラム仕様
クリップボードの内容(テキストまたは画像)を取得し、ファイルに保存するスクリプト。
このスクリプトはWindows API (User32, Ole32, Kernel32) を使用してクリップボードデータを処理し、 PIL (Pillow) ライブラリを使って画像を保存します。 テキストデータはUTF-8エンコーディングで保存され、DIB (Device Independent Bitmap) 形式の画像はPNG形式で保存されます。 ファイル保存後、reStructuredText (rst) 形式でそのファイルを参照するためのスニペットを標準出力に表示します。
- Usage:
python save_clipboard.py [出力ファイル名のベース (拡張子なし)]
- 例:
# クリップボードの内容を 'my_output.txt' または 'my_output.png' として保存 python save_clipboard.py my_output # 引数なしの場合、'clipboard_output.txt' または 'clipboard_output.png' として保存 python save_clipboard.py
クリップボード内容保存ツール save_clipboard.py 技術ドキュメント
- class converter.save_clipboard.FORMATETC[ソース]
ベースクラス:
StructureOLEデータ転送で使用される形式記述構造体。
クリップボードやOLEオブジェクトからのデータ取得時に、どのような形式 (クリップボード形式、メディアタイプ、表示側面など)のデータを要求するかを指定します。
- cfFormat
Structure/Union member
- dwAspect
Structure/Union member
- lindex
Structure/Union member
- ptd
Structure/Union member
- tymed
Structure/Union member
- class converter.save_clipboard.IDataObject[ソース]
ベースクラス:
StructureOLEデータ転送インターフェースの抽象基底クラス。
クリップボードやドラッグ&ドロップ操作など、データ転送オブジェクトが提供するデータを 管理するためのCOMインターフェースです。主に GetData メソッドを通じてデータを取得します。
- lpVtbl
Structure/Union member
- class converter.save_clipboard.STGMEDIUM[ソース]
ベースクラス:
StructureOLEデータ転送で使用されるストレージメディア構造体。
クリップボードやOLEオブジェクトからのデータ転送時に、実際のデータ (ハンドル、ポインタ、ストリームなど)とそのタイプを保持します。 u メンバは、tymed の値に応じてHGLOBALハンドルなどを格納するために c_void_p として定義されています。
- pUnkForRelease
Structure/Union member
- tymed
Structure/Union member
- u
Structure/Union member
- converter.save_clipboard.get_clipboard_image_fixed()[ソース]
クリップボードからDIB (Device Independent Bitmap) 形式の画像を取得し、PIL Imageオブジェクトとして返します。
Ole32.dllのOleGetClipboardとReleaseStgMedium関数、およびIDataObjectインターフェースのGetDataメソッドを使用します。 取得したDIBデータは、BMPファイルヘッダを追加してPIL (Pillow) で読み込み可能な形式に変換されます。 この関数を呼び出す前に ole32.OleInitialize(None) が呼び出されている必要があります。
- 戻り値:
クリップボード上の画像データ (PIL.Image.Image)、またはNone。
- 戻り値の型:
PIL.Image.Image | None
- converter.save_clipboard.get_clipboard_text()[ソース]
クリップボードからUnicodeテキストを取得します。
User32.dllのOpenClipboard, GetClipboardData, GlobalLock, GlobalUnlock, CloseClipboard関数を使用します。 CF_UNICODETEXT形式のデータを取得し、Pythonの文字列として返します。 クリップボードがロックされている場合や、テキストデータが見つからない場合はNoneを返します。
- 戻り値:
クリップボード上のテキストデータ (str)、またはNone。
- 戻り値の型:
str | None