他アプリへの文字入力2 Visual Basic 6.0 Visual Basic 2008

他のアプリケーションの入力フィールドに、文字を入力する。
ここでは、クリップボードに文字をコピーし、SendInputAPI関数を使ってメモ帳に対して、(コントロール+「V」)キーによる「貼り付け」動作にて、「寿限無」を1文字0.05秒間隔で入力。
ここでは、Sendkeysは使用しない。
メニュー
ロジック説明
使用するAPI関数
フォーム構成
プログラム
 VB6ソース
 VB2008ソース
関連方式
リンクリスト

ロジック説明

1.メモ帳を起動(Shell)
 メモ帳はウィンドウズのディレクトの中のNotepad.exe
 ウィンドウズのパスはEnvironを用いて環境変数から取得

2.メモ帳に文字入力
 ・1文字クリップボードに記憶
 ・(コントロール+「V」)キー動作によってアクティブウィンドウ(≒メモ帳)に貼り付け
 ・全文字繰り返す

文字化け対策のために、キーダウン/キーアップの間に1ms(0.01秒)の待ちを入れている。

API関数仕様

SendInput関数

関数の仕様

キーボード入力、マウスボタンのクリックをシミュレートする

関数定義

Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, _
   pInputs As INPUT_TYPE, ByVal cbSize As Long) As Long

入力パラメータ

構造体の数を指定
  (ここでは1動作ずつシミュレートするので1固定)
:配列へのポインタ INPUT 構造
   各構造体には、キーボードまたはマウス入力動作に対応するイベントを表す
 cbSize:構造体のサイズを指定

戻り値

 正常終了のとき ウィンドウのハンドル、エラーのとき 0

フォーム構成

フォーム上に下記に示すコントロールを配置します。
コントロール配置 実行イメージ

フォームを追加し、下記のコントロールを配置
  コマンドボタン  1個
  テキストボックス 1個
MultiLine=True(複数行表示可)にしておく

プログラム

VB6ソースサンプルコードのダウンロードVB6.0

フォーム

標準モジュール


VB2008ソースサンプルコードのダウンロードVB2008

フォーム

標準モジュール


関連方式

他アプリへの文字入力0−SendKeys - 他アプリの入力フィールドに文字を入力
他アプリへの文字入力1−SendMessage - 同、SendMessage関数使用
他アプリへの文字入力2−SendInput - 同。SendInput関数使用
他アプリへの文字入力3−SendMessage 3 - 同、キーボードフォーカス対象

×
PageTop