AutoHotkey スレッド part33

レス数が900を超えています。1000を超えると表示できなくなるよ。
2024/01/23(火) 16:30:58.38ID:VpJPb0gB0
■公式サイト
https://www.autohotkey.com/

■解説等
・v1.1
AutoHotkey Wiki
http://ahkwiki.net/Top

・v2
クイックリファレンス|AutoHotkey v2
https://ahkscript.github.io/ja/docs/v2/
v1.1からの変更|AutoHotkey v2
https://ahkscript.github.io/ja/docs/v2/v2-changes.htm

■前スレ
AutoHotkey スレッド part30 IDのみ
https://egg.5ch.net/test/read.cgi/software/1644313099/
2024/05/29(水) 11:42:33.86ID:i+pm0mok0
>>838
それって、
既知のバグなの?
2024/05/29(水) 12:56:48.34ID:0KFDSECc0
自分で色々試して対応した

2.0.7を2.0.15にバージョンアップしたら問題が発生しなくなった
バグが直されたのかもしれないね
2024/05/29(水) 12:58:24.79ID:mcawn8o40
昔からある物理的に押下した修飾キーの押しっぱなし病も色々な対策例のうち

例1. ホットキーの先頭で修飾キー解放まで待つ(CtrlならKeyWait "Ctrl")
例2. SendをSendEventに置き換える

で再現しなくなったが例1は当然送信が遅くなるので例2と同じ意味になる
SendMode "Event"でまとめたらなぜか再現したので同じように空行にして様子見してみる
2024/05/29(水) 16:59:21.00ID:VdSUJTRo0
過去スレにあったやつ使ってて今のところ問題ない
forをloopにした

holdup_key() {
Sleep, 5
keys = ["Control", "Ctrl", "Shift", "Alt", "Win", "sc079", "sc07B", "sc070"]
SendInput, {Blind}{LControl Up}{LShift Up}{LAlt Up}
loop, 2
{
loop, len keys
{
SendInput, {Blind}{keys[A_Index] Up}
}
}
}
2024/05/29(水) 17:21:36.85ID:c0MwHFKi0
>>840
半年以上前のバージョンじゃないか
さすがに古すぎ
質問する前にまず試すべき要件
2024/05/29(水) 18:51:10.93ID:eu1JLHkv0
なぜパッケージマネージャを使わないのか
2024/05/29(水) 19:17:33.50ID:mcawn8o40
>>842
物理修飾キーを使うホットキーのSendの後にこれを実行する感じ?
同じようなことは散々試したけど、v2でキー履歴みると最後にdown状態送信するんだよなぁ
2024/05/29(水) 22:45:30.14ID:JmkzWcXF0
>>842
結果として問題が起きていないだけでコードとしては問題がありますね
その関数内で実際に機能しているのは
Sleep, 5
SendInput, {Blind}{LControl Up}{LShift Up}{LAlt Up}
の2行だけです
また、私見ですがその位置にあるSleepは効果があるようには思えません
現状問題が起きていないなら1行だけで良いはずです
2024/05/29(水) 22:54:07.12ID:VVdYEZwI0
>>846
sleep入れると安定する
理由は全然わかんない
2024/05/29(水) 23:15:12.84ID:bUYrs4Wr0
sleep 1
みたいなあってもなくても変わらない筈の処理が、
あると無いのとでは大違いだったりする

OS的には一旦処理を手放して、ぐるっと一周してから戻ってくるので、
他の処理との兼ね合いは全然違う
2024/05/29(水) 23:39:17.56ID:JmkzWcXF0
別に全ての場合においてのSleepを否定しているわけではありません
842の関数内で冒頭にあるSleepの効果に疑念があるだけです
2024/05/29(水) 23:43:30.40ID:bUYrs4Wr0
不思議だろうけど、経験的にそうやったら上手く行ったという事実には敵わんよ
2024/05/30(木) 06:15:06.98ID:2ABqZiu20
>>844

パッケージマネージャって?
2024/05/30(木) 14:03:36.11ID:Hz3rfbTZ0
>>849
もし解っているなら、
今後の人達のためにloopのところの処理 >>842 直してくだされー
853名無しさん@お腹いっぱい。
垢版 |
2024/05/30(木) 14:54:29.95ID:ei9jYFav0
[はい(Y)] [いいえ(N)]

というダイアログが出て、いいえを選択するのに無変換キーに

SC07B::Send, !n

を割り当てると、選択した後アプリケーションがハングアップしたのか操作不能になります。
原因分かりますでしょうか?
2024/05/30(木) 17:57:19.54ID:mQOWoRzF0
>>852
holdup_key() {
static keys := ["LCtrl", "LShift", "LAlt", "LWin"] ; ここに必要なキーを入れてください。修飾キーはおそらくLRを明記しないと正常にUpされないと思います
for k in keys
SendInput, {Blind}{%k% Up} ; v2 → SendInput("{Blind}{" k " Up}")
; 注意 Inputモードは一般的には信頼性が高いですが、特定の条件下では信頼性が低くなり不具合が発生する可能性があります
; 何らかの問題が発生した場合、とりあえずSendEventに変更し様子を見てください
}

元々の問題点として、keysへの代入演算子が=であるため、配列として代入されるはずであった右辺がそのまま文字列として代入されています
おそらく参考元がそうだったので、それを基準にしたforループが動作せずにloopに変えたんだと思いますが、そのloopも記述が間違っているため動作していませんでした

ちなみに私は間違いを指摘しただけで、こういった後手での包括的な対策は、理屈としては理解できますが使用していません
そのため、この手のスクリプトが実際にどの程度有効であるとか、これによる弊害は分からないので、推奨している訳ではありません
2024/05/30(木) 19:55:33.23ID:GMdhSV1e0
Release v2.0.16 · AutoHotkey/AutoHotkey · GitHub
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.16
2024/05/30(木) 22:39:40.36ID:Hz3rfbTZ0
>>854
ありがとう 勉強になった

holdup_key() {
Sleep, 5
keys := ["LCtrl", "LShift", "LAlt", "LWin", "sc079", "sc07B", "sc070"]
for k in Kyes
{
SendInput, {Blind}{%k% Up}
; SendEvent, {Blind}{%k% Up}
}
}
2024/05/30(木) 22:43:49.67ID:HkIFscnF0
Catcher in the Kye
858名無しさん@お腹いっぱい。
垢版 |
2024/05/31(金) 05:43:08.34ID:4tZnxOlC0
♪くろーるくろーるしてー
2024/05/31(金) 11:15:20.46ID:iNgtcMsL0
これ動作をミリ秒で指定できるけど
リファレンスではOSの制限で10ms単位だと書いてあるけど
実測すると10msごとで変わってるわけでもないし
SendModeを変えても基本的に指定した数値より遅いし
同じ間隔で繰り返しても20msくらいバラツキが出る
もっと精細なキー/マウスマクロないかな…
2024/05/31(金) 11:26:47.47ID:+4t5vyZ70
精密な連射が必要なゲーム?
2024/05/31(金) 13:53:05.77ID:zTrv5IQD0
けど
けど
いし
いし
2024/05/31(金) 14:27:36.69ID:EJ+/rc9T0
負荷が高いとOSの都合で、20msの遅延になるみたいなこと書いてあるから
普通の動作なのではないのかと
2024/06/01(土) 11:09:17.86ID:GgBe8hMb0
ahkv2で操作をマクロ保存するみたいなことって出きませんか?
windowspyて位置調べて、キー調べてクリックとかしてたんですが、便利にしたいなと思いまして
2024/06/01(土) 12:30:18.09ID:fn6gb9WN0
理論的にはできると思うけど、すっげー面倒だと思うぞ
なぜなら、マクロが組めるアプリはコマンドにidが割り振ってあって
それをスクリプト経由で呼び出して自動化できるように設計してあるわけだが
そうでないアプリはキー操作と場合によってはマウス操作をエミュレートして
実現する必要があるから、最低でもCUI機能が付いたアプリでないと
少し前に話題になったスリープ問題じゃないけど調整が鬼畜になる
2024/06/01(土) 12:35:20.42ID:kVZkynXb0
標準のspyはウンコだから余分な情報をはぎ取り好きなフォント、フォーマットになるように改造してそっち起動したほうがいいぞ
866863
垢版 |
2024/06/01(土) 12:49:25.47ID:GgBe8hMb0
ありがとうございます。すみません。マクロって言い方が良くなかったです。

どちらかというと、下記のような動作を記録してahkv2のプログラムに落とし込むぐらいでいいんです。
100,100をクリック
100ms sleep
aを入力
100ms をクリック

いままで手打ちで作っていて、簡単にahkプロクラムを作りたいと思いまして。

もしかして標準であったりもしてましたか?
2024/06/01(土) 13:15:07.31ID:fn6gb9WN0
その程度のことなら手打ちの方が全然早いと思うが
2024/06/01(土) 13:25:36.67ID:nbA7vng10
v2だと記録用ソフト一から作ったほうが話早いと思う
v1でそれっぽいのならPulover’s Macro CreatorとAutoScryptoWriterがあるんで、
スクリーン単位のマウス座標でいいならコンバーター併用で何とかなるかもしれない

Pulover’sなら使ったことあるが俺環だとそもそもエディタがまともに動かず消したわ
2024/06/01(土) 13:38:44.95ID:fn6gb9WN0
まあ座標なんかは自動記録があると助かるのはわかる
でも厄介なのは送信時の調整なんだよね
ウェイトをどれだけ入れるとか、eventで送るかinputで送るかみたいなのもあるし
自由度の高さゆえに結局手作業でちまちまいじる必要がある
場合によってはPower Automateみたいなのがニーズを満たす可能性もあるけどね
2024/06/01(土) 13:55:42.93ID:nbA7vng10
マウス座標はspy弄って現在位置クリップボードに保存できるようにしたな
追記数たいしたことないけどそれでも手間はそこそこ減る

座標複数保存して後で纏めて書く場合はtxt出力なりもう一工程いるけど
2024/06/01(土) 14:18:01.56ID:i40wQupA0
使ったことはないですが
Pulover`s Macro Creatorなら公式フォーラムでv2対応のもの公開してる人がいますね
ttps://www.autohotkey.com/boards/viewtopic.php?f=83&t=116603
2024/06/01(土) 15:51:05.21ID:vzzT1EY70
>>870
txt出力する際に100,100をクリックとマクロに整形出力すればいい
2024/06/01(土) 18:04:08.73ID:32L8ms0h0
横からだけどちょっと似た?様な事出来ないかと前から思ってたので
ブラウザー(新規タブ)開いた時に任意の場所をクリックした後マウスカーソルは元の場所に戻る、みたいな事は可能でしょうか?(それかクリックしたのと同じ様にするがマウスカーソルは動かさない、とか)
どうしてかというと、サイトによっては開いた時に検索窓にカーソルが入れられてたりして読んで下に行こうとスペース押したり↓押したりしても動かず、あれっ?て思ったら検索窓の中という事がよくあり、どこかその辺をクリックしてからスペースや↓を押すという手間が発生
そのサイト内で検索はこちらがしたい時にするから毎回最初から検索させようとしないで欲しいのにさせて来る
それを回避するのには、開いた時どこかをクリックした事にすればすぐ読んで行ける様になります
場所によってはリンクをクリックして開いたりするかもなので無難に0,0か
仮にそれが出来るとしてもまだ問題があり、モニターが三枚なのでクリックして戻す場合一枚より困難?
クリックした事にして動かない場合なら関係無さそうですが
こんな事可能でしょうか?
長文失礼しました
Windows11 Pro 23H2
v2
2024/06/01(土) 18:06:51.57ID:32L8ms0h0
あ、すみません
それかサイト開いた時にサイト内にカーソルを置かずに浮かせる?みたいな指示は出来無いでしょうか?
2024/06/02(日) 09:51:16.64ID:AKGUmcfY0
>>873
条件: 新規ページが開かれた時 && ページロード完了時
処理: 現在のフォーカスが入力フォームならフォーカスを移動

後半はよくわかりませんが要約すると上記のようなことだと思います
AHKでやるにはブラウザを常時監視する必要があるため、あまりスマートではなく
その他の判定、処理も含め容易であるとは言えない方法に頼ることになります
python + seleniumなどでもできるとは思いますが導入から実装まで考えるとめんどくさいです

ブラウザ側で完結できるように、Greasemonkey系統のアドオンでJavaScriptでやるのが一番楽だと思います
ページロード時に入力フォームにフォーカスをセットする といった逆のことを行うサンプルはよくあるのでそれらを参考にしてみてください
2024/06/02(日) 11:53:48.90ID:8mnk/haY0
>>875
レスありがとうございます
後半というのはマウスカーソル…辺りですかね
画面のどこかをクリックしたらそこにマウスカーソルも移動しちゃうじゃないですか
動かされたく無いので、動いても戻すか動かさないで済ませるやり方が無いかなと
やっぱりかなり面倒な事ですよね
JavaScriptの方が実現させ易いんですね
それで検索してみます、どうもありがとうございました
2024/06/02(日) 11:53:57.37ID:SIHfqioA0
↑↓にホイールアップ・ダウンを割り当てる
本当に↑↓キー使いたい徳困るけど(´・ω・`)
2024/06/02(日) 12:35:48.54ID:kBPI+TMz0
はじめまして
autohotkeyで複数のデバイスを利用する方法を探していてここに辿り着きました


blenderというモデリングソフトの利用時に、複数の外付けテンキーを並べてショートカット用のデバイスとして使用する方法を探しています
「Multi-Keyboard-For-AutoHotkey」というアドオン?を利用して、Aのテンキーのみにショートカットを割り当てるところまでは辿り着いたのですが、実際にblenderで利用すると割り当てたショートカットの機能と同時に従来のテンキーの機能まで動作してしまいます
(外付けテンキーABにそれぞれ別のショートカット、メインキーボードのテンキーで従来のテンキーの機能という動作を想定しています)


作成したコードは以下のとおりです。


; Keyboard 1 - Numpad1 key
if (KeyboardNumber = 2 and VKeyCode = 0x61 and WasDown)
Send +h


こちら従来のテンキーの機能を無効にして割り当てたショートカットだけが起動するように出来ないでしょうか
ご助言いただけますと幸いです
2024/06/02(日) 13:25:30.19ID:0moOUe0Q0
外付けテンキーをF13とかの何の機能も無いキーには割り当てられないの?
2024/06/02(日) 13:53:21.73ID:OOw5QptO0
ハードウェア側でキーを割り当てられるキーボードを買えばいいんでは
2024/06/02(日) 13:57:13.59ID:0moOUe0Q0
テンキーが2つあること自体は問題になってないんだよね
2024/06/02(日) 14:28:25.66ID:pvacPDLX0
evilC/UCR: Universal Control Remapper [ALPHA]
https://github.com/Snoothy/UCR
883名無しさん@お腹いっぱい。
垢版 |
2024/06/02(日) 14:45:04.66ID:ChhROSKU0
へぇ〜、AutoHotKeyでも複数台の同キーで異なる置換ができるのか
HidKeySequenceみたいにデバイスIDで識別しとるんかな?
2024/06/02(日) 16:34:10.01ID:0moOUe0Q0
キーコードが同じだったらahkではどうしようも無いのでは
より低レベルでキーコードを別にしてもらわんことには
2024/06/02(日) 16:46:30.31ID:bKWw9p4n0
>>878
色々ご事情があるのかもしれないが、blenderなら素直に外付けテンキーを買ったほうが遥かに捗る。
2024/06/02(日) 17:12:35.24ID:xUP64Eup0
>>885
外付けテンキーより、この人に必要なのはいわゆる左手デバイスじゃないの
887873
垢版 |
2024/06/02(日) 17:14:37.74ID:8mnk/haY0
>>877
レスありがとうございます
なるほど…それならどこにカーソルあっても関係無いですね
でも仰ってる様に普通に↑↓使いたい時困る(笑)
修飾キーと組み合わせたら…なんて言ってたらどこかクリックする方が手っ取り早いですしね
でも何かの時に役立つかもしれませんし案ありがとうございました
2024/06/02(日) 18:12:38.93ID:zs2d7BlA0
身もふたもないことを言うと、オーサリングソフトの場合、
普通は実行ファイル名をホットキーの条件にして
無変換キー+例えば下段のキーの一列に対して順にショートカットを
割り振っていくのよ
無変換キーを要求するアプリなんて、まずないからトラブルもなし
他の修飾キーと組み合わせれば簡単に数を増やせるからテンキーなんてなくても余裕よ
2024/06/02(日) 18:45:54.14ID:bKWw9p4n0
>>886
ごめんかんちがいした
2024/06/02(日) 20:16:11.39ID:kBPI+TMz0
878です。返信遅くなってすみません!
たくさんご意見いただきありがとうございます

出来るかも!って思い込んだ時点でちょっとしたカスタム気分で浮かれてたので、このためにテンキー二個買ってしまい……もう買っちゃったしどうにか出来ないかと奮闘してた次第です
Blenderの膨大なショートカット地獄と奮闘するのに疲れたのと、このために休み丸二日潰してしまったので、大人しく左手デバイスなりプログラマブルキーボードなり買うことにします


Universal Control Remapper
>教えていただいて試してみたんですが、どうしてもデバイスを認識してくれなくて実行までいけませんでした
すみません
2024/06/02(日) 20:28:21.95ID:0moOUe0Q0
テンキーも内部で独自の入力をキーコードに変換してる訳だから、
そこのテーブルさえ変更できればプログラマブルになるんだけどな
2024/06/02(日) 20:31:47.94ID:kBPI+TMz0
>>883
Multi-Keyboard-For-AutoHotkey.exeでデバイスIDをナンバリングしておいて、
ahk実行時には登録した数字を使って呼び出す形になってました
893名無しさん@お腹いっぱい。
垢版 |
2024/06/02(日) 20:47:37.09ID:ChhROSKU0
>>890
安く済ますなら
テンキーパッドの一方→HID RemapperでF13〜F24等に変換し出力→AutoHotKey
github.com/jfedor2/hid-remapper
2024/06/02(日) 20:54:12.57ID:0moOUe0Q0
ハード的解決、、、

デバイスドライバさえ自由ならなあ
2024/06/02(日) 21:16:33.54ID:1lh1N/co0
if (KeyboardNumber = 2 and VKeyCode = 0x61 and WasDown)
Send +h

これだと置換じゃなくて、パススルー&shift+hの送信でしょ?

>>こちら従来のテンキーの機能を無効にして割り当てたショートカットだけが起動するように出来ないでしょうか

if (KeyboardNumber = 2 and VKeyCode = 0x61 and WasDown)
置換するキー:: Send "{+h}"

じゃないの?
2024/06/03(月) 03:03:39.64ID:/hFHYRc60
すみません、ほとんど見様見真似のコピペなのであまりコードの違いを理解しておらず……
ただ、Multi-Keyboard-For-AutoHotkeyでこの形式で入力するとエラーが出てしまうようでした

メモ帳でSend +hを試してみると1が入力されずに大文字のHが入力されるので、ソフトとの相性が大きそうです


皆様色々情報ありがとうございました
自分ではコードの判別さえままならなかったので、色々ご意見いただけて大変助かりました

本件ですが、せっかく購入したテンキーを一切使わないままというのももったいないので、
blenderで本来テンキーに割り振られているショートカットを「テンキー→alt+テンキー」にすることで一旦様子を見てみることにしました。
今後問題が出てくる可能性は大いにあるのですが、まあそのときはそのときかなと……
897837
垢版 |
2024/06/05(水) 15:53:16.21ID:FQteG7De0
SendMode("InputThenPlay")
#HotIf WinActive("ahk_exe Urbek.exe")
Up::w
Left::a
Right::d
Down::s
#HotIf

でも押しっぱなしが発生したので
SendMode("Event")に変えてみたらうまくいくようだった

こんな単純なスクリプトで問題が発生するなんてAutoHotKeyはなんて糞なのかと思う
2024/06/05(水) 16:04:57.67ID:RRVUv//50
Urbek.exeでもキーを取得してるからな

Urbek.exeの起動後にahkをreloadするとうまくいくかも
2024/06/05(水) 17:01:27.88ID:uo9RchDY0
https://i.imgur.com/VxkIrTu.jpeg
2024/06/05(水) 17:11:01.90ID:RRVUv//50
ゲームだからタイミングをシビアにしようと、低レベルで取得してるんだろうな
多少遅れても構わないと標準のAPIだけ使ってる同士なら何も起こらない

ゲームじゃないけど、リモートワーク用のクライアントが独自にキーを取得してて、
ahkとものすごい干渉する
reloadで治る
ahkの前はyamyを使っていて、これも現象は似たようなもんで、
yamyは一旦終了して再度起動する必要があったので、自力でreloadできるahkに乗り換えた
2024/06/05(水) 17:14:41.26ID:3gTTwl0e0
なるほど そういうこともあるのか
2024/06/05(水) 17:22:59.12ID:j9KOoDoC0
アプリの方に問題があるというか、一般にゲームのホットキー生成はセンシティブ
なのにAHKが悪いかのような発言はおかしいと思うわ
むしろ、入力メソッドに様々なタイプが用意されているAHKを誉めるべき
2024/06/05(水) 17:29:44.75ID:f31yw+3m0
AHKでマウスの右ボタンを扱うと、そのアプリのマウスジェスチャーが使えなくなるんですが何か対策はありませんか?
2024/06/05(水) 17:36:05.05ID:uo9RchDY0
わかった
AHKの期待値が高すぎるんだよ
期待値を調整すべき
2024/06/05(水) 17:43:37.66ID:RRVUv//50
WH_KEYBOARD_LL を一人だけ使って、他の人はWH_KEYBOARD という状況でしか動かない
WH_KEYBOARD_LL を奪い合うと不具合が避けられない
2024/06/05(水) 20:33:17.10ID:caKpoI2e0
Release v2.0.17 · AutoHotkey/AutoHotkey · GitHub
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.17
907あぼーん
垢版 |
NGNG
あぼーん
2024/06/11(火) 17:55:07.92ID:gLozMeeS0
>>907
もう6日目だよ
2024/06/12(水) 13:36:38.31ID:Zw8/mwSx0
DevToysが2になってコマンドラインも増えて便利そう
2024/06/12(水) 14:14:31.53ID:bg1j8AfL0
>>909
ふむ

Visual Studioの開発者か…
911名無しさん@お腹いっぱい。
垢版 |
2024/06/15(土) 10:21:09.75ID:aO2udRvL0
chrome.ahk なんですが
MsgBox, wait get の後でエラーがでて終了してしまう
なんでですか?

#Include Chrome.ahk

F9::
#NoEnv
SetBatchLines, -1

;/*
FileCreateDir, profile
chromeInst := new chrome("profile", "https://www.google.com/";)
MsgBox, wait get
pg := chromeInst.GetPage()
MsgBox, wait load
pg.WaitForLoad("complete")
sleep, 4000
MsgBox, wait alert
pg.Evaluate("alert(11)")
MsgBox, wait
pg.Evaluate("var title = window.document.title")
pg.Evaluate("alert(11)")
title := pg.Evaluate("window.document.title")
sleep, 4000
pg.Evaluate("window.document.title = 'aa'")
MsgBox, %title%

return
912名無しさん@お腹いっぱい。
垢版 |
2024/06/15(土) 10:26:03.13ID:aO2udRvL0
グーグルのページ自体は表示されるけど
↓のエラーがでる

Error in #include file
"C:\Users\User\Documents\AutoHotkey\Lib\Chrome.ahk-master\Chrome.ahk":
0x80072EFD -
Source:WinHttp.WinHttpRequest
Description:
サーバーに接続できませんでした
HelpFile:
HelpContext:
(null)
0
Specifically: send
Line#
108:}
114:{
115: Process,Close,this.PID
116:}
124:{
125: http := ComObjCreate("WinHttp.WinHttpRequest.5.1")
126: http.open("GET", "http://127.0.0.1:"; this.DebugPort "/json")
127: http.send()
128: Return,thisJSON.Load(http.responseText)
129:}
143:{
144: Count := 0
145: For n,PageData in this.GetPageList()
146:{
147: if (((MatchMode = "exact" & & PageData[Key] = Value) ||(MatchMode = "contains" & InStr(PageData[Key], Value)) | (MatchMode= "startswith" && InStr(PageData[Key], Value) == 1) || (MatchMode ="regex" && PageData[Key] ~ = Value)) && ++Count == Index)
Continue running the script?
913名無しさん@お腹いっぱい。
垢版 |
2024/06/15(土) 10:37:39.11ID:aO2udRvL0
何かよくわからんけど大文字にしたら?できたので質問キャンセルします
914名無しさん@お腹いっぱい。
垢版 |
2024/06/15(土) 10:48:12.76ID:aO2udRvL0
ページのタイトル取得してAHK側で使いたいのだが方法がわかりません。
ブラウザ内では使えるようなのですが
AHK側にページ内のデータを渡すことはできないんですか?
@はできるけどAができない

#Include Chrome.ahk

F9::
#NoEnv
SetBatchLines, -1

;/*
FileCreateDir, profile
ChromeInst := new Chrome("ChromeProfile", "https://www.google.com/";)
PageInst := ChromeInst.GetPage()
PageInst.WaitForLoad("complete")
sleep, 2000

MsgBox, wait alert title
PageInst.Evaluate("var title = window.document.title")
PageInst.Evaluate("alert(title)") ; ; <---------------@

title := PageInst.Evaluate("window.document.title") ; <---------------A
sleep, 4000
MsgBox, %title%
return
915名無しさん@お腹いっぱい。
垢版 |
2024/06/15(土) 10:52:44.60ID:aO2udRvL0
Chrome.ahk は ↓です
https://github.com/G33kDude/Chrome.ahk/blob/master/Chrome.ahk
916名無しさん@お腹いっぱい。
垢版 |
2024/06/15(土) 11:19:31.01ID:aO2udRvL0
あ、一応言っておくとタイトルを取得したいわけではなくてwebページ内のデータを取得したいです。
タイトル取得はあくまでテスト用です
2024/06/15(土) 11:59:55.05ID:K9sjyZn70
以下のようにプロパティ名valueを参照してみてください
title := PageInst.Evaluate("window.document.title").value
2024/06/15(土) 12:59:27.07ID:vwlPEFpj0
https://github.com/search?q=autohotkey&type=repositories
この検索で役に立つautohotkeyリポジトリへのリンク集を見つけられる
それで見つけてた・・・という強がり
2024/06/15(土) 13:58:29.42ID:wGUGTXIZ0
左手デバイスとしてタッチデバイスでジェスチャー操作導入したらかなりいい感じ
ControlFocusして設定しておいたジェスチャーでアプリのパラメーターを指2本でスライダー出来たときはなんか汁が出た
https://i.imgur.com/qNj8dC6.jpeg
2024/06/15(土) 22:36:56.76ID:YV7aVfbR0
919は書くとこ間違えているのだろうか
2024/06/15(土) 23:00:02.11ID:63HlmWFw0
>>878-
あたりの話つながりなんだろうけど、だいぶスレ違いだな
2024/06/16(日) 00:48:50.38ID:kYfhJgQY0
公式arm版出ないものかなぁ
2024/06/16(日) 08:43:11.87ID:4YkrJ3vS0
ホットキーで「[shift]+[:]で入力する[*]」を["]に,
「[shift]+[2]で入力する["]」を[@]に置き換えたくて
*::
Send, "
Return

"::
Send, @
Return

というスクリプトを書いてみたのですが[shift]+[:]も[shift]+[2]も@の入力
になってしまいます.
sendで生成した入力を無視させる方法とかありますか?
2024/06/16(日) 09:07:55.89ID:vKPzlDS70
それぞれのホットキーの先頭に$を入れるか
ホットキー項目より前で#UseHook宣言をする
2024/06/16(日) 10:51:04.05ID:x/P4HCAb0
なんで+:で書かないの
926名無しさん@お腹いっぱい。
垢版 |
2024/06/16(日) 11:28:14.89ID:nd5nSGnS0
>>917
でけた!さんくす!!
2024/06/16(日) 15:56:27.30ID:pluHnmOg0
ホイールスクロールを左右キー(←→)に割り当てているのですが、元々のスクロールも残っているようで、左右キーと同時にスクロールもしてしまいます。
1秒間に何十回も行う動作なのでこういった挙動になってしまうのでしょうか?なんとか割り当てた左右キーを動作させている時は元々のスクロールは動かないように出来ないでしょうか?
宜しくお願い致します。
2024/06/16(日) 16:02:09.29ID:7XSFys8+0
それってレスのあった$や#UseHookじゃないの?
2024/06/17(月) 01:44:06.10ID:c669ioN+0
自宅PCでChangeKeyでCapsLockとカタカナ/ひらがなキーをF13・F14にして、AutoHotkeyで機能を割り当てしてて
会社PCでも同様のキー配列にしたいけど、ChangeKeyは管理者権限が必要で会社PCでは導入できないんだよね

管理者権限なしでキー配列を変更するソフトかAutohotkeyのみでCapsLock類を変更する方法ってないかな?

ちなみに以下を試してみた、らCapsLockキーが押しっぱなしな判定をされて上手く機能しなかった

;CapsLockキーにCtrlキーの仕事をさせる
Capslock::Ctrl
sc03a::Ctrl
2024/06/17(月) 02:02:41.20ID:Z/xMHBV+0
会社のルールを変えるか転職
2024/06/17(月) 02:30:08.96ID:gP7LQ52R0
日本語キーボードじゃCapsじゃなくて英数だからダメ
この2つは同じじゃなくて英数には離すという操作が無いので押しっぱなしになる
日本語以外のキーボードにして全キーをAHKで日本語配列にリマップすればいい
2024/06/17(月) 07:41:37.83ID:PNyQMi4n0
検索ソフトのeverythingを使っていますが”クリップボードの監視機能”
がないので下記を作りました。

#Persistent
OnClipboardChange:
Run,C:\Program Files\Everything\Everything.exe -s "%Clipboard% "
Return

firefoxで試しましたが、検索文字をコピーすると、firefoxの画面の上に、
everythingの検索結果の画面が毎回出てきます(ちょっとうざい)。
下記改善をしたいので知恵をお貸しください。

改善したいこと:コピーは、検索のためだけじゃないので、いつもはeverythingをfirefoxの
画面の下で動かして置き、検索結果を見たい時だけ、everythingの画面をクリックして、
上に持ってきたい。見た後は、FIREFOXの画面をクリックしてeverythingの画面を下にしたい。

表示優先度を最優先にできるソフトを使ってみたが、FIREFOXの画面が常時上になり、
everythingの画面は、隠れたままになりだめでした。

AHKですがキーボード操作は使いたくなく、クリック動作だけで行う方法を教えてください。

文章力がないので、うまく伝わるといいのですが。
2024/06/17(月) 08:32:09.09ID:DiXfWeoB0
>>932
Run,C:\Program Files\Everything\Everything.exe -minimized -s "%Clipboard% "
で希望の動作通りではないけど、言わんとする煩わしさは解消するのでは?
Everything1.5ならあれこれ考えなくても、clipboard: で監視できるけどね
2024/06/17(月) 09:26:51.61ID:qcLEboXp0
会社のPCのキーボードにコンテキストキーが無いので、
printscreenを変更してる
レジストリだけでそのくらいのことはできる
2024/06/17(月) 10:32:18.08ID:kdxAnayQ0
私は[英数]をランチャーに使っている
[英数]は制御しにくいので、レジストリで[F10]と入れ替えておく
[CapsLock]を使いたい場合は[Shift]+[F10]
管理者権限については知らない
2024/06/17(月) 10:36:25.09ID:toFr5eC60
管理者として実行することを制限されているPCにそもそもAutoHotKeyのような
ツールを勝手に入れて大丈夫なのか?

そういった制限の厳しい職場ではレジストリすら変更禁止な気がするが
937名無しさん@お腹いっぱい。
垢版 |
2024/06/17(月) 11:31:35.39ID:6QnXphjI0
JS = "window.querySelectorAll('window.document.querySelectorAll("div")')"
PageInst.Evaluate(JS)

chrome.ahkで使いたいコードなんですが上のように引用符が三つ重なるときはどうするんですか?
https://github.com/G33kDude/Chrome.ahk/tree/master
938名無しさん@お腹いっぱい。
垢版 |
2024/06/17(月) 11:37:22.57ID:6QnXphjI0
937はquerySelectorAll が二重になってて文法が変ですが、それは無視して引用符が三重になってるときはどうすればいいでしょうか?
レス数が900を超えています。1000を超えると表示できなくなるよ。
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

ニューススポーツなんでも実況