スクリプトをショートカットキーから実行させる方法

スクリプトを実行させるにはUWSC本体の再生ボタンを押しますが、ショートカットキーから実行させることも可能です。

ショートカットキーは用意されている範囲内で変更することもできます。

 

再生ボタンのショートカットキー

デフォルトの設定では、Alt + F1 が再生ボタンのショートカットキーになります。

AltキーとF1キーの両方の入力状態がOFFになってからスクリプトが実行されます。
押した瞬間にスクリプトが再生されることはありません。

 

再生ボタンのショートカットキーを変更する方法

再生ボタンのショートカットキーを変更することも可能です。

UWSC本体の右側に設定ボタンがあるのでクリックすればメニューが表示されます。

スクリプトをショートカットキーから実行させる方法1

もしくはUWSC本体のウィンドウ上でマウスの右クリックをしても同様にメニューが表示されます。

表示されたメニューから設定という項目を選びましょう。

スクリプトをショートカットキーから実行させる方法2

設定というウィンドウが表示されるので、ホットキーという項目から好きなキーをショートカットとして設定してください。

スクリプトをショートカットキーから実行させる方法3

 

インプットボックスを利用して入力した回数処理をする方法

インプットボックスを利用して処理する回数を入力させます。

インプットボックスに入力された文字列が数値として認識できる場合は、入力された値が数値として扱われます。

 

インプットボックスを利用して入力した回数処理をするサンプル

n = INPUT("繰り返す回数を入力してください", 10)
IFB VARTYPE(n) = VAR_EMPTY
 PRINT "キャンセルされました"
ELSEIF VAL(n) = ERR_VALUE
 PRINT "無効な値です"
ELSE
 FOR i = 1 TO n
  PRINT i + "回目処理中"
 NEXT
ENDIF

 

INPUT関数リファレンス

INPUT関数のリファレンスをマニュアルから転載します。

戻値 = INPUT( 表示メッセージ, [デフォルト値, パスワードフラグ, X, Y] ) 
引数
 表示メッセージ: インプットボックスに表示するメッセージ
 デフォルト値: デフォルトの値 として表示
 パスワードフラグ: TRUE にすると文字は全てアスタリスク表示 (デフォルト FALSE)
 X, Y: 表示位置 (デフォルトは中央)
戻値
 入力されたデータ

 ※ ファイルドロップによりファイル名の設定可 (複数選択時はタブにて結合される)

 

インプットボックスで数値が入力されたかチェックする方法

インプットボックスは文字列も数値も入力することができるので、何が入力されたのかチェックすることで予期せぬエラーを防ぐことができます。

インプットボックスでは数値として認識できるものを入力すると戻り値が数値として扱われるようです。

 

インプットボックスで数値が入力されたかチェックするサンプル

数値以外も試しに入力してみてください。

n = INPUT("数値を入力してください")
IFB VARTYPE(n) = VAR_EMPTY
 PRINT "キャンセルされました"
ELSEIF VAL(n) = ERR_VALUE
 PRINT "数値ではありません"
ELSE
 PRINT "数値です"
ENDIF

 

INPUT関数リファレンス

INPUT関数のリファレンスをマニュアルから転載します。

戻値 = INPUT( 表示メッセージ, [デフォルト値, パスワードフラグ, X, Y] ) 
引数
 表示メッセージ: インプットボックスに表示するメッセージ
 デフォルト値: デフォルトの値 として表示
 パスワードフラグ: TRUE にすると文字は全てアスタリスク表示 (デフォルト FALSE)
 X, Y: 表示位置 (デフォルトは中央)
戻値
 入力されたデータ
 (キャンセル時はEMPTY)

 ※ ファイルドロップによりファイル名の設定可 (複数選択時はタブにて結合される)

 

VARTYPE関数リファレンス

VARTYPE関数のリファレンスをマニュアルから転載します。

戻値 = VARTYPE( 変数, [変換タイプ] )
引数
 変数: 型を調べる変数
 変換タイプ: 型を変換する場合にタイプ指定
戻値
 型
  VAR_EMPTY (0)   // Empty
  VAR_NULL (1)   // Null
  VAR_SMALLINT (2) // 2バイト整数(符号付)
  VAR_INTEGER (3)  // 4バイト整数(符号付)
  VAR_SINGLE (4)  // 単精度浮動小数点値
  VAR_DOUBLE (5)  // 倍精度浮動小数点値
  VAR_CURRENCY (6) // 通貨型
  VAR_DATE (7)   // 日付型
  VAR_BSTR (8)   // 文字列型
  VAR_DISPATCH(9)  // オブジェクト
  VAR_ERROR (10)  // エラー値
  VAR_BOOLEAN (11) // ブール型
  VAR_VARIANT (12) // バリアント
  VAR_UNKNOWN (13) // 未定義のオブジェクト
  VAR_SBYTE (16)  // 1バイト整数(符号付)
  VAR_BYTE (17)   // 1バイト整数(符号なし)
  VAR_WORD (18)   // 2バイト整数(符号なし)
  VAR_DWORD (19)  // 4バイト整数(符号なし)
  VAR_INT64 (20)  // 8バイト整数(符号付)
  VAR_ARRAY(8192[$2000]) // 配列
 変換タイプが指定された場合には、変換されて値を返す

 

VAL関数リファレンス

VAL関数のリファレンスをマニュアルから転載します。

戻値 = VAL( 文字列, [エラー値] )
引数
 文字列: 数値に変える文字列
 エラー値: 数値に変換できない場合に返す値
戻値
 数値
 数値変換できない場合はエラー値を、デフォルトでは ERR_VALUE (-999999)を返す

 

一定時間ごとに処理をする方法

一定時間ごとに処理をさせるためにはSLEEP関数を利用すれば簡単に実現できます。

しかし、一定時間経過するまでの間に他の処理をさせようとすると単純なSLEEP関数ではどうにもなりません。

ここでは一定時間経過するまでに他の処理をすることも可能なサンプルを紹介します。

GETTIME関数は2000年1月1日から何秒経過したかを調べることができます。

この仕組みを利用し、現在の経過秒数から前回の経過秒数を引いて経過秒数を得ます。

GETTIME関数の仕様のため1秒単位の精度になります。

 

一定時間ごとに処理をするサンプル

基本的にループを考慮していますが1回だけの処理もできるようにしました。サンプル中のコメントを参考にしてください。

interval = 10 // 何秒ごとに処理をするか
lastTime = GETTIME() // 初回で予期せぬ動作を防ぐために必要
WHILE !GETKEYSTATE(VK_ESC) // ESCキーを押すことでスクリプトのループから抜ける
 now = GETTIME() // 現在の経過秒数を取得
 IFB (now - lastTime) >= interval // 一定時間以上経過したかチェック
  // ここに処理を書く
  PRINT "一定時間経過しました" // 確認用にメッセージを表示させてみる
  lastTime = GETTIME() // 前回の処理完了時刻を更新
  // BREAK 1 // この命令を有効にすれば1回だけしか処理をしなくなる
 ENDIF
 SLEEP(1) // 1秒ごとに調べるためにウェイトを入れる
WEND

 

GETTIME関数リファレンス

GETTIME関数のリファレンスをマニュアルから転載します。

戻値 = GETTIME( [±n日, 基準日] ) 
引数
 ±n日: nを指定すると当日もしくは基準日からプラスマイナス n日とする、小数点以下は時間(デフォルト=0)
 基準日: 指定された日付を基に日付を設定する (デフォルト=当日)
      ("YYYYMMDD" or "YYYY/MM/DD" or "YYYY-MM-DD" or "YYYYMMDDHHNNSS" or "YYYY/MM/DD HH:NN:SS")
戻値
 2000年1月1日からの秒数を返す

 値がセットされる特殊変数
  G_TIME_YY    // 年
  G_TIME_MM    // 月
  G_TIME_DD    // 日
  G_TIME_HH    // 時
  G_TIME_NN    // 分
  G_TIME_SS    // 秒
  G_TIME_ZZ    // ミリ秒
  G_TIME_WW    // 曜日 (0:日曜....6:土曜)
  G_TIME_YY2   // 年をxxの文字型
  G_TIME_MM2    // 月をxxの文字型
  G_TIME_DD2   // 日をxxの文字型
  G_TIME_HH2   // 時をxxの文字型
  G_TIME_NN2   // 分をxxの文字型
  G_TIME_SS2   // 秒をxxの文字型
  G_TIME_ZZ2   // ミリ秒をxxxの文字型
  G_TIME_YY4   // 年をxxxxの文字型

 

BREAK命令リファレンス

BREAK命令のリファレンスをマニュアルから転載します。

 BREAK [定数]   
 多重ループ中にて定数が指定された場合に、その定数分ループをBREAKする (デフォルト 定数=1)

 

アクティブなウィンドウのスクリーンショットを保存する方法

スクリーンショットを保存するためにはSAVEIMG関数を利用します。

引数の指定でアクティブなウィンドウのみを対象にしたり画面全体を対象とすることができます。

また、ファイルに保存するだけでなくクリップボードに転送することもできます。

デフォルトではbmp形式で保存されますがjpeg形式で保存することも可能です。

保存したファイルの拡張子は自動で付与されます。

 

アクティブなウィンドウのスクリーンショットを保存するサンプル

最初にウェイトを入れているので、その間にスクリーンショットを保存したいウィンドウをアクティブにしてください。

SLEEP(2)
id = GETID(GET_ACTIVE_WIN)
SAVEIMG("screenshot", id)

 

アクティブなウィンドウのスクリーンショットを保存するサンプルjpeg版

最初にウェイトを入れているので、その間にスクリーンショットを保存したいウィンドウをアクティブにしてください。

SLEEP(2)
id = GETID(GET_ACTIVE_WIN)
SAVEIMG("screenshot", id, , , , , , 70) // 圧縮率を70に設定

 

SAVEIMG関数リファレンス

SAVEIMG関数のリファレンスをマニュアルから転載します。

SAVEIMG( [画像名, ID, x, y, 幅, 高さ, クライアント指定, JPEG指定, 画面取得指定] )
引数
 画像名: 保存ファイル名(BMP/JPEG形式) (画像名を省略した場合はクリップボードへ)
 ID: Windowを識別するID (0 であればスクリーン全体)
 X, Y: 位置
 幅, 高さ: 大きさ
 クライアント指定:
   FALSE: 指定ウィンドウ全体 (デフォルト)
   TRUE: クライアント領域
 JPEG指定: 1(高圧縮)~100(低圧縮) までの圧縮率を指定すると JPEGにて保存、 0(デフォルト)は BMPにて保存
 画面取得指定:
   0 (デフォルト): 指定アプリがフォアグランドかバックグランドかにより画面の取得方法を変更
   IMG_FORE    : フォアグランドとして可視画面(デスクトップ)より画面を取得
   IMG_BACK    : バックグランドとしてアプリより画面を取得