|
![]() | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
先週、FR-Scriptの組込関数に、キーボード押下をシミュレーションするための その結果、これまで、実装実験の際に追加していた2つだけだった初期代入変数( ↓追加した定数
変数の実装は、Geminiが作ってくれた C++の ただ、162個となると、数ミリ秒くらいかかってしまうかもしれない。想定されるたいていのスクリプトでは、162個の初期代入変数のうち、使うのはせいぜい0個なので、そのために数ミリ秒もかかってしまうのは許し難い(※1)。というわけで、ちょっとでも効率を高めるために、策を講じることにしました。 (※1) … 現実としてはこうなのだが、スクリプトのインタプリタ実装の一般論として、変数アクセスはこの方式で行いたいというのもあり、あえてこのままでやってます。これがコンパイル言語ならば、#defineみたいなので数値定数に置き換えちゃうんだろうから、実行時の負荷にならない実装が可能なんですよね。
というわけで、初期代入変数の追加順を、変数名(キー)の昇順になるようにし、
g_context.variables.emplace(std::make_pair("ISNT", 1));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_0", 0x30));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_1", 0x31));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_2", 0x32));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_3", 0x33));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_4", 0x34));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_5", 0x35));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_6", 0x36));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_7", 0x37));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_8", 0x38));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_9", 0x39));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_A", 0x41));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_ACCEPT", 0x1E));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_ADD", 0x6B));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_APPS", 0x5D));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_ATTN", 0xF6));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_B", 0x42));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_BACK", 0x08));
:
:
:
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_SPACE", 0x20));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_SUBTRACT", 0x6D));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_T", 0x54));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_TAB", 0x09));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_U", 0x55));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_UP", 0x26));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_V", 0x56));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_VOLUME_DOWN", 0xAE));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_VOLUME_MUTE", 0xAD));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_VOLUME_UP", 0xAF));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_W", 0x57));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_X", 0x58));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_XBUTTON1", 0x05));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_XBUTTON2", 0x06));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_Y", 0x59));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_Z", 0x5A));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("VK_ZOOM", 0xFB));
g_context.variables.emplace_hint(g_context.variables.end(), std::make_pair("YES", 1));
とするようにしました。
ところでどうでもいい話なのですが、仮想キーコードの押し/離しについて、キーボードシミュレータのサブメニューへの追加プログラムを書いていたら、プログラムのコメントに【押しの子】が出てきてしまった。(漢字が違うけど)
目次の表示: ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメール、フィードバックまたはX等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。 当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。 |
- 最近の更新 - |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
3468723 (+0176)[+1980] Copyright© 2010-2026 INASOFT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||