【過去ログ】質問1
自分のやりたいことや現在の設定など情報を詳細に記載してください。
マクロの質問について
現在のKeyToKeyには以下の3種類のマクロがあります。
- C#スクリプト
- ブロックマクロ
- アクションマクロ(非推奨)
マクロの質問をする際はどちらのマクロについて聞きたいのか書いてください。
※書いてない場合は返信は行いませんのでご了承下さい
返信について
返信はすべて最新バージョンの内容で書きます。
古いバージョンをご使用の方は事前に最新版へアップデートしてください。
よくある質問
Q. How can I switch the language in this app?
No you cannot.
It is supported only Japanese(language) and I have no plans to support English or else in the future.
Q. ウィンドウが表示されなくなった
ウィンドウが表示されないときの対処方法 を参照してください。
Q. アプリを非アクティブにしたままマクロやキー入力を実行できる?
できません。
マクロやキー入力等は最前面(アクティブ状態)のアプリに対してのみ動作します。
Q. 設定ファイルはどこにある?
設定ファイルはKeyToKeyのフォルダ内にあります。
設定に関係するフォルダやファイルはこちらを参照してください。
Q. マクロやキーの入力ができない
以下について確認してみてください。
設定の編集が保存できていない
正常に保存できている場合はメインウィンドウに設定内容が表示されます。
他のアプリで試す
特定のアプリで機能してないだけの可能性があります。メモ帳などを使って動作確認してみてください。
アプリの実行許可が正しくできない
環境設定からアプリの実行が正しく設定されているか確認してください
- アプリの実行許可リストに追加した項目を削除した上で動作確認する(何も設定されてない状態の場合すべてのアプリ上で動作します)
- アプリのプロセス名等の設定が正しいかどうか確認する
何かしらのキーやマウスの入力が影響している
キー入力が正しくできない場合、何かしらのキーやマウスが押されっぱなしになっていることによって正しく入力できない可能性がないか確認してみてください。
読み込みエラーが発生している
メインウィンドウのコンソールから読み込みエラーが出てないか確認してみてください。
他アプリの入力によってマクロを実行しようとしている
初期設定では、利便性の観点から、「アプリによる入力(キー/マウス)」によるマクロ等の実行がロックされています。
ここで言う「アプリによる入力」とは、以下のようなものを指します。
- KeyToKeyやJoyToKey等のマクロ系ツール
- キーボード/マウスメーカー製の割り当てツール(ただし物理デバイスかのように振る舞えるツールもあります)
- リモートデスクトップ系ツール
- 特殊なキーボード(テンキーのみキーボード、左手キーボードなど)は「アプリによる入力」を発生させることがあるようです。
■入力が「アプリによる入力」かどうかを調べるには、以下の手順を行います。
- メインウィンドウの「コンソール」からコンソールを表示させます。
- 同じく「コンソール」から「キー/マウスの入力情報を表示」にチェックを入れます。
するとキーやマウスのボタンを入力するたびにコンソールに入力パラメーター情報が表示されるので下記の項目を見ます。
名前 | 説明 |
---|---|
Key | 入力された要素の名前 |
Status | Down (押された)Up (離された) |
Injected | アプリによる入力かどうか。True の場合はアプリによる入力 |
Injected
の値がFalse
の場合は物理デバイスからの入力です。マクロ等が実行可能です。
True
の場合はアプリのよる入力です。マクロ等は実行することができません。
True
の状態でマクロ等を実行するには実行ロックを解除する必要があります。
「割り当て設定(キー/マウス)」ページ上部にある「南京錠」のアイコンボタンからのロックを解除を行うことができます。
ゲームのセキュリティがキーの入力をブロックしている
申し訳ないですが対処方法はありません
KeyToKeyが行うキーの入力監視自体をブロックしている
環境設定からフックを無効にしたら実行できる可能性があります。
ただしフックを無効にするとトリガー等の入力キャンセルができなくなります。
おことわり
コメント欄に「特定のゲームで動かない、実行できない」等のコメントを書かれても残念ながら殆どの場合何も出来ません。
特にオンラインゲームやソーシャルゲーム等はセキュリティプログラムの関係でキー入力のシミュレーションやキーボード/マウスフックなどの処理がブロックされることが多いためです。
ウイルスとして検知された場合
お使いのアンチウイルスソフトでKeyToKeyをホワイトリストに追加してください。
Microsoft Defenderの場合
- 「Windows セキュリティの設定」を開きます。
- 「ウィルスと脅威の防止」をクリックします。
- 「現在の脅威」の検知した項目を「デバイスで許可」に設定し、「操作の開始」をクリックします。
「現在の脅威」に項目が表示されない場合
「現在の脅威」にある「保護の履歴」に表示される項目から許可することができます。
フォルダを検知対象外にする
「ウィルスと脅威の防止」に戻り「ウィルスと脅威の防止の設定」にある「設定の管理」をクリックしてください。
「除外」の「除外の追加または削除」からフォルダを除外できます。
問い合わせ
問い合わせ用メールアドレス:dev.key2key@gmail.com
問い合わせによる質問について
KeyToKeyの利用方法に関する質問は以下のような場合を除き、このページのコメント欄を使用してください。
- 文字数制限などがありここに書くことができない。
- 添付ファイルがある
- どうしても知られたくないプライベートな情報がある。
コメント一覧 (401)
キー割り当てにてprevious trackとnext track media keyを割り当てたキーを押した際にQキーとPキーが追加で入力されてしまうのですが解決策はありますか?
key0x2key
がしました
key0x2key
がしました
画像認識ではなく、文字認識は可能でしょうか?
特定座標範囲内の、文字が出たときに反応するような。
良い表現が思い浮かばないのですが、画像ではなく文字として認識する機能です。
key0x2key
がしました
C#スクリプトについて質問がございます。
[Method]
bool CheckPointInRect(int x, int y)
{
var rect = new Rectangle(30,50,100,100);
var pt = new Point(x, y);
return rect.Contains(pt);
}
のコードについて
"Rectangle"の型または名前空間の名前が見つからない旨のエラーが出ます。
#r "System.Drawing"
は__extension.csxの先頭に定義しました。
誠に初歩的な質問ではございますが、よろしくお願いします。
key0x2key
がしました
c#スクリプトにおいて、
Stringの連結はStringBuilderを使用して行った方がよさげなのですが、メソッドにありますでしょうか?
key0x2key
がしました
①画像Aが出る→左クリック
②画像Aが出る→右クリック
これを繰り返したいです、
普通にやると、画像Aが出たら同時に①②を起動してしまいますが、
最初は画像Aが出たら左クリックして、その次に画像Aが出たら右クリックするようにしたいです。
可能でしょうか?
key0x2key
がしました
プロファイルが無効状態となって使えなくなってしまいました。対処法を教えて頂けると幸いです。
また、使用しているバージョンはKeyToKey.210312ですがKeyToKey.241019をダウンロードして起動しても同様の状態になりました。
------以下コンソールに表示されているメッセージ
メッセージ : After parsing a value an unexpected character was encountered: ?. Path 'Controller.XInputMapConfig1.Buttons.Back.IsEnabled', line 184, position 2.
[StackTrace]
Newtonsoft.Json.JsonReaderException: After parsing a value an unexpected character was encountered: ?. Path 'Controller.XInputMapConfig1.Buttons.Back.IsEnabled', line 184, position 2.
場所 Newtonsoft.Json.JsonTextReader.ParsePostValue(Boolean ignoreComments)
場所 Newtonsoft.Json.JsonTextReader.Read()
場所 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
(文字数超過のため中略)
場所 Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
場所 Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
場所 Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
場所 KeyToKey.Macro.Core.RepositoryBuilder.GetSetting(String path) 場所 C:\Users\root\Source\Repos\KeyToKey\KeyToKey\Macro\Core\RepositoryBuilder.cs:行 372
場所 KeyToKey.Macro.Core.RepositoryBuilder.BuildRepository(String filePath) 場所 C:\Users\root\Source\Repos\KeyToKey\KeyToKey\Macro\Core\RepositoryBuilder.cs:行 253
****************************************************************************************************************************************************************************************************
key0x2key
がしました
C#スクリプトについて質問いたします。
「メソッド作成」画面でメソッド名が左にずらりと列挙されますが、その中で
String.xxxxとかTemplateMatching.xxxxとドットかついているメソッドありますが、
これはclassのなかのメソッドをC#スクリプト名として表示してるのでしょうか?
もしそうであれば、拡張スクリプトで自分で作ったメソッドにもこれはできますでしょうか?
key0x2key
がしました
C#スクリプトについて教えてください。
テンプレート(CTRL+T)に「OpenCVのテンプレート」があります。
これは1つの画像テンプレートから単一の画像識別のコードでありますが、
これをもとに1つの画像テンプレートから複数の画像識別するようにしようと
しましたが、結果できませんでした。
①keytokey\binのOpenCVSharpのdllのバージョンが古い?
#r "bin\OpenCvSharp.dll"
#r "bin\OpenCvSharp.Blob.dll"
#r "bin\OpenCvSharp.Extensions.dll"
#r "bin\OpenCvSharp.UserInterface.dll"
using OpenCvSharp;
using OpenCvSharp.Extensions;
②ループさせCv2.MinMaxLoc()で次の一致箇所を取得しようとしましたが、
同じ一致箇所を返している。(次ページにコードを追記します。)
key0x2key
がしました
key0x2key
がしました
コントローラーのR1ボタンを押している間、左スティックが上入力され続けるようにしたいのですが、完全に上方向に固定されるのではなくスティック操作もできるようにするにはどうすればいいでしょうか。
スティックのY軸が本来の入力から20000ほどプラスされるようなイメージです。
key0x2key
がしました
C#スクリプトについてです。
非アクティブのアプリに対してEnterキーやEscキーなどを送信したいのですが可能でしょうか?
key0x2key
がしました
それか新しいのを作ってほしい
key0x2key
がしました
key0x2key
がしました
マクロ検知対策で、画像認識で認識した画像内のランダムな位置を毎回クリックさせたいのですが
そう言ったことをブロックマクロで再現可能でしょうか
key0x2key
がしました
ABCDの4つの画像があり優先度を左から高く設定して、AとBがあったらAを、BとDがあったらBを選択という条件でマクロを組みたいのですが、こういう場合はこれでよろしいのでしょうか? (コードの添付方法がわからなかったため画像で失礼いたします)
https://imgur.com/3oCbK3I
key0x2key
がしました
いつも便利に使用させて頂いております。
質問なのですが、「ファイルを複数選択した状態でマクロを発動し、選択したファイルの個数分方向キーを押す」
という動作はできますか?
例)10個のファイルを選択していた場合、10回左方向キーを押す
選択しているファイル数をどこかから取得する必要があると思うのですが、難しいでしょうか?
宜しければご教示下さい。
key0x2key
がしました
key0x2key
がしました
あるいはマウスとは別にタッチパッドの左クリック(ワンタッチ)にキー割り当てができれば、いいなと思っています。
何かしらの対応で上記を実現することはできますでしょうか。
key0x2key
がしました
同時押し設定でキーボードの「A」に「←」を設定。同時押し設定には左クリックは使えないのでしょうか。
key0x2key
がしました
例えば、マウスが10移動したら1入力、20移動したら2入力というのをリアルタイムに認識できればありがたいです。
key0x2key
がしました
key0x2key
がしました
PC2台でゲームAからゲームBにアイテムを送るのを自動でやりたいのですが、それぞれのPCで送る動作、受け取る動作を合計の時間をピッタリに設定したのですが(個々のPCのスペックの差のせいか)僅かにズレが発生してしまいトグルだとそのズレが蓄積して数10分で機能しなくなってしまうためです。
何か対処法はありませんでしょうか。
key0x2key
がしました
画像を認識させるときの拡張子の種類で、処理の重さや精度に影響はありますか?
key0x2key
がしました
key0x2key
がしました
{"IsDisabled":false,"Name":"@If","Arguments":["TemplateMatching.TrySingle(\"U\") == True||TemplateMatching.TrySingle(\"S\") == True"]},
{"IsDisabled":false,"Name":"MouseMove","Arguments":["$MatchResultX","$MatchResultY","20"]},
{"IsDisabled":false,"Name":"@EndIf","Arguments":[]}
]
で2つの画像のどちらかがあったときにその画像にカーソルを移動してクリックする処理をしたいのですが、撮影してテストを実行して、想定したものしか反応していないことを確認したにも関わらず、まったく違うところをクリックしてしまいます。何が考えられますでしょうか。一応クリックしているのは画像を検出する設定をしている範囲内で、スコアは0.9以上を設定しています。
key0x2key
がしました