文字列の送信

モ帳やInternet Explorerのフォーム入力はKBD関数などで、
いちいちスクリプトを組んでいてはキリがありません。
そこでUWSCでは、指定文字列を一発で入力できるSENDSTRを利用します。

文字列の送信
SENDSTR( ウィンドウID, 文字列, [番号, 送信モードフラグ, ACC指定] )

引数

ID:
Windowを識別するID
(ID = 0 であれば クリップボードへ)
文字列:
送りたい文字列

番号:
左上から数えたエディトコントロールの順番 (1から指定、マイナスを付けた場合にはDisable状態のものもカウント)
(0:デフォルトはフォーカスを持ったエディトコントロール)
送信モードフラグ:
FALSE: 追加 (デフォルト)
TRUE: 置き換え
ACC指定:
FALSE: APIによる (デフォルト)
TRUE: アクセシビリティ用インターフェースを利用

SENDSTRは関数名の通り、
STR(STRING:文字列)をSEND(送る)関数
です。
ACC(アクセシビリティ用インターフェース)は障害者向けの支援技術で
スクリーン・リーダー等に使われたりします。

メモ帳を操作するサンプル ※メモ帳を起動して試してみてください

// メモ帳の操作
memoid =GETID("メモ帳")
ifb memoid <0 then
  MsgBox("メモ帳を起動してご利用ください")
  Exit
endif

// 置換の実行

SendStr(memoid, "リターンの実行<#CR>", 1, True) // リターン =<#CR>
SLEEP(3)
SendStr(memoid, "タブの実行<#TAB>")        // タブ =<#TAB>
SLEEP(3)
SendStr(memoid, "あああ")
SLEEP(3)
ClkItem(memoid, "置換", CLK_MENU)
SLEEP(3)

repid =GETID("置換")
SendStr(repid, "あああ", 1, True)     // 検索
SLEEP(3)
SendStr(repid, "いいい", 2, True)     // 置換
SLEEP(3)
ClkItem(repid, "すべて置換")
SLEEP(3)
ClkItem(repid, "キャンセル")

解説

実はこのサンプルは、UWSCのHELPにあるスクリプトほぼそのままで、
動作を確認するためのSLEEPを組み込んだスクリプトです。
非常に示唆に富むスクリプトなので利用させてもらっています。

まず、置換の実行1行目に注目しましょう。
送信モードフラグをTRUEを指定しているので、
メモ帳は置き換えになります。
例えば、このスクリプトを起動する前にメモ帳に適当な単語を書いていても、
『リターンの実行』で上書きされることになります。
また、”<#CR>“によって改行されるのが見てとれます。

さらに、”あああ”が、タブの実行によって1回タブを押した分のスペース分後ろに追加されるのが分ります。
そして、ClkItemでメニューの置換を押下します。
SendStrから少し外れますが、
CLK_MENUを利用する分りやすい実例となっているので、
是非覚えておきたい1文です。

次の段階として、置換のコントロールを行っています。
先ほど、メニューの置換を立ち上げたので、
最初にウィンドウIDをGETIDで取得しています。
そして、エディトコントロールを1番に指定したうえで、
置き換えのTRUEを指定しています。
これにより、前回の置換で利用した文字列に追加しないで、
上書きでBOXに入力が可能になります。
同様に置換する文字列を入力して、置換の実行、置換ウィンドウを閉じる、といった動作になります。

このようにSENDSTRで文字列を送ることが可能になります。

関連情報:

  1. SENDSTR
  2. CHKBTN
  3. CLKITEM
  4. GETID
  5. GETSTR


続きは、ログインもしくは、登録してください



このページの先頭へ