AutoHotkey スレッド part25 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。 転載ダメ©2ch.net (ワッチョイ f977-fKjf)
垢版 |
2017/09/14(木) 11:52:40.84ID:uijNj4qb0

■配布元
http://ahkscript.org/download/

■前スレ
AutoHotkey スレッド part24
http://egg.2ch.net/test/read.cgi/software/1487149472/

■日本語解説等
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: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2017/10/08(日) 20:52:54.09ID:mvXpExRv0
お前わざとやってるだろw
2017/10/08(日) 21:00:16.02ID:DDBFFTha0
>>195
なら君のキーボードが特殊で何か別のキーコードが発行されてんじゃね
#InstallKeybdHookでキーコード調べな
2017/10/08(日) 21:38:05.05ID:CPS4vhgt0
>>195
入力が問題ないかどうかは、
MsgBox,OK
とか出してみれば良い。
出力が問題ないかどうかは、
^a::
とかの入力で表示できるかどうか試せば良い。
2017/10/08(日) 21:58:28.07ID:K4/7+oooM
うちでは$付けて>183で出力できてるけどな
日本語キーボードだから実際に押すキーはshift+ctrl+@だけど
2017/10/09(月) 00:09:43.90ID:EuzlchIz0
エスパーになりたいなあ
2017/10/09(月) 00:46:03.79ID:l1fzjuhd0
Ctrlとバッククォートの同時押しをKeymillで見たら
VK_OEM3とVK_OEM4の二つの仮想キーが使われてるみたいなので
その値でSendしたら出来ました(^^♪
^vkF3::Send,``
^vkF4:Send,``
2017/10/09(月) 00:54:57.08ID:r2rCO5Lw0
散々アドバイス貰っておいて礼の一言も無し
こういう奴って他人を利用することしか考えてないんだろうな
2017/10/09(月) 01:29:35.12ID:ylAweGgd0
最近質問初回からストレートに「教えて」って言い方する人いて
地味に気になるわ
2017/10/09(月) 05:41:17.13ID:rf1NTRhp0
教えて!goo
2017/10/09(月) 11:57:03.87ID:HTLieya10
以下のスクリプトが急に効かなくなった
;━現在日時をスタンプする
^Tab::
FormatTime, TimeString,,yyyy_MMdd_HHmm
Clipboard = %TimeString%
Send, +{Insert}
Sleep, 200
clipboard =
return

PCの再起動しても直らず
単独のahkファイルにコピーで動作OK (他のコードを除外して)
元のファイルの別のコードを一つづつ削除していき
下記のスクリプトを削除で動作OK

;━スクリプトの自動リロード
#IfWinActive, ahk_class TextEditorWindowW166
~^s::
ScriptName := Script
IfWinActive, %ScriptName%
{
Reload
}
return
2017/10/09(月) 11:57:38.06ID:HTLieya10
つづき

削除前の無編集バックアップをそのまま上書きしてみる(動作しなかった時の状態のファイル)
何故か動作OK。その後ahkファイルを再起動するが動作せず
再度、スクリプトの自動リロードのコードを削除しリロードで動作OK

何か考えられる原因てあります?
この2つのコードが相性悪いようなのですが何かおかしいところはありますか?
エディタはサクラエディタを使用しています
スクリプトの自動リロードのスクリプト自体の方は問題無く動きます
自動リロードのスクリプトがある他のファイルでは問題は全く無いです
元々動作していましたが気付いたら動作しなくなってしまいました
2017/10/09(月) 12:16:33.49ID:HTLieya10
連投ですみません
スクリプトの順番を入れ替えたら問題無く動作するようになりました
う〜ん でも何故かはわからないです

動作OK
@現在日時をスタンプする
Aスクリプトの自動リロード
Bその他

動作せず
@スクリプトの自動リロード
A現在日時をスタンプする
Bその他
2017/10/09(月) 12:25:24.39ID:KhNcOqwe0
はやく教えろ
2017/10/09(月) 12:45:44.05ID:rf1NTRhp0
教えました。
2017/10/09(月) 12:50:33.29ID:NXVnt0i+0
#If閉じてないだけとか
2017/10/09(月) 13:18:13.91ID:HTLieya10
>>210
ありがとうございました
まさにその通りでした
いつの間にか#IfWinActiveを消してしまっていたようです
こんな初歩的なミスに気づかないとは...恥ずかしい
2017/10/10(火) 02:32:14.41ID:EmIG0yKf0
controlsend,について質問があります
たとえば以下の記述でwindows標準のメモ帳なら動きます

ControlSend, , test, ahk_class Notepad

ただこの記述では動かないアプリが結構ありますが、そのアプリでも成功したりしなかったりの条件があります
testをControlSendするアプリケーションのウィンドウが前面にあり、アクティブ状態なら成功しますがウィンドウが最小化状態だと失敗します
なのでwinactivateで失敗するアプリのウィンドウをアクティブ化してからcontrolsendしていますが
失敗するアプリでもwinactivateなし、最小化状態でcontrolsendすることってできないもんでしょうか
2017/10/10(火) 08:00:37.48ID:fQ70ranb0
その質問過去に何度も見てるけど解決したところは見たことない気がする
ただその質問する人ってほぼもれなくctrl空欄にしてるんだよね
まずは送りたいctrl特定してやってみて、できればハンドル指定で
バックグラウンド時にはcontrolフォーカス取れなくなるようなアプリなら効果あるかもしれないし
そこきちんと指定してやると結構精度上がるよ
2017/10/11(水) 11:38:11.27ID:eCPj5mWL0
Process, Priorityで、AutoHotkey自身をAboveNormalに変更しようとしたのですが、
出来ないようです
でも、タスクマネージャーで手動では変更できます。 なぜでしょうか?
出来ないのですか? 自分で自分は変更できないのかな
2017/10/11(水) 11:55:15.44ID:eCPj5mWL0
管理者権限でもやってみましたが変わりません
2017/10/11(水) 17:53:01.10ID:FW7ud3JO0
SetBatchLines, -1にして、数千行のバッチ処理をしている方って居ます?
最近AHKをアップデートしたんですけど、SetBatchLines, -1にしても昔の様に失敗しなくなったみたいなんです
もしかして修正でもされたのかな
2017/10/11(水) 18:16:15.05ID:MfAdhfs40
>>214
問題のスクリプトと環境は最低限書きましょう
そうしなければ何が間違っているのか誰にも分かりません


#Persistent
Process, Priority,, High
MsgBox % ErrorLevel ? "成功" : "失敗"

ESC::
ExitApp
2017/10/11(水) 21:21:43.67ID:eCPj5mWL0
>>217
失礼しました。私のとんだ勘違いでした。 私のスクリプトは
Process, priority, ahk_exe AutoHotkey.exe, AboveNormal
としていました
ahk_exeを外したら出来ました
2017/10/12(木) 01:02:36.24ID:9+/edpnH0
>>213
その方法でためしたところ一応キーはsendできていましたがショートカットは動きませんでした
アプリ側の問題みたいです ありがとうございました
2017/10/12(木) 12:40:14.52ID:fl4Aa2dU0
すみません
エクスプローラで選択しているファイルをあらかじめ指定したプログラムで起動したいのですが、
選択しているファイルのパスを取得するにはどうすればよいでしょうか?
2017/10/12(木) 13:48:00.68ID:22LCJS230
ctrl+cでクリップボード参照すればいいんじゃない?
2017/10/12(木) 14:30:20.01ID:WOPpKOf60
目的から考えると、Windowsの機能としてある右クリックメニューの「プログラムから開く」とか「送る」で出来るようにしておいて、
それをAutoHotkeyでキーを送って自動化すれば良いような。
2017/10/12(木) 15:31:51.36ID:gbYEcDhtM
昔ここでcomだかアクティブXだかでエクスプローラからファイル情取得するコードで盛り上がってた記憶あるけど
OSバージョンアップのたびにエクスプローラも様変わりしてるから今でも使えるかはわからんね

そもそも質問者の環境書いてないし
汎用で使いたいならクリップボードからパス拾うのが無難かと
224名無しさん@お腹いっぱい。 (ワッチョイ f17d-z1uI)
垢版 |
2017/10/12(木) 18:16:00.48ID:sKWnufrn0
Excelの検索フォームのテキストを取得したいんですがうまくいきません。

Send, ^f
WinWaitActive, ahk_class bosa_sdm_XL9,,5
WinGet, OutputVar, ID
ControlGetText, text, ahk_id %OutputVar%
MsgBox, The text is:`n%text%

これで起動させるとtextがnullになってしまいます。
どなたかお助けを
2017/10/12(木) 18:30:17.45ID:fl4Aa2dU0
220です
クリップボード経由で思惑通りの動作できました
ありがとうございます
2017/10/12(木) 22:33:41.59ID:hFLP6ZS00
>>224
ControlGetText, text, , ahk_id %OutputVar%
これだとわざわざID取得した意味あんまりないけど

検索窓のハンドルではなくEditBOXハンドルを取得したい場合は WinGetではなくControlGetを使う
その場合もControlGetTextでの指定はControlではなくWinTitleとして指定する
http://ahkwiki.net/Window#Control.E7.B3.BB.E3.82.B3.E3.83.9E.E3.83.B3.E3.83.89.E3.81.A7.E3.81.AE.E3.82.A6.E3.82.A3.E3.83.B3.E3.83.89.E3.82.A6.E3.83.8F.E3.83.B3.E3.83.89.E3.83.AB.E3.81.AE.E7.9B.B4.E6.8E.A5.E6.8C.87.E5.AE.9A
2017/10/12(木) 23:11:28.22ID:TjO6Vz8k0
スクロールバーのShift+左クリックの動作を中クリックで実現したいんですが、
アドバイス頂けないでしょうか。
2017/10/12(木) 23:36:21.69ID:WOPpKOf60
>>227
その機能、今知ったわ。
今まで知らなかったWindowsの操作かと思ったけど、Live5chの機能なのかな。
2017/10/12(木) 23:43:42.76ID:hFLP6ZS00
その機能とやらは MButton:: +LButton でできる機能とは違うのかえ?
OSバージョンによって挙動違うかもしらんから正しく再現できてるかもわからんが
win8ではおなじ挙動になってるようだが
2017/10/13(金) 01:10:48.45ID:3xeDM7QO0
>>228
一部効かないのもあるけど、割と昔からあるっぽいWindows標準の操作みたい。
俺も最近知りました。

>>229
確かに、MButton:: +LButtonで行けますね。
何か変に難しく考えちゃってたみたいです。
ありがとうございます!
2017/10/13(金) 08:14:19.11ID:3Z5Ik+Fw0
>>230
それは、スクロールバーの余白部分のShift+クリックという機能の方なのかな?(いきなりその場所に移動)

最初に試したのが、Live5chでスクロールバーをShift+ドラッグして、Shiftは押したまま維持、
Shiftを離すと、スクロール前の位置に自動的に戻ったから、Windowsにこんな機能があったのかと
思って他のソフトで試すと出来なかったからさっきの書き込みをした。
2017/10/13(金) 08:59:11.07ID:3xeDM7QO0
>>231
いきなりその場所に移動する機能のことですね。
Shift+ドラッグでShift離したら元の位置に戻るというのは見たこと無いですね。
233名無しさん@お腹いっぱい。 (ワッチョイ f17d-z1uI)
垢版 |
2017/10/13(金) 09:10:31.30ID:Kmc31x970
224です。
>>226
回答ありがとうございます。
しかし、依然としてtextの値はnullのままです。

Send, ^f
WinWaitActive, ahk_class bosa_sdm_XL9,,5
ControlGet, controlHWND, Hwnd,,, 検索と置換
ControlGetText, text, ahk_id %controlHWND%, 検索と置換
MsgBox, The text is:`n%text%

このように修正しましたがダメでした。他にも
ControlGetText, text,, A
としてみたりしましたがうまくいきません。
ちょっと調べてみたところ
https://so-zou.jp/software/tool/system/auto-hot-key/commands/window.htm#no26
に「なお、このコマンドで取得できるのはWindow Spyの[Control Under Mouse Position]のTextと同じであり、これで取得できない情報はこのコマンドでも取得できません。」と記載されていたのでこれが原因なのかなと思いました。
長文失礼しました。
2017/10/13(金) 13:27:09.12ID:trCb60PR0
>>233
>226の後半にも書いたがcontrolHWNDはControlではなくWinTitleとして指定する
ControlGetText, text, ,ahk_id %controlHWND%

古くてすまんがうちのExcel2007ではAU3_Spy.exeで情報取れてるよ
最新のExcelは持ってないのでわからないが
https://i.imgur.com/DSOGYgq.png
235名無しさん@お腹いっぱい。 (ワッチョイ f17d-z1uI)
垢版 |
2017/10/13(金) 14:39:55.15ID:Kmc31x970
233です。
>>226
なるほどーーーーーーーーーーーーーーー
完全に私が勘違いしてました。質問自体が正しくありませんでした。

下記画像の「大文字と小文字を区別する」の文字列を取得するにはどうしたらよいですか?
https://imgur.com/a/DVFmh
2017/10/13(金) 18:05:09.37ID:xSVAQVol0
テンプレにあるACC.ahkをつかうと取れることは取れる
2017/10/13(金) 19:20:26.57ID:1yuJh+l1M
後出しすぎてワロタ
2017/10/13(金) 21:29:13.62ID:sASp439J0
これを後出しって言うか?
自分が勘違いしてたのが分かったから質問し直しただけでしょ
2017/10/13(金) 22:33:16.76ID:trCb60PR0
解答してた身として言わせてもらうがエスパー要求度高すぎやでw

オプション表示の有無についてはままある勘違いだけど
あの質問内容とコードからフォーカス行ってないコントロールの情報を取得しようとしてるとはまず気づけないっす
つか今回の教訓は下手な説明よりSS一発ってことですな
2017/10/14(土) 20:58:48.61ID:TUhxuyu80
Windows 10でMouseGestureLで管理者権限のアプリ操作する正しいやり方ってなに?。。。

AutoHotKey.exeを管理者権限で実行させる
→スタートアップで起動できなくなる
MouseGestureLでタスクスケジューラでスタートアップさせる
→設定反映後に管理者権限のアプリが操作できなくなる

UAC下げるしかないの?うまくやれている人は教えてくれ
241名無しさん@お腹いっぱい。 (ワッチョイ 0987-z1uI)
垢版 |
2017/10/14(土) 22:39:53.23ID:zq2sRIVJ0
keyhac >>>>>>>ahk
2017/10/15(日) 00:25:01.54ID:kczcI/Ax0
guiのボタンのテキストを押す度にplayとかpauseとかに替えたいんですけど
これって出来ますか?
2017/10/15(日) 02:35:03.28ID:TFGCjPn+0
242ですが
guicontrolで出来ました
244名無しさん@お腹いっぱい。 (ワッチョイ f17d-z1uI)
垢版 |
2017/10/15(日) 07:29:44.49ID:nQ2z0aEU0
>>240
MouseGestureLは
タスクスケジューラ>該当タスクのプロパティ>全般タブ>「最上位の特権で実行する」にチェック
245名無しさん@お腹いっぱい。 (ワッチョイ 0987-z1uI)
垢版 |
2017/10/15(日) 17:15:52.69ID:Ug0/OrZC0
keyhac >>>>>>>>>>>>>>>>>>ahk
2017/10/15(日) 18:39:01.48ID:jZaJe0Jda
Keyhac
 ・キーボード操作系しかコントロールできない     ←AutoHotkeyとはユーザー層が異なる
 ・設定ファイルはPython                   ←多少は羨ましい, 複雑な処理をする場合に処理速度が遅そう
 ・一応、Macにも対応
 ・Win版はVisual Studio 2015 ランタイム必須       ←糞
 ・アプリケーションデータディレクトリを使う       ←糞
 ・配布用の実行ファイルを作成できない
 ・環境のHDD容量が16MBくらい必要(AutoHotkeyの倍)


>>241,245
Keyhacスレ作ってそちらでヤレ
247名無しさん@お腹いっぱい。 (ワッチョイ 0987-z1uI)
垢版 |
2017/10/15(日) 18:54:34.65ID:Ug0/OrZC0
キー押しっぱなし病・ホットキーすり抜け病対策の研究
http://did2memo.net/2013/10/03/autohotkey-ctrl-key-is-stuck/
2017/10/16(月) 02:40:41.03ID:wsUgyV9w0
>>244
それになってるんだけど何かの拍子で管理者権限のツールが動かなくなる。Windows 10 Insider Previewだから何か変わっちゃったのか?前はいけたのか、最近Windows 10にしたからわからん
2017/10/16(月) 04:07:50.47ID:tduCt/4y0
MGLってAHK_LのインストーラのオプションからUI Accessを有効にしても効かないの?
2017/10/16(月) 04:13:04.63ID:RJWuaMVg0
>>248
なんでInsider Previewなんか使ってんの?
2017/10/18(水) 01:07:39.70ID:BXsLEC/o0
UpDownのRangeですが、小数点以下の数値は出来ませんか。
以下の様にしても、5から10までの5段階になってしまいます。
Gui, res:Add, UpDown, Range5.0-10.0
よろしくおねがいすます。
2017/10/18(水) 07:17:16.46ID:ycPUavpC0
50-100にしてgの中で割って再表示
2017/10/18(水) 11:46:51.26ID:BXsLEC/o0
サブラベルで処理するのですね。
やってみます、有難うございました。
2017/10/18(水) 15:45:22.45ID:000xPmmi0
続けて質問失礼します。
If MyVar Not Contains a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,^,\,@,[,],:,/,*

上記処理をする時にカンマとセミコロンを含めたいのですが、上手くいきません。
よろしくおねがいします。
2017/10/18(水) 18:37:36.90ID:000xPmmi0
お騒がせしましたが、これで対応できました。
If MyVar is Number
2017/10/21(土) 10:48:43.67ID:ib1iSRB60
既出かと思いますが、見つけられませんでした。
同じ状況の方いらっしゃるかと思うのですが、対処をご教示賜りたく。
よろしくお願いいたします。

windows10 pro 64bit
thunderbird 52.4 32bit
ロジクールM510
WheelAccel.ahkの加速は"0"でしてません。

WheelAccel.ahkにて、thunderbirdの全てのペインにおいて
thunderbirdをアクティブな状態でスクロールすると、ホイール1ノッチに対して一気に何行もスクロールしてしまいます。
非アクティブな状態では、通常(希望通り)の動きになります。

互換スクロールに指定すると、ホイールが効かなくなってしまいます。
thunderbirdでは一切機能させなくてもいいのですが、どうしたらいいでしょうか。。
2017/10/21(土) 11:07:15.17ID:zu1VgrM50
>>256
ahkスクリプト全終了させた状態ではどうなん?
thunderbird使ってないからわからんけど多分↓このあたりの予感

トラックボール コロコロ(((○ Part125©2ch.net
http://mevius.5ch.net/test/read.cgi/hard/1505627302/537-538
2017/10/22(日) 10:54:03.79ID:Dcuxbaqr0VOTE
ギャー
send,{shiftup} のことを今までぜーんぶ{shift up}と書いていたー
道理でへんな動きしてたんだ…
以上ですご清澄ありがとうございました
2017/10/22(日) 12:00:06.03ID:4CdFLK3a0VOTE
>>257
ありがとうございます。
WheelAccel.ahkを走らせていないときは、通常の動きをします。
スームーズスクロールはoffにしてましたが、onでも変わりません。
(´・ω・`)
2017/10/22(日) 14:32:51.29ID:L96ui5KXrVOTE
>>258
?
それで正常に動いてるなら別にそのままでも良いかも知れないが
盛大に誤解してそう
2017/10/22(日) 19:36:09.31ID:Dcuxbaqr0VOTE
>>260
あれれ、ウィキ見直したら確かに混在してる…表組みのほうはスペースなしで例示されてて、コード用例ではスペース入ってますね
でも自分の場合、今まで不要なShift押下げが発生してた(どうやらShiftとUpとが発生していた?)のがスペースなくすことによってスッキリ根絶されたので、ううむ謎です
2017/10/22(日) 20:33:35.27ID:L96ui5KXr
>>261
つ公式Help
2017/10/22(日) 23:00:48.87ID:h+7LhoKm0
>>259
失礼しました
うちのwin8 & ロジマウス(M505、M570)では問題が起きないため確認できないのですが
Hotkeysの先頭に以下追加でアクティブ時に機能OFFできると思います

#IfWinActive ahk_exe thunderbird.exe
WheelDown:: Send,{WheelDown}
WheelUp:: Send,{WheelUp}
#IfWinActive


蛇足ですがWheelAccel.ahkでは加速OFFにはできないようなので加速が不要な場合は
ここのWheelScroll.ahkで以下の設定にしてみて下さい
AcclMode = 0
AcclSpeed = 0
https://www6.atwiki.jp/eamat/pages/30.html
2017/10/23(月) 20:33:30.32ID:IGQCHjjB0
F8を押したら画面範囲内にあらかじめスクショ&ペイントで抽出しておいたjpg画像と一致する箇所があれば
そこにマウスカーソルが移動して一致箇所の左上でCtrl+右クリをするマクロを作りたいと思い、
始めてコードというものを書いているシロウトです。

F8::CtS()

CtS(){
BlockInput On
ImageSearch, foundX, foundY, 1266, 584, 1904, 856, *50 \Users\HK\Desktop\pics\alc.jpg
if ErrorLevel = 0
SendInput, {Click, %foundX%, %foundY%, Left, 1}
  Else If ErrorLevel = 1
MsgBox Icon could not be found on the screen.
If ErrorLevel = 2
MsgBox Could not conduct the search.
  BlockInput Off
}


上記を実行したところ(このときエラーはありません)
ErrorLevel = 2 の結果が返ってきます。
考えられる要因を教えてくださるエスパーの方、いらっしゃいましたら。。。(;´Д`)
2017/10/23(月) 20:44:49.90ID:oxsVTEnZ0
>>264
全角スペース
2017/10/23(月) 20:47:54.03ID:WCeYnLa+0
>>265
>>264の書き込みではつかっちゃいましたが

全角スペースは使用してないと思います(><;)
2017/10/23(月) 21:08:58.83ID:oxsVTEnZ0
>>266
画像ファイルをフルパス指定すれば
2017/10/23(月) 21:14:49.38ID:IGQCHjjB0
\Users\HK\Desktop\pics\alc.jpg

C:\Users\HK\Desktop\pics\alc.jpg
のフルパス指定にしましたが同じでした><;
2017/10/23(月) 21:17:38.32ID:vqubHTur0
>>264=266
デスクトップスクショの場合、自分は劣化の無いBMPで保存してそれ使ってたな
一度BMPで試してみては?(PNGも使えるようだけど自分は試したことない)
2017/10/23(月) 21:19:32.28ID:vqubHTur0
あ、リロードしてなかったorz
解決したみたいね>>269は忘れて良いよ
2017/10/23(月) 21:22:53.81ID:IGQCHjjB0
>>269
BMPで保存したところ
できました!!!!!!!
感動です!
皆さんありがとうございました
2017/10/25(水) 17:03:51.19ID:ypp7UERA0
>>263
ご返信賜り誠にありがとうございます。
なんだと言われてしまいそうですが、setpointにスムーズスクロールがあり
それをoffにすることで、何十ノッチも発生することはなくなりましたが、挙動がおかしかったため
setpointをアンインストールし、無事解決しました。
一部機能を使ってましたが、autohotkeyでまかなえますし!

firefox quantumのタブスイッチのため、autohotkeyを導入しましたが
ztopをやめて、一本化出来ました。
ありがとうございました。
2017/10/26(木) 00:31:46.15ID:X6UNjp0Ir
var =
(
<tag1 value1="0.0" value2="1.0">
<tag2>1.0</tag2>
</tag1>
<tag1 value1="2.0" value2="3.0">
<tag2>2.0</tag2>
</tag1>
) ;文の一番最後に改行が1個入ります
;これが連続するUTF-8(BOMなし)/改行LFの440KBの文書test.xmlを
;#MaxMem 1000 ;#MaxMemありなしで変化無し
FileEncoding, UTF-8-RAW
FileRead, var, *t %A_ScriptDir%\test.xml ;440KB
RegExMatch(var, "s)^<(tag1).+/\1>\n", $)
FileAppend, %$%, *%A_ScriptDir%\output1.xml ;test.xmlとまったく同じものになります(1)

;これを以下のようにするとvar変数を72.0KBに削らないとマッチしませんでした
2017/10/26(木) 00:32:21.09ID:X6UNjp0Ir
Loop
{
if(!RegExMatch(var, "s)(?:^<(tag1).+?>\n<(tag2)>\d+(?:\.\d+)?</\2>\n</\1>\n)+", $)) {
var := RegExReplace(var, "s)(^.+)(?:<tag1.+$)", "$1") ;マッチするまで末尾を削る
continue
}else {
MsgBox, %A_Index%周目でマッチした, ;4430周目でした
FileAppend, %var%, *%A_ScriptDir%\output2.xml ;72.0KB(2)
break
}
}
MsgBox, おわり
(1)の$変数には440KB代入できるのに
(2)ではvar変数が72.0KBになるまでマッチしないのはなぜでしょうか
#MaxMem 1000 では結果は同じでした
Loopの手前にVarSetCapacity(var, 1000000)を入れたらスクリプトがフリーズしました
環境古くてすいません v1.1.26.01 u32版 win7です
2017/10/27(金) 20:04:09.15ID:EJJiT1eZ0
AHKのエディタですが
Notepad++
サクラエディタ
秀丸エディタ
EmEditor
sublime
などがあるようですが、これらの中で、ラベルやホットキーへジャンプ出来るものは
どれですか
SciTEではラベル名を選択してF12を押すとラベルの個所へジャンプしてくれるし
ホットキーのリストも表示してくれるのですが、同じ機能を持っているエディタは
どれでしょうか
ちなみに、秀丸ではなさそうでした
2017/10/27(金) 21:59:52.86ID:rnKjM+z20
sakura 秀丸 その他のブラウザにタグジャンプ機能があるけど・・・
c言語専用?
2017/10/28(土) 01:37:13.87ID:3WINCwSX0
AHKはメジャー言語ではないので大抵のエディタではデフォルト対応はしていないと思う
AHK用のプラグインなりカスタマイズなりが必要になるのでは

ちなみに秀丸の場合はAHKシンタックスの強調表示定義ファイルを作ってやると
それを元にTagsファイル生成や単語補完などが可能になる
Tagsファイルを作っておくことでダイレクトタグジャンブで飛べるようになる

他のエディタも大抵はctags使えるみたいだし ctags形式のタグファイル吐き出せるスクリプトさえ書けば
お好みのエディタでダイレクトタグジャンブできるようになると思われ
2017/10/28(土) 01:43:48.93ID:LU+IQveF0
http://ahkwiki.net/Tools

AutoHotkey用のシンタックスハイライト、オートコンプリートなどの定義ファイルあり
2017/10/28(土) 02:09:08.35ID:kOR4GWlf0
DPIが高すぎるとMouseGestureLのジェスチャーツールチップが小さくて見えない & RR、LL、UU、DDのピクセル数判定が緩くなっちゃうのだけど、これってなんとかなんない??
2017/10/28(土) 06:26:09.85ID:Ctf6COgz0
>>276-278
秀丸エディターで、AutoHotkey_L.hilight、AutoHotkey_L.txt は入れています

タグジャンプですが、tagsファイルの作成でする方法と、Exuberant Ctagsを使ってプログラム実行でする方法を
やってみましたが、AHKには対応していませんでした。 ラベルは認識されません
ちなみに使い方が違うのかと思って、cppファイルで試してみましたがこちらは関数等はちゃんと認識されていました
ということで、ahk用には何か別の専用スクリプトとか用意しないとダメなようです
2017/10/28(土) 06:33:37.89ID:Ctf6COgz0
秀丸エディターではダイレクトジャンプを選ぶとgrepで探すというのがあるので
当分はこれでしますか
2017/10/28(土) 08:40:24.48ID:coB4BUvsr
ctagsは自分でルールを書けば解析されるよ
2017/10/28(土) 13:24:55.08ID:kOR4GWlf0
よく考えたらマルチディスプレイで高DPIと通常DPIのディスプレイが混在しているとジェスチャーの判定もおかしくなるしもうだめだ/(^o^)\
100px移動でジェスチャー判定していたとしたら、200%スケールしているディスプレイでは200px移動に変えないと実態としてずれる。
アドバンスナビのほうもソースコード見てみたけど辛うじて描画領域確保しているのがわかるだけでフォントが小さく表示される原因がわからん・・・
2017/10/28(土) 15:19:16.97ID:Ctf6COgz0
秀丸エディターですが、AutoHotkey_L.hilightファイルをいろいろ触ってみました
もともと入っていたC-function.hilightを参照しながら触ったのですが
91,^[a-zA-Z0-9]+:
として、これをtagsファイルの作成のときに選択すると出来なかったのですが
21,^[a-zA-Z0-9]+:
としてやると、tagsファイルにラベルも出てきてダイレクトタグジャンプが出来るようになりました
この91や21で協調文字の種類を決めているのはわかるのですが、タグの生成にも関わっているとか
いろいろとめんどくさいそうですが、タグ生成用のためのファイルは出来そうです
あとは、スレチなので、秀丸さんの方で聞いてきますか
2017/10/28(土) 19:06:53.26ID:3WINCwSX0
>>284
あらら自己解決してたかな
こっちでも調べてたんだけど飛び先ラベルとして認識させるには「行の強調」にしてやらないとダメっぽいね

> 21,^[a-zA-Z0-9]+:
これだけだとホットキーラベルとサブルーチンラベルにしか飛べないので関数にもジャンプさせるなら
149,^[_a-zA-Z0-9]*\(.*\)
を追加すると良さげ

ちなみにうちの.hilight
独自構築モノなのでwikiの強調定義とは互換ないです
https://ux.getuploader.com/autohotkeyl/download/124 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2017/10/28(土) 20:25:45.14ID:g6R5313m0
>>285
わざわざありがとう。DLして参考にさせてもらいました
hilightファイルの構造がどうなってるのかググっても良くわからなかったので試行錯誤してやるしかないです
でも目的はtagsファイルを作ることなので、tagsファイルは中を見ると構成が簡単そうなので、直接外部アプリ(DosやGnu)で
tagsファイルを作成することを考えてもいいかなとも思ったのですが、助かりました
2017/10/28(土) 21:30:38.60ID:3WINCwSX0
ごめん.hilightの中に構造説明のコメント付けてたんだけど長くなるので削っちゃった
秀丸エディタマクロヘルプのloadhilight文の項に強調定義フラグの意味が載ってるので
興味当たったら調べてみて下さい
2017/10/29(日) 06:33:32.61ID:QNF+jVue0
>>287
マクロヘルプのloadhilight見てきました。ありがとう。こんなところに書かれても見つからんわw
でも良くわかりました。 あとはColorSetだな
2017/10/29(日) 06:41:23.64ID:QNF+jVue0
>>287
ColorSet、こちらもわかりました。 マクロヘルプのconfigcolorにありました
頂いたahk20171028.hilightのColorSetのコメントの意味はこれだったのですね
これでもうほぼ理解できました。ありがとうございました
290名無しさん@お腹いっぱい。 (ニククエ 497d-xXVv)
垢版 |
2017/10/29(日) 13:56:57.31ID:KzWRlc+C0NIKU
開いているメモ帳のファイルパスを取得し、エクスプローラで開きたいんですがうまくいきません。

ComGet(WinTitle) {
if(WinTitle = "ahk_class XLMAIN"){
ControlGet, hwnd, hwnd, , Excel71, %WinTitle%
}else if(WinTitle = "ahk_class OpusApp"){
ControlGet, hwnd, hwnd, , _WwG1, %WinTitle%
}else if(WinTitle = "ahk_class PPTFrameClass"){
ControlGet, hwnd, hwnd, , paneClassDC1, %WinTitle%
}else if(WinTitle = "ahk_class Notepad"){
ControlGet, hwnd, hwnd, , Edit1, %WinTitle%
}
Window := Acc_ObjectFromWindow(hwnd, -16)
Loop,10
try{
Application := Window.Application
}catch{
if(WinTitle = "ahk_class XLMAIN"){
ControlSend, Excel71, {esc}, %WinTitle%
}else if(WinTitle = "ahk_class OpusApp"){
ControlSend, _WwG1, {esc}, %WinTitle%
}else if(WinTitle = "ahk_class PPTFrameClass"){
ControlSend, paneClassDC1, {esc}, %WinTitle%
}else if(WinTitle = "ahk_class Notepad"){
ControlSend, Edit1, {esc}, %WinTitle%
}
}
Until !!Application
return Application
}
291名無しさん@お腹いっぱい。 (ニククエ 497d-xXVv)
垢版 |
2017/10/29(日) 13:57:59.50ID:KzWRlc+C0NIKU
;エクスプローラでフォルダを開く
WinTitle := "ahk_class Notepad"
oNotepad := ComGet(WinTitle)
filePath := oNotepad.ActiveWindow.FullName
RunAs, %USERNAME%, %PASSWORD%
Run, explorer `/select`,"%filePath%"
RunAs

この様に書いたらエクセル、ワード、パワーポイントまではうまくいったんですが、メモ帳だけうまくいきません。どうかご教授を。
2017/10/29(日) 14:58:41.15ID:NgmpJOSW0NIKU
ifwinexist
winget processpath
run
2017/10/29(日) 15:57:39.21ID:oo5Bc3OZ0NIKU
メモ帳にはCOMが用意されていないみたいだね
素直に、名前を付けて保存
294名無しさん@お腹いっぱい。 (ニククエ 497d-xXVv)
垢版 |
2017/10/29(日) 16:17:30.91ID:KzWRlc+C0NIKU
>>293
ありがとうございます。スッキリしました。
2017/10/29(日) 23:34:38.22ID:sce/LU2/0NIKU
スクリプト&AutoHotKey初心者です
欲しいものは、アプリケーションキーAppsKeyを押すと
1回目 wキーを長押し
2回め wキー+8キーを長押し
3回目 動作無し
以降繰り返し
というものです。
何から手を付けていいのかわからないのでここで質問させて頂きました。
https://sites.google.com/site/ahktips/howto/helloworldにあることは確認しています。
どうか御教授お願いします。
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

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