質問・要望・不具合報告はこちらへお願いします。
KeyToKeyに関する質問や要望であれば、どんな些細なことでもお気軽にどうぞ。
※ 要望を出したからといって必ずしもそれが反映されるわけではありません。技術的、知識的に無理なこともあるのでご理解ください。
※ 要望を出したからといって必ずしもそれが反映されるわけではありません。技術的、知識的に無理なこともあるのでご理解ください。
コメントするにあたってのお願い
曖昧であったり投げやりな質問や要望はおやめください。
自分のやりたいことや現在の状況など情報を詳細に記載してください。
返信について
返信はすべて最新バージョンの内容で書きます。古いバージョンをご使用の方は事前に最新版へアップデートしてください。
マクロの質問について
現在のKeyToKeyにはC#スクリプト(マクロ)とアクションマクロの二種類のマクロがあります。
マクロの質問をする際はどちらのマクロについて聞きたいのか書いてください。
不具合について
不具合の報告をする際は可能な限りで構いませんので発生した状況や設定について詳細に報告していただけると助かります。
自分のやりたいことや現在の状況など情報を詳細に記載してください。
返信について
返信はすべて最新バージョンの内容で書きます。古いバージョンをご使用の方は事前に最新版へアップデートしてください。
マクロの質問について
現在のKeyToKeyにはC#スクリプト(マクロ)とアクションマクロの二種類のマクロがあります。
マクロの質問をする際はどちらのマクロについて聞きたいのか書いてください。
不具合について
不具合の報告をする際は可能な限りで構いませんので発生した状況や設定について詳細に報告していただけると助かります。
よくある質問
Q.他のアプリの入力で各種割り当て(マクロ等)を実行したい
初期設定では利便性を考慮してアプリからのキー入力によってキー割り当てやマクロ割り当てなどが実行されないようロックされています。
このロックを解除するには割り当て設定(キー/マウス)の上部にある南京錠のアイコンから入力イベントのロックを解除すると実行できるようになります。
Q.特定のゲームにおいてマクロやキー入力が正常に動かない(他のアプリでは動く)
考えられること:
特にオンラインゲームやソーシャルゲーム等はセキュリティプログラムの関係でキー入力のシミュレーションやキーボード/マウスフックなどの処理がブロックされることが多いからです。
初期設定では利便性を考慮してアプリからのキー入力によってキー割り当てやマクロ割り当てなどが実行されないようロックされています。
このロックを解除するには割り当て設定(キー/マウス)の上部にある南京錠のアイコンから入力イベントのロックを解除すると実行できるようになります。
Q.特定のゲームにおいてマクロやキー入力が正常に動かない(他のアプリでは動く)
考えられること:
アプリで実行が許可されていない
環境設定からアプリの実行が許可されているか確認してください
ゲームのセキュリティがキーの入力をブロックしている
この場合、申し訳ないですが対処方法はありません
KeyToKeyが行うキーの入力監視自体をブロックしている
環境設定からフックを無効にしたら実行できる可能性があります。
ここのコメント欄に「ゲームで動かない、実行できない」等のコメントを書かれても残念ながら殆どの場合何も出来ません。環境設定からアプリの実行が許可されているか確認してください
ゲームのセキュリティがキーの入力をブロックしている
この場合、申し訳ないですが対処方法はありません
KeyToKeyが行うキーの入力監視自体をブロックしている
環境設定からフックを無効にしたら実行できる可能性があります。
特にオンラインゲームやソーシャルゲーム等はセキュリティプログラムの関係でキー入力のシミュレーションやキーボード/マウスフックなどの処理がブロックされることが多いからです。
今後のアクションマクロのサポートについて
バージョン200824よりC#スクリプトをマクロとして扱える機能を実装しました。
これにより今まで以上に複雑なマクロを作成することが可能となりました。
今後はC#スクリプトを使用したマクロをメインにサポート(新しい機能の実装、使用方法の記述)していきたいと考えています。
アクションマクロ自体は廃止したりせず今まで通り使用可能ですがサポート(機能の追加、使用方法の記述)はしない方向で考えています。
もちろんアクションマクロについて質問をしていただければ返答はするつもりです。
これにより今まで以上に複雑なマクロを作成することが可能となりました。
今後はC#スクリプトを使用したマクロをメインにサポート(新しい機能の実装、使用方法の記述)していきたいと考えています。
アクションマクロ自体は廃止したりせず今まで通り使用可能ですがサポート(機能の追加、使用方法の記述)はしない方向で考えています。
もちろんアクションマクロについて質問をしていただければ返答はするつもりです。
支援のお願い
連絡先
コメント一覧 (874)
制作と公開、ありがとうございます。
オンスクリーンキーボードで、Xinputコントローラの操作ができたらいいなと思っています。
さて、C#スクリプトでの引数とグローバル変数の使い方が、よくわかりません。
引数を $ui とした場合、その利用は、
GetVar("$ui")
で、いいのですか?
グローバル変数でも同様に、$XIIsDownLB とした場合、その利用は、
GetVar("$XIIsDownLB")
で、いいのですか? 違っていたら、setの方法もお願いします。
Googleで検索しても、$を使った事例が見つからず、解決に至っていません。
よろしくお願いします。
マクロ編集画面で行を選んで、右クリをした後キーボードを押してもメニューが選択されない。
たとえば、右クリ後DやEで「無効化」「有効化」ができませんでした。
あと、Keybord.Downして即Keybord.Upしても即座にキーがUpがされていない様です。
例えば以下のようにQを押してQをすぐ離すの2行。
やってることは実質Tapと同じですが、Tapだとすぐ離せているようです。
[
{
"IsDisabled": false,
"Name": "Keyboard.Down",
"Arguments": [
"Keys.Q",
"0",
"False"
]
},
{
"IsDisabled": false,
"Name": "Keyboard.Up",
"Arguments": [
"Keys.Q",
"0",
"False"
]
}
]
上は試験でためした話で実際には
1.QをDown。
2.何かしらの処理をする(キー押下中は待つとか)。
3.QをUp。
って感じで設定していて、キーがリリースされてないので、
途中を抜いてマクロ処理遅延をなくして試したも、変わらずダメだったという結果になりました。
KeyToKey.201008.zipだと問題なく動いています。
不具合らしきものに遭遇しました。
KeyToKeyを立ち上げると、NumLockがオンになってしまい解除できなくなるようです。
KeyToKeyの有効化・無効化(赤×状態)に関係なく解除できませんでした。
KeyToKeyを閉じた上でwindowsのオンスクリーンキーボードでNumLockを触る事で解除できました。
KeyToKeyを無効化してもNumLockを解除できないことから、「IME連動で無効化」やホットキーによる無効化では太刀打ちできませんでした。
参考に、KeyToKeyの設定で「テンキー変換」はオフ、設定ファイルの設定で「キーボードフック」はオフにしています。
こちらの設定ミスの可能性もあります。調査していただけると幸いです。
ver.201124での変更点:実行不可なアプリだった場合に C#スクリプトを強制終了するように変更しました。
について質問と要望です。
C#スクリプトにて、ゲーム画面上にオーバーレイウィンドウを表示させゲーム内の入力に応じてオーバーレイウィンドウの内容を変更するという機能を実装しています。
キーの割当設定も使用しているため、実行可能アプリはそのゲームのみになっているのですが、上記の変更によりゲームからフォーカスが外れる度にスクリプトが終了されるようになっていしまいました。
ver201124以降において、実行不可アプリでもスクリプトを実行させ続ける方法はあるのでしょうか?
その方法がない場合、実行不可アプリでもスクリプトを終了しないオプションを追加していただきたいです。
よろしくお願いします。
PCを買い替えたためKey to Keyをインストールし直したのですが、クリックしてもコマンドプロンプトが一瞬表示されるのみで画面が出てこなくなってしまいました。.exeをクリック後、タスクマネージャで見ていると時折作動しているようでした。
.Net Framework4.8はインストール済、11月26日リリースの最新版をダウンロードしました。
OSはWindowsになります。
画面が出てこない症状に思い当たるものがありましたらご教示ください。
よろしくお願いいたします。
瞬間的な画像検索ではラグ等で取りこぼしが起きるので、マウスカーソルの形状で検出したいのですが
カーソル形状の取得は可能でしょうか?
MatchResultクラスにboolなインスタンス変数を一つ追加して、Match()関数呼び出し後、関数の戻り値が自動的にその変数へ代入されると嬉しいです。
MatchResult[] melon = new MatchResult[100];
bool apple = new bool[100];
for(int i=0;i<100;i++){
apple[i]=Match(mystring[i],out melon[i]);
}
のような記述が冗長に感じてきました。
サブクラスを作ったりして手元で解決するのが王道であればスルーして下さい。
高精度/高負荷な待機設定を使用するにチェックを入れても秒間60回以上の連打ができないのですが
アクションマクロで画像認識でマッチした画像のある位置にカーソルを合わせる動作を組み立てる際、認識はするものの実際から右にずれた位置に移動していまいます。
2画面かつ「テキスト、アプリ、その他項目のサイズを変更する」で150%(PCの推奨値)にしているせいかと思ったのですが、こちらの投稿の633でご対応いただいているんですね。
他に思い当たる原因がありましたらご教示いただけますと幸いです。
以下のC#スクリプト(マクロ)実行終了後に、マウスボタンが押された状態になっている気がします。
その状態から、物理マウスボタンを押して離すと解除されます。
当該アプリだけでなく、他のアプリでも同じような挙動をし、また、他のアプリに移動してもマウスボタンが押されたままのようです。(マウスボタンを使わずにAlt-Tabで移動すれば左ボタンも右ボタンも押されっぱなしに見えます)
「以下のアプリで実行を許可する」のリストは空、マウスフックとキーボードフックはいずれも無効にしています。
物理ゲームパッドのボタンにマクロを割り当てて実行しています。
KeyToKeyの「入力の可視化‐マウス」ありでもなしでも観察しました。
Down(Keys.LButton);
Down(Keys.RButton);
Wait(1000);
Up(Keys.LButton);
Up(Keys.RButton);
意図通り動作しています。
アクションマクロの"XInput.スティック"に不具合があるかもしれません。
"XInput.スティック"のスティック設定で”右スティック左右”を設定しても
仮想コントローラーの出力が"右スティック上下"になっているかもしれません。
バージョンアップ前はゲームコントローラーのプロパティ上でも右スティック左右動作しておりました。
一度ご確認をお願いします。
アクションマクロを作って使用しているのですが、
今使っているkeytokeyのアクションマクロを、別の新しいPCにそのままコピーすることはできますか?
方法がありましたらご教示いただければと思います。
よろしくお願いいたします。
①割り当てに関する質問になります。
キーボードの「キー」に対して、
「私が現在使用しているゲームパッド(DirectInput系)」のボタンを割り当てたいと考えています
KeyToKeyを使って上記を実現することは可能でしょうか。
割り当て設定(キー/マウス)からの割り当てでは仮想コントローラ(XInput系)の項目しかなく
DirectInput系を選択する方法がわかりませんでした。
②XInputとDirectInputの同調について。
スパナとドライバーのアイコン>オンスクリーン>コントローラー の手順で
PCの画面上にXinputの仮想コントローラーを表示させることができますが
この仮想コントローラーによる入力を、
「私が現在使用しているゲームパッド(DirectInput系)」の入力として
PCに認識させることは可能でしょうか。
【質問意図】
私が普段利用しているアプリがマクロ(によるマウスのクリック)を認識しなくなった。
しかし、ゲームパッド(DirectInput系)からの入力(をマウスクリックに変換したもの)には反応することが判明した。
このため、上記質問2点のうちどちらかが実現できれば
マクロの命令→ゲームパッドの操作→アプリの操作 が可能になる
と考え、質問した次第です。
以上になります。
よろしくお願いします。
垂直同期オフでは正常に動くのですが
垂直同期がオフだとゲームがクラッシュしたりフリーズしたりするので
オンでやりたいのですが、何かいい方法はありますか?
アクションをクリックして別のアクションにするとき、座標とか押す時間とかが引き継がれるようにできませんか?
最初からその機能があったらごめんなさい...
C#で9か所を監視し続ける画像認識マクロを作成しているのですが、
1か所を監視する場合より単純に9倍の処理時間がかかり実用に耐えないものとなっております。
並列化をして処理時間を短縮しようと考えましたが、直列処理の場合と処理時間に変化がありませんでした。
作成したC#のコードは下記なのですが、
Matchメソッドは複数から呼び出すことができないのでしょうか。
また、何か画像認識の処理時間を短縮する方法はありますでしょうか。
(9か所の画像の範囲を小さくしたり、9か所を1つの範囲に設定したりしましたがダメでした。。。)
お手数おかけしますがよろしくお願いします。
Parallel.For(1, 10, pos => {
if (Match("画像1-"+pos, out MatchResult result)) { /* 画像1の処理 */ }
else if (Match("画像2-"+pos, out result)) { /* 画像2の処理 */ }
else if (Match("画像3-"+pos, out result)) { /* 画像3の処理 */ }
else if (Match("画像4-"+pos, out result)) { /* 画像4の処理 */ }
});
(C#scriptのヘルプ・テンプレートも全くわからない状態でもなんとなくで組めるので初心者からしたらかなりありがたい機能です ありがとうございます)
C#scriptに関する質問です。
入力待機中に特定のボタン(ESC 右クリック・左クリック)が押された場合にマクロを強制終了したいのですが、この場合はどうしたら良いのでしょうか
(初歩的な質問で大変申し訳ないのですが、C#scriptを学ぶ際におすすめの本等有りましたら教えていただけると幸いです)
Key to Keyのアクションマクロを使ってMMOで遊んでますが、今年になりWindowsアップデートを最新にしたら動作が不安定になりました。
具体的に言うと、
1アクションマクロの設定通りに動作しない(別のキーが動いてしまう)
2速度が異常に速くなったりする
3マクロを割り当ててるボタンをON/OFFで切り替えるようにしてるが、OFFにしてもマクロが動き続ける(しばらくすると止まる)
このような現象が起きるようになりました。
去年までは問題なく動作してたのですが、急に挙動が変になって困ってます。
ゲーム側に問題があるかと思ったのですが、メモを開いて、その上でアクションマクロを実行したら、ゲーム内と同じような症状が確認出来ました。
調べても何が原因がよく分からず直せません。
原因と直し方をご教授いただけると幸いです。
Wキーを押して5秒待機
Aの画像を見つけたらBの画像が出るまで20秒待機
Bの画像が出たらSキーを押して離す というマクロを作りたいのですが
初心者で上手く出来ませんでした。
良かったらC#スクリプトとアクショマクロの両方教えて欲しいです。
宜しくお願いします。
アクションマクロでマクロを作成したのですが、マクロを特定のソフトAで動かしながら別のソフトBでマクロを使わずに作業をすることは可能でしょうか?可能であればやり方を教えていただけますでしょうか。
このアプリケーションで入力切替として、Lshift+capslockをcapslockを押すだけで動作させることは可能でしょうか?
もし可能であればご教授いただければ幸いです。勉強不足であることは承知ですがお願いいたします。
質問です。
DirectInputコントローラーをPCへ接続しています。
Win上のデバイスでは認識されています。
しかし、アプリの「割り当て設定(コントローラー)」>「コントローラー」>「使用するコントローラーを選択する」の上では、接続したコントローラーが表示されません(XInputだけが表示されます。なおXInputには「接続に失敗しました」が表示されています)
また「コントローラーのセットアップを開始」>「ボタンを入力してコントローラーを検出/選出する」において「ボタンを入力してください」とあるのでコントローラーのボタンを押しているのですが、いずれも認識されません(Winのデバイス上では認識されています)
アプリでDirectInputコントローラーを認識させるには、どうしたら良いでしょうか?
なお、OSはWin10で接続したコントローラーは「400-JYP62UBKX(SANWA SUPPLY)」です
トグルの制御について
例えばAキーにて連射トグル状態になっているとして、別のキーBでAキーのトグルを制御することはできないでしょうか。