ディオゲネス・クラブ
ジョイスティックのホットキー指定についてリクエスト - anj
2024/08/15 (Thu) 11:53:41
とてもお世話になっております。
hotkey=[JOYBUTTON]で、監視できるボタン数を増やしていただけるととてもありがたいです。
貴作KMMacroを利用して、小さいゲームパッドにショートカットキーを仕立て、左手コントローラーとして使っています。
現状、ジョイスティックの監視は4ボタンまでなので、監視ボタン数が増えればホットキーを追加でき、作業効率をもっと上げることができます。
なぜKMMacroを使うかというと、例えば「保存コマンド」→Gettitleで保存ウィンドウが出るのを待つ→KMMacroでファイル名を生成→保存、みたいな高度な処理が、KMMacroだと1ボタンで作れてとても便利だからです。
ご検討いただけると幸いです。
Re: ジョイスティックのホットキー指定についてリクエスト - たわしと
2024/08/16 (Fri) 21:23:48
anj さん、こんばんは。
| 現状、ジョイスティックの監視は4ボタンまでなので、監視ボタン数が増えればホットキーを追加でき、作業効率をもっと上げることができます。
この件についてですが、ジョイスティックの監視は普通、「Direct Input」という仕組みを使うと思います。が、KMmacro では、古い「Windows API」というものを使っています。KMmacro の作成に使っているのは Delphi3 という古いソフトでして、Delphi で Direct Input をどう扱っていいのかよくわからない(そもそも扱えるかどうかもわからない)ためです。そしてこの Windows API では、監視できるボタンが4つまでなのです。
このため、この点の改善は難しいと思います。
ただ、ボタンの同時押し(ボタン1~4と同時に、ボタン5~を押す)でよければ、ボタン5以降を扱うことも可能です。詳しくは、同梱の「Q&A」にある、「常駐モードで、ジョイスティックのボタン5以降にマクロを割り当てたい」の項を参照してください。
Re: ジョイスティックのホットキー指定についてリクエスト - anj
2024/08/19 (Mon) 19:36:08
たわしとさん
回答ありがとうございます。難しいとのこと、理解しました。
現状でも「ジョイスティックのボタンをキーボードのキーに割り当てる常駐ソフト」(例えばJoytoKey等)と併用すれば、ボタン5~も単独でホットキーとして使えています。
しかし、ボタン1~4をホットキーとして直接KMMacroを呼び出した時と比べ、レスポンスがどうしても悪く、KMMacroだけでできたらな、という希望でした。
この件に限らず、有用なソフトを長年更新してくださっていることに感謝しています。
コマンドラインから小文字の変数を指定できない - すけ
2024/05/29 (Wed) 21:16:47
お世話になります。
CMDで
KMMAC /FILE=test.mac /%1=AbCde
test.macの中身を
message "" %1
とすると、
ABCDE
と表示されます。
大文字小文字を判別可能でしょうか?
Re: コマンドラインから小文字の変数を指定できない - すけ
2024/05/29 (Wed) 21:31:24
失礼しました 過去の質問にありました。
いつもお世話になっています。ありがとうございます。
無題 - すけ
2024/05/03 (Fri) 10:43:48
068から愛用しています。
画像に係る機能が追加されたということでアップデートしたかったのですが、
ダウンロードするとNortonさんに
Trojan.Gen.NPE
と指摘されて解決(削除)されちゃいました。
もともとそういうものですか?それともダウンロードサイト側の問題でしょうか?
Re: 無題 - たわしと
2024/05/03 (Fri) 19:25:35
すけ さん、こんばんは。
| ダウンロードするとNortonさんに
| Trojan.Gen.NPE
| と指摘されて解決(削除)されちゃいました。
Norton は持っていないのでわかりませんが、以前のバージョンでは、Microsoft Defender に「脅威」と検知されたことがありました。その時は、なぜか zip ファイルだけが脅威とみなされ、exe は何にも言われなかったので、圧縮ソフトをバージョンアップして(まったく同じファイルを)圧縮し直してみたら、検出されなくなりました。要するに、誤検出だったんでしょうね。
この手のソフトは、「ソフトによってキー入力、マウス入力を操作する」機能がありますので、もしかしたら、ウィルスチェックに引っかかりやすい、ということもあるのかもしれません。
今回の件も、私は誤検出だと思いますが、こういうものは「作者が知らないうちに感染している」可能性がないとは言えないので、断言はできません。Microsoft Defender には何も言われないし、Vector の登録は通っているので、だいじょうぶだとは思いますが……。
ちなみに、最近の Norton は使ったことがないんですが、これは脅威と見なしたファイルは強制的に削除するんでしょうか。それとも問い合わせつき? 後者だとしたら、zip を展開した後でそのフォルダを Norton でチェックして、zip のみが脅威と指摘されるのであれば、前回と同じ騒ぎ、となるんですが……試してみてください、とは言いません。さっきも書いたとおり、感染している可能性はゼロだ、とは言い切れないので。
しかし、こう言う話はこちらからの対応って、難しいですね。Microsoft Defender の時は圧縮のし直しという簡単な方法があったので、し直したものを再度アップロードしたんですけど。
あ、それから、
| もともとそういうものですか?それともダウンロードサイト側の問題でしょうか?
私が直接にアップロードしたのは Vector だけなので、他のサイトについてはよくわかりません。何か処理を加える、なんてことをするサイトがあるんでしょうか? あるとしたら、めちゃくちゃ怪しいサイトだと思いますけど。
Re: 無題 - すけ
2024/05/03 (Fri) 20:40:49
ご回答ありがとうございます。
|最近の Norton は使ったことがないんですが、
|これは脅威と見なしたファイルは強制的に削除
|するんでしょうか。それとも問い合わせつき?
設定次第かも知れませんが、デフォルトでは強制的に削除され、復元しても解凍時に削除されるの繰返しでした。
ですので、自動保護を一時停止して、解凍してから、あらためてNortonさんに判断を仰いだところ
ファイル名: KMrec.exe
脅威名: Heur.AdvML.C
ファイル名: KMrec.exe
脅威名: Trojan.Gen.MBT
といった指摘を受けて、KMrecのみ処理されました。
タイプやクリックのレコードをする部分ですから一番誤検出に遭いやすい部分かと思いますが、私はKMmacro.exeさえあれば十分なので実用上問題ありません。
なお、ダウンロードサイトはVectorです。
ありがとうございました。
別のKMmacroを実行するには ─── - KIC
2024/04/14 (Sun) 17:24:00
3月に質問いたした KIC です。その節はご回答いただき、ありがとうございました。
そのご回答中に「別の KMmacro を起動して、3秒たったら KEY コマンドを実行する」という記述があったことを覚えていて、先日マクロを手直ししている際にここで使用できるとよいなぁと思い、組んでみました。
結果は、しかし、「すでに常駐しています」というメッセージが表示され、別の KMmacro を実行させることはできませんでした。
そこでお尋ねいたします。
当方は KMmacro を常駐させて毎日利用していますが、メッセージの内容からすると、この使い方は主となる KMmacro が非常駐で起動している場合のみ有効な使い方なのでしょうか。
ついでながら、KMmacro.txt ファイルの内容を読んでいて気になった箇所について質問させてください。
1.
open コマンドについて説明した L.929 に「ファイルをオープンします。input、write を行うためには、まず open 処理を行う必要があります」とあり、L.932 に 「input コマンドを使うことができる」 とあるところから、この「input、write」が KMmacro のコマンドだということはわかったのですが、「input コマンド」というものが見当たりません。「input コマンド」は現在実装されていないという理解でよろしいでしょうか。
2.
L.679 に「GOTO で IF ~ END の中に飛び込む」とありますが、「END」は「ENDIF」の書き間違いかと存じましたが、それでよろしいでしょうか。
以上です。
お時間がおありの際にご回答いただけましたらたいへん幸いに存じます。よろしくお願いいたします。
Re: 別のKMmacroを実行するには ─── - たわしと
2024/04/15 (Mon) 19:28:38
KIC さん、こんばんは。
| この使い方は主となる KMmacro が非常駐で起動している場合のみ有効な使い方なのでしょうか。
KMmacro は起動時に、既に常駐していないかをチェックして、二重の常駐をしないようにしている……のですが、調べてみたところ、常駐起動でない場合でも、このチェックを行っていました。そのため、常駐している KMmacro からでは、別の KMmacro は(非常駐起動でも)起動できません。ご指摘の通りです。
というわけで、現状ではこの動作なのですが、このチェック、非常駐起動の時はたぶんいらないよなあ……。
| 「input コマンド」というものが見当たりません。
あ、申し訳ありません。
「(1) Input … 入力用にオープンする。これでオープンしたファイルには、input コマンドを使うことができる。」
は、
「(1) Input … 入力用にオープンする。これでオープンしたファイルには、read コマンドを使うことができる。」
の誤記です。
つまり、「read コマンドでファイルを読み込む」には、その前に「input 指定の open コマンドで、ファイルをオープンしておかなければならない」、の意味でした。
この誤記が今まで見逃されてきたのは、キーボードマクロでファイル入出力なんてやる人があまりいなかったのか、そうでなければ、この辺の書き方が昔の BASIC という言語そのままなので、知っている人は読まなくてもわかるから、でしょうかね。
|「GOTO で IF ~ END の中に飛び込む」とありますが、「END」は「ENDIF」の書き間違いかと存じましたが、それでよろしいでしょうか。
これもご指摘の通りで、正しくは「ENDIF」です。
マニュアルにいくつも誤りがありまして、申し訳ありません。ご指摘、ありがとうございました。
Re: 別のKMmacroを実行するには ─── - KIC
2024/04/19 (Fri) 15:48:48
早速のご返信、ありがとうございます。
>> 常駐している KMmacro からでは、別の KMmacro は(非常駐起動でも)起動できません
L.1198 に「常駐→非常駐は KMmacro 自身のホットキーで自動的に切り替えられる」とありますが、これは実質的に
〈常駐モードで起動した KMmacro から別の KMmacro を非常駐モードで起動することはできない〉
ということだと理解しておりましたが、
「二重の常駐をしないようにしている」とのことで、結局
〈常駐モードで起動している KMmacro からは別の KMmacro を起動させることはできない〉
というわけですね。
よくわかりました。ありがとうございます。
>> このチェック、非常駐起動の時はたぶんいらないよなあ……
もし非常駐起動時に常駐チェックしなかったら、
主となるマクロが非常駐モードの KMmacro で実行されているなかで別の KMmacro をすでに従として起動している際に、
さらに別の KMmacro を起動しようとした場合に常駐チェックがされなくならないのかが心配になりました。
しかし、〈非常駐モードがあればチェックしない〉ではなく、〈常駐モードがあればチェックする〉という仕様にすればよいだけですから、杞憂ですね。
最後に、「input コマンド」の件ですが、「read コマンド」と読み替えればよいだけだったのですね。
すっきりしました。
KMmacro はとても重宝しており、マクロを自ら書けるようにまでなれたのは KMmacro.txt のおかげなので、
当方のような KMmacro 初心者にとってこのファイルがいまより少しでもよいものになればと願い、お尋ねした次第です。
今回も本当にありがとうございました。
readkey 関数で指定秒経過しても処理が先に進まない - KIC
2024/03/02 (Sat) 14:31:44
毎日ありがたく利用させていただいております。
下記マクロが昨日から急に意図どおりに動作しなくなりました。
具体的には、(readkey 3) の部分で、3秒経過しても処理が先に進みません。
それまでは問題なく動作しておりましたし、もちろんマクロの変更もありません。
無変換キーを押せば意図どおりに動き、別のキーを押せば次に進んでくれますが、
一昨日までは何も押さなければ、3秒後に次に進んでくれましたし、それが意図した処理です。
元々は readkey 関数を使用した部分はなく、一時停止機能があると便利な場面があって付け足しました。
ですので、自動で8回繰り返してもらいたいのですが、このままでは自動化されず、困っております。
KMmacro のバージョンは 0.72 です。
ご診断いただけませんでしょうか。
また、何か別の方法で一時停止機能を装備できるようでしたら、ご教示いただけませんでしょうか。
よろしくお願いいたします。
***** マクロ抜粋部分 ここから *****
DIM %times %rest %readKey
SET %times 0
FOR %0=1 TO 8
INCLUDE SubRoutine_1.mac
INC %times 1
SET %readKey (readkey 3)
IF (= %readKey "[MUHENKAN]") EXITFOR
NEXT
IF (= %times 8) THEN
GOTO :LS2B_1
ELSE GOTO :Restart_1
ENDIF
:Restart_1
(message 一時停止中 再開は[Ctrl]+[Alt]+ Q を押下)
PAUSE [Ctrl]
PAUSE [Alt]
PAUSE Q
SET %rest (- 8 %times)
FOR %0=1 TO %rest
INCLUDE SubRoutine_1.mac
NEXT
:LS2B_1
INCLUDE SubRoutine_2.mac
***** マクロ抜粋部分 ここまで *****
以上
Re: readkey 関数で指定秒経過しても処理が先に進まない - たわしと
2024/03/02 (Sat) 22:22:33
KIC さん、こんばんは。
| 下記マクロが昨日から急に意図どおりに動作しなくなりました。
| 具体的には、(readkey 3) の部分で、3秒経過しても処理が先に進みません。
当方でも readkey の動作を試してみましたが、こちらでは特に異常はありませんでした(win10環境)。win11 では違ってくる可能性もありますが、念のため、ごく単純なマクロ、例えば
SET %0 (readkey 3)
(message %0)
と言ったようなマクロを実行して、readkey の時間待ちが動作するかどうか、確認してみていただけないでしょうか。
このマクロも上手く動かないようなら、readkey の動作がうまくいっていないことになります。この場合は……今のところ、簡単な対処方法は思いつきません。
実は、「別の KMmacro を起動して、3秒たったら KEY コマンドを実行する」でいいんじゃない? と思って試してみたのですが、うまく行きませんでした。readkey(で使っている仕組み)は、ソフト的なキー入力には反応してくれないようです。
となると、readkey の時間待ちの部分のコードを修正して作り直す、しかなさそうですが……とりあえず、結果をお待ちしています。
Re: readkey 関数で指定秒経過しても処理が先に進まない - KIC
2024/03/03 (Sun) 11:06:42
早速のご返信、ありがとうございます。
結論から申し上げますと、Windows を再起動したら3日前までの状態に戻りました。
お騒がせして申し訳ございませんでした。
今朝、こちらを開き、ご教示いただいたことを確認(NG)し、
エディタをメモ帳に変えて試行(NG)し、
そこまでしたのでまさかと思いつつ、いつもなら試行する Windows の再起動をしたところ、動作しました。
そこまでせずに投稿してしまい、申し訳ございませんでした。
この機会にもう一点だけ質問させてください。
昨秋から KMmacro を使い始め、とてもすばらしいアプリケーションでしたので、もっときちんと知りたいと思い、
KMmaro.txt を土台にして自分用のマニュアルを作成し、今も更新し続けております。
そのなかで1つだけわからないことがございます。
それは、KEY コマンドの項にある「[KEY-x]で、キーx を入力できます」という部分です。
たとえば、サクラエディタ上で以下を実行すると、置換ウィンドウを開いて1秒後に閉じることができます。
***** 例 ここから *****
KEY [OEM-162]++ R [OEM-162]--
delay 1000
KEY [OEM-164]++ X [OEM-164]--
***** 例 ここまで *****
このうちの R と X の部分を [KEY-x] の形式にして実行すると、KMmacro に「[]の中が不正です」と叱られます。
これは一例ですが、[KEY-x] 中の 「x」 にいかなるものを入れたら正しく実行されるようになりますか。
ご回答賜れましたらたいへん幸いに存じます。
追伸
Windows のエディションは Windows 10 Pro で、バージョンは 22H2 です。
Re: readkey 関数で指定秒経過しても処理が先に進まない - たわしと
2024/03/03 (Sun) 21:01:45
KIC さん、こんばんは。
| 結論から申し上げますと、Windows を再起動したら3日前までの状態に戻りました。
| お騒がせして申し訳ございませんでした。
ご報告、ありがとうございます。
上手く動いたとのことで、ほっとしました。
| そのなかで1つだけわからないことがございます。
| それは、KEY コマンドの項にある「[KEY-x]で、キーx を入力できます」という部分です。
すみません、これはマニュアルの誤りです。コードを読み直してみたところ、そのような機能は作っていませんでした。
というか、これ、何をしようとしたんだろう。これに類するものを作ろうとした……ような記憶はうっすらとあるんですが、この説明のままだと、意味不明な機能ですよね。うーん、思い出せない。
ご指摘いただき、ありがとうございました。
Re: readkey 関数で指定秒経過しても処理が先に進まない - KIC
2024/03/04 (Mon) 12:02:18
ふたたび早速ご返信くださり、本当にありがとうございます。
[KEY-x] に関しまして、わざわざコードを読み直していただいたとのことで、感謝に堪えません。
KMmaro.txt につきましては、しっかり理解したと思っている点でも、時間をおいて読み直すと発見があり、これまで何度もマクロを短くするうえで役立っております。
またわからない点がございましたら質問させていただくかもしれませんが、今回はこれにて失礼申し上げます。
お忙しいなか、貴重なお時間をおさきくださリ、誠にありがとうございました(ご返信は不要です)。
ありがとうございます - ゆず
2024/01/14 (Sun) 10:53:41
これはイイです。
シンプル、かんたんで面白い。
PowerAutomateにがっくりしてこちらへ辿り着きました。久々にシェアレジしました。
ICカード書込みソフトの操作を自動化するのに、APIやらOCXやらVBを組むやら面倒なので、起動しておいて書込みボタンをKMmacroでクリックすることにしました。
これからもご活躍期待しております。
Re: ありがとうございます - たわしと
2024/01/14 (Sun) 21:14:09
ゆず さん、こんばんは。
| これはイイです。
| シンプル、かんたんで面白い。
わざわざ投稿いただきまして、ありがとうございます。それからシェアレジの方も、ありがとうございました。
添付した「はじめに.txt」にも書いたとおり、開発環境が非常に古いものなので、最近はあまり触っておりません。が、この前動かした時には、 Windows XP マシンもまだ動いていたようです。もしも何かご要望がありましたら、マシンがまだ動くうちに、お早めにお知らせください(マシンが動いても、私が対応できない可能性はありますけど)。
ドラッグの記憶方法 - きゃめる
2023/12/17 (Sun) 09:58:14
左クリックのドラッグを記録したいのですが、keyコマンドと「++」を直接書き込む他に方法はないのでしょうか。
ただその場でドラッグするだけで記録する方法はないのでしょうか。
あと、ドラッグの軌跡を記録する方法があれば教えてほしいです。
Re: ドラッグの記憶方法 - たわしと
2023/12/17 (Sun) 16:41:07
きゃめる さん、こんばんは。
| 左クリックのドラッグを記録したいのですが、keyコマンドと「++」を直接書き込む他に方法はないのでしょうか。
KMmacro ではドラッグの開始や、ドラッグの軌跡を記録する方法はありません。
ただ、常駐モードを使えば、ある程度簡単にキーの位置の記録をすることはできます。
例えば、KMmacro.hot に次のように記入して、KMmacro を常駐モードで起動してください。
F1 キーを押すたびに、その時点でのマウスカーソルの位置を「drag.mac」(KMmacro.exe と同じフォルダに)というファイルに記録します。
------------ KMmacro.hot ------------
hotkey=[F1] : クリック位置の記憶
LOG drag.mac (& "moveto " (getmouse) )
; LOG drag.mac "Key [LCLICK]++" ; key コマンドも一緒に記録したければ、これも入れておく。
-------------- ここまで --------------
残念ながら、常駐モードのホットキーには [LCLICK] などのマウスクリックは使えないので、上の例では別のキー(F1)を使っています。
Re: Re: ドラッグの記憶方法 - きゃめる
2023/12/19 (Tue) 18:37:12
丁寧に返信とても助かります。ありがとうございます。
自動的にドラッグを記録する方法や軌跡を記録する方法を知りたかったのは、通信待機のあるソフトウェアにマウス操作の自動化を施したかったのですが、記録を止めて書き込みながら記録する方法だとdelay時間を上手く測定できず、後から作ろうにも長いコードになる予定で、後からでは見返した時にどこの事か分からなくなりだったからです。
ですが、あれから事前にドラッグ部分のみ作っておいて、記録の時は、ドラッグする直前で、キーを押してコードに印を付けることで見返すことができるようにし、そこにドラッグのコードをはめ込むことで解決しました。
また機会があれば教えていただいた方法も有難くやってみたいと思います。
別の疑問が出て恐縮なのですが、コードにコメントのようなものを残すことは可能でしょうか。コード上に描いても実行時には無視される文章です。
Q&Aに既に記載済みならすみません。
Re: ドラッグの記憶方法 - たわしと
2023/12/19 (Tue) 20:10:24
きゃめる さん、こんばんは。
| 別の疑問が出て恐縮なのですが、コードにコメントのようなものを残すことは可能でしょうか。コード上に描いても実行時には無視される文章です。
これは、「;」を使ってください。「;」以降は、コメントと見なして無視します。
Re: Re: ドラッグの記憶方法 - きゃめる
2023/12/19 (Tue) 20:31:43
わかりました。ありがとうございます。
win11での不具合 - らあく
2023/10/09 (Mon) 21:19:46
付属するKMmacro.txtの画像処理関係のコードを試そうとしましたが、movereとmovetoとkey[LCLICK]が動作しませんでした。大文字かと思って試したり、カンマ前後でスペースを打ったりしても駄目でした。あと、BLOCKINPUTも全く動作せず、マウスとキーボードの入力ともに受け付けてしまっています。
Re: win11での不具合 - たわしと
2023/10/10 (Tue) 18:40:35
らあく さん、こんばんは。
「win11 での不具合」とのことですが、当方、win11 の動作するマシンを持っておりませんので、この点の検証ができません。ただ、よくあるミスとして、以下の二点がありますのでご確認ください。
・マクロに全角スペースを使っている
KMmacro.txt や「Help」フォルダの HTML ファイルにあるマクロの例では、「表示の際の形を整えるために全角スペースを使っている」箇所がありますが、実際のマクロでは半角スペースを使ってください。全角ですと、うまく動かない場合があります("~" の中など、文字列として全角スペースを使うのはかまいません)。
・余分なスペースを入れている
LClick など、座標を「x座標,y座標」で指定するコマンド・関数では、座標指定に余分な半角スペース等を入れることができません。普通のプログラム言語なら、スペースを入れて見やすくするのが定跡なのですが、KMmacro は「普通の言語」ではないので……。他に、FOR 文でも余分なスペースを入れると上手く動きません。
逆に「key[LCLICK]」など、スペースを省略した場合も、上手く動きませんのでご注意ください。
これらが原因ではないとすると、win11 固有のトラブルとなりそうです。が、私が win11 マシンを持っていないことと、「_はじめに.txt」にも書いたとおり開発環境が古いため、修正ができるかどうかは不明です。
そういえば、Help の方はともかく、KMmacro.txt の全角は、今ではいらないな。もし次があれば、修正しておこう……。
Re: Re: win11での不具合 - らあく
2023/10/11 (Wed) 15:44:13
質問に答えていただき、ありがとうございます。全角スペースがあるとだめだと言うことは考えていませんでしたが、スペースをなくすと一部上手くいっていたので合点がいきました。新たに質問したいのですが、SearchGraph 1 2で2でなく1の左端と上端が帰るのは元々そういうものなのでしょうか。1をウィンドウ全体、2をその中のボタンにして返り値をクリックさせるとウィンドウの左端と上端をクリックしてしまいます。もちろん、1と2を逆にするとfalseになります。
Re: win11での不具合 - たわしと
2023/10/12 (Thu) 21:24:25
らあく さん、こんばんは。
| SearchGraph 1 2で2でなく1の左端と上端が帰るのは元々そういうものなのでしょうか。
いえ、そういう動作は意図していません。こちらでもちょっと試してみましたが、そうはなりませんでしたし……。
もしよろしければ、該当部分のマクロを(公開するのに支障がある部分は、適当に修正したうえで)書き込んでみて頂けないでしょうか?
Re: win11での不具合 - らあく
2023/11/03 (Fri) 11:09:34
返信おそくなりましたが、該当部分のコードは以下になります。
OpenGraph 1 "c:\web_limit\window.bmp"
OpenGraph 2 "c:\web_limit\screenshot.2.bmp"
DIM %up0
DIM %left0
DIM %upp
DIM %leftt
set %up0 (SearchGraph 1 2)
MESSAGE "" %up0
;↑723,623とかで実際ある部分より下
IF (<> %up0 "False") THEN
;set %left0 (token %up0 ",")
;set %upp + %up0 5
;set %leftt + %left 5
;LCLICK (& %leftt "," %upp)
LCLICK %up0
ELSE
(message "no button")
ENDIF
CloseGraph 1
CloseGraph 2
この操作を始めた時の状態として必須なのが、ウィンドウを最大化したchromeあるいはedgeの拡張機能の管理から拡張機能の詳細に飛んでいる状態にしてある事です。
因みに、window.bmpはその拡張機能の詳細を押した後、ENDボタンを押した状態で撮ったもので、screenshot.2.bmpはwindowをwindow.bmpとそっくりの状態にした状態で「拡張機能のオプション」ボタンのみをスクリーンショットで撮ったものです。
Re: win11での不具合 - たわしと
2023/11/04 (Sat) 21:06:52
らあく さん、こんばんは。
| 返信おそくなりましたが、該当部分のコードは以下になります。
うーん、これを見る限りでは、SearchGraph の書き方は問題ないですね。
念のための確認ですが、window.bmp はそのウィンドウだけでなく、画面全体をスクリーンショットしたものですよね? でないと、「画面全体での座標」ではなく、「ウィンドウ内の座標」を返してしまって、クリック位置がずれることになるので。
あと、ちょっと気になったのは、コメントアウトされている
set %upp + %up0 5
set %leftt + %left 5
のところで、これは
set %upp (+ %up0 5)
set %leftt (+ %left0 5)
かと思います。
ただ、コメントアウトしてあると言うことは、ここがなくても、うまく行かないってことなんですよね……。
全然値が返らないとかじゃなく、「723,623」と、それらしい数字が返っているのも、よくわからないな。一応、スクリーンショットの取り方について、確認してみてください。
Re: win11での不具合 - らあく
2023/11/05 (Sun) 16:07:48
window.bmpについては、ちゃんとタスクバーまで撮りました。一つ違うようで気になる部分があって、screenshot.2.bmpには背景色も含まれていることです。さすがにそれを透過処理してボタン固有の色だけにすれば正確に動作する…ということはないですよね。
Re: win11での不具合 - たわしと
2023/11/06 (Mon) 20:51:17
らあく さん、こんばんは。
| screenshot.2.bmpには背景色も含まれていることです。さすがにそれを透過処理してボタン固有の色だけにすれば正確に動作する…ということはないですよね。
SearchGraph は、単純に画像のドットとドットを比較しているだけですので、これをやると逆に動作しなくなります。
書き込みを読み直していて、ちょっと気になったんですが、最初のほうの質問では、
| SearchGraph 1 2で2でなく1の左端と上端が帰るのは元々そういうものなのでしょうか。
でした。ところが、
| ;↑723,623とかで実際ある部分より下
ともあります。検索先の画像が画面全体だとすると、その左端・上端は 0,0 になるはずなんですが……このあたりに、何か意思疎通の齟齬があるような気がします。
まあ、単なる動作不良の可能性も、もちろんあるんですけど。
Re: win11での不具合 - らあく
2023/11/07 (Tue) 10:29:35
SearchGraphの仕様の詳細を教えていただけないでしょうか。念のため自分が想定している使い方と仕様が違ったりしないかなど確認したいので。
追記: すみません、書きそびれていましたが左端と上端が帰るのがコードを見直した結果"723,623"のように実際あるボタンより下の座標を指すようになったということです。
Re: win11での不具合 - たわしと
2023/11/07 (Tue) 21:21:43
らあく さん、こんばんは。
| SearchGraphの仕様の詳細を教えていただけないでしょうか。念のため自分が想定している使い方と仕様が違ったりしないかなど確認したいので。
仕様というほどのものではありませんが、
(SearchGraph 画像1 画像2)
で、画像1の中で、画像2を探します。
(1) 画像があれば、「画像1の画像の中にある画像2の場所」の、"左端,上端" 座標を返します。
(2) なければ "False" を返します。
| 追記: すみません、書きそびれていましたが左端と上端が帰るのがコードを見直した結果 723,623 のように実際あるボタンより下の座標を指すようになったということです。
ああ、そういうことですか。こちらこそすみません。
それにしても不思議です。「まったく動かない」とか「0,0 や False が返る」ならまだわかないではない(バグとしても、ありがちな感じ)んですけど、中途半端な座標が返るというのがよくわかりません。しかも、「下の座標」ということは、該当する画像位置を通り過ぎているわけで……。
Re: win11での不具合 - らあく
2023/11/15 (Wed) 11:45:53
当方の環境ではLCLICKの座標を指定してもコンスタントに一点をクリックすることができないため、SearchGraphを用いようと思いました。結果的にずれはしますがLCLICKより操作の再現性が取れる為、ずれを修正する形でその問題を解決しました。ここまでお答えいただきありがとうございました。
Re: win11での不具合 - たわしと
2023/11/15 (Wed) 21:59:19
らあく さん、こんばんは。
| ずれを修正する形でその問題を解決しました。ここまでお答えいただきありがとうございました。
あまりお力になれず、申し訳ありませんでした。当方の環境は win10 ですが、来年の頭くらいまでには買い換えを考えていますので、その際には新しい環境で検証してみたいと思います。
複数の.macを条件付きで使用するスクリプト - だいあ
2023/09/13 (Wed) 05:11:54
こんにちは
main.macのマクロを実行している場合に
処理の途中で一定の確率でsub.macを動かし
再度main.macの所定の場所から回帰し実行する事は可能ですか?
if文というよりも、本当に一定確率で起動する感じです!
Re: 複数の.macを条件付きで使用するスクリプト - たわしと
2023/09/13 (Wed) 20:06:30
だいあ さん、こんばんは。
| 処理の途中で一定の確率でsub.macを動かし
| 再度main.macの所定の場所から回帰し実行する事は可能ですか?
「一定の確率」は、random 関数で乱数を作り、「sub.macを動かす」は、exec コマンドでもう一つの kmmacro を起動するのが簡単でしょう。
こんな感じです。
------------ KMmacro.mac ------------
set %0 (random 10) ; %0 に 0~9 の数値をランダムにセット
if (< %0 3) then ; %0 が0~2なら、つまり30%の確率で
EXEC "kmmacro.exe /FILE=sub.mac" TRUE ; もう一つの kmmacro を起動し、sub.mac を実行
else ; それ以外なら
(message "%0=" %0 ":はずれ")
endif
(message "終わり")
-------------- ここまで --------------
※注:これを実際に実行する場合は、全角スペースを削除してください。
なお、EXEC コマンドは、第二引数として「TRUE」を指定してください。そうしておくと、sub.mac の実行が終わるまで、次のコマンドには進みません。
無題 - たわしと
2023/08/20 (Sun) 22:00:28
匿名N さん、こんばんは。
| すみません、UWSCで出来ることは殆どKMmacroでも可能でしょうか?
私自身は UWSC を使ったことがありませんので、この点についてはわかりかねます。ただ、聞くところによると、このソフトはかなりの多機能とのことですから、「KMmacro で全部できるか」といわれると、ちょっと自信はありません。
| あと、文字認識、数値認識は他のツールでも補えるかも知れません。
「エクセルVBA等を組み合わせると」というのはよくわかりませんが、KMmacro で使えるとしたら、コマンドラインで実行可能な OCR ソフトでしょうか。手順としては、
(1) KMmacro で、認識させたい画像をファイルに保存。
(2) KMmacro の EXEC コマンドで、「OCR ソフトを起動し、画像ファイルを読み込ませ、結果をテキストファイルに出力させる」コマンドラインを実行する。
(3) 出力されたテキストファイルの内容を、KMmacro の OPEN コマンド・READ コマンドを使って変数に読み込む。
といった具合です。
ただ、私は具体的にどんな OCR ソフトがあるかまでは知りませんので、これ以上のコメントは控えさせていただきます。
あ、でも同じことは、UWSC でもできるんだろうな。慣れている方を使われた方がいいかもしれません。
| UWSCのほうは新規Verアップが不可能の様ですので、
| こちらのツールを期待しております。
期待させてしまって申し訳ないのですが、添付の「はじめに.txt」にも書きましたが、このソフトは古ーい言語で書いてあるため、なんと Windows XP マシン上でないと開発できません。そのため、開発の方も、「いつ開発できなくなるかわかりません」というのが現状です。
作者の気が向いたら、もしかしたら、Ver アップがあるかもしれない……くらいに思っていただければと。
たわしと
Re: 無題 - 匿名N
2023/08/21 (Mon) 08:34:14
たわしとさん、色々と有難う御座います!
KMmacroのVerアップ履歴を見ると、GetGraphPixel 関数追加
GetPixel 関数の処理を変更。これにより、Chrome などの GetPixel API に対応していないプログラムなどの色も取得できるようになった。
と有りましたので、現時点ではUWSCの認識よりも↑なのかと思われます。
UWSCは、Verアップは2018年で終了しております。
UWSCで構文を書いて、自動クリックをさせようとすると、構文自体は間違っていないのに、何故か自動クリックが途中で止まっている など様々な事が起こります。
理由としては、
WINDOWS Defender やアンチウイルスソフトがUWSCをウイルスと誤検知して、
これはあかん!と途中で自動クリックそのものを止める
古いパソコン・OSだと色の認識が出来なくなる
『友人が途中までは動くんだけどと言ってました。』
なので、UWSCに代わるモノを探しておりました。
色々と弄ってみます。