LNSX01 クリップボード制御

Windowsのクリップボードにアクセスするためのモジュールを追加します。




基本情報

前提スクリプト

なし

挿入位置

指定なし


説明

概要

 Windows のクリップボードにアクセスするメソッド群です。全てのメソッドは Clipboard モジュールの特異メソッドとして定義されています。
基本的にはクリップボードに文字列を書き込んだり、クリップボードの文字列を読み込んだりするのが目的ですが、VX Ace で編集可能なアクターやイベントといったオブジェクトも、エディタに貼り付けられる形式で書き込むことができます。

◆ メソッド一覧

● Clipboard.get([format])

Clipboard.get(:UNICODETEXT)
 format で指定された形式のデータをクリップボードから読み込み、文字列として返します。format には文字列、シンボルまたは整数を指定します。
クリップボード形式の解析は基本的に行わないので、使う場合は適宜解析用メソッドを用意してください。このスクリプトでサポートされるのは以下の形式です。
:TEXT (Shift_JIS テキスト)
:UNICODETEXT (ユニコード互換テキスト。format 省略時はこれになる)
:DIB (ビットマップデータ)
VX Ace のエディタ上のデータ(下のメソッド説明を参照)

● Clipboard.set(data[, format[, clear]])

Clipbaord.set("テスト文字列", :UNICODETEXT, true)
 クリップボードに文字列 data を形式 format として書き込みます。
clear が省略時、または真の場合、クリップボードを一旦消去します。
書き込みの成功時に true、失敗時に false を返します。

● Clipboard.get_bitmap

Clipboard.get_bitmap #=> Bitmap
クリップボードにあるビットマップデータ(DIB)を読み込み、Bitmapオブジェクトとして返します。エラーもしくはクリップボードにビットマップが存在せず、取得に失敗した場合は nil が返ります。

● Clipboard.set_bitmap(bitmap)

Clipboard.set_bitmap(Cache.face("Actor1"))
引数で指定されたBitmapオブジェクトを、ペイントソフトなどに直接貼り付け可能なビットマップデータ(DIB)に変換してクリップボードへ書き込みます。書き込みの成功時に true、失敗時に false を返します。

● Clipboard.clear

 クリップボードを消去します。成功時に true、失敗時に false を返します。

● Clipboard.is_text_format?(format)

 format が文字列形式(TEXT, OEMTEXT, UNICODETEXT, DSPTEXT)の場合に true を返します。それ以外の場合には false を返します。

● Clipboard.register_format(name)

Clipboard.register_format("VXAce ACTOR")
 文字列 name をクリップボード形式としてレジストリに登録します。以降はこの名前をクリップボード形式として読み書きに使えます。
登録に成功すると、形式の識別番号として0xC000~0xFFFFの値が返ります。すでに登録済みの形式の場合、新たな登録は行われず、登録済みの識別番号が返ります。

● Clipboard.enum_formats

 レジストリに登録済みのクリップボード形式を列挙します。
[識別番号, 形式の名前] の配列が返ります。

● Clipboard.set_data(obj1[, obj2, ...])

Clipboard.set_data($data_actors[1], $data_enemies[1])
 引数として渡されたRPGオブジェクト($data_actors[1]など)をエディタに貼り付け可能な状態でクリップボードにコピー書き込みます。書き込むオブジェクトは複数指定が可能ですが、マルチコピーに対応していない場合は最後の1つのみ書き込まれます。

マルチコピー対応クラス
  • RPG::Map::Encounter(マップのエンカウントリスト)
  • RPG::EventCommand(イベントコマンド)
  • RPG::MoveCommand(移動ルートのコマンド)
  • RPG::BaseItem::Feature(特徴)
  • RPG::UsableItem::Effect(使用効果)
  • エディタ上で「マルチコピー」が選択できるオブジェクト(下記)
    • RPG::Actor(アクター)
    • RPG::Class(職業)
      • RPG::Class::Learning(習得スキル)
    • RPG::Skill(スキル)
    • RPG::Item(アイテム)
    • RPG::Weapon(武器)
    • RPG::Armor(防具)
    • RPG::Enemy(敵キャラ)
      • RPG::Enemy::Action(エネミーの戦闘行動)
    • RPG::Troop(敵グループ)
    • RPG::State(ステート)
    • RPG::Animation(アニメーション)
    • RPG::Tileset(タイルセット)
    • RPG::CommonEvent(コモンイベント)

マルチコピー非対応クラス
  • RPG::Event、RPG::Event::Page(マップイベント、及びイベントの各ページ)
  • Troop::Page(敵グループに設定されたバトルイベントの各ページ)
  • Animation::Frame(アニメフレーム)、Animation::Timing(SEとフラッシュ)

上記のどれにも該当しないデータは書き込まれません。
マップデータ、スクリプト、アニメーションのセルデータについてはそれぞれ別のメソッドを使う必要があります。

● Clipboard.get_data([type])

Clipboard.get_data(RPG::Actor)
 エディタ上でコピーしたデータのうち、type に該当するクラスのものを返します。
type を省略、または nil を指定した場合、クリップボードにある VX Ace のデータを全て配列にして返します。
 上記「マルチコピー対応」のクラスは配列で返ってくることに注意してください。

● Clipboard.set_map(map_id)

Clipboard.set_map(1)
 map_id で指定された番号のマップをエディタに貼り付け可能な状態でクリップボードに書き込みます。存在しない番号が指定された場合は何もしません。

● Clipboard.get_map

 クリップボード上のマップデータを [マップ本体, マップ情報] の配列で返します。

● Clipboard.set_script(name, script[, id])

Clipboard.set_script("test", "p test\n")
 スクリプト名 name、本体 script のスクリプトをエディタに貼り付け可能な状態でクリップボードに書き込みます。



コメント:

すべてのコメントを見る
最終更新:2020年11月26日 00:39