INASOFT 管理人のひとこと


フリーソフトダウンロードサイト「INASOFT」の管理人 矢吹拓也 が日々の「ひとこと」を語るページです。
2021年1月1日より、旧ブログ(blog.inasoft.org)からお引越ししました。
・INASOFT Webサイト: https://www.inasoft.org/
・管理人のふたこと(長文記事/寄稿文): https://www.inasoft.org/talk/
2022年7月下旬より再び本業多忙化してきているため、更新頻度は落ちます。 [2022/7/24 19:32]

目次 | ←前へ / 2016-09-06 00:00 / 次へ→ / 最新へ⇒

■「キーボードシミュレータ(.NET) ver.1.40β」公開のお知らせ

2016年 9月 6日(火) 0:00:00 [さくらのブログから転記]



RSSRSS配信中
https://www.inasoft.org/



キーボードシミュレータ(.NET) ver.1.40β」を更新しました。

ダウンロードはトップページからどうぞ。

主な更新点は次の3点となります。

  • 入力モードとして「文字入力モード」を追加。英大小文字や日本語など、任意の入力をシミュレートできるようにした。
  • Windows 9x/Me/2000を動作環境から外した。
  • 一般的なC#のセオリーに乗っ取り、ターゲットCPUを「Any CPU」から「x86」へ変更。

1番目の変更点が、今回の重要な更新点です。

内部的には「Unicode入力モード」と呼んでいますが、SendInput() APIでキーボード入力をシミュレートする際、「KEYEVENTF_UNICODE」を付けることにより、任意の文字の入力をシミュレートさせるモードです。

これを使わない場合、アルファベットの入力をシミュレートしても小文字の文字しか入力できず、大文字を入力したければ、CAPSキーの押下かSHIFTキーの押下をシミュレートしなければなりません。また、日本語を入力する場合は、日本語入力モードに入るところからシミュレートしなければなりません。

「文字入力モード」では、英字の大文字小文字であるとか、日本語(ひらがな、かたかな、漢字など)も直接指定できるモードです。

ただし、本プログラムが制御のために特殊な文字として扱っているもの(「 [ 」「 ( 」「 { 」「 } 」「 ! 」)を入力したい場合は、特殊な入力を行う必要があります。詳しくは、付属のヘルプをご覧下さい。

2番目の変更点は、おそらく、SendInput APIを使う事になったことにより生じるであろう制限によるものです。現在ではWin 9x/NT4での動作検証を実施していないため、実際に動かなくなったかどうかは確認していないのですが、多分動かなくなったと思いますので、動作環境から外しています。Windows 2000は巻き添えを食らうように対象外となっています。実際には動くんじゃないかな・・・と思いますが、対象外とします。

3番目の変更点は、これまで無意味にターゲットCPUを「Any CPU」にしていましたが、全く意味が無い(それどころか動作検証の手間が2倍になるだけ)ことがわかりまして、ターゲットCPUを「x86」に変更しています。

最近意識し始めたのですが、Visual C#では、デフォルトのターゲットCPUは「x86」になっています。これが最近のセオリーなんだとか。実際、Any CPUにすることにより、発生するトラブルは多いと聞きます。

例えば今回から使う事になった SendInput() API ですが、x86 と x64 で構造体サイズが異なってしまう(KEYBDINPUT構造体の「ULONG_PTR dwExtraInfo」は、x86かx64かでサイズが異なる)という事情があります。

ターゲットCPUをAny CPUにした場合、このサイズの差はプログラマがコードを作って吸収しなければなりません。

であれば、はじめからターゲットCPUをx86にしてしまえばよかったのです。

2GB以上のメモリを使いたいという要求もないですし。




目次 | ←前へ / 2016-09-06 00:00 / 次へ→ / 最新へ⇒


目次の表示:


ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメールフィードバックまたはTwitter等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。
当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。本ページは公開から1年半後の任意のタイミングで削除される予定です。


- 最近の更新 -



3114749 (+0356)[+0733]

Copyright© 2010-2023 INASOFT