AutoHotkey スレッド part26

■ このスレッドは過去ログ倉庫に格納されています
2018/04/25(水) 18:08:09.39ID:LmrG+Efz0
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512

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

■前スレ
AutoHotkey スレッド part25
https://egg.5ch.net/test/read.cgi/software/1505357560/

■日本語解説等
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)
2018/04/25(水) 18:08:50.08ID:LmrG+Efz0
■重要事項
オリジナルである、旧 "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)
2018/04/25(水) 18:09:56.45ID:LmrG+Efz0
■過去スレ
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/
2018/04/25(水) 18:10:28.71ID:LmrG+Efz0
以下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を再起動する。
2018/04/25(水) 18:11:04.96ID:LmrG+Efz0
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のジョイスティックサポートはかなり貧弱なのでプログラマブルにやる必要がある。
2018/04/25(水) 18:11:38.18ID:LmrG+Efz0
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, 窓使いの憂鬱 等のキーボードフィルタドライバを用いるアプリケーションを使っている
2018/04/25(水) 18:13:01.36ID:LmrG+Efz0
■ 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
2018/04/25(水) 18:13:41.91ID:LmrG+Efz0
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} にする。
2018/04/25(水) 18:14:14.78ID:LmrG+Efz0
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」に変更。
2018/04/25(水) 18:15:50.08ID:LmrG+Efz0
■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/
2018/04/25(水) 18:17:09.98ID:LmrG+Efz0
■派生版
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

※テンプレここまで
2018/04/25(水) 18:33:05.31ID:WfXMHUs0D
>>1
2018/04/25(水) 20:04:21.60ID:GF4dHQGk0
スレ立て乙

情報後出しする質問者ってほんと面倒くさいな
2018/04/26(木) 09:47:55.59ID:n4DMlqzA0
わざわざ文句たれる回答者も面倒くさいいけどな
2018/04/26(木) 13:40:08.34ID:vwRWVNXZ0
指摘してくれるうちが華
うちはもうめんどくさそうな質問者はスルーしてるわ

とりあえず次スレ建ってないうちに1000まで埋めるのは勘弁な 
2018/04/26(木) 16:58:43.17ID:DkF8shxO0
>>14
面倒くさいやつ発見w
2018/04/26(木) 17:02:54.87ID:38C04UHoa
うわどっちもめんどくせえ
このスレ要らなくね
2018/04/26(木) 17:07:15.87ID:QqPH1PF20
要らないと思うやつは見なけりゃいいだけ
2018/04/26(木) 19:53:03.58ID:dMnrJ+/E0
>>18
ほんとこれなんだが
最近多いよなスレが廃れるまで粘着アンチするガイジ
2018/04/26(木) 20:51:55.89ID:DlGBEGXR0
はい次の方
2018/04/29(日) 14:33:44.26ID:DpZ5UVTP0NIKU
ウィンドウスタイルについてお尋ねします。
ウィンドウ右上のバツボタンを非表示にするにはどうすればいいでしょうか?。
最小化や最大化の非表示は出来るんですよ。

https://sites.google.com/site/autohotkeyjp/reference/misc/Styles
2018/05/04(金) 04:22:49.25ID:xSAW4Ml30
1.1.28に上げたら反応良くなった気がする
気のせいかな
2018/05/04(金) 14:18:28.00ID:GcFBWfJy0
関数ライブラリの自動インクルードでマージされたファイルのAutoexecuteセクションは無視される
これは仕様で問題ないと思うけど

呼び出し元が
if true
 処理1
else
で終わっていると、処理1に続いて延々実行される

まあelseで終わるのがまともじゃないからまず引っ掛からないだろうけど
2018/05/04(金) 19:10:02.11ID:jys2WM8C0
>>21
バツボタンをピンポイントで非表示にするのはOS側の仕様でできなかったと思う
タイトルバーまるごと消していいならスタイルのどれかでできたはず
2018/05/04(金) 21:03:33.60ID:RMQ1LgDk0
>>24
タイトルバー非表示のウィンドウスタイル見つけました。
とりあえずこのまま様子見ていきたいと思います。
ありがとうございました。
2018/05/04(金) 23:39:23.14ID:RMQ1LgDk0
すみません、続いて質問です。
If A_ThisHotKey = esc
だった場合に次の処理に移行するにあたって、”esc”の部分をカラにしたいのですが出来ますでしょうか。
2018/05/05(土) 00:19:09.50ID:Do4xRxCi0
できない
あと見つけましたで終わらせないで結果も書くようにして
あとで同じことしたい人の参考にならんでしょ
2018/05/05(土) 00:55:49.00ID:zYXtUspU0
>>27
了解、以後気を付けます。
WinSet, Style, -0xC40000, A
2018/05/05(土) 01:04:43.22ID:lf6rRJKL0
質問なのです
AHKでタスクバーとスタートボタン消してるけど
ウィンドウを最大化してもタスクバーのあった場所までしか広がらない
これは実際は見えなくしてるだけで存在はしてるって解釈でいいのかな?

できればウィンドウを最大化した時に画面いっぱいに広げたいんだけど何か方法は無いだろうか


#T:
if TaskBarHide =
{
WinHide, ahk_class Shell_TrayWnd
WinHide, ahk_class Button
TaskBarHide = 1
}
Else
{
WinShow, ahk_class Shell_TrayWnd
WinShow, ahk_class Button
TaskBarHide =
}
Return
2018/05/05(土) 02:15:18.79ID:E5it3ph40
>>29
OS側の設定で「タスクバーを隠す」にしとけば?

>>28
便乗質問させてほしいんだけどこの方法でタイトルバー消したウィンドウを元に戻すコマンドってありますか?
2018/05/05(土) 02:24:07.73ID:zYXtUspU0
>>30
-を+にするだけです。
WinSet, Style, +0xC40000, A
2018/05/05(土) 02:27:06.59ID:E5it3ph40
>>31
ありがとうございます
2018/05/05(土) 02:30:45.11ID:zYXtUspU0
>>32
ちなみにトグル動作は以下になります。

@::
WinGet Style, Style, A
If(Style & 0xC40000) {
WinSet, Style, -0xC40000, A
} else {
WinSet, Style, +0xC40000, A
}
return
2018/05/05(土) 06:28:48.21ID:lf6rRJKL00505
>>30
隠すのが嫌だから消したいんだろボケ
2018/05/05(土) 06:35:45.56ID:5xwdF/wU00505
>>33
@::WinSet, Style, ^0xC00000, A
2018/05/05(土) 06:38:49.75ID:tBQxxFrn00505
>>34
エスパースレじゃないんだから条件あるなら先に書けよカス
後出し厨の分際で威張るな
2018/05/05(土) 07:38:14.09ID:lf6rRJKL00505
>>36
死ねよゴミ豚チンカス野郎
2018/05/05(土) 07:38:37.06ID:lf6rRJKL00505
>>36
死ね
2018/05/05(土) 07:39:44.03ID:lf6rRJKL00505
>>36
お願い死んでくださいハゲ
40名無しさん@お腹いっぱい。 (コードモ 4a87-+sgt)
垢版 |
2018/05/05(土) 07:40:01.25ID:lf6rRJKL00505
>>36
死ねゴミ
2018/05/05(土) 07:44:22.87ID:XmqP7MH/00505
なんか朝から顔真っ赤なのがいるな
NGName 4a87-+sgt
2018/05/05(土) 07:48:01.85ID:lf6rRJKL00505
みんな条件あるかAHK使ってんだろボケ
わざわざ聞くなよカス

>>41
オマエも死ねデブ
2018/05/05(土) 07:49:09.72ID:lf6rRJKL00505
ハゲ
2018/05/05(土) 07:49:28.70ID:lf6rRJKL00505
ハゲ
2018/05/05(土) 07:52:00.96ID:lf6rRJKL00505
このスレの奴らは玄人気取りになろうと必死な池沼ばかりのゴミが多い
2018/05/05(土) 07:58:50.00ID:lf6rRJKL00505
ば〜か
2018/05/05(土) 08:01:13.31ID:lf6rRJKL00505
>>30
オマエも死ね
2018/05/05(土) 08:20:50.07ID:Do4xRxCi00505
空気を読まずにマジレスすると
タスクバー非表示にするタイミングで一緒に"自動的に隠す"も実行すりゃいいだけじゃないの?
https://teratail.com/questions/53160

winapiをAHKで使う方法については説明しない
2018/05/05(土) 08:50:57.89ID:lf6rRJKL00505
だから、隠すと消すでは意味が違うだろぉおおおおおおお
このハゲーぇええええええええええええ

自動的に隠すプログラムで実証済みだボケ
2018/05/05(土) 08:55:59.29ID:Do4xRxCi00505
消すだけ、隠すだけでは足りないなら 消す+隠す でいけばいいじゃない
2018/05/05(土) 09:57:09.36ID:lf6rRJKL00505
俺はオマエラに殺された
絶対許さない
2018/05/05(土) 10:56:34.36ID:pLzR2m2h00505
2018/05/05(土) 15:57:39.34ID:Vq+lHIqX00505
>>48
今度からはちゃんと空気読んで池沼は相手にしないように心掛けましょう
2018/05/05(土) 17:48:36.62ID:lf6rRJKL00505
>>53
死んでください
2018/05/05(土) 19:26:41.14ID:Do4xRxCi00505
うまく行かなかったようで何より
2018/05/05(土) 19:56:26.44ID:lf6rRJKL00505
おまえらみたいな馬鹿とは全く会話が成り立たないことに気づいた
2018/05/06(日) 01:58:51.80ID:EY9d64qI0
すみません、質問です。

DetectHiddenWindows, On
SetTitleMatchMode, 2
PostMessage, 0x111, 65305,,, Script.ahk

このコマンドはサスペンドをトグルで動作させます。
明確にオンを送信、オフを送信するにはどうすれば良いですか?。
よろしくお願いします。
2018/05/06(日) 02:31:10.42ID:2Sg2f0BA0
送るの独自メッセージにしてOnMessageで受ければ
2018/05/06(日) 02:55:34.32ID:EY9d64qI0
>>58
ああ、できそうです。
ちょっと待ってください。
2018/05/06(日) 03:08:35.08ID:EY9d64qI0
やっと出来ました、結果を張っておきます。
スマートじゃないかもしれませんけけど。

;送信側.ahk
DetectHiddenWindows, On
SetTitleMatchMode, 2

1::PostMessage , 1919, 1, , , Recieve.ahk ;Suspendオン
2::PostMessage , 4545, 1, , , Recieve.ahk ;Suspendオフ


;受信側.ahk
OnMessage( 1919, "1919" )
OnMessage( 4545, "4545" )
return

1919( wParam, lParam, msg, hwnd )
{
If( wParam = 1 )
Suspend, On
}
Return

4545( wParam, lParam, msg, hwnd )
{
If( wParam = 1 )
Suspend, Off
}
Return
2018/05/06(日) 04:58:52.30ID:ZNom+fkk0
自演乙
62名無しさん@お腹いっぱい。 (ワッチョイ 1eec-wOqf)
垢版 |
2018/05/06(日) 13:48:58.27ID:l4DQHX+J0
ジョイスティック入力についてお願いします。
ボタン割り当てでjoy1~32までは問題なくできたのですが、joy33以降でエラーがでます。
joy33以降も割り当てる方法をお願いします。
使用機器はCLIP STUDIO TABMATEです。
2018/05/06(日) 16:52:02.92ID:6g8UgXkD0
仕様上32ボタンまでしか扱えない
http://ahkwiki.net/KeyList#.E3.82.B8.E3.83.A7.E3.82.A4.E3.82.B9.E3.83.86.E3.82.A3.E3.83.83.E3.82.AF
2018/05/06(日) 18:58:38.04ID:E3SSUCLf0
>>62
ハードにF13〜F24割り当てたら44ボタンまでいけそうだけど
もってないから自分で試してみて
2018/05/07(月) 20:12:41.82ID:PFka6De50
数年前にこのスレで色々質問しながら、以下のようなスクリプトでディスプレイ電源状態を取得していました。
これは AHK U32 では今でも動くのですが、U64 にしたら動かなくなりました。
UInt を UInt64 にしたり Ptr にしたりするのだと思うのですが、DllCall のことはよく分かっていません。
どなたかご指南いただけないでしょうか。

Init:
hRecipient := WinExist()
DISP_GUID := "{6fe69556-704a-47a0-8f24-c28d936fda47}"
VarSetCapacity(DISP_STAT, 16, 0)
DllCall("ole32\CLSIDFromString", "UInt", &DISP_GUID, "UInt", &DISP_STAT)
hDisp := DllCall("RegisterPowerSettingNotification", "UInt", hRecipient, "UInt", &DISP_STAT, "UInt", 0)
OnMessage(0x0218, "DispStatChange")

Subroutine:
DispStat := NumGet(lParam + 16 + 4) ; <- ここにディスプレイ電源の状態が反映される

参考ページ
https://msdn.microsoft.com/en-us/library/aa373195%28VS.85%29.aspx
https://msdn.microsoft.com/en-us/library/aa373196%28v=vs.85%29.aspx
2018/05/07(月) 20:20:37.01ID:PFka6De50
一部間違えてました。subroutine のところは以下に訂正です。

DispStatChange(wParam, lParam, msg, hwnd)
{
global DispStat
DispStat := NumGet(lParam + 16 + 4)
}
2018/05/08(火) 00:26:27.03ID:3k99+Zl90
以前のスレはコチラでした
https://anago.5ch.net/test/read.cgi/software/1422427426/197-198
2018/05/08(火) 07:36:20.82ID:eAnc/ZRN0
Ctrl+Bとか、何かのキーを押したら、MsgBoxで取得した値を表示するスクリプトを
書いてくれたら実験に協力しようという気になる人が増えると思う。
U32ではこのスクリプトでこのように表示されていましたが、U64では○○ですとか。
2018/05/08(火) 08:58:50.45ID:4lleQLIXH
#SingleInstance, FORCE
Gui, +LastFound
hRecipient := WinExist()
DISP_GUID := "{6fe69556-704a-47a0-8f24-c28d936fda47}"
VarSetCapacity(DISP_STAT, 16, 0)
DllCall("ole32\CLSIDFromString", "UInt", &DISP_GUID, "UInt", &DISP_STAT)
hDisp := DllCall("RegisterPowerSettingNotification", "UInt", hRecipient, "UInt", &DISP_STAT, "UInt", 0)
OnMessage(0x0218, "DispStatChange")
OnExit("ExitSub")
SetTimer, DispTimer, 1000
Return

DispStatChange(wParam, lParam, msg, hwnd)
{
global DispStat
DispStat := NumGet(lParam + 16 + 4)
}

ExitSub()
{
global hDisp
DllCall("UnregisterPowerSettingNotification", "UInt", hDisp)
}

!F10:: Msgbox, % DispStat ? "Display On" : "Display Off"

DispTimer:
If DispStat
Return
Msgbox, % DispStat ? "Display On" : "Display Off"
ExitApp
2018/05/08(火) 09:02:07.82ID:4lleQLIXH
>>68 ありがとうございます。
上記 >>69 は U32 で単独動作する AHK スクリプトです。
Windows 10 x64 1803 + AHK U32 1.1.28.02 で確認しました。
Alt + F10 では "Display On" と表示されます。また画面が消えると "Display Off" と表示して終了します。
これを AHK U64 で動作するようにしたいのですが、どなたかご助言いただけないでしょうか。
2018/05/08(火) 09:04:01.30ID:4lleQLIXH
連投失礼いたします。
>>69 を AHK U64 上で動かすと、画面が消えたことが認識できないことが問題点です。
2018/05/08(火) 10:02:38.02ID:eAnc/ZRN0
>>69
私の環境では、NumGetのところを
DispStat := NumGet(lParam + 16 + 4,0,"UInt")
にすると Display Off の表示が確認できましたよ。
2018/05/08(火) 14:34:21.89ID:x9o+pxbr0
>>72 私のところでも正常動作しました。ありがとうございました!
しかし ,0,"UInt" を付けることで何が違うのか良く分かりません。
もし宜しければ教えていただけないでしょうか。
2018/05/08(火) 23:14:26.94ID:eAnc/ZRN0
>>73
U32とU64で動作が違うというので、怪しい箇所がそこだと予想しただけなので、
実際にどのような処理の違いがあるのかは分かりませんが、
OSが32bitか64bitかによって、メモリ参照系関数でパラメータを省略した時の動作が変わるのは
ありがちということで。
2018/05/08(火) 23:32:04.34ID:BpdqTmJx0
指定した座標値と座標値の間の数値を毎回ランダムに選んでにクリックさせることは可能ですか?
76名無しさん@お腹いっぱい。 (ワッチョイ 1e35-NrvC)
垢版 |
2018/05/09(水) 08:43:34.91ID:4z3a6k9s0
Numpad1 & Numpad2::
CoordMode,Mouse,Screen
Random(min,max) {
Random, out, %min%, %max%
return out
}
MouseClick, , % Random(890,940), % Random(670,730), , 5,
Sleep, 1000
MouseClick, , % Random(400,450), % Random(670,730), , 5,
Sleep, 4500
MouseClick, , % Random(250,450), % Random(240,400), , 5,
Send, 1
Send, Q
MouseClick, , % Random(530,610), % Random(230,270), , 5,
Send, 1
Send, Q
Sleep, 1000
MouseClick, , % Random(250,450), % Random(240,400), , 5,
Send, {F5}
MouseClick, , % Random(530,610), % Random(230,270), , 5,
Send, {F5}
Sleep, 5000
MouseClick, , % Random(158,325), % Random(509,541), , 5,
MouseClick, , % Random(653,819), % Random(509,545), , 5,
Return

ttps://autohotkey.com/board/topic/93034-random-mouse-click-within-specific-range/
ここ見てこのような形で解決できました
2018/05/09(水) 08:54:31.30ID:qIZ333Sy0
>>76
キー割り当てが仮のものじゃないとすると、テンキー入力で 123 とか素早くタイプすると誤爆しそうな予感。
2018/05/09(水) 11:09:38.07ID:4z3a6k9s0
>>77
動作させつつscriptを編集する最中、見事誤爆しまくりだったのでwin keyに割当て直しました…。
2018/05/11(金) 15:02:48.96ID:GZ4fS0Ie0
質問なのですが、マウスのサイドボタンを押している間をAltの押しっぱなしにしたくて以下のように書きました

xbutton1::send,{alt down}
return

xbutton1 up::send{alt up}
return

ゆっくり操作するには問題ないのですが、ボタンの押してから離すまでの間隔が早すぎる場合
altキーが押しっぱなし状態になってしまいます
これが押しっぱなし病でしょうか?
なにかボタンを素早く操作しても押しっぱなしにならないようなうまい書き方はないでしょうか?
2018/05/11(金) 15:33:52.86ID:FitVeey70
早すぎてdownより先にupが発生してるとかでは
SetTimerとかSleepで{alt up}を少し遅らせてみたらどうだろうか
2018/05/11(金) 15:52:12.97ID:GZ4fS0Ie0
>>80
SetTimeはどう使うのでしょうか?
Sleepは色々入れてみましたが効果なしでした
2018/05/11(金) 16:30:08.12ID:WPPdckIF0
xbutton1::alt

って無理なんだっけ?
2018/05/11(金) 17:34:53.06ID:+f4qK3bT0
単一キーのdownは押しっぱなし病の元
2018/05/11(金) 18:09:44.97ID:1zMSR+x6a
Hookとかそのへんのおまじないで治ることもある
2018/05/11(金) 22:07:05.40ID:9yuFSHXX0
#ifwinactive, ahk_exe abc.exe
で、ahk_exe abc.exeの部分をconstでいいので変数にしたいのです

たとえば、
title=ahk_exe abc.exe とかして
#ifwinactive, %title%
とか出来ませんか。 スクリプト全体に渡ってこのようなことが出来れば、titleを変えるだけでいろいろと便利なのですが
2018/05/11(金) 22:14:47.29ID:FgREsXqR0
>>85
#If WinActive(title)
2018/05/11(金) 22:15:54.53ID:9yuFSHXX0
ありがとうございました
2018/05/11(金) 22:35:14.67ID:wgcvYVTT0
>>79
近いことやってるけど、押してる間じゃ無くてトグルでやってる。

*AppsKey::Send % (t:=!t) ? "{Shift Down}" : "{Shift Up}"
2018/05/12(土) 03:50:58.79ID:ElsJxBgC0
>>82
ほんとだ、普通にそれで出来ました
その書き方だと単体で使用するにはどれだけ高速にボタンを押し離ししても押しっぱなしは生じないのですが
条件を付けたりすると、やはりボタンの素早い操作には処理が追いつかないようで押しっぱなしが生じます
自分はyoutubeのプレイヤー上だけで動作するように下のように条件を付け足したらやはり押しっぱなしが生じるようになりました

XButton1::
PixelGetColor, color, 1880 , 200
PixelGetColor, color2, 1915 , 140
MouseGetPos,xpos,ypos
if (color == 0xFFFFFF && color2 == 0xCDCDCD && 510<xpos && xpos<1360 && 195<ypos && ypos<670)
{
XButton1::alt
return
}
else
{
MouseClick,MIDDLE
return
}

>>88
三項演算というやつでしょうか?
すいません、もう少し具体的に教えていただけないでしょうか
2018/05/12(土) 07:41:50.79ID:D09dT/mX0
>>89
↓こんなので良いんじゃないかな?

#if checker()
XButton1::alt
#if

checker()
{
PixelGetColor, color, 1880 , 200
PixelGetColor, color2, 1915 , 140
MouseGetPos,xpos,ypos
if(color == 0xFFFFFF && color2 == 0xCDCDCD && 510<xpos && xpos<1360 && 195<ypos && ypos<670)
{
return 1
} else {
return 0
}
}
2018/05/12(土) 09:07:21.06ID:q3q1kDjq0
>>89の書き方だとラベルの二重定義になってると思うんだがエラーにならずに動いてるん?
2018/05/12(土) 10:36:47.40ID:ElsJxBgC0
>>91
特にエラーは出ずに動きました

>>90
その書き方でかなり押しっぱなしは発生しなくなったのですがそれでも数十回に一回は発生します
そこで xbutton1 up::send,{Alt up} を書き足して、押しっぱなしが発生した場合でも即座に解除されるようにしました
しかしこれだとフォーカスがメニューバーに移るのでその後にyoutubeのプレイヤー下部をクリックさせてフォーカスを
プレイヤーに戻るようにして、最終的に下のように書いたら上手くいきました、ありがとうございました

SetTitleMatchMode, 2
#if checker()
xbutton1::alt
return
xbutton1 up::
send,{Alt up}
MouseMove,860,660,0
MouseClick,left
MouseMove,900,420,0
return
#if
checker()
{
PixelGetColor, color, 1880 , 200
PixelGetColor, color2, 1915 , 140
MouseGetPos,xpos,ypos
if(color == 0xFFFFFF && color2 == 0xCDCDCD && 510<xpos && xpos<1360 && 195<ypos && ypos<670 && WinActive("YouTube - Mozilla Firefox"))
{
return 1
} else {
return 0
}
}
2018/05/12(土) 12:10:18.14ID:mbfaXoIA0
ブラウザによってはアクセラレーターキーを無効化出来る設定があるぜよ
2018/05/12(土) 21:26:21.82ID:rCHokzEy0
SetKeyDelay, , 500
RButton::
Send, {RButton}
Return

SetKeyDelayでPressDurationを指定してもマウスボタンには利きません
SetMouseDelayにはPressDurationの設定がありません
マウスボタンを押してから離すまでの時間を指定するには
Send, {RButton Down}
Sleep Up
2018/05/12(土) 21:27:53.07ID:rCHokzEy0
スミマセン途中で誤送信してしまいました
Send, {RButton Down}
Sleep, 500
Send, {RButton Up}
とその都度Sleep入れるしか無いのでしょうか?
2018/05/13(日) 02:37:32.12ID:f1BK+2eu0
>>92 のスクリプトを試しに下のように書き換えたら chcker() の条件を全く無視して動作するようになりました

SetTitleMatchMode, 2
#IfWinActive,YouTube - Mozilla Firefox
if (checker()){
xbutton1::alt
return
xbutton1 up::
send,{Alt up}
MouseMove,860,660,0
MouseClick,left
MouseMove,900,420,0
return

checker()
{
PixelGetColor, color, 1880 , 200
PixelGetColor, color2, 1915 , 140
MouseGetPos,xpos,ypos
if(color == 0xFFFFFF && color2 == 0xCDCDCD && 510<xpos && xpos<1360 && 195<ypos && ypos<670 )
{
return 1
} else {
return 0
}
}
#IfWinActive

if(checker()) のように自分で定義した関数はifの中に使えないのでしょうか?
2018/05/13(日) 03:29:16.70ID:f1BK+2eu0
すいません、if (checker()){ } の最後の } が抜けてます
2018/05/13(日) 07:42:47.80ID:PU8DYjWs0
リマップとホットキースクリプトの違いなど、いろいろとツッコミどころがあったけど、
動作しているならまぁいいかと思っていましたが、こうなってくると、もう、
具体的に何が目的なのかを書いてくれた方が良いかもね。
全く別のアプローチで解決する可能性があるので。
2018/05/13(日) 08:17:14.33ID:f1BK+2eu0
>>98
目的はfirefoxのEnhancer for YouTubeというアドオンを使うと
マウスカーソルがyoutubeのプレイヤー上にある時に、alt+マウスホイール上下で
ボリュームを調整できるのでこれをマウス操作だけで完結できるように
マウスサイドボタンにaltを割り当てるということです

ちなみに if(checker()) が機能しないのは仕様でしょうか?
それとも他に書き方があるのか、 #if checker() にしないと駄目ということでしょうか?
2018/05/13(日) 08:25:28.46ID:tzlDO4vq0
まあ>90の段階でこうなる予感はしてた

#ifとifの違いをきちんと把握しよう
ifはラベルの外に書いても機能しない
ifwinactiveの確認が必要ならcheckerの中に入れ込んで
#if checker() の形は崩さないようにする

ていうか動いてるみたいだからスルーしてたけど
xbutton1::alt (リマップ) と xbutton1 up:: て同時に使って大丈夫なんだっけ?
2018/05/13(日) 08:39:56.55ID:PU8DYjWs0
>>99
じゃ、こういうことなのかな

#IfWinActive,YouTube - Mozilla Firefox
xbutton1 & WheelUp::Send,!{WheelUp}
xbutton1 & WheelDown::Send,!{WheelDown}
#IfWinActive
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

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