PEEKCOLOR

PEEKCOLOR関数

指定位置の色情報を取得する
戻値 = PEEKCOLOR(X,Y)

引数
座標:X, Y

座標100, 100の位置の色情報を取得する

16進数に変換して(FORMAT関数)、結果を出力します。

MSGBOX(FORMAT(PEEKCOLOR(100,100),6,-1))

タグ

2012年3月23日 | コメントは受け付けていません。 |

カテゴリー:関数一覧

MOUSEORG

MOUSEORG関数

マウス座標を相対座標にする、またはマウスとキー情報を直接ウィンドウへ送る
MOUSEORG(ウィンドウのID, [基準指定] )

引数
ウィンドウのID:Windowを識別するID
基準指定:
0・・・ウィンドウ位置(デフォルト)
1・・・クライアント領域の位置を基準
2・・・指定ウィンドウ(オブジェクト)へマウス、キー情報を直接送信(第1引数はウィンドウIDでもハンドル値でも可)
MMV()、BTN()、PEEKCOLOR()、CHKIMG()関数の座標を
指定ウィンドウを基準にしたものにする
基準指定にて2が指定された場合は
KBD()、MMV()、BTN()関数の情報は直接ウィンドウ(オブジェクト)へ送られる
スクリーン座標に戻す時はゼロを指定
MOUSEORG(0)

マウスをメモ帳の位置を基準に移動する

ID = EXEC("notepad")
MMV(100,100)
MSGBOX("ディスプレイを基準として100,100の位置")
MOUSEORG(ID,1)
MMV(100,100)
MSGBOX("メモ帳を基準として100,100の位置")

タグ

2012年3月22日 | コメントは受け付けていません。 |

カテゴリー:関数一覧

両端の空白や改行を削除する

戻値 = TRIM(文字列, [全角空白])
 
引数

文字列:
対象となる文字列

全角空白:
FALSE: 全角の空白は含めない (デフォルト)
TRUE: 全角の空白を含めて削除

戻値

両端の空白と制御文字が取り除かれた文字列

象となる文字列の両端にある空白や制御文字(改行など)を取り除きます。
ソフトによっては親切に改行を矢印などで表示する場合もありますが、
WEBサイトのデータをコピーしてきた場合、不要な空白が入ってしまうこともあります。 そんな時、このTRIM関数が役立ちます。

空白文字に関して詳しく説明すると、長くなってしまうので、
興味のある方は『空白文字・改行文字とは何か?』を参照してください。

サンプルテキスト

空白を実感するテキスト

上記のテキストをダブルクリックから単純にコピーして、
下記コードを試してください。

STR = INPUT("コピーしたテキストを貼り付けてください")
PRINT "[" + STR + "]" + ":TRIM処理前"
PRINT "[" + TRIM(STR,TRUE) + "]" + ":TRIM処理後"

下記画像のような結果になると思います。

※画像をクリックすると拡大します

少々関数の説明に寄ってしまいましたが、
制御文字は落とし穴になりがちなので、上手に利用してください。

タグ

2012年3月22日 | コメントは受け付けていません。 |

カテゴリー:逆引き関数

STATUS

STATUS関数

ウィンドウの状態を取得する
戻値 = STATUS(ウィンドウのID, 取得する情報)

引数
ウィンドウのID: Windowを識別するID
取得する情報:
ST_TITLE・・・タイトルを返す
ST_CLASS・・・クラス名を返す
ST_X・・・X座標を返す
ST_Y・・・Y座標を返す
ST_WIDTH・・・幅を返す
ST_HEIGHT・・・高さを返す
ST_CLX・・・クライアント領域のX座標を返す
ST_CLY・・・クライアント領域のY座標を返す
ST_CLWIDTH・・・クライアント領域の幅を返す
ST_CLHEIGHT・・・クライアント領域の高さを返す
ST_PARENT・・・親ウィンドウのIDを返す、無ければ-1
ST_ICON・・・アイコン状態であればTrue、それ以外はFalse
ST_VISIBLE・・・通常の表示状態であればTrue、それ以外はFalse
ST_ACTIVE・・・アクティブ状態であればTrue、それ以外はFalse
ST_BUSY・・・ビジー状態であればTrue、それ以外はFalse
ST_PATH・・・EXEのパスを返す
ST_PROCESS・・・プロセスIDを返す
ST_WIN64・・・64bitアプリであればTrue、それ以外はFalse

戻値
 取得した情報

メモ帳の情報を取得する

ID = EXEC("notepad")
 PRINT "■タイトル(ST_TITLE)"
 PRINT STATUS(ID,ST_TITLE)
 PRINT "----------"
 PRINT "■クラス名(ST_CLASS)"
 PRINT STATUS(ID,ST_CLASS)
 PRINT "----------"
 PRINT "■X座標(ST_X)"
 PRINT STATUS(ID,ST_X)
 PRINT "----------"
 PRINT "■Y座標(ST_Y)"
 PRINT STATUS(ID,ST_Y)
 PRINT "----------"
 PRINT "■幅(ST_WIDTH)"
 PRINT STATUS(ID,ST_WIDTH)
 PRINT "----------"
 PRINT "■高さ(ST_HEIGHT)"
 PRINT STATUS(ID,ST_HEIGHT)
 PRINT "----------"
 PRINT "■クライアント領域のX座標(ST_CLX)"
 PRINT STATUS(ID,ST_CLX)
 PRINT "----------"
 PRINT "■クライアント領域のY座標(ST_CLY)"
 PRINT STATUS(ID,ST_CLY)
 PRINT "----------"
 PRINT "■クライアント領域の幅(ST_CLWIDTH)"
 PRINT STATUS(ID,ST_CLWIDTH)
 PRINT "----------"
 PRINT "■クライアント領域の高さ(ST_CLHEIGHT)"
 PRINT STATUS(ID,ST_CLHEIGHT)
 PRINT "----------"
 PRINT "■親ウィンドウのID(ST_PARENT)"
 PRINT STATUS(ID,ST_PARENT)
 PRINT "----------"
 PRINT "■アイコン状態か(ST_ICON)"
 PRINT STATUS(ID,ST_ICON)
 PRINT "----------"
 PRINT "■通常の表示状態か(ST_VISIBLE)"
 PRINT STATUS(ID,ST_VISIBLE)
 PRINT "----------"
 PRINT "■アクティブ状態か(ST_ACTIVE)"
 PRINT STATUS(ID,ST_ACTIVE)
 PRINT "----------"
 PRINT "■ビジー状態か(ST_BUSY)"
 PRINT STATUS(ID,ST_BUSY)
 PRINT "----------"
 PRINT "■EXEのパス(ST_PATH)"
 PRINT STATUS(ID,ST_PATH)
 PRINT "----------"
 PRINT "■プロセスID(ST_PROCESS)"
 PRINT STATUS(ID,ST_PROCESS)
 PRINT "----------"
 PRINT "■64bitアプリか(ST_WIN64)"
 PRINT STATUS(ID,ST_WIN64)
 PRINT "----------"

全てのウィンドウのIDを取得し、そのウィンドウのタイトルを表示する

まずは、メモ帳、電卓、エクスプローラーを表示します。
そのあとで全てのウィンドウのIDを取得し、
それぞれのタイトルを出力します。
最初に取得したメモ帳、電卓、エクスプローラーに関しても、
取得時には分かりやすいようにコメントを入れておきます。

この投稿の続きを読む »

タグ

2012年3月21日 | コメントは受け付けていません。 |

カテゴリー:関数一覧

GETALLWIN

GETALLWIN関数

全てのウィンドウのIDを取得する
戻値 = GETALLWIN( [ウィンドウのID] )

引数
ウィンドウのID: 指定ウィンドウの子ウィンドウを取得したい場合に、
親ウィンドウIDを指定
戻値
 取得したWindowの数
 取得したウィンドウのIDは配列変数のALL_WIN_ID[ ] に格納
 配列はゼロから

取得できたウィンドウの数を表示する

MSGBOX(GETALLWIN())

このスクリプトを実行すると意外と、
多くのウィンドウ数が表示されるかと思います。
では、もう少し詳しく情報を取得してみましょう。

全てのウィンドウのIDを取得し、そのウィンドウのタイトルを表示する

まずは、メモ帳、電卓、エクスプローラーを表示します。
そのあとで全てのウィンドウのIDを取得し、
それぞれのタイトルを出力します。
最初に取得したメモ帳、電卓、エクスプローラーに関しても、
取得時には分かりやすいようにコメントを入れておきます。

この投稿の続きを読む »

タグ

2012年3月20日 | コメントは受け付けていません。 |

カテゴリー:関数一覧

文字列を数える

文字列を数える関数です

LENGTH(文字列)

文字列
対象となる文字列
引数
文字列: 数える文字列 (もしくは配列変数)
戻値
文字数 (配列変数時は配列サイズを返す)
※ バイト処理の場合は LENGTHB

字列の文字数を取得できます。
COPY関数を利用する時に、
コピーする文字数を算出するために利用されることが多いです。

文字数取得するサンプル
//「22」が表示されます
mojiretu = "UWSCのサンプルを有効活用するアカサタナハ"
NUM = LENGTH(mojiretu)
PRINT NUM

また、配列サイズからFORの回数を取得するために利用することもあります。
これにより配列数分繰返しを行えます。

配列のサイズを取得する
//「6」が表示されます
HASHTBL A

A["ア"] = 1
A["カ"] = 3
A["サ"] = 5
A["タ"] = 4
A["ナ"] = 2
A["ハ"] = 9

PRINT LENGTH(A)

タグ

2012年3月20日 | コメントは受け付けていません。 |

カテゴリー:逆引き関数

SCKEY

SCKEY関数

ショートカットキーを実行する
SCKEY(ウィンドウのID, キー [, キー, キー, ・・・・・・] )

引数
 ウィンドウのID: Windowを識別するID
 キー:アルファベット1文字、もしくは仮想キー
 ※仮想キーの一覧はコチラ
 ※指定するウィンドウが無い場合はウィンドウのIDに0を指定

メモ帳にショートカットキー(CTRL + H・・・置換)を送る

メモ帳を起動し、CTRL + Hを送信し、
「置換」を表示させる。

ID = EXEC("notepad")
SCKEY(ID, VK_CTRL, VK_H)

タグ

2012年3月20日 | コメントは受け付けていません。 |

カテゴリー:関数一覧

GETSLIDER

GETSLIDER関数

スライダー、トラックバー、スクロールバーの値を取得する
戻値 = GETSLIDER( ウィンドウのID, [番号, パラメータ] )

引数
 ウィンドウのID: Windowを識別するID
 番号:1から数えた左上からのコントロールの順番
 パラメータ:
   SLD_POS・・・値
   SLD_MIN・・・最小値
   SLD_MAX・・・最大値
   SLD_PAGE・・・1ページ移動量
   SLD_BAR・・・0:横、1:縦
   SLD_X・・・クライアントX位置
   SLD_Y・・・クライアントY位置
戻値
取得した値

メモ帳のスクロールバーの位置を取得する

メモ帳を起動し、改行を800回送信、
最後に、真ん中の位置にスクロールバーをセットする。
最初と、改行後と、最後にスクロールバーの位置を取得し、
出力する。

ID = exec("notepad")
PRINT "最初の位置:" + GETSLIDER(ID)
LF = ""
FOR A = 1 TO 800
LF = LF + "<#CR>"
NEXT
SENDSTR(ID,LF)
PRINT "最後の位置:" + GETSLIDER(ID)
SETSLIDER(ID,(GETSLIDER(ID)/2))
PRINT "中央の位置:" + GETSLIDER(ID)

タグ

2012年3月19日 | コメントは受け付けていません。 |

カテゴリー:関数一覧

SETSLIDER

SETSLIDER関数

スライダー、トラックバー、スクロールバーの値を設定する
戻値 = SETSLIDER( ウィンドウのID, 値 [,番号] )

引数  ID: Windowを識別するID
 値: 設定する値
 番号: 左上からのコントロールの順番
番号は1から指定 戻値
TRUE:正常
FALSE:正常以外 

メモ帳のスクロールバーの位置をセットする

メモ帳を起動し、改行を800回送信、
最後に、真ん中の位置にスクロールバーをセットする。
最初と、改行後と、最後にスクロールバーの位置を取得し、
出力する。

ID = exec("notepad")
PRINT "最初の位置:" + GETSLIDER(ID)
LF = ""
FOR A = 1 TO 800
LF = LF + "<#CR>"
NEXT
SENDSTR(ID,LF)
PRINT "最後の位置:" + GETSLIDER(ID)
SETSLIDER(ID,(GETSLIDER(ID)/2))
PRINT "中央の位置:" + GETSLIDER(ID)

タグ

2012年3月18日 | コメントは受け付けていません。 |

カテゴリー:関数一覧

文字列のコピー

文字列の一部をコピーする関数です

COPY(文字列,開始位置,コピーする文字数)

文字列
対象となる文字列
開始位置
コピーの開始位置を先頭からの文字数で指定
コピーする文字数
何文字目までコピーするかを指定

れによって、文字列の任意の部分を取得できます。
※ バイト処理の場合は COPYB です。
また、POS関数LENGTH関数と連動させて、利用されることが多いです。
EXCEL関数を多用される方には、利用シーンが沢山見つかるでしょう。

名前だけを取得するサンプル
//常に姓と名の間にスペースがある前提
mojiretu = "山田 まりお"
STR = COPY(mojiretu,POS(" ",mojiretu)+1,LENGTH(mojiretu))
PRINT STR

タグ

2012年3月18日 | コメントは受け付けていません。 |

カテゴリー:逆引き関数

このページの先頭へ