[過去ログ] AutoHotkey スレッド part28 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
4: (ワッチョイ 6511-eEke) 2020/04/05(日)12:48 ID:KUQx6rxd0(1) AAS
脳内で書いてないで実際に動かしてみなよ
5
(1): (ワッチョイW 25e5-HXgt) 2020/04/05(日)15:14 ID:fo7yX2Dr0(1/3) AAS
その状態でAutoHotkey.ahkを動かす分にはいける
[AutoHotkey.ahk]
AAA := "aaAAaa"
a1::Return
a2::Return
b::MsgBox, % AAA
Return
includeは全てAutoHotkey.ahkとして展開されるので↑と同義になるから

ただしaとbのincludeを逆にしたらautoexrcuteが働かない
includeの位置は要注意
省7
6: (ワッチョイ cb76-8H9x) 2020/04/05(日)16:49 ID:GWmWDwN30(2/4) AAS
>>5
わかりました、ありがとうございます。
Includeは内容を展開しているだけだったのですね。
まずInclude元でAutoexecuteが開始し、Includeがあればその先のReturnまでAutoexecuteされ、
またInclude元に戻って、そのInclude元のReturnまではAutoexecuteされるものだと思っておりました。

自分のスクリプト郡は、Include先でReturnがあったためにそこでAutoexecuteが終わってしまっていた訳ですね。
7: (ワッチョイ cb76-8H9x) 2020/04/05(日)16:49 ID:GWmWDwN30(3/4) AAS
ところで以下ような感じに、ファイルごとに役割を分け、
またそれぞれのファイル内でしか使わない変数はそのファイル内に収めておきたいのですが、
その方法はありますでしょうか?(下の構成ではInputA.ahkの2行目でAutoexecuteが終わってしまいますよね。)

あまり美しくないですが、AutoHotkey.ahkの先頭にVariables.ahkのようなものをIncludeして、そこで変数リストを作るとかしかないですかね?

[AutoHotkey.ahk]
#Include InputA.ahk
#Include InputB.ahk
8: (ワッチョイ cb76-8H9x) 2020/04/05(日)16:50 ID:GWmWDwN30(4/4) AAS
[InputA.ahk]
textA := "A"
a::MsgBox, % textA
d::MsgBox, % (textA . "D")

[InputB.ahk]
textB := "B"
b::MsgBox, % textB
c::MsgBox, % (textB . "C")
9: (ワッチョイ 25e5-4JbH) 2020/04/05(日)17:54 ID:fo7yX2Dr0(2/3) AAS
test
10
(1): (ワッチョイ 25e5-4JbH) 2020/04/05(日)18:08 ID:fo7yX2Dr0(3/3) AAS
イニシャライズを各AHK内で完結させたいならsubかfunctionにしてcall
ただし全体のグローバル変数であるという事実は変わらんが

エラった時のpastbin AHKのハイライトもあるのね
外部リンク:pastebin.com

ただこれだと一時的に#includeをコメントアウトで外したいときにautoexecuteの
手直しも必要になるので islabel() isfunc() を入れたほうがいいかも
11
(1): (ワッチョイ cb76-8H9x) 2020/04/06(月)01:59 ID:QgAFECbT0(1) AAS
>>10
なるほど確かにこれなら実現できますね!
ありがとうございました、とても勉強になりました

ところで下のようにしてみたのですが、#Include では変数が使えないみたいですね。
何かいい案はないでしょうか?

というのも、実際は10以上のファイルがあるので、ダラダラ書くよりLoopで回したいものでして・・・

外部リンク:pastebin.com
12
(1): (ワッチョイW 25e5-HXgt) 2020/04/06(月)03:45 ID:pNj6d1Pb0(1) AAS
無理だが
いっそ関数ライブラリ化して全部 %A_ScriptDir%/Lib に押し込むという手もある
したらincludeそのものが不要になる
13
(2): (ワッチョイ e5b1-mnXZ) 2020/04/06(月)04:21 ID:8dTlIF+30(1/2) AAS
>>11
Includeするahk内で更にInclude出来るはずだぞ(その内容は「#Include 〜.ahk」だけでも良い)
だからメインahk(AutoHotkey.ahk)内でのInclude用ahkの名前は固定しといて
メインahkでそのahkファイルを書き換えすれば手直しは要らなくなると思う

例として、メインahkにIncludeするファイル名を「Include_ahk.ahk」とし

Include_ahk.ahk内は
-----------------------------------
#Include InputA.ahk
#Include InputB.ahk
-----------------------------------
省4
14: (ワッチョイ e5b1-mnXZ) 2020/04/06(月)04:28 ID:8dTlIF+30(2/2) AAS
>>13
>もしアレだったらMGLのスクリプトが参考になると思う
ごめん真っ新なMGLでは参考にはならないかもしれないのでこの件は忘れて
15
(1): (ワンミングク MMa3-YctG) 2020/04/06(月)10:48 ID:Tm/x8Nf+M(1) AAS
外部リンク[htm]:www.autohotkey.com
マニュアル読み直してたらv1.1.28以降はErrorlevelとコマンドライン文字列以外のすべての組み込み変数が有効とあるね
Loop,Filesのローカル組み込み変数はどうなんだろ
もし使えるなら↓みたいにできるのかも(出先からのなので試してはいない)
#include %A_SprictDir%
Loop, Files, %A_SprictDir%\*.ahk, F
If (A_LoopFileFullPath != A_SprictFullPath)
#include %A_LoopFileName%
16: (ラクッペペ MM4b-j0VC) 2020/04/07(火)09:25 ID:s8mR46Q4M(1/2) AAS
↓以下テンプレ(微修正)
----------------------------

!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
↑スレ立てする時は3行にして下さい

■配布元
外部リンク:autohotkey.com

■前スレ
AutoHotkey スレッド part27
省15
17: (ラクッペペ MM4b-j0VC) 2020/04/07(火)09:26 ID:s8mR46Q4M(2/2) AAS
■重要事項
オリジナルである、旧 "AutoHotKey" の開発は2009年9月で終了している。
現在は、そこからフォークした "AutoHotkey_L" が主流となり、2014年1月からは後のLが取れ
正式にAutohotkeyとして扱われるようになりました。
よって古いスクリプト(主にDllCall)は最新Verで動作しないものがあり、その場合はスクリプトの修正が必用です。

旧版のAHK1.0との変更点多数。新しい仕様や互換性についてはドキュメントを良く読むこと。
外部リンク[htm]:www.autohotkey.com
外部リンク:ahkwiki.net

※新規利用者には最新版を推奨しますが、AHK1.0(2009年9月までのVer)の利用者はAHK1.1への移行に際して
少なからず改修が必要となります。特に、旧流行らせるページの配布物(MouseGesture等)の多くは
省12
18
(1): (ラクッペペ MM4b-j0VC) 2020/04/07(火)09:44 ID:ni8KzYV1M(1/3) AAS
以下FAQ等

■実行環境
Q1:スクリプトに書いた日本語が文字化けしちゃうんだけど...
A1:スクリプトファイルを「UTF-8」の「BOM」付きで保存する。(AHK1.1)

Q2:初めて使うけどどれを使えばいいの?
A2:AHK1.1のユニコード版を推奨。
  旧流行らせるページの配布物をそのまま使う場合はAHK1.0を利用する事。
  64ビットOSでAHK1.1、32ビット版の使用は制約が多いので64ビット版を強く推奨。

■リマップ・ホットキー割り当て
Q1:[CapsLock(英数)][ひらがな][全角/半角]キーの割り当てがうまくいかないよ
省13
19: (ラクッペペ MM4b-j0VC) 2020/04/07(火)09:45 ID:ni8KzYV1M(2/3) AAS
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}
省13
20: (ラクッペペ MM4b-j0VC) 2020/04/07(火)09:46 ID:ni8KzYV1M(3/3) AAS
Q8:ジョイスティックのボタン1とボタン2の入れ替えなどはどうやってやるの?
A8:AutoHotkeyではできない。

Q9:[Ctrl][Shift][Alt]が押されっぱなしになる時がある。これってAHKのせい?
A9:AHKが原因の場合とそうでないときがある
  ○AHKが原因の場合
  AHKには、以下のような修飾キー付きのホットキーで修飾キー無しでキーを発効する場合、
  一時的に修飾キー押下を解除して、発効後に押下状態を再度設定する機構がある。
  しかしこのように発効するキーストロークが多い場合は、Sendコマンドが完了する前に
  物理キーが押下解除されてしまっている場合がある。この齟齬が押しっぱなしの原因となる。
   例) ^W::Send, {w 30}
省11
21: (ワッチョイW 25e5-3Fs8) 2020/04/07(火)13:28 ID:OicfBoSv0(1) AAS
テンプレ貼り乙
22: (ワッチョイ c676-Blqg) 2020/04/08(水)01:27 ID:2MlwBg4U0(1) AAS
皆さんありがとうございます。

>>12
今回は、関数に落とし込まない方針で行きます。

>>13
つまり、↑のPastebinで貼ったコードにあるincludeFilesはInclude_ahk.ahkの記述内容から取得して、各ahkの初期化セクションへGoSub
その後Include_ahk.ahk自体を読み込むということですか?
記述内容から読み出す方法がわからないので勉強してきます。

それから、MGLのスクリプトは現状読めない+あまり複雑にはしたくないので、もしかしたら現状のままメインahkで2箇所を修正する方針でいくかもしれません。

>>15
読みました。
省2
23
(1): (ワッチョイ 9f3e-kpEi) 2020/04/08(水)19:25 ID:hVpKLzMw0(1/2) AAS
ジョイスティックの傾きを
GetKeyState, X, JoyX, P
で取得しようとしても、「49.999237」の値しか取得できない。
だけど、autohotkeyのメニュー画面がアクティブの状態だと正常に取得できる。

他のウィンドウでも正常に取得できるようにするにはどうすればいいでしょうか
1-
あと 979 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.019s