IT マウスマクロ

Logicoolマウスのマクロ作成(日時取得編)

投稿日:2019年4月28日 更新日:

Logicoolゲーミングマウスのマクロ作成において、日時を取得する関数についてご紹介していきます。
日時が取得できると、~秒以上ボタンが押されているか、XX時XX分になったか、などの色々な判定ができ、ボタンの長押しやドラッグ&ドロップ、タイマーの判定処理などに使えます。

日時を取得するGetDate関数について

Logicoolゲーミングマウスのマクロ(スクリプト)で日時を取得するには GetDate 関数を使います。

スクリプトは Lua と呼ばれるプログラミング言語を使って記述しますが、GetDate 関数は Lua における os.date 関数と同じです。本記事でも使い方について解説しますが、もし不明な点があれば "Lua os.date" で検索すると、探している情報が見つかるかもしれません。

GetDate関数の書式

GetDate 関数の書式は以下の通りです。

書式:

GetDate( format[, time] )

format パラメータ

format には、GetDate 関数で取得する文字列の形式を指定します。
以下は format に指定できるパラメータの例です。

パラメータ取得できる文字列
%Y4桁の西暦(例:2019)
%y西暦の末尾2桁(例:19)
%m2桁の月(例:01,02,・・・,11,12)
%d2桁の日(例:01,02,・・・,30,31)
%H2桁の時[24時間表記](例:00,02,・・・,22,23)
%I2桁の時[12時間表記](例:00,02,・・・,10,12)
%M2桁の分(例:00,01,・・・,58,59)
%S2桁の秒(例:00,01,・・・,58,59)
%a曜日[省略形](例:Sun,Mon,・・・,Fri,Sat)
%A曜日[完全形](例:Sunday,Monday,・・・,Friday,Saturday)

time パラメータ

time には文字列に変換したい UNIX時間を指定します。
何も指定しなければ現在の日時を文字列に変換します。

実行例

以下は 2019年4月26日 20時26分24秒 に様々なパラメータで GetDate 関数を実行した場合の例です。

GetDate()

04/26/19 20:26:24 ←現在時刻がデフォルトフォーマットで取得できる

GetDate( "%Y/%m/%d %H:%M:%S" )

2019/04/26 20:26:24 ←現在時刻が指定したフォーマットで取得できる

GetDate( "%Y/%m/%d %H:%M:%S", 0 )

1970/01/01 09:00:00 ←指定したUNIX時間が指定したフォーマットで取得できる

※UNIX時間は協定世界時 (UTC) での 1970年1月1日午前0時0分0秒からの経過秒数を表します。したがって、time に指定した 0 は 1970年1月1日午前0時0分0秒(UTC)を示し、日本時間(JST)では 1970年1月1日午前9時0分0秒となります。

GetDate( nil, 0 )

01/01/70 09:00:00 ←指定したUNIX時間がデフォルトフォーマットで取得できる

※time パラメータを指定する場合に format パラメータを省略したい場合は、format に nil を指定します。

特殊な使い方(テーブルでの取得)

GetDate 関数は時刻を文字列で返してくれる関数ですが、format に "*t" を指定すると、年月日や時分秒などが格納されているテーブルを返してくれます。
テーブルにはキーと値がセットで格納されており、[テーブルを格納した変数名].[キー] で各値を取得することができます。

テーブルのキーと取得できる情報には以下のようなものがあります。

キー取得できる情報
year年(西暦)number
monthnumber
daynumber
hournumber
minnumber
secnumber
wday曜日を表す数値(日曜日:1,月曜日:2,・・・,金曜日:6,土曜日:7)number
yday1月1日から数えた日数number
例:

以下は現在の日時をテーブルで取得し、年月日と時分秒を表示するサンプルです。

dateTable = GetDate( "*t" );
OutputLogMessage("Year=%d\n", dateTable.year  );
OutputLogMessage("Month=%d\n", dateTable.month  );
OutputLogMessage("Day=%d\n", dateTable.day  );
OutputLogMessage("Hour=%d\n", dateTable.hour  );
OutputLogMessage("Minitute=%d\n", dateTable.min  );
OutputLogMessage("Second=%d\n", dateTable.sec  );

例えば、2019年4月28日 15時44分43秒に実行すると以下のように出力されます。

Year=2019
Month=4
Day=28
Hour=15
Minute=44
Second=43

まとめ

今回は Logicool ゲーミングマウスのマクロ(スクリプト)で日時を扱う方法をご紹介させていただきました。ポイントは以下の通りです。

  • 日時を取得するには GetDate( format[, time] ) を使う
  • format には日時を取得する形式を指定する(省略する場合は nil を指定する)
  • time には取得したい UNIX時間を指定する(省略すると現在の日時が取得できる)
  • format に"*t"を指定すると年月日、時分秒がテーブルで取得でき、[テーブルを格納した変数名].[キー] で値を取得できる

機会がありましたら、実際に GetDate関数を使ってボタンの長押しやドラッグ&ドロップ、タイマーの判定処理などを行うサンプルなども後日ご紹介させていただきます。

その他のマクロ(スクリプト)関連ページはこちら

Logicoolゲーミングマウスのマクロ(スクリプト)関連ページ一覧

ディスプレイやキーボード・マウス・スマホ 汚れていませんか?

皮脂や唾、手垢、汗などで表面は見えない雑菌だらけです。 衛生上も問題ですし、気持ち良く使うためにも、こまめに拭きとってキレイにしましょう。

エレコム クリーナー ウェットティッシュ 液晶用

  • 拭き跡が残りにくい
  • 帯電防止効果で拭いた後にホコリがつきにくい
  • ディスプレイの表面加工を傷めないノンアルコールタイプ

液晶用と書いてありますが、キーボードやマウス、タブレット、スマホなどにも使えます。
大容量なので 1つ置いておくだけでも、気付いた時にすぐ掃除ができて便利です。

おすすめのゲーミングマウス

Logicool ロジクール ゲーミング マウス G402

  • 500IPSを超えるトラッキング速度
  • 8個のプログラム可能なボタン
  • ボタンによるDPIの素早い切り替え
  • 1msのレポートレート
  • 高速なクリック(連打)を実現

Logicool ロジクール ゲーミング マウス G502 HERO

  • 400IPSを超えるトラッキング速度
  • 11個のプログラム可能なボタン
  • 100~16,000の全DPIでゼロスムージング、ゼロフィルタリング、ゼロアクセラレーションを達成
  • 1msのレポートレート
  • マウスの重さを調整可能

Logicool G ゲーミングマウス ワイヤレス G604

  • 400IPSを超えるトラッキング速度
  • 15個のプログラム可能なボタン
  • 100~16,000の全DPIでゼロスムージング、ゼロフィルタリング、ゼロアクセラレーションを達成
  • 1msのレポートレート
  • ワイヤレス

Logicool ロジクール ゲーミング マウス G600t

  • MMO に最適な 20個のプログラム可能なボタン
  • 親指だけで 12個のボタンを瞬時に押せるサムパネル
  • 1msのレポートレート


スポンサーリンク

毎日の飲料は箱買いで年間数千円もお得に (Amazon)




おすすめ記事

1
Logicool(ロジクール)のゲーミングマウスではマクロを作って自動的な操作を実現することができます。 ボタン 1 つ押すだけで複雑な操作が自動で行えるようになり、定型的な操作を効率良く楽に行えるよ ...
2
バウヒュッテ(Bauhutte)のゲーミングチェア : RS-950RR の使用感などをレポートさせていただきたいと思います。一般的なオフィスチェアよりも断然座り心地が良く、私には合っていました。オス ...
3
キーボード・マウスでの操作に慣れているのに、PS4 や Xbox のコントローラで FPS/TPSゲームをプレイするとうまく操作できず、歯がゆい思いをされていないでしょうか。ゲームソフト側が対応してい ...
4
「なろう系」作品の中で、定期的に読み返したくなるオススメの作品をご紹介させていただきます。 ありがちな俺TUEEEチート系の作品はなく、これだけは読んでほしいという面白い作品を厳選しています。 「なろ ...

-IT, マウスマクロ

Copyright© ArekoReport , 2023 All Rights Reserved.