!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
■配布元
http://ahkscript.org/download/
■前スレ
AutoHotkey スレッド part26
https://egg.5ch.net/test/read.cgi/software/1524647289/
■日本語解説等
AutoHotkey Wik
http://ahkwiki.net
AutoHotkeyを流行らせるページ(ミラー)
http://ahk.xrea.jp/ (不調時は http://hdd.s300.xrea.com/ahk/ )
AutoHotkeyJp(過去ログdatあり)
http://sites.google.com/site/autohotkeyjp/
Autohotkey日本語ヘルプ(chmファイル)
http://www6.atwiki.jp/eamat/
Autohotkey専用うpろだ
http://ux.getuploader.com/autohotkeyl/
簡易スクリプト掲示板
http://pastebin.com/
■派生版
IronAhk (.NET製、クロスプラットフォーム)
https://github.com/polyethene/IronAHK
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
http://www.autohotkey.com/board/topic/39588-autohotkeydll/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
探検
AutoHotkey スレッド part27
■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。 (ワッチョイ 3b70-YIQo)
2019/04/20(土) 23:32:53.28ID:cTmLtZyf02名無しさん@お腹いっぱい。 (ワッチョイ b670-YIQo)
2019/04/20(土) 23:33:51.96ID:cTmLtZyf0 ■重要事項
オリジナルである、旧 "AutoHotKey" の開発は2009年9月で終了している。
現在は、そこからフォークした "AutoHotkey_L" が主流となり、2014年1月からは後のLが取れ
正式にAutohotkeyとして扱われるようになりました。
よって古いスクリプト(主にDllCall()を利用しているスクリプト)は最新Verで動作しないものがあり、
その場合はスクリプトの修正が必用です。
旧版のAHKとの変更点多数。新しい仕様や互換性についてはドキュメントを良く読むこと。
→http://ahkscript.org/docs/AHKL_Features.htm
→http://ahkwiki.net/Addition_L
※新規利用者には最新版を推奨しますが、旧AHK(2009年9月までのVer)の利用者は新AHKへの移行に際して
少なからず改修が必要となります。特に、旧流行らせるページの配布物(MouseGesture等)の多くは
そのままでは動作しません。安定利用できている環境を崩して移行するかどうかは各人の判断による。
MouseGestureについては有志の方が最新AHK対応版(MouseGestureL.ahk)を配布しているのでそれを
利用するのもありです。
http://hp.vector.co.jp/authors/VA018351/mglahk.html
http://code.google.com/p/mousegesturel/
※ACC.ahk(旧版用)とCOM.ahkはフォーラムのリンク先にファイルが存在しませんので下記から入手してください。
http://ux.getuploader.com/autohotkeyl/download/24/ACC%2BCOM.zip
※Unicode版のACC.ahkは下記(AccInfoViewer.ahk付き)またはフォーラムから入手してください。
http://ux.getuploader.com/autohotkeyl/download/76/ACC_Unicode_and_AccInfoViewer_kai.zip
■質問に際して
OSの種類(XP/Vista/7)や32/64ビット版の違い、利用するAutoHotkeyのバージョンを明記すること。
また、操作したいソフト・やりたい処理などは具体的に書いた方がレスが付きやすい傾向にある。
2chの仕様の関係で、このスレではインデントに全角スペースを使ってコードを貼り付ける事があるので、
レスをコピペして利用する場合は行頭の全角スペースをタブ等に置換してから利用すること。 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
オリジナルである、旧 "AutoHotKey" の開発は2009年9月で終了している。
現在は、そこからフォークした "AutoHotkey_L" が主流となり、2014年1月からは後のLが取れ
正式にAutohotkeyとして扱われるようになりました。
よって古いスクリプト(主にDllCall()を利用しているスクリプト)は最新Verで動作しないものがあり、
その場合はスクリプトの修正が必用です。
旧版のAHKとの変更点多数。新しい仕様や互換性についてはドキュメントを良く読むこと。
→http://ahkscript.org/docs/AHKL_Features.htm
→http://ahkwiki.net/Addition_L
※新規利用者には最新版を推奨しますが、旧AHK(2009年9月までのVer)の利用者は新AHKへの移行に際して
少なからず改修が必要となります。特に、旧流行らせるページの配布物(MouseGesture等)の多くは
そのままでは動作しません。安定利用できている環境を崩して移行するかどうかは各人の判断による。
MouseGestureについては有志の方が最新AHK対応版(MouseGestureL.ahk)を配布しているのでそれを
利用するのもありです。
http://hp.vector.co.jp/authors/VA018351/mglahk.html
http://code.google.com/p/mousegesturel/
※ACC.ahk(旧版用)とCOM.ahkはフォーラムのリンク先にファイルが存在しませんので下記から入手してください。
http://ux.getuploader.com/autohotkeyl/download/24/ACC%2BCOM.zip
※Unicode版のACC.ahkは下記(AccInfoViewer.ahk付き)またはフォーラムから入手してください。
http://ux.getuploader.com/autohotkeyl/download/76/ACC_Unicode_and_AccInfoViewer_kai.zip
■質問に際して
OSの種類(XP/Vista/7)や32/64ビット版の違い、利用するAutoHotkeyのバージョンを明記すること。
また、操作したいソフト・やりたい処理などは具体的に書いた方がレスが付きやすい傾向にある。
2chの仕様の関係で、このスレではインデントに全角スペースを使ってコードを貼り付ける事があるので、
レスをコピペして利用する場合は行頭の全角スペースをタブ等に置換してから利用すること。 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
3名無しさん@お腹いっぱい。 (ワッチョイWW d9f1-j2m6)
2019/04/21(日) 00:01:56.16ID:jvh47c/h0 ■過去スレ
Part1 http://pc7.2ch.net/test/read.cgi/software/1098531338/
Part2 http://pc7.2ch.net/test/read.cgi/software/1129836713/
Part3 http://pc11.2ch.net/test/read.cgi/software/1157043396/
Part4 http://pc11.2ch.net/test/read.cgi/software/1184556627/
Part5 http://pc11.2ch.net/test/read.cgi/software/1201502896/
Part6 http://pc11.2ch.net/test/read.cgi/software/1219130051/
Part7 http://pc12.2ch.net/test/read.cgi/software/1230694774/
Part8 http://pc12.2ch.net/test/read.cgi/software/1243005818/
Part9 http://pc12.2ch.net/test/read.cgi/software/1253888736/
Part10 http://pc12.2ch.net/test/read.cgi/software/1265518996/
Part11 http://hibari.2ch.net/test/read.cgi/software/1280482227/
Part12 http://hibari.2ch.net/test/read.cgi/software/1296446228/
Part13 http://anago.2ch.net/test/read.cgi/software/1317156599/
Part14 http://anago.2ch.net/test/read.cgi/software/1333372506/
Part15 http://anago.2ch.net/test/read.cgi/software/1349735581/
Part16 http://anago.2ch.net/test/read.cgi/software/1367725658/
Part17 http://anago.2ch.net/test/read.cgi/software/1383384464/
Part18 http://anago.2ch.net/test/read.cgi/software/1398655195/
Part19 http://anago.2ch.net/test/read.cgi/software/1411360229/
Part20 http://anago.2ch.net/test/read.cgi/software/1422427426/
Part21 http://anago.2ch.net/test/read.cgi/software/1437910497/
Part22 http://potato.2ch.net/test/read.cgi/software/1452881399/
Part23 http://potato.2ch.net/test/read.cgi/software/1470936221/
Part24 http://egg.2ch.net/test/read.cgi/software/1487149472/
Part25 https://egg.5ch.net/test/read.cgi/software/1505357560/
Part1 http://pc7.2ch.net/test/read.cgi/software/1098531338/
Part2 http://pc7.2ch.net/test/read.cgi/software/1129836713/
Part3 http://pc11.2ch.net/test/read.cgi/software/1157043396/
Part4 http://pc11.2ch.net/test/read.cgi/software/1184556627/
Part5 http://pc11.2ch.net/test/read.cgi/software/1201502896/
Part6 http://pc11.2ch.net/test/read.cgi/software/1219130051/
Part7 http://pc12.2ch.net/test/read.cgi/software/1230694774/
Part8 http://pc12.2ch.net/test/read.cgi/software/1243005818/
Part9 http://pc12.2ch.net/test/read.cgi/software/1253888736/
Part10 http://pc12.2ch.net/test/read.cgi/software/1265518996/
Part11 http://hibari.2ch.net/test/read.cgi/software/1280482227/
Part12 http://hibari.2ch.net/test/read.cgi/software/1296446228/
Part13 http://anago.2ch.net/test/read.cgi/software/1317156599/
Part14 http://anago.2ch.net/test/read.cgi/software/1333372506/
Part15 http://anago.2ch.net/test/read.cgi/software/1349735581/
Part16 http://anago.2ch.net/test/read.cgi/software/1367725658/
Part17 http://anago.2ch.net/test/read.cgi/software/1383384464/
Part18 http://anago.2ch.net/test/read.cgi/software/1398655195/
Part19 http://anago.2ch.net/test/read.cgi/software/1411360229/
Part20 http://anago.2ch.net/test/read.cgi/software/1422427426/
Part21 http://anago.2ch.net/test/read.cgi/software/1437910497/
Part22 http://potato.2ch.net/test/read.cgi/software/1452881399/
Part23 http://potato.2ch.net/test/read.cgi/software/1470936221/
Part24 http://egg.2ch.net/test/read.cgi/software/1487149472/
Part25 https://egg.5ch.net/test/read.cgi/software/1505357560/
4名無しさん@お腹いっぱい。 (ワッチョイWW d9f1-j2m6)
2019/04/21(日) 00:02:41.14ID:jvh47c/h0 以下FAQ等
■実行環境
Q1:スクリプトに書いた日本語が文字化けしちゃうんだけど...
A1:スクリプトファイルを「UTF-8」の「BOM」付きで保存する。(AHK1.1の場合)
Q2:初めて使うけどどれを使えばいいの?
A2:AHK1.1のユニコード版を推奨。
旧流行らせるページの配布物をそのまま使う場合は本家をそのまま利用する事。
64ビットOSでAHK1.1 32ビット版の使用は制約が多いので、64ビット版を強く推奨。
■ リマップ・ホットキー割り当て
Q1:[CapsLock(英数)][ひらがな][全角/半角]キーの割り当てがうまくいかないよ
A1:OSのローカライズ段階で発生してる問題なので日本語環境だとLock系キーの動作は不定。
OS側がキーUp/Down情報を正しく返してこないのでAHKのみで対処は無理です。
レジストリ変更等で別キーへ再配置を行い、AHKで割り当てを行うという二段構えが必要。
例) ChangeKeyを使って[ひらがな]を[F13]にする
AutoHotkeyで任意のキーをF13にリマップする(例えばF12をF13にリマップし、スクリプトを実行)。
F12::F13
Changekeyを起動する。( http://www.forest.impress.co.jp/library/software/changekey/ )
「調査」→「どのキーなのか?またはスキャンコードでキーを変更します」を選択。
F12を押すとスキャンコード(0x0064はF13)が表示されるので覚えておき「終了」をクリック。
「ひらがな」キーをクリックすると「【ひらがな】キーをどのキーに変更しますか?」という
ウィンドウが表示されるので右上の「Scan code」をクリック。
覚えておいたスキャンコード(0064)を入力し、「OK」ボタンをクリック。
「登録」をクリックし、Windowsを再起動する。
■実行環境
Q1:スクリプトに書いた日本語が文字化けしちゃうんだけど...
A1:スクリプトファイルを「UTF-8」の「BOM」付きで保存する。(AHK1.1の場合)
Q2:初めて使うけどどれを使えばいいの?
A2:AHK1.1のユニコード版を推奨。
旧流行らせるページの配布物をそのまま使う場合は本家をそのまま利用する事。
64ビットOSでAHK1.1 32ビット版の使用は制約が多いので、64ビット版を強く推奨。
■ リマップ・ホットキー割り当て
Q1:[CapsLock(英数)][ひらがな][全角/半角]キーの割り当てがうまくいかないよ
A1:OSのローカライズ段階で発生してる問題なので日本語環境だとLock系キーの動作は不定。
OS側がキーUp/Down情報を正しく返してこないのでAHKのみで対処は無理です。
レジストリ変更等で別キーへ再配置を行い、AHKで割り当てを行うという二段構えが必要。
例) ChangeKeyを使って[ひらがな]を[F13]にする
AutoHotkeyで任意のキーをF13にリマップする(例えばF12をF13にリマップし、スクリプトを実行)。
F12::F13
Changekeyを起動する。( http://www.forest.impress.co.jp/library/software/changekey/ )
「調査」→「どのキーなのか?またはスキャンコードでキーを変更します」を選択。
F12を押すとスキャンコード(0x0064はF13)が表示されるので覚えておき「終了」をクリック。
「ひらがな」キーをクリックすると「【ひらがな】キーをどのキーに変更しますか?」という
ウィンドウが表示されるので右上の「Scan code」をクリック。
覚えておいたスキャンコード(0064)を入力し、「OK」ボタンをクリック。
「登録」をクリックし、Windowsを再起動する。
5名無しさん@お腹いっぱい。 (ワッチョイWW d9f1-j2m6)
2019/04/21(日) 00:03:14.16ID:jvh47c/h0 Q2:「^1::Esc」とリマップ定義したけど [Ctrl]+[1] を押したらスタートメニューが出ちゃうけどどうすればいいの?
A2:リマップは修飾キー(Ctrl,Shift,Alt,Win)の押下状態を引き継いでキー発行するので、[Ctrl]+[Esc] がキー送信されるため。
これを避けるには、「Send」コマンドを利用して明示的に修飾キーなしのキーを発行をすればよい。
^1::Send, {Esc}
Q3:[Shift], [Ctrl], [Alt], [Win]以外を修飾キーとしてキー割り当てしたいよ
A3:コンビネーションキーの機能で実現ができる。
例) 無変換 + IKJLキーをそれぞれ「↑↓←→」に割り当てたい場合は以下のように記述する。
sc07B & I::Send, {Blind}{Up}
sc07B & K::Send, {Blind}{Down}
sc07B & J::Send, {Blind}{Left}
sc07B & L::Send, {Blind}{Right}
Q4:「XX hotkeys have been received in the last XXXXms.」って怒られるんだけど、、、(XXは環境による)
A4:多分自分自身のキーを送って無限ループになっている。 例) 「a::Send, a 」
先頭に $ を付ければ回避できる(NT系のみ)。 例) 「$a::Send, a」
#UseHookで全部にキーボードフックを適応する方法でも可。
Q5:キーリマップを使うとキー押下中に連打するけど、マウスボタンの場合は連打しない…
A5:マウスはキーリピートしないので、Loopなどを使って自前でリピートさせてください。
Q6:ジョイスティックのリマップがうまくいきません!!助けて
A6:ジョイスティックではリマップできない。「Send」コマンドでキー発行する必要がある。
× Joy1::Esc
○ Joy1::Send, {Esc}
Q7:ジョイスティックの上下左右に割り当てたいけど、JoyLeft,JoyUpってホットキーは無いの?
A7:無い。AHKのジョイスティックサポートはかなり貧弱なのでプログラマブルにやる必要がある。
A2:リマップは修飾キー(Ctrl,Shift,Alt,Win)の押下状態を引き継いでキー発行するので、[Ctrl]+[Esc] がキー送信されるため。
これを避けるには、「Send」コマンドを利用して明示的に修飾キーなしのキーを発行をすればよい。
^1::Send, {Esc}
Q3:[Shift], [Ctrl], [Alt], [Win]以外を修飾キーとしてキー割り当てしたいよ
A3:コンビネーションキーの機能で実現ができる。
例) 無変換 + IKJLキーをそれぞれ「↑↓←→」に割り当てたい場合は以下のように記述する。
sc07B & I::Send, {Blind}{Up}
sc07B & K::Send, {Blind}{Down}
sc07B & J::Send, {Blind}{Left}
sc07B & L::Send, {Blind}{Right}
Q4:「XX hotkeys have been received in the last XXXXms.」って怒られるんだけど、、、(XXは環境による)
A4:多分自分自身のキーを送って無限ループになっている。 例) 「a::Send, a 」
先頭に $ を付ければ回避できる(NT系のみ)。 例) 「$a::Send, a」
#UseHookで全部にキーボードフックを適応する方法でも可。
Q5:キーリマップを使うとキー押下中に連打するけど、マウスボタンの場合は連打しない…
A5:マウスはキーリピートしないので、Loopなどを使って自前でリピートさせてください。
Q6:ジョイスティックのリマップがうまくいきません!!助けて
A6:ジョイスティックではリマップできない。「Send」コマンドでキー発行する必要がある。
× Joy1::Esc
○ Joy1::Send, {Esc}
Q7:ジョイスティックの上下左右に割り当てたいけど、JoyLeft,JoyUpってホットキーは無いの?
A7:無い。AHKのジョイスティックサポートはかなり貧弱なのでプログラマブルにやる必要がある。
6名無しさん@お腹いっぱい。 (ワッチョイWW d9f1-j2m6)
2019/04/21(日) 00:03:53.53ID:jvh47c/h0 Q8:ジョイスティックのボタン1とボタン2の入れ替えなどはどうやってやるの?
A8:AutoHotkeyではできない。
Q9:[Ctrl][Shift][Alt]が押されっぱなしになる時がある。これってAHKのせい?
A9:AHKが原因の場合とそうでないときがある
○AHKが原因の場合
AHKには、以下のような修飾キー付きのホットキーで修飾キー無しでキーを発効する場合、
一時的に修飾キー押下を解除して、発効後に押下状態を再度設定する機構がある。
しかしこのように発効するキーストロークが多い場合は、Sendコマンドが完了する前に
物理キーが押下解除されてしまっている場合がある。この齟齬が押しっぱなしの原因となる。
例) ^W::Send, {w 30}
これを回避するためには、以下の方法をとればよい:
・キー押下状態を常に監視するキーボードフックを導入する(#InstallKeybdHook)
・キー発効のコマンドを SendInput, SendPlay にする(SendModeで一括指定でもよい)
・上記二つが出来ない場合は、SetKeyDelay, 0 等としてキー発効をなるべく早く行うか、
#HotkeyModifierTimeout で修飾キー押下のタイムアウト値を長めに設定をする。
なお、他のキー発効を行うツール(クリップボードユーティリティやマウスジェスチャツールなど)が、
発効する修飾キーが原因となる場合もあるが、フックの導入でほぼ解決出来ると思われる。
○AHK以外が原因の場合:
環境により異なるので何とも言えないが、以下のような環境の場合発生する事が報告されている。
・ Logicool(Logitec)のマウスユーティリティSetPoint(verによっては問題ない事もあるとか)など他多数
・VirtualPC, WMWare, 窓使いの憂鬱 等のキーボードフィルタドライバを用いるアプリケーションを使っている
A8:AutoHotkeyではできない。
Q9:[Ctrl][Shift][Alt]が押されっぱなしになる時がある。これってAHKのせい?
A9:AHKが原因の場合とそうでないときがある
○AHKが原因の場合
AHKには、以下のような修飾キー付きのホットキーで修飾キー無しでキーを発効する場合、
一時的に修飾キー押下を解除して、発効後に押下状態を再度設定する機構がある。
しかしこのように発効するキーストロークが多い場合は、Sendコマンドが完了する前に
物理キーが押下解除されてしまっている場合がある。この齟齬が押しっぱなしの原因となる。
例) ^W::Send, {w 30}
これを回避するためには、以下の方法をとればよい:
・キー押下状態を常に監視するキーボードフックを導入する(#InstallKeybdHook)
・キー発効のコマンドを SendInput, SendPlay にする(SendModeで一括指定でもよい)
・上記二つが出来ない場合は、SetKeyDelay, 0 等としてキー発効をなるべく早く行うか、
#HotkeyModifierTimeout で修飾キー押下のタイムアウト値を長めに設定をする。
なお、他のキー発効を行うツール(クリップボードユーティリティやマウスジェスチャツールなど)が、
発効する修飾キーが原因となる場合もあるが、フックの導入でほぼ解決出来ると思われる。
○AHK以外が原因の場合:
環境により異なるので何とも言えないが、以下のような環境の場合発生する事が報告されている。
・ Logicool(Logitec)のマウスユーティリティSetPoint(verによっては問題ない事もあるとか)など他多数
・VirtualPC, WMWare, 窓使いの憂鬱 等のキーボードフィルタドライバを用いるアプリケーションを使っている
7名無しさん@お腹いっぱい。 (ワッチョイWW d9f1-j2m6)
2019/04/21(日) 00:04:25.65ID:jvh47c/h0 ■ IME関連
Q1:IMEのOn/Offの切り替えや、状態を得るにはどうすればいいの?
A1:http://www6.atwiki.jp/eamat/pages/17.html の「IME.ahk」を使いましょう。
Q2:IMEが現在文字を入力している、または変換中であるかどうかを得ることはできる?
A2:↑のIME.ahkで一部可能(IEやFirefox,MS-Wordのようにインライン化しているアプリでは無理)
■ その他
Q1:「a=abc」と「a:="abc"」って違いがある? / 「If a=1」と「If (a=1)」って違いがある?
A1:意味としては違いは無い。単体では、コマンド形式(共に前者)の方が「式」形式(同後者)より*少し*速い。
複数条件の場合、IfのネストよりはAND(&&)条件で「式」を並べた方が速い。
が、バッチでかなりの回数(数万↑〜)回したりする場合以外は、体感出来るほどの差はない。
Q2:テキストエディタでキーワードの色づけなどをしたいんだけど。
A2:wikiに各種エディタの定義ファイル及びキーワード一覧あり。( http://ahkwiki.net/Tools )
Q3:GUI作るのめんどくせ〜〜
A3:海外の有志が作ったツールを使うと楽。
SmartGUI Creator ( http://www.autohotkey.com/board/topic/738-smartgui-creator/ )
GUI Creator ( http://ahkscript.org/boards/viewtopic.php?f=6&t=303 )
Q4:AHKってマルチスレッドじゃないの?
タイマーやMsgBox, WinWait, KeyWaitを使ってるけど思った通りに動かない。
A4:「擬似マルチスレッド」です。最後に割り込んだスレッドが終わるまで元スレッドは動きません。
MsgBox、WinWait、KeyWait、Process,WaitClose などをタイマーで複数動かす時は注意。
> 要は処理系統が複数同時に走らないってこと。図にするとこんな感じ。
> → 実行中、 …:割り込み終了待ち
> 元スレッド →→→→→→……………………………………→→→→
> ★割込 ↑再開
> 割り込みスレ →→→→…………→→→→→→END
> ◆割込 ↑再開
> 更に割り込み →→→END
Q1:IMEのOn/Offの切り替えや、状態を得るにはどうすればいいの?
A1:http://www6.atwiki.jp/eamat/pages/17.html の「IME.ahk」を使いましょう。
Q2:IMEが現在文字を入力している、または変換中であるかどうかを得ることはできる?
A2:↑のIME.ahkで一部可能(IEやFirefox,MS-Wordのようにインライン化しているアプリでは無理)
■ その他
Q1:「a=abc」と「a:="abc"」って違いがある? / 「If a=1」と「If (a=1)」って違いがある?
A1:意味としては違いは無い。単体では、コマンド形式(共に前者)の方が「式」形式(同後者)より*少し*速い。
複数条件の場合、IfのネストよりはAND(&&)条件で「式」を並べた方が速い。
が、バッチでかなりの回数(数万↑〜)回したりする場合以外は、体感出来るほどの差はない。
Q2:テキストエディタでキーワードの色づけなどをしたいんだけど。
A2:wikiに各種エディタの定義ファイル及びキーワード一覧あり。( http://ahkwiki.net/Tools )
Q3:GUI作るのめんどくせ〜〜
A3:海外の有志が作ったツールを使うと楽。
SmartGUI Creator ( http://www.autohotkey.com/board/topic/738-smartgui-creator/ )
GUI Creator ( http://ahkscript.org/boards/viewtopic.php?f=6&t=303 )
Q4:AHKってマルチスレッドじゃないの?
タイマーやMsgBox, WinWait, KeyWaitを使ってるけど思った通りに動かない。
A4:「擬似マルチスレッド」です。最後に割り込んだスレッドが終わるまで元スレッドは動きません。
MsgBox、WinWait、KeyWait、Process,WaitClose などをタイマーで複数動かす時は注意。
> 要は処理系統が複数同時に走らないってこと。図にするとこんな感じ。
> → 実行中、 …:割り込み終了待ち
> 元スレッド →→→→→→……………………………………→→→→
> ★割込 ↑再開
> 割り込みスレ →→→→…………→→→→→→END
> ◆割込 ↑再開
> 更に割り込み →→→END
8名無しさん@お腹いっぱい。 (ワッチョイWW d9f1-j2m6)
2019/04/21(日) 01:36:47.15ID:jvh47c/h0 Q5:AHK(A32)、AHKLx86(U32)、AHKLx64(U64)の共存は出来る?
A5:それぞれを違うフォルダにインストールする(最新版は分ける必要無し)
但し、インストーラーを使って最後にインストールしたAutohotkeyに対して
ahkファイルの関連付けが行われるので、レジストリエディタ(Regedit.exe)や
FileTypesMan等のツールを使って関連付を変更してください。
ahkファイルをAHK(A32)、ahlファイルをAHKLx86(U32)、ah6ファイルをAHKLx64(U64)
といったように別々の拡張子に関連付けが可能です。
それぞれに関連付けしたファイルに対してドラッグアンドドロップを有効にするにはレジストリの
[HKEY_CLASSES_ROOT\ファイルタイプの名前\ShellEx\DropHandler]
の (規定) のデータを {86C86720-42A0-1069-A2E8-08002B30309D} にする。
A5:それぞれを違うフォルダにインストールする(最新版は分ける必要無し)
但し、インストーラーを使って最後にインストールしたAutohotkeyに対して
ahkファイルの関連付けが行われるので、レジストリエディタ(Regedit.exe)や
FileTypesMan等のツールを使って関連付を変更してください。
ahkファイルをAHK(A32)、ahlファイルをAHKLx86(U32)、ah6ファイルをAHKLx64(U64)
といったように別々の拡張子に関連付けが可能です。
それぞれに関連付けしたファイルに対してドラッグアンドドロップを有効にするにはレジストリの
[HKEY_CLASSES_ROOT\ファイルタイプの名前\ShellEx\DropHandler]
の (規定) のデータを {86C86720-42A0-1069-A2E8-08002B30309D} にする。
9名無しさん@お腹いっぱい。 (ワッチョイWW d9f1-j2m6)
2019/04/21(日) 01:37:17.74ID:jvh47c/h0 Q6:Windows Vista(以降)で管理者権限のウィンドウ操作やSendPlayが効かないんだけど?
A6:OSのセキュリティ機能であるユーザーアカウント制御(UAC)にブロックされている。
■回避策
1:管理者として実行
Autohotkey.exeを右クリックしてプロパティを開き、「互換性」→「管理者としてこのプログラムを実行する」にチェック。
スクリプトに記載する方法もある( http://www.autohotkey.com/board/topic/94126-ahk-problem-with-uac-and-privileges/ )
2:対策パッチ
実行ファイルのマニフェスト書き換え、自己署名証明書のインストールが行われる。
※AutoHotkey.exeはProgram Files以下に置く必要がある。
http://www.autohotkey.com/board/topic/70449-enable-interaction-with-administrative-programs/
3:UAC停止 ※注意!! 必ずHIPS機能がある他のセキュリティ対策ソフトを導入してください。
「コントロールパネル」→「ユーザーアカウント」
Vista:「ユーザーアカウント制御の有効化または無効化」→ チェックボックスをオフ。
7/8/8.1:「ユーザーアカウント制御設定の変更」→ スライドバーを一番下に。
※Windows 8/8.1では上記に加えレジストリを変更する必要があります。(注意:Windowsストアアプリが実行できなくなる)
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
「EbableLUA」の値を「0」に変更。
A6:OSのセキュリティ機能であるユーザーアカウント制御(UAC)にブロックされている。
■回避策
1:管理者として実行
Autohotkey.exeを右クリックしてプロパティを開き、「互換性」→「管理者としてこのプログラムを実行する」にチェック。
スクリプトに記載する方法もある( http://www.autohotkey.com/board/topic/94126-ahk-problem-with-uac-and-privileges/ )
2:対策パッチ
実行ファイルのマニフェスト書き換え、自己署名証明書のインストールが行われる。
※AutoHotkey.exeはProgram Files以下に置く必要がある。
http://www.autohotkey.com/board/topic/70449-enable-interaction-with-administrative-programs/
3:UAC停止 ※注意!! 必ずHIPS機能がある他のセキュリティ対策ソフトを導入してください。
「コントロールパネル」→「ユーザーアカウント」
Vista:「ユーザーアカウント制御の有効化または無効化」→ チェックボックスをオフ。
7/8/8.1:「ユーザーアカウント制御設定の変更」→ スライドバーを一番下に。
※Windows 8/8.1では上記に加えレジストリを変更する必要があります。(注意:Windowsストアアプリが実行できなくなる)
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
「EbableLUA」の値を「0」に変更。
10名無しさん@お腹いっぱい。 (ワッチョイWW d9f1-j2m6)
2019/04/21(日) 01:37:53.10ID:jvh47c/h0 ■AutoHotkeyの系譜
┌ AHK64(統合)
│
AutoIt .│ ┌ AHK_U(統合)
│ │ │
AutoHotkey(1.0) ─ Autohotkey_L ┬ Autohotkey(1.1) ←いまここ
│ │ │
└ IronAHK× │ └ Autohotkey v2(α版)
│ │
└ AutoHotkey.dll .├ AutoHotkey_H v2
│ │ │
│ └ AutoHotkey_H
│
└ AutoHotkey_N×
■メインストリーム
AutoHotkey 1.0(開発終了)
http://www.autohotkey.com/
Autohotkey 1.1 (Autohotkey_L)
http://ahkscript.org/
■開発中
Autohotkey v2(下位互換性を排除して操作利便性の向上)
http://ahkscript.org/v2/
┌ AHK64(統合)
│
AutoIt .│ ┌ AHK_U(統合)
│ │ │
AutoHotkey(1.0) ─ Autohotkey_L ┬ Autohotkey(1.1) ←いまここ
│ │ │
└ IronAHK× │ └ Autohotkey v2(α版)
│ │
└ AutoHotkey.dll .├ AutoHotkey_H v2
│ │ │
│ └ AutoHotkey_H
│
└ AutoHotkey_N×
■メインストリーム
AutoHotkey 1.0(開発終了)
http://www.autohotkey.com/
Autohotkey 1.1 (Autohotkey_L)
http://ahkscript.org/
■開発中
Autohotkey v2(下位互換性を排除して操作利便性の向上)
http://ahkscript.org/v2/
11名無しさん@お腹いっぱい。 (ワッチョイWW d9f1-j2m6)
2019/04/21(日) 01:38:28.96ID:jvh47c/h0 ■派生版
IronAhk(.NET製、クロスプラットフォーム。開発終了)
http://www.ironahk.net/
AutoHotkey.dll(真のマルチスレッド対応)
http://www.autohotkey.com/board/topic/39588-autohotkeydll/
AutoHotkey_N(開発終了)
AutoHotkey_H
http://www.autohotkey.net/~HotKeyIt/AutoHotkey/files/AutoHotkey-txt.html
■統合
AHK_U(Unicode版)
http://www.autohotkey.com/board/topic/46563-unicode-version-of-autohotkey/
AHK64(64bit版)
http://www.autohotkey.com/board/topic/53878-autohotkey64-64-bit-autohotkey-l-updated-62410/
■スクリプト作成支援ツール
AutoHotKey専用エディター ※必須ではありあせん。
SciTE4AutoHotkey
http://fincs.ahk4.net/scite4ahk/
GUI作成ツール
SmartGUI Creator
http://www.autohotkey.com/board/topic/738-smartgui-creator/
GUI Creator
http://ahkscript.org/boards/viewtopic.php?f=6&t=303
AutoGUI
https://www.autohotkey.com/boards/viewtopic.php?t=10157
※テンプレここまで
IronAhk(.NET製、クロスプラットフォーム。開発終了)
http://www.ironahk.net/
AutoHotkey.dll(真のマルチスレッド対応)
http://www.autohotkey.com/board/topic/39588-autohotkeydll/
AutoHotkey_N(開発終了)
AutoHotkey_H
http://www.autohotkey.net/~HotKeyIt/AutoHotkey/files/AutoHotkey-txt.html
■統合
AHK_U(Unicode版)
http://www.autohotkey.com/board/topic/46563-unicode-version-of-autohotkey/
AHK64(64bit版)
http://www.autohotkey.com/board/topic/53878-autohotkey64-64-bit-autohotkey-l-updated-62410/
■スクリプト作成支援ツール
AutoHotKey専用エディター ※必須ではありあせん。
SciTE4AutoHotkey
http://fincs.ahk4.net/scite4ahk/
GUI作成ツール
SmartGUI Creator
http://www.autohotkey.com/board/topic/738-smartgui-creator/
GUI Creator
http://ahkscript.org/boards/viewtopic.php?f=6&t=303
AutoGUI
https://www.autohotkey.com/boards/viewtopic.php?t=10157
※テンプレここまで
12名無しさん@お腹いっぱい。 (ワッチョイ 0988-Ce13)
2019/04/21(日) 15:50:19.34ID:M3X0BWV50 下記のスクリプトを作りました
関数fffで、引数としてジャンプの飛び先ラベル名を入力してそこに飛んで行きたいのですが出来ません
出来る方法はありませんか
ラベルが関数内にあれば出来るようですが、関数外のラベル名に飛びたいのです
fff( "labelJ" )
return
fff( la )
{
MsgBox %la%
goto %la%
}
labelJ:
MsgBox Label J!
return
q::ExitApp, 0
関数fffで、引数としてジャンプの飛び先ラベル名を入力してそこに飛んで行きたいのですが出来ません
出来る方法はありませんか
ラベルが関数内にあれば出来るようですが、関数外のラベル名に飛びたいのです
fff( "labelJ" )
return
fff( la )
{
MsgBox %la%
goto %la%
}
labelJ:
MsgBox Label J!
return
q::ExitApp, 0
13名無しさん@お腹いっぱい。 (ワッチョイ 6911-/+M7)
2019/04/21(日) 15:59:56.89ID:2WbJZntU0 ラベルやめて関数にすればいい
14名無しさん@お腹いっぱい。 (ワッチョイ 55be-ry3J)
2019/04/21(日) 16:05:53.19ID:jO7wRSRO0 >>12
Gosub
ttp://ahkwiki.net/Function#.E9.96.A2.E6.95.B0.E5.86.85.E3.81.8B.E3.82.89.E3.81.AEGosub.2FGoto.2FExit
Gosub
ttp://ahkwiki.net/Function#.E9.96.A2.E6.95.B0.E5.86.85.E3.81.8B.E3.82.89.E3.81.AEGosub.2FGoto.2FExit
15名無しさん@お腹いっぱい。 (ワッチョイ 0988-Ce13)
2019/04/21(日) 16:09:53.75ID:M3X0BWV50 背景を説明すると、もともと、
fff( la )
{
loop, 100
{
処理
}
}
という関数があるのですが、処理に時間がかかってその間他の処理ができなくなるので、これを分けて、
fff( la )
{
static cnt = 0
labelStart:
{
処理
cnt := cnt+1
if( cnt > 100 )
{
goto %la%
return
}
SetTimer, labelStart, -50
return
return
}
として、途中で他の処理が割り込めるようにしようとしたのです。 そしてこの処理が終わった時にジャンプで
外に飛び出したいのです
fff( la )
{
loop, 100
{
処理
}
}
という関数があるのですが、処理に時間がかかってその間他の処理ができなくなるので、これを分けて、
fff( la )
{
static cnt = 0
labelStart:
{
処理
cnt := cnt+1
if( cnt > 100 )
{
goto %la%
return
}
SetTimer, labelStart, -50
return
return
}
として、途中で他の処理が割り込めるようにしようとしたのです。 そしてこの処理が終わった時にジャンプで
外に飛び出したいのです
16名無しさん@お腹いっぱい。 (ワッチョイ 0988-Ce13)
2019/04/21(日) 16:35:49.77ID:M3X0BWV50 >>14
そうか。 gosubを使えばなんとかなるかもですね
そうか。 gosubを使えばなんとかなるかもですね
17989 (ワッチョイ 81b1-JAQW)
2019/04/21(日) 16:36:26.18ID:gr8NQEgj0 前スレ989です
$WheelDown::
Send, {WheelDown}
If( GetKeyState( "RButton", "P" ) ) {
Send, ^w
}
Return
$RButton::
Send, {RButton Down}
KeyWait RButton
Send, {RButton Up}
Return
で、「右ボタンを押しながらホイールダウンしたらブラウザのタブを閉じる」
というマウスジェスチャーを作ったのですが
このままだとタブを閉じたあとに{RButton Up}に反応して右クリックメニューが開かれてしまうのをどうにかしたいと思っています
RButton & WheelDown:: Send, ^w
とかだと右ボタンを離すまで{RButton Down}もされなくなるのが困るので別の方法を取りたいのですが…
MouseGesture.ahkのソースは読んでみましたがちょっと長くてすぐには把握できませんでした…
$WheelDown::
Send, {WheelDown}
If( GetKeyState( "RButton", "P" ) ) {
Send, ^w
}
Return
$RButton::
Send, {RButton Down}
KeyWait RButton
Send, {RButton Up}
Return
で、「右ボタンを押しながらホイールダウンしたらブラウザのタブを閉じる」
というマウスジェスチャーを作ったのですが
このままだとタブを閉じたあとに{RButton Up}に反応して右クリックメニューが開かれてしまうのをどうにかしたいと思っています
RButton & WheelDown:: Send, ^w
とかだと右ボタンを離すまで{RButton Down}もされなくなるのが困るので別の方法を取りたいのですが…
MouseGesture.ahkのソースは読んでみましたがちょっと長くてすぐには把握できませんでした…
18名無しさん@お腹いっぱい。 (ワッチョイ d21f-hooH)
2019/04/21(日) 19:11:52.24ID:bZs3NeUp019名無しさん@お腹いっぱい。 (ワッチョイ 557f-YIQo)
2019/04/21(日) 19:44:25.53ID:Xq2qDZMO0 >>18
勘違いしてるね
勘違いしてるね
20名無しさん@お腹いっぱい。 (ワッチョイ 557f-YIQo)
2019/04/21(日) 19:52:38.92ID:Xq2qDZMO021名無しさん@お腹いっぱい。 (ワッチョイ 557f-YIQo)
2019/04/21(日) 20:00:03.37ID:Xq2qDZMO0 補足
場合によってはSend,{ESC}の前にsleep遅延入れた方がいいかも
場合によってはSend,{ESC}の前にsleep遅延入れた方がいいかも
22名無しさん@お腹いっぱい。 (ワッチョイ 55e5-v/Yv)
2019/04/22(月) 10:43:52.59ID:HbehiDV40 >>17
>右ボタンを離すまで{RButton Down}もされなくなるのが困る
ジェスチャを聞かせたいアプリ(ウィンドウ)とそうでないものを#IfWinActiveで分ける
前者の中の右ボタンを押しはGetKeyStateなりKeyWaitなりで監視して自分で面倒を見る
簡単にやりたいならこれくらいじゃないかね
MGLが難解すぎるというなら簡易マウスジェスチャのMoGe.ahkあたりを見てみたら?
dllcall()使いまくりなのでこれはこれで理解はしんどいが
コメントちゃんと書いてあるので具体的に何やってるかが分かりやすい
https://sites.google.com/site/agkh6mze/strage
>右ボタンを離すまで{RButton Down}もされなくなるのが困る
ジェスチャを聞かせたいアプリ(ウィンドウ)とそうでないものを#IfWinActiveで分ける
前者の中の右ボタンを押しはGetKeyStateなりKeyWaitなりで監視して自分で面倒を見る
簡単にやりたいならこれくらいじゃないかね
MGLが難解すぎるというなら簡易マウスジェスチャのMoGe.ahkあたりを見てみたら?
dllcall()使いまくりなのでこれはこれで理解はしんどいが
コメントちゃんと書いてあるので具体的に何やってるかが分かりやすい
https://sites.google.com/site/agkh6mze/strage
23名無しさん@お腹いっぱい。 (ワッチョイ a9b1-8I1V)
2019/04/22(月) 18:36:26.25ID:Cf6Byjh40 Firefoxを使ってるんですが、他のウィンドウでは効くのですが、Wordとタスクマネージャーのみで効きません。
タスクマネージャーはどうでもいいので、Wordで使えるように修正して下さい。
「ホイールクリックでウィンドウを閉じる」
~MButton up:: ;タイトルバーをホイールクリック = alt + F4
CoordMode,Mouse,Screen
MouseGetPos, x, y, h
SendMessage,0x84,0,% x|y<<16,,ahk_id %h%
WinGetClass, win_class, ahk_id %h%
;chromeが誤作動するのでchrome以外
If((ErrorLevel=2) && WinActive("ahk_id " . h) && (win_class!="Chrome_WidgetWin_1"))
{
Send,!{F4} ;alt + F4
}
return
タスクマネージャーはどうでもいいので、Wordで使えるように修正して下さい。
「ホイールクリックでウィンドウを閉じる」
~MButton up:: ;タイトルバーをホイールクリック = alt + F4
CoordMode,Mouse,Screen
MouseGetPos, x, y, h
SendMessage,0x84,0,% x|y<<16,,ahk_id %h%
WinGetClass, win_class, ahk_id %h%
;chromeが誤作動するのでchrome以外
If((ErrorLevel=2) && WinActive("ahk_id " . h) && (win_class!="Chrome_WidgetWin_1"))
{
Send,!{F4} ;alt + F4
}
return
24名無しさん@お腹いっぱい。 (ワッチョイ 9e0c-ImJN)
2019/04/22(月) 18:38:11.43ID:uGZ/Ojuh0 ↓
25名無しさん@お腹いっぱい。 (イルクン MM1a-GPUg)
2019/04/22(月) 19:13:28.93ID:e8jPGGEhM お断りします
26名無しさん@お腹いっぱい。 (ワッチョイ 555b-YIQo)
2019/04/22(月) 19:16:52.34ID:bz+OEW0X027名無しさん@お腹いっぱい。 (ワッチョイ a9b1-8I1V)
2019/04/22(月) 19:37:54.76ID:Cf6Byjh4028名無しさん@お腹いっぱい。 (アウアウウー Sacd-Ifqg)
2019/04/22(月) 21:00:28.94ID:EuNz4YJIa 時々効かないソフトある
Chromeも無理
Chromeも無理
29名無しさん@お腹いっぱい。 (ワッチョイ 55e5-v/Yv)
2019/04/22(月) 23:23:40.11ID:HbehiDV40 うちだとOfficeもChromeも>23で取れてるけどなあ
win10 pro 1809 (ビルド17763.437) / Office365 / AHK 1.1.30.03 (管理者じゃない権限で実行)
けど自作関数見直したらoffice用にタイトルバー検出追加してあったんで
(今はその部分なくても動いてるけど)一応上げときます。
https://gist.github.com/eamatt
https://www6.atwiki.jp/eamat/pages/27.html
win10 pro 1809 (ビルド17763.437) / Office365 / AHK 1.1.30.03 (管理者じゃない権限で実行)
けど自作関数見直したらoffice用にタイトルバー検出追加してあったんで
(今はその部分なくても動いてるけど)一応上げときます。
https://gist.github.com/eamatt
https://www6.atwiki.jp/eamat/pages/27.html
30名無しさん@お腹いっぱい。 (アウアウウー Sacd-Ifqg)
2019/04/23(火) 07:39:50.20ID:jY3CUCgpa MGLは当然判別方法にAHKのものを使っている
条件指定をうまくやればできるものもある
条件指定をうまくやればできるものもある
31名無しさん@お腹いっぱい。 (JP 0H4d-3DfX)
2019/04/23(火) 11:07:32.28ID:F5d1wnL0H 無変換+カーソル移動を上下左右のホイール回転に割り当てることは可能ですか?
32名無しさん@お腹いっぱい。 (ワッチョイ 72ba-YIQo)
2019/04/23(火) 12:48:09.92ID:dpZFa0jN0 >>31
可能です
可能です
33名無しさん@お腹いっぱい。 (オイコラミネオ MM91-yTH6)
2019/04/23(火) 17:24:15.86ID:EodBErIWM その心は?
34名無しさん@お腹いっぱい。 (アウアウウー Sacd-Ifqg)
2019/04/24(水) 21:43:23.72ID:Z7F8AeLba 前スレのタイマーでのすり抜け防止、一番効果あった
理屈がわかればなるほどだわな
理屈がわかればなるほどだわな
35名無しさん@お腹いっぱい。 (ワッチョイ 2373-KxX0)
2019/04/26(金) 21:43:07.89ID:YRa+WZQz0 数週間前からWheelをからめたスクリプトが急に動かなくなったりするようになったんだけどみんなはそんなことない?
Xbutton1 & Wheel downで動かすスクリプトがあるんだけどこれが急に動かなくなったりする
そうなったらリロードしてスクリプトを読み直すしかない
Windows10のアップデートのせいかなとか思ったんだけど原因がわからず
Xbutton1 & Wheel downで動かすスクリプトがあるんだけどこれが急に動かなくなったりする
そうなったらリロードしてスクリプトを読み直すしかない
Windows10のアップデートのせいかなとか思ったんだけど原因がわからず
36名無しさん@お腹いっぱい。 (ワッチョイ 456c-KxX0)
2019/04/26(金) 22:02:35.14ID:1gkLgiIn0 >>35
ないよ
ないよ
37名無しさん@お腹いっぱい。 (ワッチョイ 5d56-HJzg)
2019/04/26(金) 23:53:20.29ID:VcGv9X7K0 vk1Dsc07B:: ;無変換
Flag += 1 ;判定用に変数に加算していく
If Flag = 1
{
MsgBox,1回目
Return
}
If Flag = 2
{
MsgBox,2回目
※
Return
}
〜〜〜〜〜〜〜〜〜〜〜〜〜中略〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
MsgBox,4回目
Flag = ;変数を空にして1回目に戻る
Return
wikiのサンプルコードに、前回このキーを押してから、3秒以内にこのキーの入力がなければ
Flag=1に戻るコードを組み込みたいんですが、どうしたらいいですか?
※のところに下記コードを入れてみたんですけど何が間違っているんでしょうか?
KeyWait,{vk1Dsc07B},T3
If(ErrorLevel=1)
{
Flag =
}
else
{
}
return
Flag += 1 ;判定用に変数に加算していく
If Flag = 1
{
MsgBox,1回目
Return
}
If Flag = 2
{
MsgBox,2回目
※
Return
}
〜〜〜〜〜〜〜〜〜〜〜〜〜中略〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
MsgBox,4回目
Flag = ;変数を空にして1回目に戻る
Return
wikiのサンプルコードに、前回このキーを押してから、3秒以内にこのキーの入力がなければ
Flag=1に戻るコードを組み込みたいんですが、どうしたらいいですか?
※のところに下記コードを入れてみたんですけど何が間違っているんでしょうか?
KeyWait,{vk1Dsc07B},T3
If(ErrorLevel=1)
{
Flag =
}
else
{
}
return
38名無しさん@お腹いっぱい。 (ワッチョイ 1bdf-KxX0)
2019/04/27(土) 02:54:37.85ID:7YPJPIal0 >>37
ツッコミどころ多いんだがとりあえず仮想キーの書き方は今のバージョンだと
vk1D か sc07B のどちらかにしないとwikiのサンプルコードのままではエラー出る
貼るならちゃんと動くコード貼ろうな
で本題の3秒以内に入力がなければって話だけど、最初のIf分岐の前に
SetTimer, Label, -3000
を入れてサブルーチンでFlagを空にすれば良いだけ
-3000は「3秒後に1回実行」の意味ね
これで3秒以内に無変換押せばFlagは2→3→4と増えて、3秒以内に押さなければ次に押した時は1に戻る
ツッコミどころ多いんだがとりあえず仮想キーの書き方は今のバージョンだと
vk1D か sc07B のどちらかにしないとwikiのサンプルコードのままではエラー出る
貼るならちゃんと動くコード貼ろうな
で本題の3秒以内に入力がなければって話だけど、最初のIf分岐の前に
SetTimer, Label, -3000
を入れてサブルーチンでFlagを空にすれば良いだけ
-3000は「3秒後に1回実行」の意味ね
これで3秒以内に無変換押せばFlagは2→3→4と増えて、3秒以内に押さなければ次に押した時は1に戻る
39名無しさん@お腹いっぱい。 (ワッチョイ 25e5-lypM)
2019/04/27(土) 17:04:01.77ID:wIf5xZ/l0 A_PriorHotkey
A_ThisHotkey
A_TimeSincePriorHotkey
この辺組み合わせて適当に判定文をつくる
A_ThisHotkey
A_TimeSincePriorHotkey
この辺組み合わせて適当に判定文をつくる
40名無しさん@お腹いっぱい。 (ワッチョイ 5d56-HJzg)
2019/04/27(土) 19:45:13.25ID:JMzBdnzD041名無しさん@お腹いっぱい。 (ワッチョイ 2b73-BP9Y)
2019/04/27(土) 22:30:24.55ID:as/WLoHe0 autohotkey で、ファイルから読み取った16進文字列を
変数に格納するエレガントな方法はないでしょうか。
いまのコードは長すぎて・・・
StringLen _len, aStr
uc := 0
loop,%_len%
{
StringMid, c, aStr, A_Index, 1
_code := Asc(c)
if _code in 48,49,50,51,52,53,54,55,56,57
{
uc := uc*16 + _code - Asc("0")
} else if _code in 65,66,67,68,69,70
{
uc := uc*16 + _code - Asc("A") + 10
} else {
uc := uc*16 + _code - Asc("a") + 10
}
}
aStr に入った16進文字列を数値に変換して 変数 uc に格納するコードです。
もっとエレガントな方がいい。
変数に格納するエレガントな方法はないでしょうか。
いまのコードは長すぎて・・・
StringLen _len, aStr
uc := 0
loop,%_len%
{
StringMid, c, aStr, A_Index, 1
_code := Asc(c)
if _code in 48,49,50,51,52,53,54,55,56,57
{
uc := uc*16 + _code - Asc("0")
} else if _code in 65,66,67,68,69,70
{
uc := uc*16 + _code - Asc("A") + 10
} else {
uc := uc*16 + _code - Asc("a") + 10
}
}
aStr に入った16進文字列を数値に変換して 変数 uc に格納するコードです。
もっとエレガントな方がいい。
42名無しさん@お腹いっぱい。 (ワッチョイ 25e5-lypM)
2019/04/28(日) 00:05:30.68ID:MHWE0sUc0 こういうことではなくて?
aStr := "0x0A"
SetFormat, INTEGER, D
dec := aStr + 0
SetFormat, INTEGER, H
hex := aStr + 0
msgbox,% "aStr=" aStr "`ndec=" dec "`nhex=" hex
aStr := "0x0A"
SetFormat, INTEGER, D
dec := aStr + 0
SetFormat, INTEGER, H
hex := aStr + 0
msgbox,% "aStr=" aStr "`ndec=" dec "`nhex=" hex
43名無しさん@お腹いっぱい。 (ワッチョイWW 6511-PxI6)
2019/04/28(日) 02:49:42.39ID:hWAEyTOu0 見識のある方いれば…
GetKeyState関数で修飾キー(alt)を検知しようとするとアクティブウィンドウへの入力を食ってしまうようなのですが、なにか良い回避策無いでしょうか?
やりたいこととしては、同一ゲーム(ff14)を2画面起動して同時操作のために1つのキーボードから入力をそれぞれのゲームウィンドウに送りたいのです。
実装内容としては、while無限ループ内で修飾キー+英字キーで該当する組み合わせ(今試しているのだとAlt+j)をgetkeystateで検知してcontrolsendでアクティブでない方のウィンドウにjを送信しています。
困っているのは、このプログラムを起動するとアクティブウィンドウへが修飾キー+英字キーではなく単なる英字キーが入力された時のように挙動することです。(alt+jではなくただのjとして動く)非アクティブウィンドウのもう一つのアプリは意図した通りに動いております。
ちなみにalt+jをほぼ同タイミングで押すとちゃんとアクティブウィンドウがalt+jとして動作しました。結構タイミングはシビアですが。
どなたか思い当たることある方いましたらなんでも良いので教えて下さいm(_ _)m
GetKeyState関数で修飾キー(alt)を検知しようとするとアクティブウィンドウへの入力を食ってしまうようなのですが、なにか良い回避策無いでしょうか?
やりたいこととしては、同一ゲーム(ff14)を2画面起動して同時操作のために1つのキーボードから入力をそれぞれのゲームウィンドウに送りたいのです。
実装内容としては、while無限ループ内で修飾キー+英字キーで該当する組み合わせ(今試しているのだとAlt+j)をgetkeystateで検知してcontrolsendでアクティブでない方のウィンドウにjを送信しています。
困っているのは、このプログラムを起動するとアクティブウィンドウへが修飾キー+英字キーではなく単なる英字キーが入力された時のように挙動することです。(alt+jではなくただのjとして動く)非アクティブウィンドウのもう一つのアプリは意図した通りに動いております。
ちなみにalt+jをほぼ同タイミングで押すとちゃんとアクティブウィンドウがalt+jとして動作しました。結構タイミングはシビアですが。
どなたか思い当たることある方いましたらなんでも良いので教えて下さいm(_ _)m
44名無しさん@お腹いっぱい。 (ワッチョイ 6511-XZaO)
2019/04/28(日) 08:03:59.19ID:RLac010E0 >>41
16進数を10進数にするだけの話ならFormat()
16進数を10進数にするだけの話ならFormat()
45名無しさん@お腹いっぱい。 (ワッチョイ 2b73-BP9Y)
2019/04/28(日) 09:38:37.03ID:RQlzQ/nr0 >>42 さん
ありがとうございました。16進数は4桁固定を想定なので、ちょっと追加
aStr := W0x0123W
SetFormat, INTEGER, D
dec := aStr + 0
SetFormat, INTEGER, H
hex := dec + 0
hex := W0000W . substr(hex,3)
StringRight,hex,hex,4
hex := W0xW . hex
msgbox,% WaStr=W aStr W`ndec=W dec W`nhex=W hex
ありがとうございました。16進数は4桁固定を想定なので、ちょっと追加
aStr := W0x0123W
SetFormat, INTEGER, D
dec := aStr + 0
SetFormat, INTEGER, H
hex := dec + 0
hex := W0000W . substr(hex,3)
StringRight,hex,hex,4
hex := W0xW . hex
msgbox,% WaStr=W aStr W`ndec=W dec W`nhex=W hex
46名無しさん@お腹いっぱい。 (ワッチョイ 2b73-BP9Y)
2019/04/28(日) 09:41:18.54ID:RQlzQ/nr0 先の書き込みを確認される際には、例えば
Word に貼り付けて全選択したのち、
ホームリボンの「文字種の選択」から、半角をクリックしてください。
半角で投稿しようとしたら、5ch.net に「不正なコードを含む書き込み」として
ブロックされました。
Word に貼り付けて全選択したのち、
ホームリボンの「文字種の選択」から、半角をクリックしてください。
半角で投稿しようとしたら、5ch.net に「不正なコードを含む書き込み」として
ブロックされました。
47名無しさん@お腹いっぱい。 (ワッチョイ 2b73-BP9Y)
2019/04/28(日) 09:47:34.77ID:RQlzQ/nr0 >>44
Format関数は、Integer値を16進文字列に変換するときに使えそうです。
ありがとうございました。
aVal := 291
sdec := aVal
shex := Format("0x{4:x}", aVal)
msgbox,% "aVal=" aVal "`sdec=" sdec "`shex=" shex
Format関数は、Integer値を16進文字列に変換するときに使えそうです。
ありがとうございました。
aVal := 291
sdec := aVal
shex := Format("0x{4:x}", aVal)
msgbox,% "aVal=" aVal "`sdec=" sdec "`shex=" shex
48名無しさん@お腹いっぱい。 (ワッチョイ 2b73-BP9Y)
2019/04/28(日) 10:01:03.91ID:RQlzQ/nr0 >>43
自分はDllcall を使ってキー状態を調べています。多分、副作用はない筈。
vKey0 := 164 // 多分、左Alt
vKey1 := 165 // 多分、右Alt
stCurr := DllCall("GetKeyState", "UInt", vkey0) & 128
stCurr :=(DllCall("GetKeyState", "UInt", vkey1) & 128) | stCurr
自分はDllcall を使ってキー状態を調べています。多分、副作用はない筈。
vKey0 := 164 // 多分、左Alt
vKey1 := 165 // 多分、右Alt
stCurr := DllCall("GetKeyState", "UInt", vkey0) & 128
stCurr :=(DllCall("GetKeyState", "UInt", vkey1) & 128) | stCurr
49名無しさん@お腹いっぱい。 (ワッチョイWW 25e5-OQT6)
2019/04/28(日) 10:49:09.47ID:MHWE0sUc050名無しさん@お腹いっぱい。 (ササクッテロ Sp01-PxI6)
2019/04/28(日) 12:45:22.14ID:xdMVJpEwp51名無しさん@お腹いっぱい。 (ワッチョイ 2373-KxX0)
2019/04/28(日) 14:00:44.23ID:pYczIjyR052名無しさん@お腹いっぱい。 (ワッチョイ b5b1-mEZ1)
2019/04/28(日) 18:17:38.17ID:nX/tX0040 >>51
今まで問題なかったモノが急に使えなくなったと言うことですか?
windows update以外に何か環境は変えましたか?
自分はwin8.1ですが、1年以上前、AHK使い始めた時からからずっとwheel絡めたスクリプトは全て急に動かなくなります。
スクリプト開始から5分後に使えなくなることもあれば数時間後に使えなくなることもある。
以前ここでこの症状について質問し、もらった回答全て試したり、違うメーカーのマウスとドライバに変えても駄目でした。
海外掲示板見てみても同じ症状の人がいて、色々対策書いてあったけど、効かない人には効かないみたい。
自分は諦めました。
今まで問題なかったモノが急に使えなくなったと言うことですか?
windows update以外に何か環境は変えましたか?
自分はwin8.1ですが、1年以上前、AHK使い始めた時からからずっとwheel絡めたスクリプトは全て急に動かなくなります。
スクリプト開始から5分後に使えなくなることもあれば数時間後に使えなくなることもある。
以前ここでこの症状について質問し、もらった回答全て試したり、違うメーカーのマウスとドライバに変えても駄目でした。
海外掲示板見てみても同じ症状の人がいて、色々対策書いてあったけど、効かない人には効かないみたい。
自分は諦めました。
53名無しさん@お腹いっぱい。 (ワッチョイ 2bbe-HJzg)
2019/04/28(日) 18:48:48.93ID:JP0Kc6aT054名無しさん@お腹いっぱい。 (イルクン MM93-OQT6)
2019/04/28(日) 21:59:53.64ID:fWI8wbzJM 最近の話じゃないけど
リダイレクトホイールでホイールが急に遅延して
その間まったくスクロールが効かなくなることはよくあった
そのまましばらく放置してると忘れた頃にアクティブウィンドウがスクロールしまくる
最近はだいぶ頻度は下がった
リダイレクトホイールでホイールが急に遅延して
その間まったくスクロールが効かなくなることはよくあった
そのまましばらく放置してると忘れた頃にアクティブウィンドウがスクロールしまくる
最近はだいぶ頻度は下がった
55名無しさん@お腹いっぱい。 (ワッチョイWW b5b1-PxI6)
2019/04/29(月) 04:37:49.10ID:QZTb/6eG0 >>48
うーん、ダメでした…
メインウィンドウをメモ帳とかにしても同じように修飾キーの入力が食われてしまうのでゲームの方の問題じゃないみたいですね…
osはwindows10ですがバージョンが悪さしてるのでしょうか
うーん、ダメでした…
メインウィンドウをメモ帳とかにしても同じように修飾キーの入力が食われてしまうのでゲームの方の問題じゃないみたいですね…
osはwindows10ですがバージョンが悪さしてるのでしょうか
56名無しさん@お腹いっぱい。 (ワッチョイ b5b1-BP9Y)
2019/04/29(月) 04:39:55.03ID:QZTb/6eG0 ちなみに今のコードはこんな感じです。
#InstallKeybdHook
#UseHook
SetKeyDelay,10,100
subPid = 22460
Loop
{
stCurr := DllCall("GetKeyState", "UInt", 164) & 128
stCurr2 := DllCall("GetKeyState", "UInt", 74) & 128
If stCurr && stCurr2
{
ControlSend, , j, ahk_pid %subPid%
}
}
#InstallKeybdHook
#UseHook
SetKeyDelay,10,100
subPid = 22460
Loop
{
stCurr := DllCall("GetKeyState", "UInt", 164) & 128
stCurr2 := DllCall("GetKeyState", "UInt", 74) & 128
If stCurr && stCurr2
{
ControlSend, , j, ahk_pid %subPid%
}
}
57名無しさん@お腹いっぱい。 (ワッチョイ 63f5-KxX0)
2019/04/29(月) 05:02:47.41ID:p8hzRzQr0 FF14とかネトゲでAHKみたいな外部ツールを使うのは不正行為
別に運営じゃないしFF14もやってないので不正をするなとは言わないけど
不正行為の「やり方」を恥ずかしげもなく人様に聞くのはみっともない
自分で考えて誰にもバレないように使え
それが出来なけりゃ潔く諦めろ
別に運営じゃないしFF14もやってないので不正をするなとは言わないけど
不正行為の「やり方」を恥ずかしげもなく人様に聞くのはみっともない
自分で考えて誰にもバレないように使え
それが出来なけりゃ潔く諦めろ
58名無しさん@お腹いっぱい。 (ワッチョイ cb0c-7MPY)
2019/04/29(月) 06:20:21.96ID:en4uZx+d0 はぁ〜い、トゥイマッテーンw
59名無しさん@お腹いっぱい。 (ワッチョイ 63e7-B2tE)
2019/04/29(月) 06:28:55.14ID:gsQYWf6/0 ただの池沼だった
60名無しさん@お腹いっぱい。 (アウアウオーT Sa93-kziM)
2019/04/29(月) 07:17:19.72ID:IqJQ2Tg/a 年寄りは説教が好き
61名無しさん@お腹いっぱい。 (オイコラミネオ MMb1-CUMw)
2019/04/29(月) 07:18:41.98ID:6WmDA0bLM 俺が若い頃はあ〜(以下略
62名無しさん@お腹いっぱい。 (ワッチョイWW 85f1-bJOw)
2019/04/29(月) 08:46:17.18ID:PffOSWws0 ゴメ…
63名無しさん@お腹いっぱい。 (ワッチョイ 2b73-BP9Y)
2019/04/29(月) 09:17:42.22ID:YyTDcGy20 >>55
Win32のGetKeyState関数は静的状態を取得するものなので、
変化を検知して出力する方がよいです。
Notepad.exe を非アクティブウインドウとして、
サクラエディタをアクティブウインドウとしたとき、"j"キーを両方に出力するサンプルです。
#InstallKeybdHook
#UseHook
SetKeyDelay,10,100
Loop
{
Sleep,16
stCurr2 := DllCall("GetKeyState", "UInt", 74) & 128 ; VK_J
If(stCurr2=128 && stLast2= 0)
{
ControlSend, , {j down}, ahk_class Notepad
} else If(stCurr2=0 && stLast2= 128)
{
ControlSend, , {j up}, ahk_class Notepad
}
stLast2 := stCurr2
}
現状、このソフトウェアを持っていないので再現できないのですが、
非アクティブウインドウに Alt-JをControlsend できるならば、
寧ろ、Alt + j をホットキー登録して、Autohotkeyにキーを喰わせたのち、
アクティブウインドウと非アクティブウインドウに Alt-J を Controlsend してはどうでしょうか。
その場合、ループ処理と、GetKeyState関数は不要となります。
Win32のGetKeyState関数は静的状態を取得するものなので、
変化を検知して出力する方がよいです。
Notepad.exe を非アクティブウインドウとして、
サクラエディタをアクティブウインドウとしたとき、"j"キーを両方に出力するサンプルです。
#InstallKeybdHook
#UseHook
SetKeyDelay,10,100
Loop
{
Sleep,16
stCurr2 := DllCall("GetKeyState", "UInt", 74) & 128 ; VK_J
If(stCurr2=128 && stLast2= 0)
{
ControlSend, , {j down}, ahk_class Notepad
} else If(stCurr2=0 && stLast2= 128)
{
ControlSend, , {j up}, ahk_class Notepad
}
stLast2 := stCurr2
}
現状、このソフトウェアを持っていないので再現できないのですが、
非アクティブウインドウに Alt-JをControlsend できるならば、
寧ろ、Alt + j をホットキー登録して、Autohotkeyにキーを喰わせたのち、
アクティブウインドウと非アクティブウインドウに Alt-J を Controlsend してはどうでしょうか。
その場合、ループ処理と、GetKeyState関数は不要となります。
64名無しさん@お腹いっぱい。 (ワッチョイ 25e5-lypM)
2019/04/29(月) 10:37:23.86ID:kkLjthPU0 >>56
メイン秀丸 サブメモ帳でsubPidだけ変えて実行してみたが
アクティブウィンドウはちゃんとAlt+Jのショートカット動作したし
subPidの非アクティブウィンドウもちゃんと j が入力されたよ
つかFF14の2画面動作時の挙動は知らんけど
2ウィンドウで両方とも同じ挙動させたいのに非アクティブのほうに Alt 送らなくて大丈夫なの?
「アクティブのAltが食われてる」のではなく j しか送ってないsubPidのほうをメインだと思ってて
「非アクティブにAltが送られてない」状態を「食われてる」と勘違いしてたりしない?
メイン秀丸 サブメモ帳でsubPidだけ変えて実行してみたが
アクティブウィンドウはちゃんとAlt+Jのショートカット動作したし
subPidの非アクティブウィンドウもちゃんと j が入力されたよ
つかFF14の2画面動作時の挙動は知らんけど
2ウィンドウで両方とも同じ挙動させたいのに非アクティブのほうに Alt 送らなくて大丈夫なの?
「アクティブのAltが食われてる」のではなく j しか送ってないsubPidのほうをメインだと思ってて
「非アクティブにAltが送られてない」状態を「食われてる」と勘違いしてたりしない?
65名無しさん@お腹いっぱい。 (ニククエ 2327-MRXB)
2019/04/29(月) 13:49:17.48ID:Bj2ge2Bl0NIKU Pictureコントロールで画像の比率を維持したまま固定の枠内に収める事ってできませんか?
比率を維持するには縦横どちらか片方だけを指定すればいいようなんですが
簡易のビューアのように縦長や横長のいろんな画像をそこに表示したいので
画像によってどちらを固定サイズにするか変わってきちゃうんです
その画像が縦長か横長なのかだけでも判断できれば行けそうなんですがAHKの機能だけでは無理なんでしょうか?
比率を維持するには縦横どちらか片方だけを指定すればいいようなんですが
簡易のビューアのように縦長や横長のいろんな画像をそこに表示したいので
画像によってどちらを固定サイズにするか変わってきちゃうんです
その画像が縦長か横長なのかだけでも判断できれば行けそうなんですがAHKの機能だけでは無理なんでしょうか?
66名無しさん@お腹いっぱい。 (ニククエ b5b1-BP9Y)
2019/04/29(月) 14:37:18.14ID:QZTb/6eG0NIKU お二方共ありがとうございますm(__)m
ダメもとで書いてみましたがこんなに反応していただいて感謝感激です。
>>63
>>64
> 非アクティブウインドウに Alt-JをControlsend できるならば
> 非アクティブのほうに Alt 送らなくて大丈夫なの?
ControlSendでAlt送らなくてよいかという話ですが、自分の環境だとうまくいかなかった経緯があって抜いています。
ネットで同じようなQ&Aあって最終的には次の二通りの記述方法でやってみたのですがうまくいかずでした。
ControlSend, , ^v, ahk_pid %subPid%
ControlSend, , {ctrl down}{v}{ctrl up}, ahk_pid %subPid%
一応ゲームの方でキーバインドは変更できるので、サブの方は修飾キー使わない配置でもいいかなぁと思いメインにのみ修飾キーつける形にしてます。
> 寧ろ、Alt + j をホットキー登録して
たしかにそうですね…しかし↑のショートカットコマンドControlSendできない問題が解決しないとちょっと厳しいです。
もちろんメインの方も修飾キー使わないキーバインド配置にすれば可能なのですが、基本的にはメインの1画面だけでプレイしているのがほとんどなのでなるべくそういう時はautohotkeyを使いたくないのです。最終手段としては検討したいですが。
> アクティブウィンドウはちゃんとAlt+Jのショートカット動作したし
すみません書きそびれていましたが、タイミングによってはちゃんとアクティブウィンドウにAlt+jが送信されてました。
ですが確率でいうと成功するのは半分いかないくらいで、どんな時に成功するかの傾向もいまいち判断つきにくい状況です。
こころなしか>>48さんのコードを反映してから成功する確率は増した気がしますが…
> 「非アクティブにAltが送られてない」状態を「食われてる」と勘違いしてたりしない?
一応まったく別のキーの組み合わせでも試しているのでこちらは大丈夫だと思います。
ダメもとで書いてみましたがこんなに反応していただいて感謝感激です。
>>63
>>64
> 非アクティブウインドウに Alt-JをControlsend できるならば
> 非アクティブのほうに Alt 送らなくて大丈夫なの?
ControlSendでAlt送らなくてよいかという話ですが、自分の環境だとうまくいかなかった経緯があって抜いています。
ネットで同じようなQ&Aあって最終的には次の二通りの記述方法でやってみたのですがうまくいかずでした。
ControlSend, , ^v, ahk_pid %subPid%
ControlSend, , {ctrl down}{v}{ctrl up}, ahk_pid %subPid%
一応ゲームの方でキーバインドは変更できるので、サブの方は修飾キー使わない配置でもいいかなぁと思いメインにのみ修飾キーつける形にしてます。
> 寧ろ、Alt + j をホットキー登録して
たしかにそうですね…しかし↑のショートカットコマンドControlSendできない問題が解決しないとちょっと厳しいです。
もちろんメインの方も修飾キー使わないキーバインド配置にすれば可能なのですが、基本的にはメインの1画面だけでプレイしているのがほとんどなのでなるべくそういう時はautohotkeyを使いたくないのです。最終手段としては検討したいですが。
> アクティブウィンドウはちゃんとAlt+Jのショートカット動作したし
すみません書きそびれていましたが、タイミングによってはちゃんとアクティブウィンドウにAlt+jが送信されてました。
ですが確率でいうと成功するのは半分いかないくらいで、どんな時に成功するかの傾向もいまいち判断つきにくい状況です。
こころなしか>>48さんのコードを反映してから成功する確率は増した気がしますが…
> 「非アクティブにAltが送られてない」状態を「食われてる」と勘違いしてたりしない?
一応まったく別のキーの組み合わせでも試しているのでこちらは大丈夫だと思います。
67名無しさん@お腹いっぱい。 (ワッチョイ 2373-KxX0)
2019/04/30(火) 01:28:07.47ID:K0TtcLI00 >>52
原因はよくわからない
5ちゃんみるのにJane つかってるんだけど
image viewerが立ち上がるときにマウスホイールのスクリプトがかなりの確率で動かなくなる
あとXbutton & Lbutton でうごくやつを用意してるけどこれもだめになる
原因はよくわからない
5ちゃんみるのにJane つかってるんだけど
image viewerが立ち上がるときにマウスホイールのスクリプトがかなりの確率で動かなくなる
あとXbutton & Lbutton でうごくやつを用意してるけどこれもだめになる
68名無しさん@お腹いっぱい。 (ワッチョイ 2b73-BP9Y)
2019/04/30(火) 14:09:40.67ID:w21JuZ030 autohotkey で exe ファイルを作ったとき、
タスクアイコンを右クリックしたときのメニューに
"Suspend hotkeys" と "Pause Script" が表示されないようにしたい。
どなたかご存知でしょうか。
タスクアイコンを右クリックしたときのメニューに
"Suspend hotkeys" と "Pause Script" が表示されないようにしたい。
どなたかご存知でしょうか。
69名無しさん@お腹いっぱい。 (ワッチョイ 6511-XZaO)
2019/04/30(火) 14:21:09.74ID:+yW1x6hb0 menu,tray,
70名無しさん@お腹いっぱい。 (ワッチョイ 2306-KxX0)
2019/04/30(火) 15:09:34.34ID:ujDAUdDr0 >>69
68じゃないけど、トレイのメニューは無理なのでは?
Menu, Tray, Delete, Suspend Hotkeys
だとエラー吐くんだけど
"Suspend Hotkeys"にしてもダメだった
68じゃないけど、トレイのメニューは無理なのでは?
Menu, Tray, Delete, Suspend Hotkeys
だとエラー吐くんだけど
"Suspend Hotkeys"にしてもダメだった
71名無しさん@お腹いっぱい。 (オッペケ Sr01-7Fq6)
2019/04/30(火) 16:43:23.50ID:ZVDWFksOr >>68
MenuをExitだけにする例
Menu, Tray, NoStandard
Menu, Tray, Add, Exit, Menu_Exit
default項目で他に追加したければAdd, 表示名, Label名
MenuをExitだけにする例
Menu, Tray, NoStandard
Menu, Tray, Add, Exit, Menu_Exit
default項目で他に追加したければAdd, 表示名, Label名
72名無しさん@お腹いっぱい。 (ワッチョイ 2b73-BP9Y)
2019/04/30(火) 17:04:55.31ID:w21JuZ030 >>71
ありがd、できますた。
Menu, Tray, NoStandard
Menu, Tray, Add, Exit, Menu_Exit
return
Menu_Exit:
exitapp
a::return
a up::return
ありがd、できますた。
Menu, Tray, NoStandard
Menu, Tray, Add, Exit, Menu_Exit
return
Menu_Exit:
exitapp
a::return
a up::return
73名無しさん@お腹いっぱい。 (Hi!REIWA Sae9-E4J7)
2019/05/01(水) 12:43:11.11ID:jXRa0IGJa0501 >>35
Win10にしたとかアップデートしたとかで効かなくなるものはある
Win10にしたとかアップデートしたとかで効かなくなるものはある
74名無しさん@お腹いっぱい。 (Hi!REIWA 6d05-mEZ1)
2019/05/01(水) 18:22:04.79ID:SieO+8nP00501 ピリオド〜ピリオドに囲まれた範囲を削除したいんですが、
アイデアってありますでしょうか?
英文を書いていて、一文削除したいんです。
カーソルの位置はその文の任意の場所にあります。
アイデアってありますでしょうか?
英文を書いていて、一文削除したいんです。
カーソルの位置はその文の任意の場所にあります。
75名無しさん@お腹いっぱい。 (Hi!REIWAWW a3fa-YGjT)
2019/05/01(水) 18:32:15.71ID:sBOO+Ynz00501 クリップボードに取り込んで、変数に入れてからループ処理かなぁ
ふんわりは思いつくけど条件はめんどくさそう
ふんわりは思いつくけど条件はめんどくさそう
76名無しさん@お腹いっぱい。 (Hi!REIWAWW 23e5-OQT6)
2019/05/01(水) 19:47:01.77ID:RadfMNGN00501 カーソルの位置でどうこうするならエディタのマクロでやったほうが楽そう
77名無しさん@お腹いっぱい。 (Hi!REIWA Sr01-7Fq6)
2019/05/01(水) 20:06:08.82ID:VU2a+akWr0501 ControlGetText
RegExReplace
FileDelete(あるいはバックアップ)
FileAppendでできるんじゃね
RegExReplace
FileDelete(あるいはバックアップ)
FileAppendでできるんじゃね
78名無しさん@お腹いっぱい。 (Hi!REIWA 6d05-mEZ1)
2019/05/01(水) 20:17:10.20ID:SieO+8nP0050179名無しさん@お腹いっぱい。 (Hi!REIWA cbcf-7MPY)
2019/05/01(水) 20:20:21.68ID:a/vdThoT00501 テキスト編集に特化したエディタならそういうコマンドくらいデフォで入ってそうだけど
あるいはそういうプラグインがありそうな開発環境向けの高機能エディタ使うか
あるいはそういうプラグインがありそうな開発環境向けの高機能エディタ使うか
80名無しさん@お腹いっぱい。 (Hi!REIWA Sr01-7Fq6)
2019/05/01(水) 21:06:04.46ID:VU2a+akWr0501 >78
>1文の長さもバラバラ
何のための正規表現だよw
ましてや英文なら一番簡単パターンだろ
最短マッチ
var := RegExReplace(var, "s`n),[\w\x20'\.\-]*?,", ",,")
最長マッチ
var := RegExReplace(var, "s`n),.+,", ",,")
>1文の長さもバラバラ
何のための正規表現だよw
ましてや英文なら一番簡単パターンだろ
最短マッチ
var := RegExReplace(var, "s`n),[\w\x20'\.\-]*?,", ",,")
最長マッチ
var := RegExReplace(var, "s`n),.+,", ",,")
81名無しさん@お腹いっぱい。 (Hi!REIWA 2311-KxX0)
2019/05/01(水) 21:28:56.54ID:dvQIbYdE00501 英文ならクリック3回くらい押せば1文選択できるだろうし(そのエディタでは出来ない?)
クリック3回のDeleteって簡単にやっちゃダメなん?
クリック3回のDeleteって簡単にやっちゃダメなん?
82名無しさん@お腹いっぱい。 (Hi!REIWA 2311-KxX0)
2019/05/01(水) 21:35:56.09ID:dvQIbYdE00501 1文じゃなくて段落での選択だったわすまん
83名無しさん@お腹いっぱい。 (Hi!REIWA 6d05-mEZ1)
2019/05/01(水) 21:56:16.89ID:SieO+8nP0050184名無しさん@お腹いっぱい。 (ワッチョイ f70d-R0y6)
2019/05/02(木) 00:45:45.54ID:mNYgW5tn0 >>83
; xxx,yyy,zzz,test,
; xxx,yyy,zzz,test,
; xxx,yyy,zzz,test,
F1::DeleteGroup()
DeleteGroup(String=",", Wait=0.3) {
ClipSaved := ClipboardAll
Clipboard =
Send ^x
ClipWait %Wait%
if (ErrorLevel) {
Send +{Home}^x
ClipWait %Wait%
Forward := Clipboard
if (Pos := InStr(Forward, String,, 0)) {
Clipboard =
Send +{End}^x
ClipWait %Wait%
Clipboard := RegExReplace(Forward Clipboard, String ".+?" String, String String,, 1, Pos)
Send ^v
} else
Send ^z
} else {
Clipboard := RegExReplace(Clipboard, "s)" String ".+?" String, String String,, 1)
Send ^v
}
Clipboard := ClipSaved
}
; xxx,yyy,zzz,test,
; xxx,yyy,zzz,test,
; xxx,yyy,zzz,test,
F1::DeleteGroup()
DeleteGroup(String=",", Wait=0.3) {
ClipSaved := ClipboardAll
Clipboard =
Send ^x
ClipWait %Wait%
if (ErrorLevel) {
Send +{Home}^x
ClipWait %Wait%
Forward := Clipboard
if (Pos := InStr(Forward, String,, 0)) {
Clipboard =
Send +{End}^x
ClipWait %Wait%
Clipboard := RegExReplace(Forward Clipboard, String ".+?" String, String String,, 1, Pos)
Send ^v
} else
Send ^z
} else {
Clipboard := RegExReplace(Clipboard, "s)" String ".+?" String, String String,, 1)
Send ^v
}
Clipboard := ClipSaved
}
85名無しさん@お腹いっぱい。 (ワッチョイ eb05-UklA)
2019/05/02(木) 19:21:43.94ID:ahrZkCUy086名無しさん@お腹いっぱい。 (コードモ d776-R0y6)
2019/05/05(日) 13:28:02.42ID:8PqDYwmd00505 .ahkファイルの9割はエディタに関連付けしたほうが扱いやすいと気がついたんだが
インクルードされる専の.ahk以外で名の通った拡張子ってないの?
インクルードされる専の.ahk以外で名の通った拡張子ってないの?
87名無しさん@お腹いっぱい。 (コードモ 8e4d-ahOC)
2019/05/05(日) 13:35:33.46ID:M2iqQKSj00505 >>86
俺はahkファイルをそのままランチャーに登録したりしてるからエディタに関連付けたら使い物にならなくなるわ
その代わり常駐スクリプトなどはトレイアイコンダブルクリックでエディタ起動するようにしてる
俺はahkファイルをそのままランチャーに登録したりしてるからエディタに関連付けたら使い物にならなくなるわ
その代わり常駐スクリプトなどはトレイアイコンダブルクリックでエディタ起動するようにしてる
88名無しさん@お腹いっぱい。 (コードモ 1711-3fUi)
2019/05/05(日) 13:52:31.18ID:K9EFe5ps00505 >>86
txt
txt
89名無しさん@お腹いっぱい。 (ワッチョイ e211-R0y6)
2019/05/06(月) 13:02:36.04ID:ul+3fNQG0 ファイラー使ってエディタ起動はEキーでとかだから困ること無いな
90名無しさん@お腹いっぱい。 (ワッチョイWW b287-NoMZ)
2019/05/07(火) 17:39:26.46ID:TrTdwL+B0 win10で2chMateを使いたくてエミュ導入したのですが
google日本語入力の109A選択で日本語/英語の切り替えがShift+Ctrlと押しづらい
「全角/半角」→認識なし?
「Del」→「.」
ってことでAutoHotkeyを使ってみました。
「半角/全角」を置換元キーにすると不安定。1回置きに指定リマップされてる?
置換先キーにShiftとCtrlの同時押しもうまくいきません
結局、今は無変換キーをShift、変換キーをCtrl に指定
無変換と変換キー同時押しで、Shift+Ctrl「日本語/英語切り替え」にはなりました。
#IfWinActive ahk_exe BlueStacks.exe
vk1C::Shift
vk1D::Ctrl
#IfWinActive
「半角/全角」を押してShift+Ctrl出力で日本語/英語切り替え
ができたら理想なのです、ご指導いただけたら嬉しいです。
ついでにDeleteキー復活もお願いします。
BlueStacks 4.60.20.1002
google日本語入力 109A
2chMate 0.8.10.45/
google日本語入力の109A選択で日本語/英語の切り替えがShift+Ctrlと押しづらい
「全角/半角」→認識なし?
「Del」→「.」
ってことでAutoHotkeyを使ってみました。
「半角/全角」を置換元キーにすると不安定。1回置きに指定リマップされてる?
置換先キーにShiftとCtrlの同時押しもうまくいきません
結局、今は無変換キーをShift、変換キーをCtrl に指定
無変換と変換キー同時押しで、Shift+Ctrl「日本語/英語切り替え」にはなりました。
#IfWinActive ahk_exe BlueStacks.exe
vk1C::Shift
vk1D::Ctrl
#IfWinActive
「半角/全角」を押してShift+Ctrl出力で日本語/英語切り替え
ができたら理想なのです、ご指導いただけたら嬉しいです。
ついでにDeleteキー復活もお願いします。
BlueStacks 4.60.20.1002
google日本語入力 109A
2chMate 0.8.10.45/
91名無しさん@お腹いっぱい。 (ワッチョイ f7e5-y35d)
2019/05/07(火) 18:41:35.58ID:QBfahZsV0 ChMateのためだけにBlueStacksは重くない?
まあ好き好きだけど
MEmuならAHKなしwin10側デフォルトのMS IMEでエミュのキーボード制御なしで行けたよ
まあ好き好きだけど
MEmuならAHKなしwin10側デフォルトのMS IMEでエミュのキーボード制御なしで行けたよ
92名無しさん@お腹いっぱい。 (ワッチョイWW 6726-16f0)
2019/05/07(火) 20:15:43.46ID:hH7zKgci093名無しさん@お腹いっぱい。 (ワッチョイ a2b1-DY+r)
2019/05/07(火) 23:26:24.76ID:qVvoJ1Im0 IME.ahk
94名無しさん@お腹いっぱい。 (ワッチョイWW b287-NoMZ)
2019/05/08(水) 16:06:11.53ID:a/Pr15AK0 >>91
MEmuですけど、google日本語入力と物理キーボードが上手く動かないのと、
ChMateでもカクカク動作になるので、今の所は敬遠します。
なんかかっこ悪いけど、一応AutoHotkeyで念願の様に組めました。
なぜか置換先にShiftとCtrl同時押しができませんが、
無意味なキー(vkF4)を含めた(+^vkF4)で代用ができました。
「半角/全角」(vkF3)を、日本語/英語の切り替え(+^vkF4)にリマップ
使ってなさそうな「カタカナ/ひらがな」(vkF2)も(+^vkF4)にリマップ
AndroidにはDelキーが無い?ので
→の後、BackSpaceでカーソル右側1文字削除を再現しました。
#IfWinActive ahk_exe BlueStacks.exe
vkF3::+^vkF4
vkF2::+^vkF4
Del::
send,{Right}
send,{BS}
return
#IfWinActive
AutoHotkey 1.1.30.03
BlueStacks 4.60.20.1002
google日本語入力 109A
2chMate 0.8.10.45/
MEmuですけど、google日本語入力と物理キーボードが上手く動かないのと、
ChMateでもカクカク動作になるので、今の所は敬遠します。
なんかかっこ悪いけど、一応AutoHotkeyで念願の様に組めました。
なぜか置換先にShiftとCtrl同時押しができませんが、
無意味なキー(vkF4)を含めた(+^vkF4)で代用ができました。
「半角/全角」(vkF3)を、日本語/英語の切り替え(+^vkF4)にリマップ
使ってなさそうな「カタカナ/ひらがな」(vkF2)も(+^vkF4)にリマップ
AndroidにはDelキーが無い?ので
→の後、BackSpaceでカーソル右側1文字削除を再現しました。
#IfWinActive ahk_exe BlueStacks.exe
vkF3::+^vkF4
vkF2::+^vkF4
Del::
send,{Right}
send,{BS}
return
#IfWinActive
AutoHotkey 1.1.30.03
BlueStacks 4.60.20.1002
google日本語入力 109A
2chMate 0.8.10.45/
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国連大使「日本が中国に武力行使すると脅しをかけたのは初めて」 国連事務総長に書簡★4 [♪♪♪★]
- 台湾有事での集団的自衛権行使に「賛成」が48.8%、「反対」が44.2% ★8 [♪♪♪★]
- 【🐼】パンダ、日本で会えなくなる? 中国との関係悪化で不安の声 [ぐれ★]
- 【芸能】44歳・池脇千鶴、激変ぶりにネット衝撃 「まるで別人…」「変化が凄い!!」の声 [冬月記者★]
- なぜ立花孝志氏の言葉は信じられたのか…"異例の逮捕"が浮き彫りにした「SNSの危険な病理」 [ぐれ★]
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★15 [BFU★]
