X



AutoHotkey スレッド part24 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん@お腹いっぱい。 転載ダメ©2ch.net (ワッチョイ 997d-+Qhn)垢版2017/02/15(水) 18:04:32.01ID:kshCKhXn0
!extend:checked:vvvvv:1000:512と次スレを立てる際は1行目に記入してください

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

■前スレ
AutoHotkey スレッド part23
http://potato.2ch.net/test/read.cgi/software/1470936221/

■日本語解説等
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)
0002名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)垢版2017/02/15(水) 18:09:06.23ID:kshCKhXn0
■重要事項
オリジナルである、旧 "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)
0003名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)垢版2017/02/15(水) 18:10:01.04ID:kshCKhXn0
■過去スレ
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/
0004名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)垢版2017/02/15(水) 18:12:28.64ID:kshCKhXn0
以下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を再起動する。
0005名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)垢版2017/02/15(水) 18:13:24.86ID:kshCKhXn0
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のジョイスティックサポートはかなり貧弱なのでプログラマブルにやる必要がある。
0006名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)垢版2017/02/15(水) 18:13:52.08ID:kshCKhXn0
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, 窓使いの憂鬱 等のキーボードフィルタドライバを用いるアプリケーションを使っている
0007名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)垢版2017/02/15(水) 18:14:20.95ID:kshCKhXn0
■ 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
0008名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)垢版2017/02/15(水) 18:15:23.33ID:kshCKhXn0
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} にする。

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」に変更。
0009名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)垢版2017/02/15(水) 18:15:52.21ID:kshCKhXn0
■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/
0010名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)垢版2017/02/15(水) 18:19:16.36ID:kshCKhXn0
■派生版
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

※テンプレここまで
0012名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)垢版2017/02/16(木) 01:25:51.17ID:kR5g/uiD0
質問です。

ウィンドウのリサイズのホットキーを作成してみました。
;ウィンドウリサイズ
#!Numpadadd::
winsize()
return

winsize(){
WinMove,ahk_class Chrome_WidgetWin_1,,1300, 100,1200,1500
}

これでwinキーaltキーを押しながらテンキーの+を押せばウインドウがでかくなります。
ただ、これはGoogleクロームのウィンドウだけです。
これをその都度のアクティブウインドウすべてを対象にしたいのですが、
ahk_class Chrome_WidgetWin_1 ここを空欄にすると全く動いてくれなくなります。
対象をすべてに広げるのはどうすればよいでしょうか?
よろしくお願いします。
0015名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)垢版2017/02/16(木) 02:04:49.72ID:kR5g/uiD0
>>13
読んでみます

>>14
パットウィンドウを開いたときに小さい場合、簡単に大きくするのが目的なので
現在アクティブなウィンドウのみに作用できればそれでOKなんですが、
今は指定したタイトルのウィンドウ(アクティブでない場合も作用してしまう)にしか作用してくれないです。
0017名無しさん@お腹いっぱい。 (ワッチョイ 2b13-eq+O)垢版2017/02/16(木) 13:11:49.55ID:jjXXp67P0
パソコン2台モニター4枚使っています
で、パソコンAのマウス、キーボードでパソコンBも操作していて、Mouse wituout Borders(MWB)を使っています

パソコンAでコピーしたテキストはこのMWBを使えばパソコンBでペーストできるのですが、
パソコンAでテキストをコピーすると、パソコンBである処理をさせるというのを自動でしたいのです

パソコンAのAHKスクリプトで、パソコンBのスクリプトを作用させることって出来ますか
0021名無しさん (ワッチョイ 2baf-V1oq)垢版2017/02/16(木) 23:12:05.79ID:ye2J2HHb0
>>16
ウィンドウサイズの変更なら、このあたりが参考になると思う
http://autohotkey.s365.xrea.com/window_show.html
ポップアップメニューにするなら
http://blog.blueblack.net/item_407
キーボード操作にしたいのなら、CoordMode,Mouse,Screen〜の4行はいらないんじゃないかな
ついでに、
http://ahkwiki.net/Menu#.E3.82.BF.E3.82.B9.E3.82.AF.E3.83.88.E3.83.AC.E3.82.A4.E9.96.A2.E4.BF.82
>メニューアイテム名に &a のように & に続いて英数字を〜
を組み込めば、キーボードだけで柔軟にサイズ・位置変更ができると思う
0022名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)垢版2017/02/17(金) 00:29:57.50ID:waXhf69C0
>>21
ありがとうございます。自分は最近大きなモニターを買ったり前から持っていたモニターと併せて3枚にしてみたりしていて
新しく開くウインドウがあまりに小さく遠くに開いてしまうことが多かったので
簡単にメインの大きなモニターの中央にそれなりに大きくするコマンドを作成したかったのですが、
いざやってみると全部同じ位置に集まってしまうのでwトグルでもとに戻したりしたいなと思い、
ifとかいろいろ組み合わせて、一つのウインドウを拡大→元通り→拡大 を同じ操作でトグルさせること自体はできたのですが、
途中で別のウィンドウを触ってしまうとメッチャクチャになってしまうwことが判明しました。
基本的なフローが頭にできていないからダメなんですけど、

隅っこにウィンドウが開いてしまった→操作A大きくして中央に移動→別のウィンドウをクリック(それなりになにか操作)
→さっきの大きくしていたウィンドウをクリック→操作A元の場所に戻す

などできるようにするには多分ウィンドウ特定する固有の値を取得してそれぞれの状態を
触れたウィンドウ全部についてどんどん蓄積していかなくてはならないのかなーなどと考えています。
道のりは長そうです。
0023名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)垢版2017/02/17(金) 00:33:08.13ID:waXhf69C0
お恥ずかしい限りですが、作ったスクリプトはコレです。
マウスの中ボタンプラス左クリックでトグル操作するようにしました。
これだと一つのウィンドウだけいじってる間は問題ありませんが、
途中でほかのところを触ったとたんにぐちゃぐちゃになります。


;ウィンドウリサイズ
MButton & LButton::
if tog = 1
Gosub,Label1
else
Gosub,Label0
return

Label0:
WinGetPos, X, Y, Width, Height,A
WinMove,A,,1300, 100,1200,1500

tog = 1
; MsgBox %tog%
return

Label1:
WinMove,A,,%X%, %Y%,%Width%,%Height%

tog = 0
; MsgBox %tog%
return
0028名無しさん@お腹いっぱい。 (ワッチョイ 8204-nViG)垢版2017/02/17(金) 15:54:12.08ID:IGN6zQZQ0
26>>
$+::
KeyWait,+, T0.3
if ErrorLevel
send,{Shift}
else
send,+#{m}
keywait, Shift
return
です。
ほかの人が作ったものを自分で改変したものです。もともとは
$m::
KeyWait,m, T0.3
if ErrorLevel
send,#{m}
else
send,{m}
keywait, m
return
です。
0029名無しさん@お腹いっぱい。 (JP 0Hea-eq+O)垢版2017/02/17(金) 16:47:23.91ID:1vTfdLX7H
そもそも Shift+Win+m の組み合わせはahk関係無く使用できないのでは?
キー入力検出ソフトでも Shift+Win+m を同時押ししても検出できないし
ちなみに Shift+Win+n や Ctrl+Win+m などは使える
OSが認識できないものはahkでも当然無理だし送ることも受けることも出来ない
0031名無しさん@お腹いっぱい。 (ワッチョイ 8204-nViG)垢版2017/02/17(金) 18:28:20.86ID:IGN6zQZQ0
>>30これでよいのですか?
$LShift::
KeyWait,LShift, T0.3
if ErrorLevel
send,{LShift}#{m}
else
send,{LShift}
keywait, LShift
return
しかし、これだと、win+mと同じ動作をしてしまいます。
私はwin+mで最小化したウィンドウをShift長押しで開きたくて、そのコマンドがwin+Shift+mなのですが、3キー同時出力ができず、
なぜかwin+mの動作と一緒になってしまい、ウィンドウが最小化してしまいます。
0035名無しさん@お腹いっぱい。 (ワッチョイ 3ff7-eq+O)垢版2017/02/18(土) 07:29:39.06ID:OYYffKZK0
OnClipboardChangeについてです
Wikiにある例で、

#Persistent
return
OnClipboardChange:
ToolTip Clipboard data type: %A_EventInfo%
Sleep 1000
ToolTip ; Turn off the tip.
return

と書いていたとします
で、このスクリプトを最初から起動するときはいいのですが、
リロードするときは、リロードした瞬間にこのルーチンが起動して
ツールチップが表示されてしまいます。コピーはしていないのに。
リロードした瞬間にOnClipboardChange:に入らないようにするには
どうしたらいいですか

ちなみに今は変数を使ってスクリプト先頭に flag = 1 として

OnClipboardChange:
if flag = 1 return
ToolTip Clipboard data type: %A_EventInfo%
Sleep 1000
ToolTip ; Turn off the tip.
return

とかやって誤魔化しています
また、#Persistentはあってもなくても同じです
0036名無しさん@お腹いっぱい。 (ワッチョイ 3ff7-eq+O)垢版2017/02/18(土) 07:47:06.41ID:OYYffKZK0
訂正します。 最初から起動するときもやはりOnClipboardChangeに入っていました
Wikiにも
このラベルは、スクリプトが開始された直後にも実行される。
と書いています
しかし、

flag = 1
Sleep, 1000
flag = 0
return
OnClipboardChange:
if( flag > 0 )
return
ToolTip Clipboard data type: %A_EventInfo%
Sleep 1000
ToolTip ; Turn off the tip.
return

とすると、回避できます。これしか方法はないのかな
0037名無しさん@お腹いっぱい。 (ワッチョイ c37d-Z7AI)垢版2017/02/18(土) 08:18:26.79ID:Hk0iB5Hc0
>>36
https://autohotkey.com/docs/commands/OnClipboardChange.htm

この例は、スクリプトが最初に起動したときに関数が呼び出されないことを除いて
OnClipboardChangeと同じです。クリップボードの内容が変更された場合のみです。

#Persistent
OnClipboardChange("ClipChanged")
return

ClipChanged(Type) {
ToolTip Clipboard data type: %Type%
Sleep 1000
ToolTip ; Turn off the tip.
}
0038名無しさん@お腹いっぱい。 (ワッチョイ 12d9-veJH)垢版2017/02/18(土) 08:34:34.76ID:92Fl7ir90
ttp://i.imgur.com/EZhndfp.jpg
あるウィンドウだけウィンドウスタイルをこういうクラシックスタイルにしたいんですけども
winsetで指定できるウィンドウスタイルにそれっぽいのが見つかりません。
ahkでそういうのって可能ですか?

DllCall("dwmapi\DwmEnableComposition", "uint", false)
とか試してみたんですけど全てのウィンドウが中途半端にAeroオフになるだけで駄目でした。
0041名無しさん@お腹いっぱい。 (オッペケ Sr07-r/J+)垢版2017/02/18(土) 19:11:20.89ID:KUL6+Z39r
おい、日産よ!
いつまで無視出来るかなww
日産自動車栃木工場上三川寮
管理人は合鍵を使い従業員の部屋に無断で侵入。
抜き打ちで従業員の私物を全て調べるブラックの中のブラック企業。
残業賃金一部未払いの最低のクズ会社
0042名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)垢版2017/02/20(月) 23:16:31.90ID:5RugC6ZF0
質問させてください
アクティブウィンドウの位置を取得する際に、
取得する座標をウィンドウタイトルに関連した変数として取得したいです。
まずタイトルを取得して

WinGetActiveTitle, Title01
WinGetPos, X%Title01%, Y%Title01%, W%Title01%, H%Title01%,A
WinMove,A,,1300,100,1200,1500
MsgBox, %X%Title01%%
return
0043名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)垢版2017/02/20(月) 23:21:13.22ID:5RugC6ZF0
すいません途中で書き込んでしまいました。
キーがおかしいw

まずタイトルをTitle01という変数名に取得します

     WinGetActiveTitle, Title01
そしてこのTitle01に座標を関連させて4つの変数を決めます。
XTitle01 YTitle01 WTitle01 HTitle01
この変数にウィンドウの位置を取得させたいのですが、
WinGetPos, X%Title01%, Y%Title01%, W%Title01%, H%Title01%,A

これで取得できるでしょうか?

MsgBox, %X%Title01%%

これで書き出しても空欄になってしまいます。
ただ %X%Title01%% これがおかしいのは自分でもわかりますwww

「変数1%変数2%」
という表現や書き出す際にそれを表示させるにはどうすればいいでしょうか?
0045名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)垢版2017/02/21(火) 00:40:49.28ID:UifnTonW0
>>44
ありがとうございます。
前進しました。

2.
MsgBox, % X%Title01%

これはどういうことでしょうか。
やってみたら、普段Msbと表示されるメッセージボックスのタイトルバーにも数字が
現れましたが、、
0048名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)垢版2017/02/21(火) 02:34:26.26ID:UifnTonW0
すみません、やっぱりうまくいきませんでした。

^#!Numpad1::
WinGetActiveTitle, Title00
hoge:=X%Title00%
MsgBox, %hoge%
return

これで、コントロール+ ウィンドウズ+alt+1で、
英語タイトルのウィンドウがアクティブの時はメッセージボックスは空白になり、
日本語を含むタイトルのウィンドウのときはイリーガル文字が使われてるというエラーメッセージがでます。

目的としては
ウィンドウ位置を移動させるコマンドを実施した時にアクティブなウィンドウの移動前の座標をタイトル文字を使った変数として覚えておいて、
必要な時に再度コマンドを実施した時にその位置に移動させたい(戻したい)という感じです。

ある一つのウィンドウだけではなく、いろんなウィンドウに対応させたいので四苦八苦している感じです。

変数とか配列とかよくわかっていない素人なので、、
0049名無しさん@お腹いっぱい。 (ワッチョイW 9e4e-CFij)垢版2017/02/21(火) 03:55:56.99ID:IYHQ65RM0
変数名に空白とか漢字とか使えないんじゃね?配列の添字で実現すればいいよ。
Global titles := [] ; 配列
とかしておいて
WinGetActiveStats, title, w, h, x, y
titles[title] := [] ; さらに配列
titles[title].w := w
titles[title].h := h
titles[title].x := x
titles[title].y := y

取り出すときは
x := titles[title].x
y := めんどい。同様に。
ほんで
WinMove, % title,, x, y, w, h
0050名無しさん@お腹いっぱい。 (ワッチョイ 2b62-eq+O)垢版2017/02/21(火) 10:54:25.03ID:zPRLOhIL0
マウスを動かす時、大きく動かしたあと細かく動かそうとした際に上手に動かせずに
苦労することとかがあります
ペイントソフトで特定の範囲を選択したいときとか1ピクセル動かすのに苦労するとか

なので、たとえばシフトキーを押しながらマウスを動かすとゆっくりになるとかをAHKを用いて実装できますか
0051名無しさん@お腹いっぱい。 (オッペケ Sr07-ic+v)垢版2017/02/21(火) 12:36:27.91ID:ulZsc9y6r
>>48
昔自分用に作ったウィンドウコントロールに似てる
俺のは特定のプログラムが散らかすダイアログ群がターゲットだったから
記録:
WinGet, array, List, ahk_pid %pid%,, title
n := 0, d := ""
Loop, %array% {
n++
d .= "diag" n "=" ダイアログ呼び出しキー "`t" ターゲットのid(=array%A_Index%)からタイトルと座標を`t区切りで返す関数 "`n"
}
FileAppend, [CONF]DiagMember=%n%`n[DIALOGS]`n%d%, hoge.ini
return

復元:
iniRead, DiagMember, hoge.ini, CONF, DiagMember
Loop, %DiagMember% {
iniRead, diag%A_Index%, hoge.ini, DIALOGS, diag%A_Index%, 0
StringSplit, array, diag%A_Index%, %A_Tab%
Send, %array1%
WinWait, %array2% ahk_pid %pid%
WinMove,,, %array3%, %array4%, %array5%, %array6%
}
return
のようにしてた。
ウィンドウが閉じられずに存在しているならば呼び出しキー不要だし、ウィンドウハンドルを変数名にしてそこに値を格納してAppend使わずにメモリ上で完結出来るんじゃないかな
0052名無しさん@お腹いっぱい。 (オッペケ Sr07-ic+v)垢版2017/02/21(火) 13:09:01.51ID:ulZsc9y6r
>>50
その用途なら俺ならグリッド使うがその機能がないならば
昔AutoHotkeyフォーラムで拾った関数なんだがURL失念すまん
GetPointerPrecision() {
static root := "Control Panel\Mouse", sub := "MouseSpeed"
RegRead, s, HKCU, %root%, %sub%
return s
}

SetPointerPrecision(th1, th2, spd) {
static sm := 0x0004 ; SPI_SETMOUSE
VarSetCapacity(MySet, 12, 0)
InsertInteger(th1, MySet, 0) ; MouseThreshold1
InsertInteger(th2, MySet, 4) ; MouseThreshold2
InsertInteger(spd, MySet, 8) ; MouseSpeed( MouseSpeed is Not MouseSensitivity )
DllCall("SystemParametersInfo", "UInt",sm, "UInt",0, "Str",MySet, "UInt",1)
}

InsertInteger(pInteger, ByRef pDest, pOffset = 0, pSize = 4) {
Loop, %pSize%
DllCall("RtlFillMemory", "UInt",&pDest + pOffset + A_Index-1, "UInt",1, "UChar",pInteger >> 8*(A_Index-1) & 0xFF)
}
;使用例
SetPointerPrecision(0, 0, 0) ;タブレットモード
SetPointerPrecision(6, 10, 1) ;トラックボールモード
0056名無しさん@お腹いっぱい。 (ワッチョイ 1f24-eq+O)垢版2017/02/21(火) 17:41:03.95ID:iWUpBYRA0
>>54
regeditでレジストリを直接いじってみたが、コンパネのマウスにはまったく反映されずに
マウスのプロパティを閉じたりするとレジストリがもとに戻る
レジストリを変更したのをメッセージとして通知せんとダメなんじゃね?
SystemParametersInfoを使うとそれをしてくれるのか
でもダメだったっていうHPもあったなw
0057名無しさん@お腹いっぱい。 (ワッチョイ c37d-Z7AI)垢版2017/02/21(火) 18:27:03.92ID:VNYq5LdE0
>>38
exeのプロパティで互換性→視覚テーマを無効にすれば個別にAero切れる
WinSet, ExStyle, 0x00000080, hoge でさらにクラシックぽくなる

変更する為にはレジストリを変更する必要があるので慎重に
参照: https://w-mashiro.rhcloud.com/pc/windows/252

例: 互換性モードで実行
Path = C:\Users\User\Desktop\TestOS.exe
RegWrite, REG_SZ, HKEY_CURRENT_USER, Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers, %Path%, WINVISTASP2 VISTARTM
0059名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)垢版2017/02/21(火) 19:41:24.03ID:UifnTonW0
>>49
ありがとうございます。
グローバル関数とはなにか、そもそも関数の扱いがわからないのでネットで勉強することにします。
そこでお尋ねしたいのですが、
titles[title] := [] ; さらに配列 
この四角いカッコはコマンド的に意味のあるものなのでしょうか。
{ }や( )ではなく [  ] をautohotkeyで使う場面がわからないのですが、
何かの一例ということで例えばtitles a というような意味でしょうか。
それとイコールの右側の四角い記号はカッコの組み合わせを隙間なく書いてあるようですがどういう意味でしょうか?
そのカッコの中に何かを書き込めという意味でしょうか?
よろしくお願いします。
0060名無しさん@お腹いっぱい。 (ワッチョイW 9e4e-CFij)垢版2017/02/21(火) 20:05:23.31ID:IYHQ65RM0
>>59
いやー俺もつい2週間前くらいに始めたところでw
配列を [] (大括弧)で書くのと {} (中括弧)で書くのに違いはないってどっかでみたよ
あと Object() て書いても同じことらしい。
他人が読んだときに、どういう意図か伝えるために書き分けるって考え方があって
普通に数字や文字列を入れるときは大カッコがいいかなあと俺は思った。
クラスのインスタンスとか、いろんなもの入れるとかの場合が中カッコ。俺はそうかなと
思っただけ。

でも別に気にしなくてもいいんじゃねw

あと Global も、別のいろんな言語の経験から反射的につけただけ。なくても動くかも
しれない。動かないかもしれない。ごめんねこんなんでw
0062名無しさん@お腹いっぱい。 (ワッチョイ 1f99-eq+O)垢版2017/02/22(水) 02:53:24.69ID:dVZ+QgoV0
PCゲームのDeadSpace3の上で、ahkがまったく動作しません。
ゲームなのでもうしょうがないのでしょうか?
英語でちょっとぐぐると同様の人がいるみたいですが、解決策を見つけられませんでした。
対戦ゲームが搭載されていますがメインではないので、アンチチート系のブロックではないと
思うのですが。このスレッドではゲームの話題は却下なのでしょうか
0064名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)垢版2017/02/22(水) 04:09:38.36ID:llRBXp7y0
>>60
ありがとうございます。
わからないなりに真似してやってみたところ残念ながらタイトル固有の位置を取得できていない状態です。
同じコマンドでトグル動作するように設定しているのですが、
結局一番最後にウィンドウを中央に移動した直前の位置を覚えているだけみたいで
配列の部分を全部読み込まなくても同様の動きになりました。。。。
添字?でしょうか、なにか書式が違うんでしょうか。。。
次のレスにコピーしますが、もし、、、なにか間違いがわかったらご意見うかがえると幸いです。
0065名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)垢版2017/02/22(水) 04:11:32.16ID:llRBXp7y0
^#!Numpad1::
WinGetActiveStats, t, wa, ha, xa, ya
Global titles := [] ; 配列
if(xa=1300 and ya=100 and wa=1200 and ha=1500)
{
Gosub,Label2
return
}
else
{
Gosub,Label1
return
}
Label1:
WinGetActiveStats, t, w, h, x, y
titles[t] :=[] ; さらに配列
titles[t].w := w
titles[t].h := h
titles[t].x := x
titles[t].y := y
WinMove,A,,1300, 100,1200,1500
MsgBox,%t%,%x%,%y%,%h%,%w%,中央
return
Label2:
w := titles[t].w
h := titles[t].h
x := titles[t].x
y := titles[t].y
WinMove, % t,, x, y, w, h
MsgBox,%t%,%x%,%y%,%h%,%w%,戻り
return
0066名無しさん@お腹いっぱい。 (ワッチョイW 9e4e-CFij)垢版2017/02/22(水) 05:07:29.61ID:Lnwqrb+t0
>>65
さりげなく画面でかいなおい。

Global titles の行を一番上に、^#!Numpad より上に。
あと Label2 の w とか h とか、:= の前が全角のスペースだったから確認

if (IsObject(titles[t])) {
て書けば、座標を記憶してればどうたら〜って書けるよ。if (titles[t]) { て
書いても動くようだけど。あと
title をキーにして覚えるよりはウィンドウID(HWND)で覚えたほうがいいと思う。
タイトルは変わることがあるからな。

最後俺のミスだけど、titles て変数名はあんまりよくなかったw
windows とかのほうがマシだったわ
そして Global はつけなくても動いた。先頭に title := [] て書いとけばいい。
0067名無しさん@お腹いっぱい。 (ワッチョイ 9691-qUVP)垢版2017/02/22(水) 12:13:06.28ID:Idlhi0l50
すみません、
Google chrome (正確にはSRWare Iron)上で再生しているHTML5ビデオプレイヤーにフォーカスを合わせる方法ってないでしょうか?
HTML5ビデオプレイヤーにキーをsendしたいんですが、ブラウザ自体をwinactivateしてもそうはならないようで…
0070名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)垢版2017/02/22(水) 19:29:32.02ID:llRBXp7y0
>>66
ありがとうございます。4kモニター買ったら真ん中以外がすごく操作しづらくてそれで考案中ですw

全角スペースを半角に直したら「戻り」が正しく動かなくなりました。
w := titles[t].w
h := titles[t].h
x := titles[t].x
y := titles[t].y
これが機能してなかったのが逆に表面上だけはうまく動いたように見えていたようです。

ウィンドウID(HWND)とは何でしょうか。
調べてみたところautohotkeyにはウィンドウを特定する方法のなかに
個別のIDはなさそうなんですが、、、
http://ahkwiki.net/Window
いい方法があると良いのですが。
if (IsObject(titles[t])) {
これは、titles[t]に値が入っていたら っていう意味でしょうか。。

やりたいことはさほどでもないのに実際挑戦すると深みにはまっていきます。
0071名無しさん@お腹いっぱい。 (ワッチョイW 9e4e-CFij)垢版2017/02/22(水) 19:52:07.18ID:Lnwqrb+t0
>>70
titles := [] を一番上にした?俺実際に動作確認してから書いたんだぞw
ウィンドウIDじゃなかったっけか。一般には HWND で通るんだけどなんか
変わった名前で呼ばれてた記憶があってウィンドウIDだったかなーと思って書いた。
WinExist() のところみたら「ウィンドウのハンドル」て書いてあるね
0072名無しさん@お腹いっぱい。 (ワッチョイW 9239-oOoW)垢版2017/02/22(水) 20:45:28.25ID:llRBXp7y0
>>71
はい。一番上にしたんですけど、、、おかしいなあ。
そちらで動いたのならこのまま欠点を調べてみます。
一番上っていうかショートカットコマンドの上に書きました。
他のスクリプトもいくつかある中で、不安ながら初めてキーコマンドの上に書きました。

ウィンドウのハンドル、調べてみます
ただちょっと腰痛がひどくて取り掛かるまでに時間がかかりそうです、、、
0073名無しさん@お腹いっぱい。 (ワッチョイW 9239-oOoW)垢版2017/02/22(水) 20:47:16.07ID:llRBXp7y0
>>71
スクリプト丸々貼っていただけると有難いのですが、、、
見比べられると見つけられる気がします
いろいろ要求してすみません
0075名無しさん@お腹いっぱい。 (ワッチョイW 9e4e-CFij)垢版2017/02/22(水) 21:13:59.79ID:Lnwqrb+t0
もう捨てちゃったよ。最初から RAMDISK 上でやったからなー
他思いつくことは
文字コードを utf-8 BOM 付きにした。
うちは 4K じゃないので指定どおりのウィンドウサイズにはならなかった
そのため「戻り」が呼ばれることはなかった。サイズを小さくしたら指定どおりになったけど
その時はすでに IsObject() で分岐するように改変してたから、ウィンドウサイズの判定で
正しく分岐するかどうかは確認してない。ただし MsgBox で表示させてサイズの確認はやった。
0076名無しさん@お腹いっぱい。 (ワッチョイW 9239-oOoW)垢版2017/02/22(水) 21:22:48.29ID:llRBXp7y0
>>75
そうですか、、、
なんでかなあ
ありがとうございます
0078名無しさん@お腹いっぱい。 (ワッチョイW 9e4e-CFij)垢版2017/02/22(水) 22:27:42.26ID:Lnwqrb+t0
ウィンドウハンドルとか置いといて
とりあえず自分で書いたプログラムを動かすことを考えたほうがいいなこれは。
動かさないことには気持ち悪いだろう。

ほんで10行程度のプログラムの説明に100行書くのはごめんだw
0079名無しさん@お腹いっぱい。 (ワッチョイ 127c-Vm/o)垢版2017/02/22(水) 22:31:40.86ID:teNn2wZc0
スクリプト貼り付けpen.ioとか使うのはダメなのかな
アップローダーはちとめんどくさいのはあるが
これだと適当なページ名とパスワード入れるだけで使える
アカウント作成とかも不要
0083名無しさん@お腹いっぱい。 (ワッチョイ 127c-Vm/o)垢版2017/02/22(水) 23:00:06.64ID:teNn2wZc0
>>82
これ修正するのにアカウント必要じゃない?
0087名無しさん@お腹いっぱい。 (ワッチョイ bf39-d4M5)垢版2017/02/23(木) 02:36:36.48ID:iWncX5Sd0
>>86
結構何時間も試行錯誤した末の質問なんですけどね
サイトは教科書ではないから、頭から読んだけどどうもある程度何かを知っていることが前提になっているようで。
それで質問したらヒントくれる人がいたけど、そのヒントがわからないから
コピペして試行錯誤するしかなくて正直何時間もやった挙句のレスなんですわ
自分で動かしてみろって書いてあるけど、それは何度も繰り返してるんですけどねえ、、、、
0088名無しさん@お腹いっぱい。 (ワッチョイ bf39-d4M5)垢版2017/02/23(木) 02:50:30.56ID:iWncX5Sd0
titles := [] ; 配列
^#!Numpad1::
WinGetActiveStats, t, wa, ha, xa, ya
if(xa=1300 and ya=100 and wa=1200 and ha=1500)
{
Gosub,Label2
return
}
else
{
Gosub,Label1
return
}
Label1:
WinGetActiveStats, t, w, h, x, y
titles[t] :=[] ; さらに配列
titles[t].w := w
titles[t].h := h
titles[t].x := x
titles[t].y := y
WinMove,A,,1300, 100,1200,1500
MsgBox,%t%,%x%,%y%,%h%,%w%,中央
return
Label2:
w := titles[t].w
h := titles[t].h
x := titles[t].x
y := titles[t].y
WinMove, % t,, x, y, w, h
MsgBox,%t%,%x%,%y%,%h%,%w%,戻り
return
0092名無しさん@お腹いっぱい。 (ワッチョイ ff89-8lb6)垢版2017/02/23(木) 10:56:33.91ID:pFFh4T600
gdgdすぎじゃろ、答えるならwikiの該当ページにリンク張るかせめて正しい検索ワード教えたれよ
うろ覚えの単語で適当な説明するから質問者もググれなくて困惑してるやん

>ウィンドウID(HWND)
正しくはウィンドウハンドル、AHK上では ahk_id のこと
Title を ahk_id に変えればオブジェクト使わなくても>43の当初の目的は達成できたと思われ

id:=WinActive("A")
WinGetPos, X%id%, Y%id%, W%id%, H%id%, ahk_id %id%
msgbox, % "ahk_id " id "`nX" X%id% ",Y" Y%id% ",W" W%id% ",H" H%id%
0094名無しさん@お腹いっぱい。 (ワッチョイ afd2-8lb6)垢版2017/02/23(木) 12:06:10.57ID:YeB1kZ5I0
半年ROMれの典型例
2週間じゃスレの雰囲気もようわからんだろうに

しつこく食い下がってくる質問者のほうが悪いとでもいいたげだがあまり気楽に答えてやるな
白旗上げるなら早いうちのほうが相手の被害も最小限ですむ
自分も始めたばかりならよう分からん回答者に振り回される恐怖は想像できるだろう
0097名無しさん@お腹いっぱい。 (ワッチョイW bf39-Z+OO)垢版2017/02/23(木) 19:20:42.45ID:iWncX5Sd0
>>91
中央に移動させるのは動くけど引き続き同じキーコマンドで元の場所に戻らないんです。
その配列に元の位置が記憶されていない状態だと思います

配列が分からないのでとりあえず作ったスクリプトで今抱えている問題は、
ウィンドウAにキーコマンド→中央へ拡大移動しつつ前の位置を記憶
ウィンドウBにキーコマンド→中央に拡大移動したつ前の位置を記憶
これで2つのウィンドウが重なります。
そこで手前のウィンドウBを手動でずらす
ウィンドウAにキーコマンド→ウィンドウBの元の位置に移動してしまう

という現象です
記憶が1つならそうなるのは当然なんですけど
それを回避するのは配列しかないかなあと、、、
0098名無しさん@お腹いっぱい。 (ワッチョイW bf39-Z+OO)垢版2017/02/23(木) 19:22:35.59ID:iWncX5Sd0
>>92
ありがとうございます
それでも良く分からないけどまたやってみます。
腰痛が酷くて椅子に座れなくて、、、、
0099名無しさん@お腹いっぱい。 (ワッチョイ 7f91-ixyU)垢版2017/02/23(木) 19:28:11.16ID:QlvMT+qG0
タスクバーの右にあるタスクトレイ?でしたっけ、この部分に表示されているアプリがクラッシュするとアイコンだけが残りますよね?。
この部分をリフレッシュして状態を元に戻したいんですが、Windows10だと海外のどのコードを使用しても反映されません。
グーグルで”autohtokey tasktray refresh”で検索したコードを使用してもWindows7では正常に動作しますが、Windows10では動作しませんでした。
ToolbarWindow321をToolbarWindow324にしても効果なしでした。
何か良い方法等ありませんでしょうか、よろしくお願いします。
0102名無しさん@お腹いっぱい。 (ワッチョイ 7f91-ixyU)垢版2017/02/23(木) 20:57:23.04ID:QlvMT+qG0
>>100
有難うございます。
その方法は代替案として既に実践済みなのですが、やっている事がダサ過ぎて止めた経緯があります。
すみません、言葉足らずで。

>>101
有難うございます。
このコードも過去に試してはいるのですが、ホットキーを指定しないと反応しないようなので諦めていました。

が、今一度確認しました所、Tray_Refresh()の部分を削除すれば出来るようですね。
解決出来ました、有難うございます!。
0105名無しさん@お腹いっぱい。 (ワッチョイ bf39-d4M5)垢版2017/02/24(金) 03:28:32.74ID:xNGPh+BS0
>>92 スゲーあっさりできました。今後、改良改善していこうと思います。ありがとうございました。
if文の組み方でreturnの数が変に多い気がするのですが、無いとエラーが出るのでこうなりました。
もしよりスマートな組み方があったらうかがえると幸いです。

;ウィンドウリサイズ
^#!Numpad1::
WinGetActiveStats, t, wa, ha, xa, ya
if(xa=1300 and ya=100 and wa=1200 and ha=1500)
{
Gosub,Label2
return
}
else
{
Gosub,Label1
return
}
Label1:
id:=WinActive("A")
WinGetPos, X%id%, Y%id%, W%id%, H%id%, ahk_id %id%
WinMove,A,,1300, 100,1200,1500
MsgBox, % "ahk_id " id "`nX" X%id% ",Y" Y%id% ",W" W%id% ",H" H%id% " 中央へ"
return

Label2:
id:=WinActive("A")
     WinMove,A,,X%id%, Y%id%,W%id%,H%id%
MsgBox, % "ahk_id " id "`nX" X%id% ",Y" Y%id% ",W" W%id% ",H" H%id% " 元の位置へ"
return
0106名無しさん@お腹いっぱい。 (ワッチョイ bf39-d4M5)垢版2017/02/24(金) 03:37:44.76ID:xNGPh+BS0
というかこのautohotkeyはいろいろな事ができて凄いと思うのだけど
あんまり話題になってないように思うのですがどうなんでしょうかね。
もともと自分はmac歴が長いので細かい省略キーが使えないウィンドウズに不満があったのですが、
これでカスタマイズしまくればある意味最強だと思えます。
書籍とか、馬鹿でもスクリプトがつくれるアプリとかあればいいのになあと思いました。
まあだから「流行らせるページ」なんてものができてたりするんでしょうけども。
0107名無しさん@お腹いっぱい。 (ワッチョイ ef30-8lb6)垢版2017/02/24(金) 12:48:34.68ID:4TN8NtnJ0
文字列操作についてですが、
StringSplitを使うと、文字をカンマ等で分割して、変数名を A とすると、
A1 A2 A3
等に分割して入れてくれます。 逆に、A1 A2 A3等からまとめてもとのカンマ等で結合された文字列に戻す
命令ってないのでしょうか。 あるいは1行で簡単にできる操作ってありますか
0111名無しさん@お腹いっぱい。 (ワッチョイ ff89-8lb6)垢版2017/02/24(金) 14:07:02.47ID:W1kZDMOP0
StringSplit て言うてるやん
初心者(と思われる)相手に扱いのややこしいオブジェクト使った返答はやめたげなさいよ

>>107
分割数が固定なら A := A1 "," A2 "," A3 で一行化も可能だが
可変だったらループで回すしかないんじゃない?

やってるこた>109と同じだが
A:=""
Loop, %A0%
  A .= A%A_Index% (A_index<A0 ? "," : "")
0115名無しさん@お腹いっぱい。 (ワッチョイ ff89-8lb6)垢版2017/02/25(土) 11:56:06.40ID:g79Hejm/0
. 演算子 (文字列連結) http://ahkwiki.net/-Concat
?:(条件) (三項演算子) http://ahkwiki.net/-Condition
代入演算子 http://ahkwiki.net/-Assign

三項演算子はぱっと見で意味が通りにくいので避ける人もいるが
覚えると便利なので多用する人は結構いるよ
107は行圧縮が課題なので使用したが式の意味の理解しやすさ的にはあまり親切な回答ではないね

視認性や効率無視で更に詰めると2行までは圧縮できる
Loop, %A0%
  A := (A_index=1 ? "" : A) A%A_Index% (A_index<A0 ? "," : "")
0119名無しさん@お腹いっぱい。 (ワッチョイ ef99-8lb6)垢版2017/02/26(日) 01:26:03.66ID:g3AOYpmk0
教えてください。
無変換キーコンビネーションキーの一つ目で使用しているのですが、
一つ目のキー単独の元の機能は失わないようにしたいです。そこで

vk1Dsc07B::vk1Dsc07B       ←これが動作しません
vk1Dsc07B::Send, {vk1Dsc07B}  ←これは動作するのに

これはどうしてでしょうか?変換キーは同じこと(リマップ)をしてもそのまま動作するのに。
あとチルダ(~)をつければ大丈夫ってwikiみたのですが動く気がしません。
0122名無しさん@お腹いっぱい。 (ワッチョイ ff51-8lb6)垢版2017/02/26(日) 02:39:53.60ID:EZAUaAEs0
ヘタに省略せず登録したコンビネーションキーとかも全て書くべきだと思うがな
ちなみに俺が試したのは下記

vk1Dsc07B::vk1Dsc07B
vk1Dsc07B & x:: AltTab

これで無変換キー単独で押した時は普通に無変換キーとして動作してる
0123名無しさん@お腹いっぱい。 (ワッチョイ ef99-8lb6)垢版2017/02/26(日) 04:06:34.29ID:g3AOYpmk0
原因わかりました。
別の所で特定のウインドウが前面になったときの個別のキー割り当てのなかに

#IfWinActive, ahk_class GomPlayer1.x
vk1Dsc07B::Send, !{F4}
#IfWinActive

というのが入っていたのが原因でした。でもなぜこれが原因なのかわかりません。
どうしてなのでしょうか?
もし真ん中の行がSend, ではなくふつうのリマップの::a であれば無変換単独へのリマップがふつうに動きます

autohotkey.ahkでテストした記述は以下の6行がすべてです。
------ここから-------
#IfWinActive, ahk_class GomPlayer
vk1Dsc07B::Send, !{F4}
#IfWinActive

vk1Dsc07B::vk1Dsc07B
vk1Dsc07B & x:: Send,^{x}
------ここまで-------
ぼくは決定的なことがわかってないんだと思います。教えてください。
0124名無しさん@お腹いっぱい。 (ワッチョイ 7f91-BsB8)垢版2017/02/26(日) 13:46:35.37ID:pxJcwieV0
MPC-HCにAHKからsendでのキー操作(早送り、次のトラック等)が
届くものと届かないものがあるんですが同じようなことで悩んだ先達さんいないでしょうか
全部効かせるコツがあったら教えて下さい
0134名無しさん@お腹いっぱい。 (ワッチョイ efe6-d4M5)垢版2017/02/27(月) 14:56:37.32ID:5ofIhFHw0
>>130
出来ない。但し、GUIやProgressで代用可能

tooltip_gui("ほげほげ")
sleep, 2000
tooltip_progress("hogehoge")
sleep, 2500
exitapp

tooltip_gui(msg) { ; Gui番号を指定すれば複数表示可
Gui, -Border
Gui, Font, S50
Gui, Add, Text, , %msg%
;Gui, show, X300 Y200 ; 座標指定
Gui, show ; 画面中央
SetTimer, tooltip_gui_off, -2000
return
tooltip_gui_off:
GUI, Destroy
return
}

tooltip_progress(msg) { ; 複数表示不可、各々のオプションは適当
;Progress, h100 W400 X300 Y200 B1 C00 ZH0 ZW0 ZY2 FM60 WM200 CWFFFFBF , , %msg% ; 座標指定
Progress, h100 W400 B1 C00 ZH0 ZW0 ZY2 FM60 WM200 CWFFFFBF , , %msg% ; 画面中央
SetTimer, tooltip_progress_off, -2000
return
tooltip_progress_off:
Progress, off
return
}
0137名無しさん@お腹いっぱい。 (ワッチョイW bf39-Z+OO)垢版2017/02/28(火) 02:01:23.61ID:TZ6azZE+0
部分的すぎて質問の意味が伝わって泣きんじゃないか?

動くほうのスクリプトと動かないスクリプトの両方をはっつけて
何は出来るのに何ができないって示さないとわかんないんじゃないかな
0143名無しさん@お腹いっぱい。 (ワッチョイ ef99-8lb6)垢版2017/02/28(火) 13:22:09.15ID:GG32Wtxo0
レスたくさん頂いてありがとうございます。文章が下手ですいません。
>>140

・#IfWinActiveで別々のケースとして区切っているのに、ホットキーとリマップの混在になってしまうのでしょうか?
・その混在で不都合がでるのはコンビネーションキーを設定したときに、一つ目のキーを離したときに発動する機能に限ったことなのでしょうか?

ぼくのautohotkey.ahkの構成は、#IfWinActiveをつかって

Aのソフトウェアが前面にあるときのホットキー
Zのソフトウェアが前面にあるときのホットキー
それら以外の場合のホットキー

という順で、どのソフトウェアが前面であるかを一つのユニットとして、別々にホットキーを
設定しているので#IfWinActiveの仕切りを越えて影響してきたら若干困ります。
AからZのホットキーの場合は前後で#IfWinActiveで仕切っているのに対して
「それら以外の場合の」ホットキーの場合は前後になんの工夫もなくただ書いているだけなのがまずいのかな。
0158名無しさん@お腹いっぱい。 (ワッチョイ bfd9-/vtI)垢版2017/03/01(水) 20:49:17.06ID:bF3Dp7fJ0
list=hoge`nhage`nhige
Loop,parse,list,`n
{
ypos:=A_index * 24
Gui, Add, Edit, x5 y%ypos% ReadOnly, %A_LoopField%
Gui, Add, Button, x+50 y%ypos%,これを押すと左のeditboxのテキストをクリップボードにコピーさせたい
}
Gui,Show,Autosize NoActivate

こんな感じで変数listを行区切りでGUIボタンにして
クリックすると行ごとの左のeditboxのテキストをクリップボードにコピーさせたいんですけど
どうやればいいですか?
変数listが100行超える場合もあるので1個1個ラベルを書いていくのはつらいです
0161名無しさん@お腹いっぱい。 (オッペケ Sr03-qMfP)垢版2017/03/01(水) 21:49:08.51ID:E4tjBCtbr
>>158
ラベル手入力するのが面倒ならラベル作成するスクリプト書けばいんじゃね
loop,100 {
gui, add, button, x y, %a_index%
clipboard .= "button" a_index ":`n" ;みたいに
}
その書き方ならボタンコントロール番号とエディットコントロール番号が一致するだろうから
button1:
button100:
controlgettext, var, % "edit" regexreplace(a_thislabel, "i)button", ""), A
clipboard := var
0163名無しさん@お腹いっぱい。 (ワッチョイ c51c-7il/)垢版2017/03/02(木) 19:23:57.83ID:yxlabhZo0
変数名を文字列として格納できないかの質問。

下みたいな指定した変数のリストをメッセージボックスに表示する関数を作った。

a := 5
b := 7
OutputValue(a,b)
return
OutputValue(Variable*){
Strings := ""
Loop,% Variable.MaxIndex() {
Strings .= "変数" . A_Index . ":" Variable[A_Index]
If( A_Index != Variable.MaxIndex() )
Strings .= "`n"
}
Msgbox,% Strings
}

これを実行すると

変数1:5
変数2:7

と書かれたメッセージボックスが表示されるんだけど、これを

変数a:5
変数b:7

といった表示をさせるようにしたい。
関数OutputValueに変数名の情報を引き渡すことはできないだろうか?
0179名無しさん@お腹いっぱい。 (ヒッナー 9691-BL34)垢版2017/03/03(金) 19:13:19.41ID:5KTlVZI300303
If A_IsUnicode = 1の場合に
DllCall("kernel32\MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sFile, "int", -1, "Uint", &wFile, "int", 512)
この行を無効にするって事ですか?全く理解できていません。
0180名無しさん@お腹いっぱい。 (ヒッナーWW 8e89-VELR)垢版2017/03/03(金) 19:31:52.21ID:eGsuleKk00303
>>177
そっちじゃなくてgui.pngのほう
176投稿前にググって拾ってきたgdip.ahkと
ローカル画像を適当にリネームしたgui.pngじゃ
ansiもunicodeもみえないウィンドウ起動されるだけで挙動変わんなかったぞ
ソース貼るだけじゃどう動いてほしいのかすらわからん
0181名無しさん@お腹いっぱい。 (ヒッナー 96d2-BL34)垢版2017/03/03(金) 19:41:16.65ID:desiQVSy00303
>>180
こちらにはansiとunicode共に32ビット版のVersion 1.1.24.1が有ります。
そして172のスクリプトを実行すると、unicode版だけ画像が表示されないんですよ。
画像ファイルは何でも良いと思います。
0182名無しさん@お腹いっぱい。 (ワッチョイ 11a4-m4jB)垢版2017/03/04(土) 21:34:48.97ID:X+DGGu4u0
Ctrl & 無変換 & j の3キー同時押し処理をしたいけれど、
押す順番で動作しないことが有ります。

vk1Dsc07B & j:: Send, {Blind}{Left}

こんな風に書いた場合、
無変換 -> Ctrl -> j の順に押すと Ctrl & Left として処理されるけど
Ctrl -> 無変換 -> j の順だと Ctrl & j として処理されてしまいます。

このページを参考に色々手を加えてもやっぱりダメだった。。
http://did2.blog64.fc2.com/blog-entry-371.html

何か良い方法は無いでしょうか。
0185182 (ワッチョイ 11a4-m4jB)垢版2017/03/05(日) 12:24:10.80ID:FTkBqX9p0
情報ありがとうございます
英語配列キーボードを使ってるんですけど、
レジストリいじって英語配列使えるようにしたり、無変換・変換を割り当てたりしてるんでそのせいかも・・

レジストリをもとに戻して別の日本語配列キーボードを使ったら、確かに3キーの押す順番を変えても正常に動作してくれました
0187名無しさん@お腹いっぱい。 (ワッチョイ 41fc-BJNc)垢版2017/03/07(火) 01:40:50.62ID:aCPxdpZT0
>>186
LWin & r::Send, #r
LWin::Return

これでWinキー単独は無効化、Win+Rは使用可能
あとは使いたいWin+○のショートカットを全て登録すれば・・・
と思ったんだけどなぜかこの2行だけでWin+EやWin+Dなど他の組み合わせも使用可能になった
けがの功名だけどこれで良いのかな
0188名無しさん@お腹いっぱい。 (ワッチョイ fa99-RQJ9)垢版2017/03/07(火) 02:49:42.64ID:igDWGueT0
>>187
ありがとうございます
WindowsキーをRetuるrnして使いたいキーを、それぞれ追加す以外にスマートな方法があるかなと思ったんですが
どうやら、LWin & r::Send, #rのみで他の組み合わせも使えますね...気づきませんでした
0194名無しさん@お腹いっぱい。 (ワッチョイ 0dfb-KBVs)垢版2017/03/15(水) 03:59:28.69ID:2v/WnyI60
>Sleep, %vmyslider%
そもそもvが余計
0195名無しさん@お腹いっぱい。 (ワッチョイ 457c-jgBb)垢版2017/03/15(水) 07:09:05.75ID:3wo/Hu/l0
>>192
ini使うのは?

a:
IniRead, aaa, %A_ScriptDir%\aaa.ini, test, bbb
Sleep, %aaa%
MsgBox, %aaa%

Gui, New, hwndhGui AlwaysOnTop Resize MinSize
Gui, Add, Edit, Number Vaaa_, %aaa%
Gui, Add, Button, Gok, OK
Gui, Show
return

ok:
Gui, Submit
IniWrite, %aaa_%, %A_ScriptDir%\aaa.ini, test, bbb
gosub a
0196名無しさん@お腹いっぱい。 (ワッチョイWW 7b89-vcyR)垢版2017/03/15(水) 08:13:05.34ID:EC8yCRZy0
質問内容はスクリプト実行中(本来の意図は起動時ではない)の数値反映で
スクリプト終了状態の保持ではないからiniは余計じゃね

質問者が躓いてるとこスルーして他の機能盛り込まれても混乱させてしまうだけでそ
0198名無しさん@お腹いっぱい。 (ワッチョイ e3e5-G3bw)垢版2017/03/15(水) 12:25:05.71ID:+W/tCI4i0
>>193
Gui,Add,Slider, VMySlider Range100-1000 ToolTip x6 y10 w300 h30
Gui,Submit,NoHide Myslider
Gui,Add,Radio,x24 y70 w38 h30,10
Gui,Add,Radio,x64 y70 w38 h30,20
Gui,Add,Radio,x103 y70 w38 h30,30
Gui,Add,Radio,x141 y70 w38 h30,40
Gui,Add,Radio,x180 y70 w38 h30,50
Gui,Show,w350 h120,test
enter::
Gui,Submit, MySlider NoHide
MsgBoX,%MySlider%
Return

Gui,submitで取得できましたありがとうございます
enter押してスライド位置取得した後No hideしててもGUI消えてしまうのは
再起動を組んで解決?ずっと表示していてほしい
0200名無しさん@お腹いっぱい。 (ワッチョイ 6504-2gzW)垢版2017/03/19(日) 14:31:54.63ID:0FObHEAj0
$RShift::
KeyWait, RShift, T0.13
if ErrorLevel
send,{RShift}
else
send,#{Tab}
keywait, RShift
return

機能は短く押した時Windows10のタスクビューが動作し、長く押すと右Shiftが押されるというものを作りたいのですがいくら長押ししても右shiftが出力されません。
教えてください。
0202名無しさん@お腹いっぱい。 (ワッチョイ 6504-2gzW)垢版2017/03/19(日) 17:24:16.47ID:0FObHEAj0
どこにですか?教えていただけるとうれしいです
0206名無しさん@お腹いっぱい。 (ワッチョイ 6504-2gzW)垢版2017/03/20(月) 08:54:18.97ID:VXF0FNnI0
>>203 メモ帳で大文字を打とうとしたときにわかりました。あとで確認したらShift+Deleteもできないことで出力されていないとしました。

>>204 ごめんなさい。サンプルコード見ても何もわかりませんでした...わたしの理解力不足なのは重々承知の上、教えて頂けないでしょうか?
0208名無しさん@お腹いっぱい。 (ワッチョイ 196a-tpgq)垢版2017/03/20(月) 11:46:59.75ID:wjZDytjZ0
本来はShift+Win+Tabではタスクビュー呼び出せないので、~付けるのはダメな気がするけど
なぜか~付けてsend,#{Tab}でもタスクビューは呼び出せるね
そのやり方で行くなら0.13秒以上押した場合にRShiftを送る必要もない
ただし>>207のスクリプトだと長く押してもMsgBoxが出てしまうのでkeywaitは必要

でも>>200はそれ以前にifの使い方とか基本的なことすら分かってないというね
0216名無しさん@お腹いっぱい。 (ワッチョイ 6504-2gzW)垢版2017/03/21(火) 14:31:44.92ID:iEQL6gRD0
教えてくださった皆様ありがとうございました‼
0217名無しさん@お腹いっぱい。 (ワッチョイ ebf7-3M3l)垢版2017/03/27(月) 22:37:20.07ID:G8pXe9Nd0
キーボード上に円記号とbackslashのキーがあるんですが円記号はBackslashとして識別されるので
2つの同一キーがある事になるんですが片方だけを別のキーにremapしたいんですが上手く行けません
助けて下さい
0220名無しさん@お腹いっぱい。 (ワッチョイ ebf7-3M3l)垢版2017/03/28(火) 11:56:38.65ID:H5Vxi1en0
>>218
>>219
正常に作動しました ありがとうございます
0222名無しさん@お腹いっぱい。 (ササクッテロル Sp05-8s2n)垢版2017/03/30(木) 14:10:31.25ID:geXqI1Q2p
チルトホイールにキーを割り当てても、動作が反映されないのですがどうすれば良いでしょうか?
テストで以下の様にアサインしました

WheelUp::a
WheelDown::b

WheelLeft::c
WheelRight::d

+WheelLeft::e
+WheelRight::f

ホイールの上・下(a・b)は問題なく入力できますが、チルトの右・左もa・bが入力されてしまいます(押し続けると連打状態になります)。
問題の切り分ける為に、入力コマンドを変えSift + チルトで別文字の入力も試しましたが、
大文字のA・Bが入力されてしまいます。
0229222 (ササクッテロル Sp05-8s2n)垢版2017/03/31(金) 09:13:24.91ID:/tjD63Ljp
>>223-228
環境が抜けてました。申し訳ございません。
OSはWindows 7、マウスはrazer mamba teという有線マウスです。
ドライバーもユーティリティも入れなかったのですが、razerなのでロジに変えないと無理かもしれませんね。
0234名無しさん@お腹いっぱい。 (ワッチョイ 91f0-QmV0)垢版2017/03/31(金) 19:06:26.28ID:ZqPImTZm0
何も書いて無いから判断できない

キーログなし → 特殊キーはドライバ入れ無ければ動作しない(チルトは問題ない)
キーログあり(キーが正しい) → スクリプトを修正
キーログあり(キーが違う) → ドライバソフトで修正またはスクリプトを修正
0241名無しさん@お腹いっぱい。 (ワッチョイ fbcd-agmj)垢版2017/04/01(土) 22:06:31.19ID:+iTtNJOZ0
今はもう exe2ahk.exeじゃ逆コンパイルできないんだっけ?

>予めFileappend等で出力
出力方法はそれでいいとして実行中のスクリプトから自身のコード抽出する方法なんてあったっけ?
.ahkの状態ならA_ScriptFullPathで自身をFileReadすればいいけど
(元ソースがあるから別途出力する意味もなくなるが)

とりあえずここのAHK_decompilerで "リソースを覗く"ことはできる模様
http://autohotkey.com/boards/viewtopic.php?t=4230
0242名無しさん@お腹いっぱい。 (ワッチョイW 13da-PfJG)垢版2017/04/02(日) 03:45:19.83ID:BQQWG+X/0
インストーラーを使わずに、ポータブル版としてAHKを起動すると、Winキーの押しっぱなしや、キーリマップのすり抜けがときおり発生するのは仕様?

これを解決するにはどうしたらよい?reloadすればキーのすり抜けは改善するので、Settimerで30分ごとにreloadするようにしてみたけど、あまり状況は改善せず…

会社のPCで管理者権限がないので、通常インストールができない。
0243名無しさん@お腹いっぱい。 (ワッチョイ fbcd-agmj)垢版2017/04/02(日) 10:12:25.96ID:N3mTYsUR0
押しっぱなしはインストーラーでも発生するし
リマップのすり抜け?とやらも会社のPCでの環境依存の可能性はないのだろうか

AHKのインストーラーって関連付けとかをレジストリにちょこっと追加して
スタートアップにAutohotkey.ahkのショートカット放り込むくらいだと思う
裏で動かしてるサービスとかないし正直ポータブル関係ない気がするのだが
0245名無しさん@お腹いっぱい。 (ワッチョイ 8b2b-pX+7)垢版2017/04/03(月) 13:27:16.47ID:+bCJnYiC0
Ctrl+Pauseをホットキーにすると
Ctrl+ScrollLockも拾ってしまうのは仕様ですか?

^vk03sc146(=Pause)としてもやはり^vk03sc046(=ScrollLock)も拾ってしまいます。

もしかしてLock系キーの根本的な問題なので解決するにはレジストリのキーマップ変更して
PauseとScrollLockをF13とF14にしてAHKでF13とF14を拾うしかないですか???


AHK v1.1.24.01 64bit / Windows10 / 108フルキーボード
0247名無しさん@お腹いっぱい。 (オイコラミネオ MM8b-PfJG)垢版2017/04/03(月) 21:03:45.82ID:rAM/8+krM
>>244

亀レスすまぬ。

Lwin::Lctrl
Lctrl::Lalt
Lalt::Lctrl

↑見ればわかるように、Mac風に親指でコマンドキーを操作することを狙っている。

で、ときおりwinキー押しっぱなしが発動する。
発動したときは右winキーを一度押すと改善する。
0249名無しさん@お腹いっぱい。 (アンパン MM8b-PfJG)垢版2017/04/04(火) 09:03:37.88ID:Yyp/MwUrM0404
>>248
会社のPCで管理者権限がないからレジストリをいじれないんだ。なのでahkで無理矢理入れ替えてる状況。タスクマネージャーでautohotkey.exeの優先度を上げてみるものの、効果なし。やはり諦めるしか無いのかなー。


もう一つの問題のキーのすり抜けはリロードすれば治るので、Settimerで一時間おきにリロードさせてるんだけど、これも複数インスタンスが立ち上がったりするので(#Singleinstanceforceが効かない)もうちょい良い方法が無いものかと悩み中。
0254名無しさん@お腹いっぱい。 (ワッチョイ 8b2b-aCII)垢版2017/04/05(水) 10:45:50.98ID:Wbe3X0BL0
>>246
遅くなってすみません。
おっしゃる通りスキャンコードのみなら上手くいきますね!
ありがとうございました!!
0255名無しさん@お腹いっぱい。 (ワッチョイ b740-D6lx)垢版2017/04/06(木) 21:23:10.67ID:i4aIvFWn0
Win7です
1280x1024サイズのモニタで、ウインドウをMaximizeして、WinGetPosをすると
x,y,w,h に
−8、 −8、 1296、1000
が入ります
hに関しては下にタスクバーがあるのでちょっとはずして考えたとして
ウインドウのサイズが8ピクセルずつ、大きくなっているようなのですがなぜでしょうか
x, yは当然ゼロだと思ってたら、−8が入っているのでちょっとびっくりしているのですが
ちなみにどんなウインドウでもそうなります。 フォルダー等のウインドウでも
0262名無しさん@お腹いっぱい。 (ワッチョイ 3746-UDlz)垢版2017/04/07(金) 11:21:43.56ID:nc7iNlKi0
winactiveで指定のアプリケーションをアクティブにしたいのですが…
googlekeepの場合ってどう指定するものなのですが?
titleはgooglekeepでクラスとexeはcrome

Process,Exist,Google Keep
If ErrorLevel<>0
WinActivate,ahk_pid %ErrorLevel%
else
run,(keepのショートカットから探し出したアドレス)

これだと多分Process,Existが機能して無くてkeep立ち上がってない事になるぽいんですよね。
こういうものの場合どうやって指定するんでしょうか>
0271名無しさん@お腹いっぱい。 (ワッチョイ ff46-0jbj)垢版2017/04/10(月) 04:54:18.79ID:65Jr/DKV0
お尋ねします。
ok 2が動作しないのは何故でしょうか?。
出来れば複数のファイルを指定したいので、2の方法で動作させたいです。
宜しくお願いします。

;HAGE.ahk

IfExist, %A_WorkingDir%\HAGE.ahk
msgbox, ok 1

If FileExist("%A_WorkingDir%\HAGE.ahk")
msgbox, ok 2
0272名無しさん@お腹いっぱい。 (ワッチョイ 1fda-3qVo)垢版2017/04/10(月) 05:39:51.17ID:n286rxrH0
特定のウィンドウにひたすら右クリックを押下し続けるという単純なscriptについて質問させて下さい
AHK Version 1.1.24.04 / 32bit

以下コード
+F12::
DetectHiddenWindows,On
ControlClick,,ahk_class ANY WINDOW,,R,1,D NA
Return

windowは一意のものとして指定すれば確かに押しっぱなしになり動作はします
しかしウィンドウ内から起動した場合、非アクティブになると止まってしまいます
非アクティブから起動すると動作していて、アクティブにしてから非アクティブにするとやはり止まってしまいます

この状態を回避して、ウィンドウのアクティブ状態に関わらずひたすら動作させ続けることは可能ですか?
0273名無しさん@お腹いっぱい。 (ワッチョイ 97f0-02AM)垢版2017/04/10(月) 07:17:13.48ID:2r5ZTOwf0
>>271
関数など()の中は式
式で文字列として扱う場合は”で囲う

式では変数が展開される
変数を展開する場合は%で囲う
式で%で囲うと二重展開になる(中身の中身)

× ("%A_WorkingDir%\HAGE.ahk") → %A_WorkingDir%\HAGE.ahk
○ (A_WorkingDir "\HAGE.ahk") → 変数の中身\HAGE.ahk

>>272
> しかしウィンドウ内から起動した場合、非アクティブになると止まってしまいます
> 非アクティブから起動すると動作していて、アクティブにしてから非アクティブにするとやはり止まってしまいます

対象がなんだか分からないが非アクティブでは操作できないと言いたいのかな?
非アクティブでは操作を受け付けないアプリがあるので
キーが送れるほかのコマンドでも駄目なら諦めてください

ControlSend, ahk_parentの有無
PostMessage
0274名無しさん@お腹いっぱい。 (ワッチョイ 1fda-3qVo)垢版2017/04/10(月) 11:07:01.39ID:n286rxrH0
>>273
そうではなくてアクティブ→非アクティブとフォーカスを移動した際に停止してしまうということです
アクティブで動作→OK
非アクティブで動作→OK
非アクティブからアクティブでの動作→OK
アクティブから非アクティブでの動作→NG
ということです
OKの状態は"右クリックが押下され続けている"です

対象は別になんでも良いです例えばahk_exe chrome.exeとでもして下さい
0275名無しさん@お腹いっぱい。 (ワッチョイ 97e6-D6lx)垢版2017/04/10(月) 11:28:14.17ID:RegwrnVO0
判定がデリケートなのか知らないけどウィンドウ切り替えやアプリによってはうまく機能しない事はあるよ
ウィンドウ切替時にディレイを挟んでControlを再習得してフォーカス合わせればいいんじゃないかな
0277名無しさん@お腹いっぱい。 (ワッチョイ 1fcd-D6lx)垢版2017/04/10(月) 12:28:56.32ID:ZYn2qmjn0
>272みる限りじゃコントロールもPOSも指定してないし
アクティブ切替えに伴いControlFocusも切り替わってるんじゃないの?
それかNA外したらどうなる?

きちんとコントロールかPOS指定
できれば対象Controlのハンドル取得して ahk_id %controlHWND% すると成功率は上がるかも
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
0280名無しさん@お腹いっぱい。 (アウアウエーT Sae3-qdxO)垢版2017/04/13(木) 05:00:34.98ID:Q5j/vPyKa
>>279
おお、それでいけますた。
ありがとうございます!
0282名無しさん@お腹いっぱい。 (アウアウエーT Sae3-qdxO)垢版2017/04/13(木) 07:17:28.04ID:Q5j/vPyKa
>>281
列挙で使えるのはいいですね。
勉強になります。
0284名無しさん@お腹いっぱい。 (ワッチョイ 8bac-hm1O)垢版2017/04/15(土) 08:19:36.47ID:QH+TqQ4Q0
object:=object()
object["hoge","髭"]:="hige"
object["hoge","禿"]:="hage"
object.Remove(["hoge","禿"])

こういう配列のキーを削除したいのですが失敗してしまいます
どういう書き方をすればいいんでしょうか?
0290名無しさん@お腹いっぱい。 (ワッチョイ 8b35-HE/W)垢版2017/04/17(月) 17:10:53.64ID:w3gDyj0g0
>>289
うーんエスパーするとブラウザなどにF5をControlSendで更新してるって意味かな?
「F5と同等のWinコマンド」と言っても更新は各ソフトごとで割り当てられてるものだからWinコマンドなんて無い

全然違うこと言ってるならこれ以上はエスパースレにでも行くかもう少し人に伝わる書き方してくれ
0292名無しさん@お腹いっぱい。 (ワッチョイ 398e-VSqr)垢版2017/04/18(火) 00:10:08.60ID:Z1GczGkp0
お尋ねさせてください。
ahkファイルに以下のように記述してスペースキー+アルファベットにカーソルキーを割り当てているのですが、専用うpろだのClipboardHistory.ahkの履歴メニュー上ではなぜかカーソル移動できません。

SetTitleMatchMode, 2
#include %A_ScriptDir%\IME.ahk
Space & i::send {Blind}{Up}
Space & k::send {Blind}{Down}
Space & j::send {Blind}{Left}
Space & l::send {Blind}{Right}


キーボードのカーソルキーを直接入力するとカーソル移動できるのですが、なぜAutoHotkeyからだとうまくいかないのかが分かりかねます。
どなたかお分かりになる方がおられましたら教えていただけないでしょうか。

以下は環境です。
OS: Windows7 HomePremium 64-bit
AutoHotkey: Ver.1.1.25.01 (Unicode 64-bit)
ClipboardHistory.ahk: Ver.1.3.2
0296名無しさん@お腹いっぱい。 (ワッチョイ 398e-VSqr)垢版2017/04/18(火) 00:33:18.23ID:Z1GczGkp0
今メモ帳を開いていて気付いたのですが、スペースキー+アルファベットによるカーソル移動ですとClipboardHistory.ahkの履歴メニューにフォーカスが行かないようです。
ClipboardHistory.ahkの履歴メニューが表示されたまま、その背後の文面上をカーソルが上下左右に移動しています。
また、この状態でキーボードのカーソルキーを押すと、文面上のカーソルとは別にClipboardHistory.ahkの履歴メニュー上を上下にカーソル移動するようになります。

スペースキー+アルファベットによるカーソル移動がうまくいかないのはフォーカスの問題のようです。
どうすればClipboardHistory.ahkの履歴メニューにフォーカスを送ることが可能になるのでしょうか?
0298名無しさん@お腹いっぱい。 (ワッチョイ f187-3MbB)垢版2017/04/18(火) 00:47:11.07ID:DnrWvvF80
そもそも履歴メニューというものがどれのことを言っているのかわからない
タスクトレイの右クリックメニューのことを言っているのか
ClipboardHistoryウィンドウなのか
そのウィンドウ右クリックメニューなのやら
0299名無しさん@お腹いっぱい。 (ワッチョイ 8956-3YOs)垢版2017/04/18(火) 01:41:15.44ID:peglwBmD0
>>297
ちょっと見てみたけど、ClipboardHistory.ahk のホットキーを定義してる部分が AHK からの Send に反応してないみたい
なので

#InputLevel 1
Space & i::send {Blind}{Up}
Space & k::send {Blind}{Down}
Space & j::send {Blind}{Left}
Space & l::send {Blind}{Right}
#InputLevel 0

とすればいけたよ
0300名無しさん@お腹いっぱい。 (ワッチョイ 398e-VSqr)垢版2017/04/19(水) 00:07:22.37ID:K9MJisAG0
>>298
分かりにくくて申し訳ございません。
Ctrlキーのダブルプッシュで表示されるメニューのつもりでした。

>>299
教えていただいた方法でAHKからカーソル移動できるようになりました。
#InputLevelという機能については全く存じ上げておりませんでしたのでとても勉強になりました。
どうもありがとうございました。
0301名無しさん@お腹いっぱい。 (ワッチョイ 0b01-93S+)垢版2017/04/19(水) 03:13:48.12ID:NqPXmlz00
なぜBlockInputが聞かないのか原因がわかりません。

blockinput,on
sleep,3000
blockinput,off

たった3行のスクリプトですが何が原因でしょうか?
0302名無しさん@お腹いっぱい。 (ワッチョイ 0b01-93S+)垢版2017/04/19(水) 03:28:23.38ID:NqPXmlz00
もしやと思い管理者権限で走らせたら動作しました。
http://ahkwiki.net/BlockInput
このページには書いてないけどAHK使いには常識なんでしょうか?
ちなみに環境はWin10です。
0304名無しさん@お腹いっぱい。 (ワッチョイ 0b01-93S+)垢版2017/04/19(水) 16:32:59.64ID:NqPXmlz00
>>303
あまり深く考えず付き合うことにします。動いたからよしと。
0306名無しさん@お腹いっぱい。 (ワッチョイ 0b01-93S+)垢版2017/04/19(水) 22:51:48.59ID:NqPXmlz00
英語で探せば解決すること多いですよね。情報量が断然。
今回は安易にここで聞いてしまいました。今後がんばります
0311名無しさん@お腹いっぱい。 (ワッチョイ 4377-mkSu)垢版2017/04/23(日) 12:18:00.71ID:hj5/SbKN0
Firefoxのブックマークウィンドウに表示されている項目を編集したいのですが、
Sendでキーを送っても期待通りに受け取って処理してくれずに、
未編集の項目が残ってしまうことがしばしばあります。

具体的には、「名前(N)」のテキストボックスにフォーカスがある状態で
  Send +{Tab} ; テキストボックスのすぐ上のグリッドにフォーカス
  Send {Down} ; 次の項目へ
  Send !l^a^c ; 「URL(L)」のテキストボックスにフォーカスして内容をコピー
といったコードを書いてループで回しているのですが、特にメモリ負荷・CPU負荷が高いと、
Sendした通りの順序で動いてくれないことがよくあります。
たとえば、{Down} を2つ続けて受け取ってしまって1行飛ばしたり、
^a^c でテキストボックスではなくその上のグリッドを全選択・コピーしたり
(で、その状態で ^v を受け取って、グリッドの中身が丸々二重になったり)、
+{Tab} を2つ続けて受け取ってウィンドウ左側のツリー部分にフォーカスが行ったりします。

現在は勘に頼ってSleepを随所に入れているのですが、こういう操作をわざわざ
AHKで書いてループで回すのには当然理由がある(=対象の項目数が多い)わけで、
あまりに時間がかかるのも困りものです。

で、キー操作ではなく、ウィンドウ上のコントロールに対して直接メッセージを送りたいと思って
Window Spyで調べてみても、Windows以外のOSの版と共通のソースで書かれているせいか、
マウスカーソルをウインドウ上のどこに置いても、「Control Under Mouse Position:」の枠に
それらしきものが何も出てくれません。

…何かいいアイデアはないでしょうか?
訳あって、ブックマークをjsonファイルに書き出して外部のツールで編集する方法は使えません。
0317名無しさん@お腹いっぱい。 (ワッチョイ cf01-+vjJ)垢版2017/04/26(水) 14:09:56.27ID:oxhcbNh/0
traytipでポップアップが出なくなった。
数日前からこの現象発生。
windows10 creators updateは未適用。
考えられる原因は何か有りますか?
0319名無しさん@お腹いっぱい。 (ワッチョイ 0b01-KYNw)垢版2017/04/27(木) 10:41:41.12ID:S2URduR/0
>>318
windows10 home 64bit
ahk v1.1.24.01 unicode 64bit
ですがこれでヒントになりますか?
0320名無しさん@お腹いっぱい。 (ワッチョイ 0b01-KYNw)垢版2017/04/27(木) 10:43:16.98ID:S2URduR/0
trayTip,,てすと
sleep,3000

これが動作しないのです。
0323名無しさん@お腹いっぱい。 (ワッチョイ 0b01-KYNw)垢版2017/04/27(木) 20:58:59.60ID:S2URduR/0
>>321 >>322
自分で何か思い当たる事がまったくないのです。
Windowsの設定をいじったとか、AHK関係に手を加えたとか。

通知領域の設定を見ましたがそもそもAHKはwin10の設定項目の中には見当たりませんでした。
当然AHKアイコンは常に表示にしています。

致命的な問題では無いので我慢することにします。
ありがとう。
0324名無しさん@お腹いっぱい。 (ワッチョイ 0b01-KYNw)垢版2017/04/27(木) 21:01:52.86ID:S2URduR/0
>>322
現行は1.1.25なので自分のはほぼ最新版だと思いますが・・・・・・

あるいは AHK V2 のことですか?
たぶんスクリプトの書き直し大量に発生しそうで躊躇してます。まだアルファ版だし。
0328名無しさん@お腹いっぱい。 (オッペケ Sre5-psZV)垢版2017/04/28(金) 23:59:22.00ID:wu6/oOe4r
すみません今まで出来てたと思っていた単純な計算が出来ない事に気づきました
Setformat, Float, 0.6
a := 36.0450850
b := 36.0450800
c := 0.000005
if((a-b) != c)
MsgBox, % (a-b) " is not equal 0.000005 ?",
ifEqual, c, % (a-b), MsgBox, こっちは合ってる,
if(abs(36.0450850-36.0450800) <> 0.000005)
MsgBox, ng1
if((0.000110-0.000105) != 0.000005)
MsgBox, ng2
if((0.110-0.105) <> 0.005000)
MsgBox, だめ
if((0.000010-0.000005) = 0.000005)
MsgBox, ok
=/==/!=/<>を試したが駄目でした
なんでこうなるんでしょうか
v1.1.25.01 32bit U32版A32版とも同じです
0330名無しさん@お腹いっぱい。 (オッペケ Sre5-psZV)垢版2017/04/29(土) 09:31:27.54ID:aGGSeSqnr
>>329
レス有り難うございます
setformat, float, 0.0e
MsgBox, % (0.110 - 0.105) > 5e-003
MsgBox, % (1e-001 - 1e-001) = 5e-003 ;え〜(;´д`)
MsgBox, % (0.110-0.105) > 0.005
;だめだ分からない...Setformatは見た目の桁数を揃えるだけで内部的には元の数字で計算してるってことなんでしょうか
MsgBox, % round(36.0450850-36.0450800, 6) = 0.000005
setformat, float, 0.6
MsgBox, % RegExMatch(36.0450850-36.0450800, "^0\.000005")
まだ納得できてませんが取り敢えずRoundするか文字列として比較することで解決しそうです
0335名無しさん@お腹いっぱい。 (ニククエ Sre5-psZV)垢版2017/04/29(土) 18:21:37.68ID:aGGSeSqnrNIKU
>>331-334 どうもありがとうございます
> floatは変数に格納した時点でDecimalPlaces桁数に
これは知らなかった(小数値が+-*/された時点で、と思ってました)
なるほど...納得できたような出来てないような
Setformat, float, 0.6
a := 36.0450850
b := 36.0450800
c := 0.000005
d := (a-b)
MsgBox, % ((a-b) != c) "`n" (d != c) ;計算結果を変数に代入した方はちゃんとfalseになりますね
Setformat, float, 0.8
a := 36.04508500
b := 1 ;試しに整数でやってみたところ
c := 35.045085
d := (a-b)
MsgBox, % b-1 ;整数は桁揃えされないから「0」
MsgBox, % b-1.0 ; 0.00000000
MsgBox, % (a-b) ;35.04508500 ;aの桁数は変わってないが、どちらか片方が小数値なら桁揃えされる?
MsgBox, % ((a-b) != c) ”`n” (d != c) ;こっちは桁揃ってないのにちゃんとfalseになるんですよ
0336名無しさん@お腹いっぱい。 (ワッチョイ 0956-Hrtp) (ニククエ b987-PuY0)垢版2017/04/29(土) 21:59:24.43ID:r6kgVtY20NIKU
Windows10 pro 64-bit
AutoHotkey Unicode 64-bit ファイルバージョン1.1.25.1

メモ帳を開いたら、タイマーを起動、ツールチップにタイマー作動!と表示し続け、 60秒毎にメモ帳にABCと入力を繰り返す。
メモ帳を閉じたら、タイマーを終了し、ツールチップを消し、 メッセージボックスでタイマー停止!と表示する。

WinWait, ahk_class Notepad
{ SetTimer, InputTimer, 60000
ToolTip, タイマー作動! }
Return

InputTimer:
IfWinExist, ahk_class Notepad
{ ToolTip, タイマー作動!
Send, ABC }
Else
{
WinWaitClose, ahk_class Notepad
{ ToolTip,
MsgBox, タイマー停止!
SetTimer, InputTimer, Off }
}
Return

上記で、目的の動作は概ね実現されるのですが、一つだけ気に入らないところがあります。
メモ帳を閉じた直後に、タイマー停止!のメッセージボックスが表示されないのです。
どうやら、メモ帳を閉じた後も、作動中のタイマーは直ぐには停止せず、 セットした60秒間が経過したタイミングでタイマーが終了し、メッセージボックスが表示されるようです。
メモ帳を閉じるタイミング、タイマーが終了するタイミングにかかわらず、 メモ帳を閉じた直後に、タイマー停止!のメッセージボックスを表示させる方法があればご教示ください。 よろしくお願いいたします。
0337名無しさん@お腹いっぱい。 (ニククエ 13c6-Ahd3)垢版2017/04/29(土) 23:23:53.88ID:zp4a0efb0NIKU
コピペで動かないので動作検証はしないけど

・60秒ごとの入力監視タイマー と メモ帳終了監視タイマー を分ける
・終了監視はWinWait使うならタイマーは回さないで1タイムのみにする
・それか0.5〜1秒間隔タイマーでifWInNotExistですぐ抜けるを繰り返すものにする
0339名無しさん@お腹いっぱい。 (ワッチョイ b987-PuY0)垢版2017/04/30(日) 08:17:25.06ID:608QOK9p0
>>337
アドバイスありがとうございます。
別に終了監視タイマーを、IfWinNotExistで設定してみましたが、
やはり入力監視タイマーが終了しなければ作動しないようです。
引き続きよろしくお願いいたします。
0341名無しさん@お腹いっぱい。 (ワッチョイ 7187-XZJj)垢版2017/04/30(日) 09:07:53.16ID:b1zEeBw50
>>340
タイマー自体の負荷は気にしないでいい、問題は処理の中身
1000個のタイマーを1msで同時に回してもCPU使用率は0%
シングルスレッドだから当然といえば当然だが

Loop 1000
SetTimer, TEST%A_index%, 1
Return

TEST1:
TEST2:
〜中略〜
TEST1000:
Return
0343名無しさん@お腹いっぱい。 (ワッチョイ 13c6-Ahd3)垢版2017/04/30(日) 10:08:45.09ID:90OcEDAQ0
>>339
うちでは動いてるのでやり方には問題ないはず

>337でも書いたが>336はSyntaxErrorで動かない
そういうソース貼って質問した後に
やったけどダメでしたって書き換えたソース貼らずに言われても
こちらとしてはソース見直せとしかアドバイスできないよ


あと質問とは直接関係ないので触れなかったけど
60秒毎タイマーというのは誤差が60秒あるという意味なので
1秒タイマー内で60カウント数えてからSendするほうが動作としては望ましい
(まあそうするとタイマーを分ける必要もなくなるんだけどね)
0344名無しさん@お腹いっぱい。 (ワッチョイ b987-PuY0)垢版2017/04/30(日) 10:57:21.94ID:608QOK9p0
>>343レスありがとうございます。336をそのままコピペすると動きませんね!申し訳ありませんでした。
2chの掲示板に投稿するときに、『改行が多すぎます!』と何度も警告されて全く受け付けてくれなかったたため、不要な部分をそぎ落としたのが悪かったみたいですね。IfWinNotExistで書き換えたスクリプトをそのままコピペします。ご添削のほどよろしくお願いいたします。
#InstallKeybdHook
#UseHook
#InstallMouseHook
#Persistent
WinWait, ahk_class Notepad
{
SetTimer, InputTimer, 60000
ToolTip, タイマー作動!
}
Return
InputTimer:
IfWinExist, ahk_class Notepad
{
ToolTip, タイマー作動!
Send, ABC
}
Else
{
SetTimer, ExitTimer, -1
SetTimer, InputTimer, Off
}
Return
ExitTimer:
IfWinNotExist, ahk_class Notepad
{
ToolTip,
MsgBox, タイマー停止!
}
Return
>>1秒タイマー内で60カウント数えてからSendするほうが動作としては望ましい ⇒具体的にはどのように記述するのでしょうか?
0345名無しさん@お腹いっぱい。 (ワッチョイ b987-PuY0)垢版2017/04/30(日) 11:54:38.51ID:608QOK9p0
344
補足です。
ExitTimerを1秒間隔で設定したところ、
InputTimerのサブルーチンが終了するまでの間、
メッセージボックスを残秒数分吐き続けてしまったため、
負の値にしてワンタイムのみにしてあります。
0346名無しさん@お腹いっぱい。 (ワッチョイ 13c6-Ahd3)垢版2017/04/30(日) 12:03:45.49ID:90OcEDAQ0
>>344
・ExitTimer はメモ帳の起動待ち直後 SetTimer,InputTimerの次行あたりで起動させる
(InputTimer内で起動したのではタイマーを分けた意味がない)

・ExitTimerの間隔指定がおかしい、-1(1タイムのみ) で ifWInNotExistだと初回 else終了でそれっきりになる
   方法1 間隔は500〜1000msで繰り返し確認、タイマ内では待たずにifWInNotExistですぐ抜ける
   方法2 -1で1回のみ起動にするならWinWaitCloseでタイマ内で終了待ちする
  どっちでもいいけどどっちかに決める、混ぜたらどちらもまともに動作しない

・WinWaitの後に{ }はいらない、ifや関数で使う括りなので。

・あとInputTimer内で IfWinExistでSendしてるけど、これだとメモ帳がバックグラウンドのときに誤爆する
 IfWinActiveの判定入れるか強制的にWinActivateするか(動くなら)ControlSendにした方がいい


> 1秒タイマー内で60カウント数えてからSend
・InputTimerを1秒間隔で起動、count=60
・InputTimer内でcount-- して 0(以下)になった時にSend
・ToolTip, タイマー作動! %count% とかやっとくと残り時間も分かってデバッグにも便利
0348名無しさん@お腹いっぱい。 (ワッチョイ b987-PuY0)垢版2017/04/30(日) 23:10:29.99ID:608QOK9p0
345 アドバイスをもとに再度スクリプトを書き換えました。メモ帳を初めて起動したときは問題なく目的の動作をしているようですが、
いったんメモ帳を閉じてメッセージボックスのタイマー停止!を表示させた後に、再度メモ帳を起動させると、全く動作しません。
AHKスクリプトをリロードしてからメモ帳を開くと、また初回のみ動作します。まだどこかおかしいのでしょうか?

WinWait, ahk_class Notepad
SetTimer, InputTimer, 1000
Count=60
SetTimer, ExitTimer, 1000
ToolTip, タイマー作動!
Return
InputTimer:
IfWinActive, ahk_class Notepad
{
ToolTip, タイマー作動!%count% 秒後に入力
Count--
If Count=0
{
Send, ABC
Count=60
}
}
Return
ExitTimer:
IfWinNotExist, ahk_class Notepad
{
SetTimer, ExitTimer, Off
SetTimer, InputTimer, Off
ToolTip,
MsgBox, タイマー停止!
}
Return
0349名無しさん@お腹いっぱい。 (ワッチョイ b987-PuY0)垢版2017/04/30(日) 23:17:22.73ID:608QOK9p0
348
試しにメモ帳再起動監視タイマー(RestartTimer)を増設してみたところ上手くいっているように思いますが、
なぜこれが必要なのでしょうか?

ExitTimer:
IfWinNotExist, ahk_class Notepad
{
SetTimer, ExitTimer, Off
SetTimer, InputTimer, Off
ToolTip,
MsgBox, タイマー停止!
SetTimer, RestartTimer, 1000
}
Return

RestartTimer:
WinWait, ahk_class Notepad
SetTimer, RestartTimer, Off
SetTimer, InputTimer, 1000
Count=60
SetTimer, ExitTimer, 1000
ToolTip, タイマー作動!
Return
0350名無しさん@お腹いっぱい。 (ワッチョイ 13c6-Ahd3)垢版2017/04/30(日) 23:37:01.95ID:90OcEDAQ0
なぜと言われてもNotePad起動待ちのWinWaitを冒頭1回でしかやってないでしょ
基本的な部分なのでちゃんとwiki読んできたほうがいい
あと何度も言うけどTimer内でWinWaitで待つならワンタイム起動にしなさい
0351名無しさん@お腹いっぱい。 (ワッチョイ b987-PuY0)垢版2017/05/01(月) 00:32:05.61ID:0V0GtOjk0
>>350 何度もすみません。
メモ帳初回起動時にしか動作しない理由はわかりました。
348+349の記述に書き換えても、正常に動作していないということですか?
ExitTimerの部分を -1(ワンタイム)に訂正すれば問題なしでしょうか?
また、タイマ内ではIfWInExist(Active)やIfWInNotExistは使用してはいけないということですが、
タイマ外に記述しても全く反応しないのですが・・・
>>タイマ内では待たずにIfWInNotExistですぐ抜ける という意味がよくわかりません。
wikiも読み直してみますので、引き続きよろしくお願いします。
0352名無しさん@お腹いっぱい。 (ワッチョイ 0bf3-K5nj)垢版2017/05/01(月) 01:45:38.34ID:+5nnd5240
>>351
先ずはトライアンドエラーで動くまで納得の行くまで色々試せ

とりあえずこんな感じでも動くことは動くはず
>>348の上半分は同じで、ExitTimer:部分は↓
ExitTimer:
IfWinNotExist, ahk_class Notepad
{
Count=60
ToolTip, タイマー停止!
}
Return
0353名無しさん@お腹いっぱい。 (ワッチョイWW 13c6-Gcp7)垢版2017/05/01(月) 02:14:42.84ID:KYVCJ0Be0
>>345
上三行それでいい
下四行全然ちがう
タイマー内で使用してはいけないともタイマ外に書けとも言ってないよ
何か全然通じてないみたいだがもしやwinwaitとifwinexistの違いが分かってない?
winwaitは対象ウィンドウが存在するまで待つ
ifwinexistは今現在対象ウィンドウが存在してるか調べる

1秒ごとにタイマー動かすならタイマールーチン内の処理は1秒未満で終わる内容にしないと
「1秒間隔で繰り返し実行」できないでしょ
→winwaitのような「待ち」の処理はNG
 ifwinexistで存在チェックしelseなら即returnする
 待たない=ルーチンからすぐ抜ける

ワンタイムタイマーの場合はその逆
一度しか実行されないのでreturnで抜けたらそれきりになってしまう
→ifwinexistで即抜けしたらそれ以降の確認ができない
 なのでwinwaitで対象ウィンドウが存在するまで「待ってやる」
0357名無しさん@お腹いっぱい。 (ワッチョイ b987-PuY0)垢版2017/05/02(火) 07:21:37.29ID:jZspGgXG0
351 これでどうでしょうか?全く問題なく動作しています。ご意見ください。

WinWaitActive, ahk_class Notepad
SetTimer, InputTimer, 1000
Count=60
ToolTip, タイマー作動!
SetTimer, ExitTimer, -1
Return
InputTimer:
ToolTip, タイマー作動!%count% 秒後に入力
Count--
If Count=0
{
Send, ABC
Count=60
}
Return
ExitTimer:
WinWaitClose, ahk_class Notepad
SetTimer, InputTimer, Off
ToolTip,
MsgBox, タイマー停止!
SetTimer, RestartTimer, -1
Return
RestartTimer:
WinWaitActive, ahk_class Notepad
SetTimer, InputTimer, 1000
Count=60
ToolTip, タイマー作動!
SetTimer, ExitTimer, -1
Return
0359名無しさん@お腹いっぱい。 (ワッチョイ 39ec-PuY0)垢版2017/05/02(火) 13:03:30.64ID:/3o9eW+p0
>>358
ご多用にもかかわらず、合い間を縫って掲示板をご確認くださりありがとうございます。
思考が停止していますか・・・
問題なく動いているので満足してしまえばよいのかもしれませんが、
せっかくですからもう少しAHK追求してみたいと思いますので、貴殿の優秀な頭脳をお貸しください。
余裕がおありであれば、もう少し具体的にダメだしをいただけるとうれしいのですが・・・
数日前からAHKを知った新参者が、貴殿のように理解を深めるためには、
wiki以外にどんな書物を読めばよいのかもご教示いただけると助かります。
引き続きよろしくお願いいたします。
0360名無しさん@お腹いっぱい。 (ワッチョイW 2987-3+xq)垢版2017/05/02(火) 14:42:10.23ID:sIGtYt8F0
すみません。前にも書かせていただいたんですが、
ホットストリングが一回で起動しません。一回目無反応で2回目にスクリプトが発動がされます。
どうやれば一回目から起動してくれるのでしょうか?

ホットストリングの部分のみを抜き出してそれのみのAutohotkey.ahkだと失敗しないように思うんですが、
#IfWinActiveでいっぱい仕切られたいつものAutohotkey.ahkのなかにおいたホットストリングだと
一回目失敗します。どうしてでしょうか?教えてください
0365名無しさん@お腹いっぱい。 (ワッチョイ 13c6-Ahd3)垢版2017/05/02(火) 16:51:22.50ID:Z3jAVDE20
コードそのものよりシーケンスの考え方を伝えたかったんだけど
>353総スルーで、完璧に動いてるのでこれでいいですか? て言われてしまうとね
まあ結局こっちの説明が下手すぎて伝わらなかったということなんだろう

コードの添削はしません
本人がよくわかってないまま修正するとまたバグが出てぐちゃぐちゃになるし
自分でどこを最適化したらよいか分かるようになってから自力でして下さい
0366名無しさん@お腹いっぱい。 (ワッチョイ 39ec-PuY0)垢版2017/05/02(火) 18:53:40.69ID:/3o9eW+p0
359
>>365
353を総スルーしているつもりも、嫌みのつもりもないのですが・・・
『完璧に動いてるのでこれでいいですか?』というくだりも、
何らかの陰性感情を抱かせてしまったようですね。
手抜きをしているように映ってしまったということでしょうかね?

いずれにしても357の記述が不適切であるということは伝わってきました。
貴殿の気持ちがわかるまで、wikiを熟読して出直してきます。
ここまでお付き合いくださり、ありがとうございました。
0373名無しさん@お腹いっぱい。 (ワッチョイW af87-QmZ/)垢版2017/05/04(木) 22:12:03.19ID:EVEHliNj0
とりあえず貼ります。

::kyouda::
FormatTime,imaTimeString,,yyMMdd
FormatTime,imajikan, L0x0409 T1,ddd
FormatTime,imaTime,Time,HH:mm
SendInput '%imaTimeString%%imajikan%%imaTime%
Return

でも記述がこの箇所のみでautohotkey.ahkとして起動しているとたぶん必ず一発で起動してくれるんですが、
普段つかってるこの箇所のほかにもいろんな記述があるautohotkey.ahkで動かすと、
イメージで5回に1回、初回のホットストリング打ち込みで無反応です。
kyouda{スペース} ってふつうに入力されるだけです。そのあとすぐ続けると2回目は必ず成功するイメージです。
2回連続失敗ってのは印象にないです。
なにか考えられるような要因ありますか?

GroupAdd, GameBindGroup, ahk_exe Overwatch.exe
#IfWinActive
#IfWinActive ;個別設定がでいっぱい
#IfWinNotActive, ahk_group GameBindGroup
#IfWinActive
#IfWinActive ;個別設定がでいっぱい
みたいな感じの構成で区分けています。
0374名無しさん@お腹いっぱい。 (ワッチョイ e68e-Ogwz)垢版2017/05/04(木) 22:35:13.26ID:kC5yyJMz0
ならそのごちゃごちゃしてる他が干渉してるんでしょ
その肝心のごちゃごちゃ部分全部見ないとなんとも言えない
ログ見てどんな動作してるか確認してみないとね
とりあえずホットストリングをスクリプトの一番上に記述して同じ動作するか試してみ
0375名無しさん@お腹いっぱい。 (ワッチョイW af87-QmZ/)垢版2017/05/04(木) 22:49:24.04ID:EVEHliNj0
ですよね。ゴチャゴチャいっぱい書いてるうちのどこかが干渉してるんですかね。
autohotkey.ahkはいまみたら1980行でした。

ホットストリングの位置を前だったり後ろだったりいろいろ変えてみたんですが、やっぱりだめでした。
0377名無しさん@お腹いっぱい。 (ワッチョイ e68e-Ogwz)垢版2017/05/04(木) 22:55:27.87ID:kC5yyJMz0
スクリプトのログにちゃんと実行履歴があるなら
そのスクリプトを使用するアプリケーション側の相性や問題の可能性もある
俺もそこんとこ詳しくないからあまり言えないけど基本はまぁトライアンドエラーだし頑張りな
0379名無しさん@お腹いっぱい。 (コードモ d326-KZhE)垢版2017/05/05(金) 20:50:08.16ID:Vpqe3LRZ00505
複数のスクリプトを常駐させておきたい場合は、*.ahkを引数にしてそれぞれ
起動して使うものなのでしょうか? それとも、AutoHotkey.ahk からそれぞれの
*.ahkを引数にして、子プロセスをフォークして使うものなのでしょうか?

最近使い始めたのですが、一般的にどのように使っているのか分からなかったもので。
0380名無しさん@お腹いっぱい。 (ワッチョイW af87-QmZ/)垢版2017/05/05(金) 22:00:06.04ID:TRiKEWTN0
実行履歴があるのでそれをみる
使う対象のアプリ側との問題
自分で削って動作確認

一発でダメなのが判明するって性格のもんじゃないし、トライアンドエラーがめんどくさそう。
ホットストリングが発動しない確率が高いっていうかんじのものだから。
実行履歴にたしかに実行したスクリプトが載るけど、これみてどうしいいものやら

ありがとうございました。やってみます。
0382名無しさん (ワッチョイ cbf0-FFaT)垢版2017/05/05(金) 22:50:32.77ID:ZSng4Fyk0
>>380
コードの長いやつから、独立したahkファイルに移行させて#Includeで管理するとかすればいいんじゃない
自分もそれで知らん間に動かなくなってたスクリプトが復旧できたことがある
いまだに原因が分からんがw 動いたらそれ以上調べる気が起きなかった
0384名無しさん@お腹いっぱい。 (イルクン MMda-c5Hf)垢版2017/05/06(土) 09:35:50.00ID:J5De719LM
>>379
autohotkey.ahk以外のスクリプトをどう起動するかって話なら
.ahkをautohotkey.exeに関連付けしてる人が多いんじゃないの
ポータブルに使いたいならbat作るなりautohotkey.ahk内の任意のタイミングで
runするなり好きにしたらいい
自分はエディタで編集中ahk実行マクロ作って試行してる

あと常時複数起動する前提ならプロセスとして分ける必要が本当にあるのか考えてみるべき
そうでないなら#includeでautohotkey.ahkにマージする
0385名無しさん@お腹いっぱい。 (ワッチョイW ee6c-eGF5)垢版2017/05/07(日) 02:45:07.91ID:/qUzlPjG0
アクティブなウィンドウを画面の四辺に退かせるようにしようと思ったんですが
右端に移動と下端に移動が反応しません
どう書けばいいんでしょうか?

#Right::
WinGetPos, X, Y, Width, Height
WinMove, A, , A_ScreenWidth-Width
return
0388名無しさん@お腹いっぱい。 (ワッチョイ 42d1-KZhE)垢版2017/05/08(月) 15:48:03.40ID:sgEHR+K40
すみません教えてください。

Func( path ) {
EnvGet, home, HOME
Run, %path%
}

上記のような関数に対し、
Func( "%home%\aaaa.exe" )
と呼び出した場合、実際に実行ファイルがあったとしても
パスが見つからないと言われてしまいます。

%path% の中の %home% が展開できないのではないかと考えたのですが、
多重の % を展開する方法はありませんでしょうか?
0392名無しさん@お腹いっぱい。 (ワッチョイ 2663-HG4F)垢版2017/05/09(火) 14:12:20.82ID:v0GmuPss0
AHKでやれよとおもったらAHKだったw

Vector 新着ソフトレビュー 「俺のキーボード」 - 「【BackSpace】+【Delete】で一行消し」などを行える“俺=作者”仕様のキーボード機能拡張ソフト
http://www.vector.co.jp/magazine/softnews/170509/n1705091.html

>【Win】+【A】で、アルファベットで打ってしまった文字を日本語で打ち直し
これはどういう実装なんだろうか
0393名無しさん@お腹いっぱい。 (ワッチョイ 278e-Wm8h)垢版2017/05/09(火) 15:12:31.09ID:3+cE2t/J0
oi
misu
ってやつが
「おいミス」になるのかな
0396名無しさん@お腹いっぱい。 (ワッチョイ 42c6-Ogwz)垢版2017/05/09(火) 16:38:05.41ID:D6Yawi3g0
>>392
これLIB内の自動インクルード考慮しないでexe作っちゃってないか
IME_ON / IME_OFF の実態関数がないから機能しない
配布用exe作ったが本人はahkから実行してるから気づいてないってパターンぽい

まあスクリプトの方実行してもエラーになるけど
初期の頃のIME.ahkにしかない古い関数だから
さすがは俺環境ソフト
0402名無しさん@お腹いっぱい。 (ワッチョイ 43f3-SU9n)垢版2017/05/13(土) 03:30:17.50ID:Yj8xdb2h0
マウスを数秒間放置したらマウスカーソルを非表示にして、マウスを動かしたら
瞬時に表示されるようにするといったことはAHKで出来ますでしょうか?
もし可能ならばどんなコマンドを利用すればいいのかヒントだけでも頂けないでしょうか
0404名無しさん@お腹いっぱい。 (ワッチョイ 43f3-SU9n)垢版2017/05/13(土) 05:15:29.72ID:Yj8xdb2h0
>>403
ahk マウスカーソル 非表示
でググってみたけど目的のコマンドには辿り着けませんでした
もう少しヒントを頂けないでしょうか
まずはマウスカーソルを非表示にする方法さえ分かれば有難いのですが
0406名無しさん@お腹いっぱい。 (ワッチョイ bfc6-SU9n)垢版2017/05/13(土) 14:22:40.80ID:e0r9kSFN0
DllCallでゴリゴリやる系は日本語で2chログ漁るより本家フォーラムを捜したほうがいいと思うが

hide Cursor ahk でググればそのまんまのモジュール関数出てくるし
ON/OFFはタイマーでA_TimeIdlePhysicalあたり監視すりゃいいんじゃないの
0419名無しさん@お腹いっぱい。 (ワッチョイ 1ac6-kvD5)垢版2017/05/19(金) 09:57:24.07ID:GgHVwYsF0
頭に戻って繰り返し〜みたいな場合はループか再帰関数にするわ自分なら

多重ifやループから抜けて一気に終了処理に飛びたい時はgotoも使うけど
func(){
 if () {
  …
  if () {
   …
   if () {
    …
   }
   else goto exit
  }
  else goto exit
 }
exit: ; 後始末
 …
}
0420名無しさん@お腹いっぱい。垢版2017/05/19(金) 10:02:26.47ID:zuLrkofa0
ifの式が真の間、直前のコードと同じ処理をしたい時にまた同じ処理書くとコード長くなるのが嫌だからさ・・・
そこだけピンポイントで使うからそれだけのためにまた別の関数やライブラリ用意するのも微妙だしと思って他にいいアイデアないかと思った
0422名無しさん@お腹いっぱい。 (ワッチョイ 36dd-cm4/)垢版2017/05/19(金) 10:19:53.11ID:goZd5y1V0
Win10のファイルエクスプローラーでホイールを使ってファイルのフォーカス移動したいんだけど
表示方法によって移動がUp、DownとLeft、Rightで変わっちゃうんだよ
なんかいい方法ないかな?「次のファイル」みたいなショートカットが見つからない
ウィンドウの上部と下部でホイール回すとファイルのフォーカスが移動するように設定してて
応急処置として~RButton & WheelUpDwon の時だけ{Up}{Down}にしてる
0425名無しさん@お腹いっぱい。 (ワッチョイ 9a0f-KLhJ)垢版2017/05/19(金) 17:06:38.10ID:2AN/Hzrs0
>>422
ExplorerItemFocus(Up:=False) {
  For Window In ComObjCreate("Shell.Application").Windows
  {
    If (WinExist("A") != Window.Hwnd)
      Continue
    
    Items := []
    For Item In Window.Document.Folder.Items()
      Items.Push(Item)
    
    FocusedItem := Window.Document.FocusedItem
    For Index, Item In Items
    {
      If (FocusedItem.Path = Item.Path) {
        FocusItem := Up ? Items[Index-1] : Items[Index+1]
        Window.Document.SelectItem(FocusItem, 0x15)
        Break
      }
    }
  }
}

COMオブジェでやってみたけどSystem32だと数秒フリーズするくらい重い
0426名無しさん@お腹いっぱい。 (ワッチョイ 9a0f-KLhJ)垢版2017/05/19(金) 17:09:05.50ID:2AN/Hzrs0
>>422
GetExplorerViewMode() {
  For Window In ComObjCreate("Shell.Application").Windows
  {
    If (WinExist("A") = Window.Hwnd)
      Return Window.Document.CurrentViewMode
  }
}

>>425は実用的じゃないんで、表示モードによって送るキーを変えるのがいいと思う
0433名無しさん@お腹いっぱい。 (ワッチョイ 67ec-ey3w)垢版2017/05/20(土) 23:23:44.64ID:3WOJ7VBV0
>>430
そうなんですか、知りませんでした。

>>431
手動で最小化後にControlsendしても同様の症状でした。

>>432
Controlsend対象が.NETアプリ何ですけども、コントロールを取得しても無しになってしまいます。
仕方なくウィンドウタイトルのみ指定してControlsendしています。
問題は私にあるのかも知れません。
0437名無しさん@お腹いっぱい。 (ワッチョイ db77-cSoe)垢版2017/05/25(木) 04:00:49.21ID:d6bAtKP00
>>436
構造体のサイズはC言語をちょっとかじれば手計算でできるし、
逆にCが全く分からないとポインタ関係で確実にポカをする。
そもそもwinuser.h自体がC言語で書かれているんだし、
少しC言語を勉強してみては?
今はMinGWもあるし、VisualStudioも安い版は無料だよ。
0438名無しさん@お腹いっぱい。 (ワッチョイ db77-cSoe)垢版2017/05/25(木) 06:24:42.20ID:d6bAtKP00
> 構造体のサイズはC言語をちょっとかじれば手計算でできるし、

若干補足。手計算でやるといっても、複雑な場合にはもちろん
最終的にコンパイラに通して検算するんだけどね。

#include <stdio.h>
#include <windows.h>
#define OFFSETOF(_type, _member) (size_t)&( ((_type *)0)->_member )

int main(void)
{
int n = OFFSETOF(MENUITEMINFOA, wID);
printf("MENUITEMINFOA->iID: offset=%d (0x%02X)\n", n, n);
return 0;
}
0441438 (ワッチョイ db77-cSoe)垢版2017/05/25(木) 16:10:17.52ID:d6bAtKP00
>>439
winuser.hが手元にあるってことは、手元にC言語の環境あるんでしょ?
とりあえずCでは>>438のようなテストコード「だけ」を書いてテストして、
そのあとはテスト結果の数字をAHK上に書き写して使えばいい。
Win32 APIで使うような構造体の配置は、どこのCコンパイラを使っても、
どのバージョンのWindowsでも同じ。
(Win32とWin64とではポインタとかの関係で当然変わるし、
 Windowsのバージョンが上がるごとに後ろに新しいメンバーが
 加わっていくということもあるけどね。)

>>438の例でいうと、>>438のコードを32bit環境でコンパイルして走らせると
「16(0x10)」という結果が出るので、あとはAHKで「先頭から16バイト目」と
記述すればよい。

安全倍率1.2というのは何もわかっていない証拠。
たとえばこんな構造体、サイズは何バイトになると思う?
struct sample
{
char c;
float d;
} x;
printf("sizeof(x)=%d\n", (int)sizeof(x));

これは環境とコンパイルオプション次第で5になったり8になったり、
あるいは16になったりする。
答は>>440の「アライメント」というキーワードにあるんだけど、
どうしてもわからなかったら>>438のように愚直にテストコードを書くこと。、
0442名無しさん@お腹いっぱい。 (ササクッテロル Sp0f-uKyG)垢版2017/05/25(木) 21:58:34.37ID:F6r5NEnxp
autohotkey ホイール 加速
でぐぐるってヒットするブログのスクリプトを
今ままで利用してたんだけど
win10を最新にしたらホイールを回すとポポポって音を立てて
カクつくようになった
いったいなんなんだ
0443名無しさん@お腹いっぱい。 (ササクッテロル Sp0f-uKyG)垢版2017/05/25(木) 22:12:38.61ID:F6r5NEnxp
WheelDown::
send, {WheelDown}
return

そもそもこれがまともに動かなくなった
0444名無しさん@お腹いっぱい。 (ワッチョイW ef0c-YSnF)垢版2017/05/28(日) 02:19:08.81ID:w3NiANh30
ド初心者でごめんなさい。
マウス中央ボタン2回連続クリックでWinCloseさせたいのですが、
どうすればよろしいでしょうか?下記だとエラーが出てしまいます。

~MButton up:: DoubleKey("WinClose", 400)
DoubleKey(RunCommand, timeout){
if(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < timeout)
Run, %RunCommand%
}

既出だったらホントごめんなさい・・・
0445名無しさん@お腹いっぱい。 (ワッチョイ eff0-9J/J)垢版2017/05/28(日) 02:27:46.75ID:0wNh4Fl10
>>444
ド初心者ならまずはwikiのサンプルコード集を参考にした方が良いと思うぞ
そこに1度押し、2度押し、長押しで別の動作を割り当てのサンプルがあるから
そのコードの長押しを除外して1度押しと2度押しだけ設定してやればいい
0446名無しさん@お腹いっぱい。 (ワッチョイ 9fc6-9J/J)垢版2017/05/28(日) 10:13:31.95ID:+E4xg+YL0
どっから拾ってきたコードか知らんけど大した行数じゃないんだから
具体的に何やってるか使われてるコマンド調べて把握しなさい
そしたらどこが間違ってどう直したらいいのか人に聞くまでもなくすぐわかるから
0448名無しさん@お腹いっぱい。 (ワッチョイ ef0c-w2wH)垢版2017/05/28(日) 13:13:52.62ID:w3NiANh30
皆様アドバイスありがとうございます。
サンプル集を参考にさせていただきましたが、なんとか
2回MButtonクリックで閉じることができました。
ただ、2回連続以外のときは通常のMButtonとして扱うには
どうしたらいいのでしょうか。
Send,{MButton}ではダメでした。


;MButton二回で閉じる

MButton::
KeyWait,MButton,T0.3 ;0.3秒対象キーが押されたかどうか
If(ErrorLevel)
{
;ここに任意のコマンド 長押し
KeyWait,MButton
Return
}
KeyWait,MButton,D T0.2 ;0.2秒対象キーが押されるのを待つ
If(ErrorLevel)
{
;ここに任意のコマンド 1度押し
KeyWait,MButton
Return
}
;ここに任意のコマンド 2度押し
MouseGetPos, , , id, control
WinGetTitle, title, ahk_id %id%
WinClose, ahk_id %id%
KeyWait,MButton
Return
Return
0449名無しさん@お腹いっぱい。 (ワッチョイ ef0c-w2wH)垢版2017/05/28(日) 13:27:02.70ID:w3NiANh30
MButton::
If (A_PriorHotkey = A_ThisHotKey && A_TimeSincePriorHotkey < 300)
MouseGetPos, , , id, control
WinGetTitle, title, ahk_id %id%
WinClose, ahk_id %id%
KeyWait,MButton
return
0453名無しさん (ワッチョイ fbf0-7zaT)垢版2017/05/28(日) 14:55:04.55ID:1zbCO0Wu0
>>449
色々やり方はあるんだろうけど難しく考えすぎてない?
テストしてないけど、特にウィンドウ指定しないのなら、普通にAlt+F4使うとか

If (A_PriorHotkey = A_ThisHotKey && A_TimeSincePriorHotkey < 300)
Send,!{F4}
else
Send,{MButton}

というか身も蓋もない言い方かもしれんが、ホイール2連打は指負担がきつくない?
他に割り当てられないなら、マウスジェスチャー導入した方が良さそうな気がする
0455名無しさん (ワッチョイ fbf0-7zaT)垢版2017/05/28(日) 17:21:34.02ID:1zbCO0Wu0
>>454
いや、アクティブにする方法は分かってるっぽいから、そこは本人が補足できるでしょ
最初と最後だって書いてないんだし、そのままコピペでやってくれと言ってるわけではない
というのは察してほしかった…
まあテストせずに書くのもアレなんで試してみたけど、これを使うことはないかなぁ
自分の場合はマウスは他のどのボタンよりも、ホイールが最初に壊れることが多いんで…
その部分の心配が少ないならいいかもしれないけど
0461名無しさん@お腹いっぱい。 (ワッチョイ ef0c-w2wH)垢版2017/05/28(日) 22:46:49.42ID:w3NiANh30
>>448です。

>>453
マウスジェスチャーはすでに導入済みなんですが
閉じるをどれに割り当てるか悩んでいまして・・・
右クリ+左右で進む・戻る、上下で最大化・最小化に
しています。
あと、中央ボタン+左クリックドラッグでウィンドウの持ち運びにしています。
下に長めドラッグとかも考えたんですが、結構腕に負担がかかります。

一応、自分のマウスはボタンはたくさんついてるんでいくらでも割り当てられるんですが、
職場のPCでも同じ操作がしたくて・・・

ありがとうございました。
0462名無しさん (ワッチョイ fbf0-7zaT)垢版2017/05/28(日) 23:23:58.87ID:1zbCO0Wu0
>>461
その書き方だと4方向かな?自分はロッカージェスチャーの右左で戻る、左右で進む
右+上/下はHome/End。最小化は?、最大化・戻すのトグルで?。?でタブ閉じる、?で新規タブ
??でアプリ終了。??で最後に閉じたタブを開く。まあ、ジェスチャーの割り当ては人それぞれでしょう
ただ、ホイールクリックは使わないなぁ。やっぱり指痛くなるから。MButtonはXButton1に置き換えてるくらいだし
だからオートスクロールはXButton1経由。以前はAHKのトラックスクロールなんかも使ってたけどね
ホイール回転は割り当てあるよ。右+上下回転でタブ移動とか
ウィンドウ移動は↓からタイトルバー右端ボタンの制限を外して右クリではなくキーを割り当てて使ってる
ttp://blog.blueblack.net/item_407.html
0463名無しさん (ワッチョイ fbf0-7zaT)垢版2017/05/28(日) 23:31:19.24ID:1zbCO0Wu0
あー、きちんと表示されてないっぽいw 失敗した。スマソ
最小化は/down、最大化・戻すのトグルが/up
\upでタブ閉じる、\downで新規タブ
\down\upでアプリ終了。\up\downで最後に閉じたタブを開く
8方向でこんな感じってことね
でも、8方向が合わんって人もいるし、そこはホント人それぞれ
0465名無しさん (ワッチョイ fbf0-7zaT)垢版2017/05/28(日) 23:51:19.15ID:1zbCO0Wu0
>>464
悩んでると書いてるから、一例を示したまでのこと
別にあんたに聞いてもらいたいわけではないんでな
邪魔なら黙ってNGしとけばいいじゃないか。いきなり出てきてケチつけるくらいなら
0468名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 00:11:32.22ID:PQTJl3Hp0
>>466
誰がどこで
>ケチ付けられるのが嫌
と書いてるんだ?きっちり答えるようにな
お前に言ってるわけではないのに横から出てきて言い出すお前のやり方をどうかと書いた覚えがあるが、
ケチ付けられるのが嫌と書いた覚えはないんだが?

>>467
だから人それぞれでいいだろ?何が問題だと言いたいんだ?元々書いてた本人でもないんだろ?
ケチつけるのが問題なら、お前のそれもおかしいってことになるしなぁ
0469名無しさん@お腹いっぱい。 (ワッチョイ 9fc6-9J/J)垢版2017/05/29(月) 00:21:14.20ID:WMKOZcWQ0
>>468
まあ落ち着け、ちょっと一人で突っ走りすぎ
>455もそうだが言い訳の前に人に言われたことに少し耳を傾けようよ

コマンドもろくに把握してない奴が質問してる状況の時はさ
半端に適当な回答しても伝わらないし混乱の元になるし
回答側が自己主張なんか始めた日にはそれこそ収拾つかなくなるよ
その辺ちょっと弁えよう
0471名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 00:28:01.45ID:PQTJl3Hp0
>>469
いや、言い訳云々じゃなくてさ。まず聞かれたことには答えようぜ
>人に言われたことに少し耳を傾けよう
ってならさ。な?
だから人それぞれでいいだろ?何が問題だと言いたいんだ?元々書いてた本人でもないんだろ?

>コマンドもろくに把握してない奴が質問してる状況の時はさ〜
その意見は個人的には分からなくはないが、このスレの総意でも多数意見でもないと思っている
細かく書くことで嫌がる人もいるだろう。現に俺設定を云々と言ってくる奴がいるわけだし
だから、いつからかここはヒントを伝えて解答全部は書かないというような雰囲気になっていると思う
そして、それも間違いではないと思っている
あんたが誰に叩かれても初心者には懇切丁寧に説明できるなら、それは尊重するがね
0472名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 00:30:44.91ID:PQTJl3Hp0
>>470
それは質問への回答ではない。やり直し
聞かれたことをよく理解し、過不足のない回答を心がけること
もしくは、二度と絡まないと言うならそれでも結構
俺も横から出てきてアレコレ言うだけで、何ら建設的でないお前の相手はしたくないんでな
0473名無しさん@お腹いっぱい。 (ワッチョイ 7b60-9J/J)垢版2017/05/29(月) 00:34:25.87ID:ZNW+Xd000
>>472
「ケチつけるくらいならNGしろ」とかほざいておいてよく言うわ
それはつまりケチ付けられて顔真っ赤になってる証だろ
お前こそ自分のレスがなぜここまで批判されるのかよく考えよう
答えが見つかるまでもう来なくていいから
0474名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 00:37:47.58ID:PQTJl3Hp0
>>473
お前の言葉使いの方が発狂してるように見えるんだがな〜
沸点低すぎないか?ん?
>答えが見つかるまでもう来なくていいから
聞かれたことに答えないくせに言いたいことだけをいうあんたに
そんなことを言う資格は微塵もないだろう。まず逃げずに答えてごらん
0476名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 00:43:21.56ID:PQTJl3Hp0
>>475
それは、その前からこっちが聞いてることに答えられたら対応しよう
順番って分かるよな?分からないならそう言ってくれ
あんたがそこで聞いてることは、その前から聞かれてることに真摯に答えたら考えてあげるから
それが常識ってものだろう。違うと言うなら、説得力のある理由を提示すること
0477名無しさん@お腹いっぱい。 (ワッチョイ 7b60-9J/J)垢版2017/05/29(月) 00:49:22.50ID:ZNW+Xd000
>>476
お前の質問ってそもそもなんだよ?
「嫌とどこに書いてるのか?」という質問のことじゃないのか?
だからその質問に対して「ケチつけるくらいならNGしろ」という発言はケチ付けられることが
癇癪起こすくらい嫌だったという意味だろと
もうとっくに答えも出てるのにそれすら理解できないほど脳みそ沸騰しまくってのかよ
0478名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 00:52:53.59ID:PQTJl3Hp0
>>477
>「嫌とどこに書いてるのか?」という質問のことじゃないのか?
どこに書いているのかと聞いてるんだから、どのレス番のここだって回答すべきだろ
もしくは、どこにもないかだ。改めて回答してくれ。お前のは答ではない

>ケチ付けられることが癇癪起こすくらい嫌だったという意味だろ
それはお前の勝手な拡大解釈だろ?お前の勝手な解釈を決めつけてモノを言うのはおかしいよな?
俺はそんなことは言っていないし思ってもいない

>もうとっくに答えも出てるのにそれすら理解できないほど脳みそ沸騰しまくってのかよ
だから、これはおバカの妄想ということ
0479名無しさん@お腹いっぱい。 (ワッチョイ 7b60-9J/J)垢版2017/05/29(月) 00:56:20.04ID:ZNW+Xd000
>>478
俺には嫌だから発狂してるようにしか見えないからそう解釈したんだが
嫌じゃないなら嫌じゃないで俺は構わないよ
その代わり嫌じゃないならもう少し冷静になって自分のレスの問題点をよく考えようなって言ってるだけ
ここまで説明しないと通じないのかよ
0480名無しさん@お腹いっぱい。 (ワッチョイ 9fc6-9J/J)垢版2017/05/29(月) 00:59:42.95ID:WMKOZcWQ0
何や泥沼になってんね、取り合えす聞かれたことだけ答えとくわおやすみ

>>471
何が問題か?
ホイール連打に3回「も」ケチ付けてるところ
まあ人それぞれ連呼してるし質問者に対してケチつけてるつもりでは無いんだろうけど
ならなぜ言ったのか?つまりそれはただの俺主張だよね
質問に答える体で君は終始自己主張を繰り返してる

そういう自己顕示欲はよそで満たそう、質問に便乗しての自分語りは程々に
0481名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 01:11:51.85ID:PQTJl3Hp0
>>479
>そう解釈した
つまりお前の拡大解釈と言うことな。それが理解できたのなら一歩前進
ただし、質問にまともに答えると言う姿勢とは言い難いがね…

>自分のレスの問題点をよく考えようなって言ってるだけ
そもそも元々お前に向けたレスではないんだ。そのことはもうすでに書いてると思うんだが
そこは理解できてるよな?回答よろしく
だから、気に入らんならNGでどうぞと言ってるわけだよ
にも関わらず延々と粘着されて迷惑な話なのさ。ハナから黙ってNGの方がよっぽどマシだったろうに

>>480
ケチつけるのが問題なら、あんたのレス自体が問題でしょ?
それとも回数が問題と言いたいなら、何回までならOKなどというルールでもあるのかい

>君は終始自己主張を繰り返してる
俺から見たらあんたもそうだよ。単なるあんたの自己主張ではないというなら、1つ確認しておきたい
あんたは、「コマンドもろくに把握してない奴」には「半端に適当な回答しても伝わらない」と言ってるわけ
だから初心者には丁寧に説明すべきということでいいのかい?仮にそうだというなら
あんたは誰に叩かれてもそれを忠実に実行できるのかい?言行一致であるべきだろうからな
0482名無しさん@お腹いっぱい。 (ワッチョイ 7b60-9J/J)垢版2017/05/29(月) 01:29:47.51ID:ZNW+Xd000
>>481
何が一歩前進だよバーカ
お前の理解が遅いせいで何度も話が巻き戻ってただけだろ
お前が>>468で「嫌とどこに書いてるのか」と言ってきた時点でこっちはお前が嫌じゃないと
主張してるってとこまで先に読めてるんだよ
だから嫌じゃないならもう少し冷静に考えろと言ってんだよ

そもそも迷惑ならばNGすれば?
人には偉そうに指図する癖して自分のことは棚に上げるのかよ


>>480
>そういう自己顕示欲はよそで満たそう、質問に便乗しての自分語りは程々に
ほんこれ
0483名無しさん@お腹いっぱい。 (ワッチョイW ef85-KEQI)垢版2017/05/29(月) 01:33:46.01ID:II3Nv+fW0
このスレに限らず、質問に答えているひとに対して無意味な難癖をつけるやつが本当に多い
教えているさまがなんとなく偉そうで気に入らないってだけなんだよな結局
難癖つけてる本人がそのことに気づいてないことも多いけどw
0484名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 01:42:45.50ID:PQTJl3Hp0
>>482
>お前の理解が遅いせいで何度も話が巻き戻ってただけだろ
違うだろ。お前がまともに質問に答えないからだ。それが諸悪の根源

>先に読めてるんだよ
>>473 それはつまりケチ付けられて顔真っ赤になってる証だろ
読めてないよなぁ?自分で書いてることすら覚えてないのかよ…

そして、相変わらず質問に答えない
そもそも元々お前に向けたレスではないんだ。そのことはもうすでに書いてると思うんだが
そこは理解できてるよな?回答よろしく
この質問になぜ答えていないのか?次のレスで答えなかった正当かつ納得できる理由を添えて答えること
ついでに、自分は聞かれたことに答えないのに質問してくる奴なのか? これも回答頼むわ

>そもそも迷惑ならばNGすれば?
こんな風に聞かれたことには答えないくせに言いたいことだけ言うのがお前のやり方か?回答よろしく

>人には偉そうに指図する癖して自分のことは棚に上げるのかよ
「偉そうに指図」などない。それはお前の勝手な拡大解釈。勝手な解釈が正しいと思い込む病気を治せ
そして、自分がどう対応するかは自分で決める
お前のクソ粘着が迷惑だと思っているのは事実。だからお前の病気が治らないなら、どこかのタイミングで
NGにする可能性はある。が、そのタイミングはこっちで決める
そもそも、お前の粘着は明確に俺に向けているから相手をしているのであって、お前みたいに自分へのレスでも
ないのにギャーギャーと言ってるわけではないのだよ。まず最低限それくらいのことは理解しような?
0487名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 01:59:46.08ID:PQTJl3Hp0
>>483
自分がいい回答者だなんてことは言わないけど、無意味な難癖つけてくる奴って何なんだろうな…
質問者にレス向けて回答して、その質問者に文句言われるならまだしも
全く関係ない奴がいきなり出てきて、ひたすら粘着ってホントどこかおかしいと思う

>>485
>答えなくてもまともな人なら分かることだし
散々勝手な拡大解釈する奴が、こんなことを言う資格にはどこにもない。勘違いも甚だしい
お前が拡大解釈する癖があるから、「まともな人なら分かる」ことが通じないんだ
拡大解釈されないために質問せざるを得ない。だから、俺のお前への質問はすべて「必要」なものであって
お前の勝手な判断で無回答することは認められない。もしくは、「二度と拡大解釈はしない」とでもいうなら別だがね
質問に答えるか、拡大解釈を一切やめるか、どちらか選んでくれ。二度と関わらないならそれでも結構だ
0488名無しさん@お腹いっぱい。 (ワッチョイ 7b60-9J/J)垢版2017/05/29(月) 02:05:39.93ID:ZNW+Xd000
>>487
お前みたいなアスペにとって必要なだけで正常な人なら不要
>>470の時点で俺はとっくにその拡大解釈を辞めてる
お前がしつこく説明を求めたから>>473で説明してやっただけ
ま、本音はお前が「ケチ付けられるの嫌じゃない」というのは詭弁に過ぎないと思ってるけどな
本当に嫌じゃないならなぜそんなムキになってるの?
俺はお前の質問に一つ答えてやったから次はお前がこの質問に答える番な
0489名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 02:11:02.15ID:PQTJl3Hp0
>>486
うむ。日本語も流れも読めない残念な子だね。おやすみ

>>488
>本当に嫌じゃないならなぜそんなムキになってるの?
ムキにはなってないですな。それもお前の拡大解釈。だから、「拡大解釈を辞めてる」とぃうのは当てはまらない
さて、未回答に質問に答えてもらおうか。聞かれたことには過不足なく答えるのが当たり前
1個ずつなんてのはお前の勝手な都合だ。そんなこと学校で習ったのか?これも質問に加えておこうw

そもそも元々お前に向けたレスではないんだ。そのことはもうすでに書いてると思うんだが
そこは理解できてるよな?回答よろしく
この質問になぜ答えていないのか?次のレスで答えなかった正当かつ納得できる理由を添えて答えること
ついでに、自分は聞かれたことに答えないのに質問してくる奴なのか?
聞かれたことには答えないくせに言いたいことだけ言うのがお前のやり方か?
すべてに過不足なく回答すること
0490名無しさん@お腹いっぱい。 (ワッチョイ 7b60-9J/J)垢版2017/05/29(月) 02:14:36.76ID:ZNW+Xd000
>>489
いやいや、そんだけ俺に対して必死に長文返してくるのに「ムキになってない」は通用しないよ
だから俺の解釈は拡大でも何でもなく紛れもなく事実
本当にムキになってないならさっさとNGして俺のこと無視すりゃいいだけなのにな
自分から言い出したことだし
0491名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 02:19:31.22ID:PQTJl3Hp0
>>490
はい、質問に回答が一切ないね。やり直し
先に進みたいなら、未回答の質問に答えてからな。拡大解釈大好き君
487の最後の行と489の一連の質問に答えること。できないなら、都合が悪くて答に詰まったいうことな
何かと拡大解釈するお前に対しては、イチイチ確認する「必要」があるんでな
答えないのは逃げていると言うことで確定でいいよなぁ?何も難しいことは聞いてないし
何でこんな簡単なことができないんだろうか?実に不思議だ
0493名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 02:23:39.73ID:PQTJl3Hp0
>>492
残念ながら、俺の質問はその前から聞いているものなんだよなぁ
順番って分かるよな?って前にも聞いたよな?そう言えば、これも未回答だったわ
どんだけ怠慢な奴なんだw 順番が分からないならそう言ってくれ、拡大解釈大好き君
0495名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 02:31:27.55ID:PQTJl3Hp0
>>494
>順番?お前が答える番だと言ってんだろバーカ
それは違うと言ってるだろw
前から未回答かつ溜まってる未回答数も多いお前が先に処理するのが道理
それとも何か?お互い交互に1個づつとかそんなことを学校ででも習ったのか?
何で聞いてることに答えられないんだろうね
突っかかってきておいて逃げまくるって、人として恥ずかしくないのか?
まあ、そんな感覚を持ち合わせていたらそもそもクズみたいな粘着なんてしないかw
0496名無しさん@お腹いっぱい。 (ワッチョイ 7b60-9J/J)垢版2017/05/29(月) 02:36:25.88ID:ZNW+Xd000
>>495
前とか後とか関係無いし
質問は早い者勝ちとでも学校で習ったのか?
お前が俺の質問無視する限り俺がお前に答えてやる筋合いも無い
早くなぜそんなムキになってNGしようともせずに俺にレスしてくるのか答えろよ
0497名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 02:40:15.66ID:PQTJl3Hp0
>>496
>質問は早い者勝ちとでも学校で習ったのか?
それはつまり「順番」を理解してないと言うことだよな?
お前より前から未回答が残っているし、その数も多いと言っているんだが?
そして、ご丁寧に順番って分かるよな?って聞いたよな?それも繰り返し
順番が分からないならそう言ってくれ、拡大解釈大好き君
と書いたが、お前のそのレスを見るに「順番」を理解してないということでいいよな?

>お前が俺の質問無視する限り俺がお前に答えてやる筋合いも無い
残念ながら、お前が無視した方が先だし、それが未だに未回答なのだよ
そもそも、突っかかってきておいて逃げまくるって、人として恥ずかしくないのか?なぁ?
0498名無しさん@お腹いっぱい。 (ワッチョイ 7b60-9J/J)垢版2017/05/29(月) 02:43:55.42ID:ZNW+Xd000
>>497
お前の脳内ルール押し付けるなよ
ムキになってない人間がこんな必死になる訳がないんだよなあ
>突っかかってきておいて逃げまくるって、人として恥ずかしくないのか?なぁ?
そのまんまブーメランだぞ
ホント自分のことだけ棚上げするのが好きなんだな
0499名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 02:51:15.77ID:PQTJl3Hp0
>>498
>そのまんまブーメランだぞ
非常に残念ながら、突っかかってきたのはお前であって、俺はお前の粘着の相手をしてるだけ
俺が突っかけたわけではないなら、ブーメランもクソもない
日本語は正しく使おうな♪粘着&拡大解釈大好き君
しかし、何だかんだ屁理屈捏ねまくって、結局答えないんだよなぁ。何度でも書いてやるよ
突っかかってきておいて逃げまくるって、人として恥ずかしくないのか?なぁ?
ちなみに、俺から突っかかったと言う事実はありませんw
0501名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 02:58:07.98ID:PQTJl3Hp0
>>500
>突っかかり返す
などという日本語があるのか?ちょっとソース出してくれよw お前の造語?
いや、レスが増えれば増えるほど、ID:ZNW+Xd000の頭の悪さが浮き彫りになるねぇ
まあ、相手してやってるのはそれが目的の1つだしw
いかにも頭悪そうというのは十分伝わってるから、ボロを出させりゃいいわけでなw

>逃げてないなら早く俺の質問に答えろや
だから、それはその前からこっちが聞いてて未回答のままの質問にお前が答えたらな
できるだろ?
突っかかってきておいて逃げまくるって、人として恥ずかしくないのか?なぁ?
0503名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 03:05:01.49ID:PQTJl3Hp0
>>502
何もそらしてませんよー 「突っかかり返す」の粘着&拡大解釈大好き君w
お前の未回答はずっと上からあるんだ。それを先に処理しろというのは、ごく当然の話
なぜなら、俺が答えてもお前は答えないという疑念が消えないから。つまり信用できない
未回答の数々がそれを物語っている。お前が答えてこなかったことは厳然たる事実だ
こっちに答えてほしければ、その前からずっと溜まってる未回答の質問に答えろ
きちんと答えると言う姿勢を見せれば、こっちも応じてやるよ。できるだろ?
突っかかってきておいて逃げまくるって、人として恥ずかしくないのか?なぁ?
0505名無しさん@お腹いっぱい。 (ワッチョイ 9f6c-InMg)垢版2017/05/29(月) 03:07:40.64ID:rE33IHUj0
ビジーウェイトせずに
変数の変化を待機したい場合
スクリプト2つ、OnMessage, Pauseを使うしかないんでしょうか?

*要件
F1キーが押されるまで
ループをまわさないで待機、

F1が押されたらループ再開
あと3回、合計4回押されたらまたループを休止
という動作を実現したかったのですが

*解決案1

スクリプトを二つ用意して
スクリプト1がF1を検知してOnMessageを送信
スクリプト2がメッセージを受け取ってF1の回数を増加、0→1のときPause,Offでループ再開
カウントが4になったらPause,On


とやったら動きました。
これ以外にビジーウェイトじゃない変数の監視法ってありますか?
0507名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 03:11:12.41ID:PQTJl3Hp0
>>504
>お前の脳内ルール
は?つまり、お前のルールだと
自分は好き勝手言うけど、相手は答えるのが当たり前ってことなのか?
そういうとんでもなく身勝手な奴だと言うなら、そう書いてくれ
お前の言ってることはそういう意味に受け取れるんだが違うのか?
お前が答えてこなかったことは厳然たる事実だぞ?その未回答は溜まったままだ
それで、どうやってお前が答えると信用できると言うんだ?とても無理なんだが?
0508名無しさん@お腹いっぱい。 (ワッチョイ 7b60-9J/J)垢版2017/05/29(月) 03:14:19.00ID:ZNW+Xd000
>>507
>自分は好き勝手言うけど、相手は答えるのが当たり前ってことなのか?
はいまたブーメラン
自分はそうじゃないと言うならまず俺の質問に答えような?な?
自分から言い出しておいて逃げまくるって、人として恥ずかしくないのか?なぁ?
0509名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 03:17:58.38ID:PQTJl3Hp0
>>508
何度も言うが、それはその前からこっちが聞いてて未回答のままの質問にお前が答えたらな
というか、さすがに質問が出てきたのに続けるのは失礼だと思うわ
ここで続けることは俺は同意しない。お前が続けたいなら別の場所を用意しろ
俺はこのまま終わらせても構わんぞ。どうせお前答えないだろうしw 自信あるね
用意できたらリンクだけ貼っといてくれや。続きはそっちでやろうや
俺からそんな場所を作るつもりはないけどな。お前が答えないという自信があるからw
0510名無しさん@お腹いっぱい。 (ワッチョイ 7b60-9J/J)垢版2017/05/29(月) 03:27:20.70ID:ZNW+Xd000
>>509
何度も言うがそれがお前の脳内ルールだと言ってんだよ
お前の質問に答えてからじゃないとこっちが質問してはいけないなんて決まりはない
だから勝手にお前の脳内ルール押し付けるな
お前は逃げてないなら俺の質問に答えろよ
それが出来ない癖して自分のこと棚に上げまくってるから全てブーメランになる
続けたくないなら最初からNGしてりゃいいだけ
0511名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 03:30:38.29ID:PQTJl3Hp0
>>510
つ509
何度も言わせるな。俺はこれ以上は質問者に迷惑をかけると思っているが
お前はそうは思っていないんだな?それならそう書け
その上で続けたいなら別の場所を用意しろ。お前はホント非常識すぎる
0512名無しさん@お腹いっぱい。 (ワッチョイ 7b60-9J/J)垢版2017/05/29(月) 03:36:14.58ID:ZNW+Xd000
>>511
ほらな、やっぱりNG出来ないんだろ?
自分は出来ない癖して人には押し付ける
人として最悪の性格だな

スレなんていちいち建てるわけねえだろバーカ
他者に迷惑なのは言うまでも無く当たり前
だからこっちからNGしてやるよ
最後までバカ丸出しなのはお前一人

最後に教訓
>自己顕示欲はよそで満たそう、質問に便乗しての自分語りは程々に

じゃあな低能アスペ君
0513名無しさん@お腹いっぱい。 (ワッチョイ fbf0-7zaT)垢版2017/05/29(月) 03:46:34.42ID:PQTJl3Hp0
>>512
別の場所を用意する勇気もないくせに捨てゼリフ
そもそもNG云々は、元々俺のレスは質問者に向けたものであってお前に向けたものではないから
気に入らんならNGでどうぞと言ってるのであって、お前は俺に明確にクソ粘着を続けてきたいのだから、
その前提条件がまるで違う。これも何度も書いてることだ。お前がアホなのか分かっててごまかしてるかだ
まあ、対抗するために「突っかかり返す」とか変な日本語を生み出すような頭の悪さだから、言動がキチガイなのは
さもありなんだわな。続ける気がないなら、それで結構、 「突っかかり返す」の粘着&拡大解釈大好き君w
キチガイ粘着で気持ち悪かったが、少しは休む時間も確保させてもらえるか

>>505-506
いや、スマンかった。答になってないけど、もう少し具体的なスクリプトを書いてくれた方がいいかも
0516名無しさん@お腹いっぱい。 (ニククエ 9fc6-9J/J)垢版2017/05/29(月) 12:26:16.32ID:WMKOZcWQ0NIKU
おお、3時まで続いてたんか
蒸し返してすまんが誤解されたまま曲解されたようなのでそこだけ訂正させてもらう

>>481
初心者には丁寧に説明すべきという主張は一度もしていません
ヒントだけで突き放すのもスレ的には何の問題もないし自分もしています
自分は言ってるのは
取捨選択ができない状態の子に100%引っかかるだろう罠コード投げるとか
質問してる側で立場的にスルー的できない子に対しての俺自慢とか
そういうのは控えましょうって話です

ケチ付けるなという主張もしていません
それが明らかに不合理なら質問者に路線変更を促すのは当然だしケチ付けたってもちろん構わない
というかケチという言い方したのが悪かった
こちらが問題にしたのは『俺ならやらない』って主張を「3回も」繰り返したことだね
君のレス全般に入れることだがとにかく我を強調しすぎ
「オレがオレが」って意識はもう少し目立たないよう抑えよう
0517名無しさん@お腹いっぱい。 (ニククエW ef85-KEQI)垢版2017/05/29(月) 12:32:19.12ID:II3Nv+fW0NIKU
>>516
>君のレス全般に入れることだがとにかく我を強調しすぎ
>「オレがオレが」って意識はもう少し目立たないよう抑えよう

あなた自身「オレならやらないことをやってるのが気に入らないから」突っ込んでるとしか見えないんですが
当事者じゃないあなたの「オレなら」意識から来るその突っ込み自体を抑えるべきじゃないか?って思う
0519名無しさん@お腹いっぱい。 (ニククエ fbf0-7zaT)垢版2017/05/29(月) 13:15:44.77ID:PQTJl3Hp0NIKU
>>516
>初心者に〜ヒントだけで突き放すのもスレ的には何の問題もないし自分もしています
そうだよな。だからこそおかしいんだよ。↑と↓とでは矛盾にしか見えないんだが?
>コマンドもろくに把握してない奴が質問してる状況の時は半端に適当な回答しても伝わらない〜
説明が全く足りないからきちんと伝わるように書いてくれ
ついでに、あんたの理想とする、矛盾しないケチもつけられない回答を見せてみてくれないか?

>自分は言ってるのは取捨選択ができない状態の子に100%引っかかるだろう罠コード投げるとか
「100%引っかかるだろう罠コード」という意図はない。それは決めつけであり質問者にも自分にも失礼
初心者対応で矛盾するようなことを書いているくせに、何を根拠にそんなことを言っているのか?

>質問してる側で立場的にスルー的できない子に対しての俺自慢
「質問者がスルーできない」がまずもってあんた決めつけ。現にスルーされているレスもあるし
元々の質問者にスルー云々などと言った覚えもないんだが? 一体全体どこからそんな発想が出たんだ?
ただの言いがかりにしか感じないのだが?これも説明が足りないね

>君のレス全般に入れることだがとにかく我を強調しすぎ
こっちが言ってもないことを決めてかかってくる、思い込みの激しいあんたの姿勢に問題はないのか?
上の質問と併せて答えてもらいたいね。自分から見れば下衆の勘繰りを拗らせてるだけ
大体、3回「以上も」文句をつけてくるのは、あんたの基準で言うならおかしくないか?
0520名無しさん@お腹いっぱい。 (ニククエ 9fc6-9J/J)垢版2017/05/29(月) 13:47:20.37ID:WMKOZcWQ0NIKU
とりあえず歪曲された解釈の否定をしたかっただけなのでもう議論する気はないです
伝わらない相手なのは分かってるのでこれ以上の説明はしません

他の住民にはスレ汚しすまんでした
木曜のワッチョイ変更まで潜ります
0521名無しさん@お腹いっぱい。 (ニククエ fbf0-7zaT)垢版2017/05/29(月) 13:59:40.21ID:PQTJl3Hp0NIKU
>>520
>もう議論する気はないです
随分自分にだけ都合の良い話だねぇ

>伝わらない相手なのは分かってるのでこれ以上の説明はしません
こっちは、あんたの思い込みの激しさを指摘しているのだから、伝わらない云々はおかしい
あんたの言ってることのおかしさを指摘した上で、疑問を呈しているのだが?
いや、しかしワッチョイは便利だよな。これなかったら分からなかったもしれない。>>446
>そしたらどこが間違ってどう直したらいいのか人に聞くまでもなくすぐわかるから
とか書いてるが、聞くまでもなくすぐ分かるなら、「罠」もへったくれもないだろう?
んで、>>446と同じIDの>>454から今日の ID:WMKOZcWQ0 に至るまで、ケチをつけ続けてきたわけだ

結局、>>517さんの言う通りなんだよ。気に入らんからケチつけてるだけ
自分が気に入らないから文句を言っているが、そもそも自分のレスとの整合性が全く取れていないから
矛盾だらけになって、そこを指摘されたら、「伝わらないから」と謎の言い訳を残して逃げる
もう1人の奴ほどじゃないが、言ってることが支離滅裂なのにたいした粘着だと思うわ
0522名無しさん@お腹いっぱい。 (ニククエ 2b7d-9J/J)垢版2017/05/29(月) 14:28:05.32ID:tDgBXSLE0NIKU
ざっくり見たけど ID:ZNW+Xd000 は ID:PQTJl3Hp0 の質問に真正面から答えないようにしながら
だらだら話を引き延ばして自身の ID:PQTJl3Hp0 へのケチ云々の発言を既成事実化しようとしてる感じだな
荒らしじゃないの
一々相手する ID:PQTJl3Hp0 もどうかと思うが
0524名無しさん@お腹いっぱい。 (ニククエ db77-cSoe)垢版2017/05/29(月) 16:53:21.70ID:4/8dBIRD0NIKU
伸びていると思ったらこの有様か…2chも堕ちたな。
0529名無しさん@お腹いっぱい。 (ワッチョイ 0fb1-9J/J)垢版2017/05/30(火) 20:54:37.46ID:pUO/FzpR0
>>528
LButton & WheelUp::
send, a
return
LButton::LButton

これなら動くのでメモ帳やPotplayerが左ドラッグ中の文字入力を受け付けないアプリケーション側の仕様
ただし上記のだと左ドラッグが出来なくなるので使いものにならない
要するにLButton & WheelUpに割り当てるのはやめた方が良いってことだね
0531名無しさん@お腹いっぱい。 (オイコラミネオ MM7f-uBs+)垢版2017/05/30(火) 23:15:04.06ID:qRgVdMxeM
Loop parseで最後の行がカウントされ続けるんだけど何でだろう

String =
(
0
1
2
3
4
5
)
num = 0

Loop, 10
{
Loop, Parse, String, `n
count := A_index
MsgBox, line:%count%`n%String%
StringReplace, String, String, %num%, , All
String := RegExReplace(String, "(^|\R)($|\R)")
num ++
}
return
0543名無しさん@お腹いっぱい。 (ワッチョイ ea6c-G0G8)垢版2017/06/03(土) 18:48:44.45ID:cR/HydGc0
ローマ字入力テーブルで
sxa -> ざ のように設定した後

xを日本語入力における濁点扱いにする(濁点中置)のが
言語的自然さと実装難度の兼ね合い的にいいかも

autohotkey使ってないけど
0545名無しさん@お腹いっぱい。 (ワッチョイ fd77-zUMb)垢版2017/06/04(日) 10:07:03.33ID:Ck+b7L1+0
>>544
何かの理由で、し + ゛+ ん って、 ゛ を使う必要があったんじゃねえの?
でなければ、なんでそんなことにこだわるのかわからんわ。 普通にJ I でいいんじゃね
sxa と入力とか、 最初の し + ゛+ ん と全く話が変わってるので見てる方は意味不明になるぞ
0547名無しさん@お腹いっぱい。 (ワッチョイW 3587-DtsN)垢版2017/06/04(日) 17:50:37.03ID:zql2L/qL0
itunesの上で曲選択してCtrl+i を押すとプロパテイが出るんですが、
AutohotkeyでSend, ^i としてもプロパティがでる確率が40%ぐらいです。
一方手動でコントロール+i をすると当然100%プロパティが出ます。
どうしてでしょうか?
スクリプトを最小構成にしても同じです。

Sendのやり方に問題あるっぽいです。いろいろ変えてみたんですがだめです。
ためしにmsgboxを書き込んでみた所、100%うごきます。
wikiでSendの項目で見てるんですが、わかりません。教えてください
0548名無しさん@お腹いっぱい。 (ワッチョイ d9bb-zUMb)垢版2017/06/04(日) 18:10:07.36ID:u9mRkfFp0
>>547
機械的に一瞬過ぎてiTunesがうまくキー入力を認識できないのかも
SetKeyDelayでPressDurationを長くしてみれば?
マクロなどでも押してから離すまで10ms以上の遅延入れないと入力受け付けてくれない
ソフトとかよくある
普通に指でキーを一瞬ポンと押すだけでも押してから離すまで大体50ms〜100msくらい
間隔があるものなので
0550名無しさん@お腹いっぱい。 (ワッチョイW 3587-DtsN)垢版2017/06/04(日) 21:20:10.02ID:zql2L/qL0
>>548 549
ありがとうございました。成功しました。
教えてくれたとおりのようです。一瞬過ぎて無理みたいですね。
itunesもアプデする前の前のバージョンまではずっとその一瞬でも受け付けてくれてたんですが
今のバージョンでダメになりました。
このことってほかの多くのソフトでも同じケースが沢山あるかもしれないですね。
肥やしになりました。助かりました
0552名無しさん@お腹いっぱい。 (ワッチョイ 7177-5n1v)垢版2017/06/05(月) 14:48:00.42ID:nKEEuABu0
すみません、基本的なことだと思うのですが質問です。
プロパティとかのウィンドウで、何番目のタブがアクティブなのかは
ControlGet, n, Tab, , SysTabControl321, A
MsgBox, n=[%n%]
で取得できたのですが、そのタブのテキストはどうやって取得すればいいのでしょう?

とりあえずこちらで試した方法としては、
(1) 上記でnを取得してから ControlGet, s, Line, %n%, SysTabControl321, A
(2) ControlGet, s, List, Selected, SysTabControl321, A
の2つがありますが、どちらも、MsgBox, s=[%s%] の結果を見る限りでは不発でした。

一方で、Window Spyでウィンドウを見てみると「Visible Text」「All Text」の
両方の先頭行にタブのテキストが表示されているので、方法はあるはずなんですが、
探し方が悪いのか、見つけられませんでした。
できれば、タブよりも上にオーナードローのコントロールが存在する可能性も考えて、
タブコントロールを指定してテキストを取得する方法があれば教えてください。m(_ _)m
0553名無しさん@お腹いっぱい。 (ワッチョイ 7177-5n1v)垢版2017/06/05(月) 14:56:53.42ID:nKEEuABu0
訂正。オーナードローのことをよく理解していないんですが、
オーナードローだとそもそもコントロールにはならないのかな?
というわけで上記の下から2行目は、標準のコントロールに加えて
誰かが何かを付け加えた場合、という意味に解釈していただければ幸いです。
0554名無しさん@お腹いっぱい。 (ワッチョイ b9c2-wUaA)垢版2017/06/05(月) 15:07:26.22ID:h1lFFCDx0
プロセス単位でネットワーク送受信を監視したくて色々調べたけど、
IP Helper(iphlpapi.dll)のAllocateAndGetTcpExTableFromStackを使えばよさそうな所までしか分からなかったよ・・・
DllCallやったことないし構造体の扱いも全然理解できてないからキツい・・・
http://web.archive.org/web/20060420235405/www.codeproject.com/csharp/iphlpapi.asp
0555名無しさん@お腹いっぱい。 (テトリスT Saa1-c+wP)垢版2017/06/06(火) 19:21:11.05ID:DiWG2xaua0606
>>549みたいに"controlclick"をゆっくり押す方法ってないですか?

mpcのオプションでラジオボタン押すときに入力が速すぎてうけつけないときがあるみたいなんで、今はこんなふうに5回押してなんとかやってます。

controlclick,Button4,ahk_exe mpc-be.exe
sleep,260
controlclick,Button4,ahk_exe mpc-be.exe
sleep,260
controlclick,Button4,ahk_exe mpc-be.exe
sleep,260
controlclick,Button4,ahk_exe mpc-be.exe
sleep,260
controlclick,Button4,ahk_exe mpc-be.exe
0559名無しさん@お腹いっぱい。 (ワッチョイ dd01-wUaA)垢版2017/06/07(水) 18:18:13.99ID:45kqPsiC0
昨日から問題が発生しました
#useHook
F8::
soundbeep
send,{Media_Play_Pause}
return

これが機能しなくなった場合どんな原因が考えられますか?
何かヒントがあれば教えてください

キーイベントは送信されてるみたいです
77 042 h d 2.88 F8
77 042 s u 0.08 F8
B3 022 i d 0.16 Media_Play_Pause
B3 022 i u 0.00 Media_Play_Pause

どのメディアプレーヤーも反応しなくなったのでwindows側の問題でしょうか?

環境はwin10 64bit
autohotkey 64bit v.1.1.25.01 です
0561名無しさん@お腹いっぱい。 (ワッチョイ dd01-wUaA)垢版2017/06/07(水) 19:08:47.12ID:45kqPsiC0
>>560
ありがとうございます
ビープ音は鳴ります
0563名無しさん@お腹いっぱい。 (ワッチョイ dd01-wUaA)垢版2017/06/07(水) 20:14:13.98ID:45kqPsiC0
検証してみました

(A)AHKによるsend,{Media_Play_Pause}
(B)ノートPC本体の再生停止キー(Fn+Home)
(C)USB外付けKBの再生停止キー(Fn+F7)

Foobar2000 いずれも反応しない
PotPlayer Bのみ反応!
MPC-HC いずれも反応しない
Audible いずれも反応しない

PotPlayerのみ反応するがノートPC本体のキーには反応しないという不思議な結果になりました。
0564名無しさん@お腹いっぱい。 (ワッチョイ dd01-wUaA)垢版2017/06/07(水) 20:15:05.51ID:45kqPsiC0
うわ間違えた!

(A)AHKによるsend,{Media_Play_Pause}
(B)ノートPC本体の再生停止キー(Fn+Home)
(C)USB外付けKBの再生停止キー(Fn+F7)

Foobar2000 いずれも反応しない
PotPlayer Cのみ反応! ←★★★★
MPC-HC いずれも反応しない
Audible いずれも反応しない

PotPlayerのみ反応するがノートPC本体のキーには反応しないという不思議な結果になりました。
0565名無しさん@お腹いっぱい。 (ワッチョイ dd01-wUaA)垢版2017/06/07(水) 20:17:56.04ID:45kqPsiC0
Keymillというフリーソフトで再生停止キーをチェックしてみました。

仮想キーコード スキャンコード 拡張キーフラグ イベント挿入フラグ コンテキストコード 遷移状態フラグ タイムスタンプ 追加情報 仮想キーコード定数 キー
119 66 False False False False 28924734 0 VK_F8 F8キー
119 66 False False False True 28924796 0 VK_F8 F8キー
179 34 False True False False 28924906 -3943347 VK_MEDIA_PLAY_PAUSE メディア再生/一時停止キー ★AHKで生成
179 34 False True False True 28924906 -3943347 VK_MEDIA_PLAY_PAUSE メディア再生/一時停止キー ★AHKで生成
179 34 True False False False 28932312 0 VK_MEDIA_PLAY_PAUSE メディア再生/一時停止キー ★ノートPCのキー(Fn+Home)
179 34 True False False True 28932421 0 VK_MEDIA_PLAY_PAUSE メディア再生/一時停止キー ★ノートPCのキー(Fn+Home)
179 0 True True False False 28936265 0 VK_MEDIA_PLAY_PAUSE メディア再生/一時停止キー ★外付けKBのキー(Fn+F7)
179 0 True True False True 28936468 0 VK_MEDIA_PLAY_PAUSE メディア再生/一時停止キー ★外付けKBのキー(Fn+F7)

AHKとは関係ないのかもしれませんがキーコードに詳しい人が多そうなので参考情報もらえると助かります。
0566名無しさん@お腹いっぱい。 (ワッチョイ d987-zUMb)垢版2017/06/07(水) 20:32:41.84ID:zmu1ANW90
>>565
とりあえずキーボードでも反応しないならAHKの問題じゃないので完全にスレチ
ただのおま環バグなので結果報告なども要りません
ちょっとレス貰ったからと言って調子乗らずちゃんと弁えましょう
0567名無しさん@お腹いっぱい。 (ワッチョイ d587-afWY)垢版2017/06/11(日) 14:48:51.07ID:3eq1PbMy0
fejwoviveins[573/6678]

この中から573だけをexcelの選択してるセルにコピーするにはどうしたら良いでしょうか?
数字が3245のように4桁になる時もあります
正規表現のヘルプを見て試しているんですがなかなかうまく行きません
0572名無しさん@お腹いっぱい。 (ワッチョイ 4d77-8RHf)垢版2017/06/13(火) 23:50:14.27ID:3c03jm3X0
echo > a.txt だと「ECHO は <ON> です。」とか出力されるよw
echo.> a.txt (echo.> までの6文字にはスペースを入れないこと)だと、
改行1つだけの2バイトのファイルができる。
copy nul a.txt とすると手元の環境では0バイトのファイルができたけど、
MS-DOSの古いバージョンとかだとうまくいかないとか聞いたことがある。
%comspec% /c exit > a.txt なら、古い環境でも確実にうまくいくと思う。
0576572 (ワッチョイ ef77-j70p)垢版2017/06/18(日) 22:25:53.56ID:pFkhn6H30
>>573
あー、確かにそれ最強やね。
ファイル読み書きの機能がない言語の場合は >>572 の方法、ということで。
0582名無しさん@お腹いっぱい。 (ワッチョイ 53ab-pdLg)垢版2017/06/19(月) 21:00:12.54ID:jkVgXMyE0
ブラウザのHTML5動画にマウスオーバーしたらという条件は作れるんでしょうか?
コントロールが取れないのでImageSearchに希望を託したのですが動画だとどう判定すればいいのかわかりません
0583名無しさん@お腹いっぱい。 (ワッチョイ ef77-j70p)垢版2017/06/19(月) 23:33:34.52ID:JwCrspf50
>>580
Win32APIを叩いたり、コントロールを直接いじったりといったことがWSHではできない。
AHKに限らず他社製品でもそうだけど、キー操作代行ツールの類はそういうことができるからね。
WSHはどこでもスクリプトだけ持っていけば確実に使えるというのはいいんだけど、
出自がVBとJavaScriptだから、無用な制約が色々あって困る。
0586名無しさん@お腹いっぱい。 (ワッチョイ eb97-VLdI)垢版2017/06/21(水) 02:00:14.85ID:JyvUX2iN0
;タブ閉じる
~RButton & LButton::send,^w
でマウスボタン両押しでブラウザのタブ閉じてるんですが、ノートPCはOK
デスクトップはタブを閉じた後、右クリックメニューが開いてしまいます。

Setpoint入れてるからかな?回避方法あります?
0587名無しさん@お腹いっぱい。 (ワッチョイ 6eba-2WTa)垢版2017/06/21(水) 02:20:08.96ID:eZv0CFV80
>>586
~を付けてるんだからむしろメニュー開くのが正常な動作
イヤなら ~ 消して RButton::RButton を書き加えればいい
ただし右ドラッグが出来なくなるからRButtonを修飾キーとして使うこと自体あまり宜しくない
0589名無しさん@お腹いっぱい。 (ワッチョイ 9f6c-q+YL)垢版2017/06/22(木) 15:33:27.04ID:aWIUbLm40
質問です。
マウスの中央ボタンを押しながら左クリックをする事で
あるコマンドが動くように作って使っているのですが、
基本的には動作はするものの、ときどき中央ボタンがどうやら押しっぱなしに
なっているようで、左クリックをするだけで同じコマンドが動作してしまって
なかなか戻せなくなることがあります。
その場合は左クリックを押しながら中央ボタンを押してみるとかすると治る時があります。

MButton & LButton::

この書き出しで始めているのですが、これが機能したあと
ボタンをリリースした事を認識させるようにするにはどうすればよいでしょうか。
よろしくお願いします。
0593名無しさん@お腹いっぱい。 (ワッチョイ 370e-ZLad)垢版2017/06/22(木) 19:23:51.76ID:VbqJmDcz0
SciTE4AutoHoteyのエディタで、ラベル名をハイライトしてF12を押すと、そのラベルの場所へジャンプしますが
ラベル名に
labelラベル
などと日本語を入れるとこのラベルへはジャンプできず、そもそもF12でリストにも出てきません
なんとか出来ますか?
ちなみにAHKとしての動作は問題なく動きます
また、このF12でのジャンプですが、いつもラベルの近くにジャンプして正確にラベルの場所にはジャンプしません
これもしょうがないのでしょうか
0603名無しさん@お腹いっぱい。 (ワッチョイ d745-ZLad)垢版2017/06/23(金) 19:03:49.84ID:4bzzANhV0
正直驚きました
SciTE4AutoHoteyを使わないと最初のところの

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#UseHook

とかも自分で打たないといけないし、予約語も最初の数文字を打てばすべてがでてくるとか、
その辺の機能はつかわないのですか。 
また、命令の予約語を入れると、使い方の文法も出てきますよ
0604名無しさん@お腹いっぱい。 (ワッチョイ 377e-ZLad)垢版2017/06/23(金) 19:14:44.36ID:jYNkRtnW0
>>603
テンプレなんてSciTE4AutoHoteyじゃなくても自由に編集できるしエディタなんて好きなの使えとしか言えない
お前にとってそれがベストなら2バイト文字へのジャンプに非対応でも我慢するしかないだろう
0607名無しさん@お腹いっぱい。 (ワッチョイ d745-ZLad)垢版2017/06/23(金) 19:26:19.44ID:4bzzANhV0
特にコンパイルとかしなければほかのエディタでもいいのかな
ラベルリストを出してそこへジャンプ
一部の文字列を入れただけであとを全部出してくれる
命令予約語を入力したらその後に続くコマンド使用例を表示してくれる
この辺をとても重宝しています。 コマンドの使い方はヘルプを使うで妥協できれば問題ないかもですね
0608名無しさん@お腹いっぱい。 (ワッチョイ 377e-ZLad)垢版2017/06/23(金) 19:32:26.45ID:jYNkRtnW0
>>607
だからお前が何を使おうとお前の自由だと言ってんだろ
ただ他人様の使ってるものにいちいちケチ付けたいなら他のソフトの機能も熟知してからにしろよ
他のエディタなら日本語のラベルにも簡単にジャンプできるし、何を重視するかは人それぞれ
0617名無しさん@お腹いっぱい。 (ワッチョイWW 9fc6-F9tp)垢版2017/06/23(金) 20:34:43.16ID:+uYI6mdL0
SciTEやNotepad++がAHKに対応する前からAHKコード書いてる人間も結構いるからな
苦労して常用エディタ用の環境整えた後に後発の便利エディタ出ました言われてもなかなか乗り換えはできないんよ

自分は昔秀丸で#つきincludeのタグジャンプとか要望対応して貰ってるから浮気はできないわ
0620名無しさん@お腹いっぱい。 (ワッチョイ 9fc6-ZLad)垢版2017/06/23(金) 22:43:13.03ID:+uYI6mdL0
>6のQ9じゃないの

原因はともかく対処法は押下解除を待つか調べるかしてから
SendかMouseClickでU投げたらいいだけじゃね
というか自分で結論に至ってるのになぜコマンド一覧を調べないのか
0621名無しさん@お腹いっぱい。 (ワッチョイ 9f6c-q+YL)垢版2017/06/23(金) 23:53:27.23ID:mHm9VEGk0
>>619
>>620
ありがとうございます。
「SendかMouseClickでU投げたら」この意味がわからないくらい素人なのですみません。
以前ここで相談しながら作ったスクリプトなのですが長いので分割になるかもしれませんが貼ってみます。
;ウィンドウ中央マウス
MButton & LButton::
WinGetActiveStats, t, wa, ha, xa, ya
if(xa=1200 and ya=50 and wa=1345 and ha=1500)
{
Gosub,Label2
return
}
else
{
Gosub,Label1
return
}
Label1:
id:=WinActive("A")
WinGetPos, X%id%, Y%id%, W%id%, H%id%, ahk_id %id%
WinMove,A,,1200, 50,1345,1500
; MsgBox, % "ahk_id " id "`nX" X%id% ",Y" Y%id% ",W" W%id% ",H" H%id% " 中央へ"
return
Label2:
id:=WinActive("A")
WinMove,A,,X%id%, Y%id%,W%id%,H%id%
; MsgBox, % "ahk_id " id "`nX" X%id% ",Y" Y%id% ",W" W%id% ",H" H%id% " 元の位置へ"
return
0622名無しさん@お腹いっぱい。 (ワッチョイ 9f6c-q+YL)垢版2017/06/23(金) 23:54:45.44ID:mHm9VEGk0
それで、冒頭の
MButton & LButton::
これを
^#!Numpad2::
これに置き換えただけのマウスではなくキーボードショートカットに置き換えたほうは
特に問題なく使えています。

修正方法お伺いできると幸いです
0630名無しさん@お腹いっぱい。 (ワッチョイ 9f6c-q+YL)垢版2017/06/24(土) 20:32:14.31ID:wJzxORLj0
>>624
ありがとうございます。!
自分も大丈夫な時は大丈夫なのですが、
症状が出るときと出ないときがあってその違いがなぜ起きるのかがよくわかっていません。

>>620
このかたが紹介してくれてる>>6ですが、
自分はsetpointを使ってロジクールのマウスを使っているのでそれが悪さしているのかもしれません。
あえてリリースの動きなどを追加して安定して動くようにしたいのですが、
ボタンを離すというコマンドはどうやって設定すればいいのか
ご指南いただけますと幸いです。
0632名無しさん@お腹いっぱい。 (ワッチョイ 9f6c-q+YL)垢版2017/06/24(土) 20:43:14.07ID:wJzxORLj0
>>631
日本語解説。たしか2耳管で全部読めるとか書いてあったところがあったと思うのですが、
そこを何日かかけて読んだり結構いろいろ読んだんですが
プログラミング自体について初心者なので途中でわからなくなってしまうんです。
無念
なにか一から解説してあるような書籍などがあればいいんですが。
0634名無しさん@お腹いっぱい。 (ワッチョイ 9f6c-LvKX)垢版2017/06/24(土) 20:51:37.50ID:v3bkCIdO0
コマンド名も書かれていたのにwiki見ずに教えろと言えばそりゃ>>631のような書き方になる
まず書かれていたコマンド名でwikiをもう一度見て今作っているスクリプトと違うもっと簡単なもので
動作を確認してそれでわからなかったら質問
俺もスクリプトなんてこれしかわからないけど習うより慣れろといった感じでやればなんとかなる

DllCallはわからないけどな!
0636名無しさん@お腹いっぱい。 (ワッチョイ 9f6c-q+YL)垢版2017/06/24(土) 20:55:19.75ID:wJzxORLj0
>>634
すみません
「SendかMouseClickでU投げたらいいだけじゃね」
これのMouseClickというのがコマンドだということが今わかりました。
そしてUというのがボタンリリースだというのも今わかりました。
投げるという表現が自分には全く入ってこなかったです。すみません。
0638名無しさん@お腹いっぱい。 (ワッチョイ 37b3-ZLad)垢版2017/06/24(土) 20:59:06.13ID:wPSmyizc0
● 分からない理由 ●
1. 過去ログを読まない。
2. 読んでても肝心な所が見えてない。
3. 検索能力が低い。
4. そもそも検索する気がない。
5. 類推という概念がない。
6. それ以前に普通に頭が悪い。

<わからない11大理由>
1.読まない …現行スレ、テンプレ、取説などを読まない。読む気などさらさらない。
2.調べない …過去スレ、ググるなど最低限の内容も自分で調べようとしない。
3.試さない …めんどくさいなどの理由で実行しない。する気もない。
4.覚えない …人から聞いて、楽して得た答えは身に付かないから、すぐに忘れる。
5.説明できない …何に困っているのか、第三者に正確に伝わる文章が書けない。
6.理解力が足りない …理解力以前の問題で理解しようとしない。
7.人を利用することしか頭にない …甘え根性でその場を乗り切ろうとする。
8.感謝しない …教えてもらって当たり前。事がすんだらさようなら。
9.逆切れする …自分の思うようにならないと逆切れする。
10.開き直る …自分の思うようにならないと開き直る。
11.2ちゃんねるをお客様相談室だと思っている。
0639名無しさん@お腹いっぱい。 (ワッチョイ 9f6c-q+YL)垢版2017/06/24(土) 21:07:01.65ID:wJzxORLj0
こういう風にMouseClick,M,,,,,Uを途中に挿入してしばらく使ってみようと思います。
ありがとうございます。

;ウィンドウ中央マウス
MButton & LButton::
WinGetActiveStats, t, wa, ha, xa, ya
MouseClick,M,,,,,U
if(xa=1200 and ya=50 and wa=1345 and ha=1500)
{
0640名無しさん@お腹いっぱい。 (ワッチョイ 9fc6-ZLad)垢版2017/06/24(土) 22:16:25.10ID:/sn1OQI60
すまん>621見て触っちゃいけない系の人だったの思い出して以後スルーしてたわ

このスレで英字の羅列が出てきたら何はなくとも wikiの検索ボックスにコピペして調べる癖はつけて
コマンドかどうかはともかく高確率でAHK関係のシンタックスだからなんかしらは引っかかる
0641639 (ワッチョイ 9f6c-q+YL)垢版2017/06/25(日) 21:22:59.86ID:qYepoPVn0
>>639
この位置への挿入では症状の改善がなかったんですが、
分岐後の最後の行付近に一応100ミリ秒あけてからそれぞれ挿入したら調子よくなりました。
ありがとうございました。
0642名無しさん@お腹いっぱい。 (ワッチョイ f7ec-AHy2)垢版2017/06/26(月) 00:10:45.48ID:FrkIaZPO0
すみません、お尋ねします。
Iniwriteした時に、頭の部分にスペースを入れたいのですが、Wikiの何処を参照すればいいでしょうか?。

[HAGE]
JANAI= 1

こんな感じです。
宜しくお願いします。
0650名無しさん@お腹いっぱい。 (ワッチョイ 370f-mj4H)垢版2017/06/26(月) 01:23:29.64ID:ocEGmmY40
WritePrivateProfileSection(lpAppName, lpString, lpFileName) {
DllCall("WritePrivateProfileSection", "Str", lpAppName, "Str", lpString, "Str", lpFileName)
}

WritePrivateProfileSection("Test", "Foo1 = Bar1`nFoo2 = Bar2`nFoo3 = Bar3", A_ScriptDir "\Settings.ini")

自分で好きなように関数作ればいいと思う
0651639 (ワッチョイ 9f6c-q+YL)垢版2017/06/26(月) 01:23:32.01ID:Ok7Ir4BO0
質問させてください

実行ファイルがある  C:\Program Files\AutoHotkey
のフォルダにAutoHotkey.iniを置いてもAutoHotkey.exeの起動時に読み込んでくれないんですがなぜでしょうか
関連付けができていなかったのでプロパティで手動で設定しましたがダメでした
右クリックでINIファイルを開いて初めてスクリプトを読み込んでくれます
ですが同じフォルダにAutoHotkey.ahkを置いておくとそれはexe起動時に読みこむようです
優先順位としては
1)C:\Program Files\AutoHotkey フォルダのAutoHotkey.ahk
2)C:\Users\(username)\Documents フォルダのAutoHotkey.ahk
この二つのみで、AutoHotkey.ini は完全に無視される状態なのですがインストール時になにか不具合が起きたのでしょうか?

また、一つのスクリプトファイルに沢山書き込むと編集しづらいのでいくつかに分けたいのですが
その場合、複数のスクリプトをひとつのファイルの時と同様に読み込ませて機能させるようにするにはどうすればよいでしょうか
バージョンはv1.1.24.05でwindows10です
よろしくお願いします
0654名無しさん@お腹いっぱい。 (ワッチョイ 9f6c-q+YL)垢版2017/06/26(月) 01:40:23.45ID:Ok7Ir4BO0
>>652
wikiなどいろいろな解説ファイルにはINIファイルの使用法が書いてあるんですが
その通りにしてもダメなのが不安になりまして、、、
いじっているうちにスクリプトを右クリックしてもautohotkeyのコンテキストメニューも出なくなってしまったり、、、

>>653
#Include
ありがとうございます!やってみます
0657名無しさん@お腹いっぱい。 (ワッチョイ f7ec-AHy2)垢版2017/06/26(月) 14:30:22.31ID:FrkIaZPO0
>>650
返信ありがとうございます。
セクションにも、こんな感じ[ HAGE ]でスペースを入れる事は可能でしょうか?。
以下の様にしてもスペースが入りませんでした。

Test=HAGE
Foo1=JANAI 1
Foo2=JANAI 2

WritePrivateProfileSection(lpAppName, lpString, lpFileName) {
DllCall("WritePrivateProfileSection", "Str", lpAppName, "Str", lpString, "Str", lpFileName)
}

WritePrivateProfileSection(" " Test " ", "Foo1 = "Foo1 "`nFoo2 = "Foo2 , A_ScriptDir "\Settings.ini")
0660名無しさん@お腹いっぱい。 (ワッチョイ 9f74-FY8v)垢版2017/06/27(火) 09:56:08.05ID:ejaLfnRG0
質問です。
現在ノートPCでタッチパッドが5点まで認識するのですがAHKで今何点が押されているか確認し、
ショートカットを設定することはできますか?
もしできるのならば、その方法と具体的なスクリプトを教えてください。
0661名無しさん@お腹いっぱい。 (ワッチョイ 3740-ZLad)垢版2017/06/27(火) 10:03:56.71ID:vkbvVv0A0
>>660
「何点が押されているか確認」することは出来ません
5点を認識できるユーティリティソフトがあるならそのソフトでWindowsAPIに変換して使いましょう
例えばユーティリティ側で5点押し=F13などに割り当てれば、AHKでF13に機能割り当てて使うことが可能になる
ただしユーティリティ側で何が出来るのかは知ったこっちゃないのでその部分はスレチ
0662名無しさん@お腹いっぱい。 (ワッチョイ 37ec-ZLad)垢版2017/06/27(火) 11:26:28.29ID:P0n7PECZ0
>>659
これだとキー一個書き換えるたびに毎回
ini全読み→該当箇所の値書き換え→FileDelete→FileApend を繰り返すことになるな
さすがにこれは効率悪いのでは

ここまでやるならStaticな内部バッファに一時的にセットする関数と
最後にに一括でファイル書き出しする関数を自分で作ったほうがいいかも
0663名無しさん@お腹いっぱい。 (ワッチョイ 9f74-FY8v)垢版2017/06/27(火) 11:29:37.28ID:ejaLfnRG0
>>661
ありがとうございます。
できないんですか...
0667名無しさん@お腹いっぱい。 (ワッチョイ 9f74-FY8v)垢版2017/06/27(火) 14:56:24.63ID:ejaLfnRG0
>>664
理解していませんでした。教えてくださり、ありがとうございます。勉強になりました。

>>665
ありがとうございます。
ちょうどSynapticsでした。
フォーラムというのはこちらでしょうか?
http://bbs.wankuma.com/index.cgi?mode=al2&;namber=77616&KLOG=131
0673名無しさん@お腹いっぱい。 (ニククエ 019b-wjSU)垢版2017/06/29(木) 16:05:22.83ID:4E/r5Hsm0NIKU
たとえば、
a:: と b:: でルーチンを組んだとき、a;; の途中で b:: が割り込みで入ることができます
このとき、 a;; の処理の途中で、ここからここの間だけ割り込み禁止ってできますか

たとえば、
WinAcrivate, タイトル
MouseMove, x, y
とかするとき、ときどきこの間に割り込みが入ってることがあるのです。 こういうところを割り込み禁止にjしたいのですが
しかし、a;; 全体を割り込み禁止にする必要はありません
0678名無しさん@お腹いっぱい。 (スププ Sd62-ahFv)垢版2017/07/01(土) 03:57:01.99ID:gSvccc2ld
色々調べて解決できなかったんで
お願いします

sc07B & l::Send, {Blind}{Right} 無変換 + L = →
で割り当てているのですが、
ウィンドウを右に持ってこようと
Win + →しようと上記のバインドと
一緒にするとロックであるWin + Lが
反応してしまいます。この場合
どのようにすればよいのでしょうか?
0681名無しさん@お腹いっぱい。 (ワッチョイ 069c-lO1+)垢版2017/07/01(土) 07:02:05.63ID:fx/eUvvT0
>>678
レジストリ変更式キーリマップで、WinをF13に置き換えて、自前で Win や Win+ の動作を全部書けば
良いんじゃないかと思って調べたら、やってる人がいた。

スキャンコード f13 でググると最初の方に見つかったよ。
0684名無しさん@お腹いっぱい。 (ワッチョイ 8287-coLX)垢版2017/07/01(土) 08:41:05.82ID:dDrobFzk0
すみません初心者なのですが質問します
指定した特定のウィンドウに対してだけマウスオーバーでアクティブにさせることは可能でしょうか?
Windows7の標準機能だと全部のウィンドウが反応してしまうのでAHKで何とかならないものかと...
可能でしたら、どの辺りを参考にしてよいのか誘導お願いします。
0685名無しさん@お腹いっぱい。 (ワッチョイ cd0e-wjSU)垢版2017/07/01(土) 08:59:04.12ID:BN5dn+9M0
あくまで一つの方法。他にいい方法があるかもしらんが
タイマーで0.5秒間隔でそのウインドウの位置とサイズをWinGetPosでゲット
その範囲にマウスがあるかを判断
あれば、WinActivate
0687名無しさん@お腹いっぱい。 (ワッチョイ cd0e-wjSU)垢版2017/07/01(土) 09:07:04.20ID:BN5dn+9M0
たとえばシフトキーを押したときだけ、0.5秒間隔でチェック用のタイマー起動
シフトキーを離せばタイマーオフ
とかすれば、常時年がら年中タイマー起動ってのは避けられるな
OnMessageを使えばもっと高度なことが出来そうだが、めんどくさいので自分で調べてね
0688名無しさん@お腹いっぱい。 (ワッチョイ 426c-CicO)垢版2017/07/01(土) 09:20:42.53ID:Kym5lIIJ0
特定のウィンドウの条件がわからないけど
タイトルとかプロセスで条件つけるならMouseGetPosで直下のウィンドウのウィンドウハンドルとって
WinGetで条件の値とってIf var in で判定すればいいんでね
0692名無しさん@お腹いっぱい。 (ワッチョイ 8287-coLX)垢版2017/07/01(土) 10:56:10.76ID:dDrobFzk0
>>688 ありがとうございます
ちょっと調べてみたのですが分かりませんでした
具体的に言うと指定しておいたソフトのウィンドウが非アクティブの状態の時
マウスが座標に関係無く、そのウィンドウに乗ったら自動でアクティブにしたいのです
0694名無しさん@お腹いっぱい。 (ワッチョイ cd40-wjSU)垢版2017/07/01(土) 11:02:45.02ID:7VWC/RaU0
>>692
>>686の回答が全てだわ
せめてその3つのコマンドくらいしっかり調べて使い方理解しな
このスレは要望すれば丸々スクリプト書いてくれるスレじゃないから
wiki熟読して試行錯誤して散々遠回りして失敗繰り返しながら自力でスクリプトを書くしかない
それが無理なら素直に諦めな
0697名無しさん@お腹いっぱい。 (ワッチョイ 426c-CicO)垢版2017/07/01(土) 11:39:09.16ID:Kym5lIIJ0
>>692
わからないと言われても何がわからないのかわからないとこちらも説明しようがないので……
俺もそう長く使ってるわけでもないけどとりあえず目標を決めて、始点と終点定めて、間を探って行けばいい

「指定した特定のウィンドウに対してだけマウスオーバーでアクティブ」なら
常に判定する必要があるからタイマーを使うけどとりあえずタイマーは置いておいて
始点はマウスオーバーでGetMousePos
終点のアクティブはWinActivate
判定が必要だからIf
その判断材料得るためにWinGetやそのほかを使う
とりあえず「マウスオーバーでアクティブ」を作って肉付けしていってみてはどうかな
0699名無しさん@お腹いっぱい。 (ワッチョイ 42c6-wjSU)垢版2017/07/01(土) 12:11:30.43ID:h4CY9SuL0
試行錯誤してる人は具体的に何を試してどう上手く行かないのかちゃんと書くしね
ちょっと調べてわからないじゃなくしっかり調べて理解しろって言われてるわけで
ロジックはもう複数の人が教えてるしあとは組み立ててがんばれ
0700名無しさん@お腹いっぱい。 (ワッチョイ 2ef3-aICJ)垢版2017/07/02(日) 02:49:34.00ID:GMfVtPTc0
>>692
このスレにいる人全てが思ったスクリプトをリファレンス見ずに完璧に書けるなんてことはない(と思う)
だからガンバレ!

マウス下のウインドウ情報は→mousegetpos
その内ウインドウハンドルを元にウインドウタイトル取得は→WinGetTitle
また、ウインドウクラス取得は→WinGetClass
該当ウインドウがアクティブか否かは→WinActive()
該当ウインドウをアクティブにするのは→winactivate

以上を定期間隔で実行するのが→settimer

この中で「if」で処理分岐させる必要あるけど、おそらくこれで希望の動きするんではないだろうか?
検証してないので申し訳ない
まぁとにかくガンバレや
0703名無しさん@お腹いっぱい。 (ワッチョイ 8287-coLX)垢版2017/07/02(日) 15:06:39.07ID:D83LxS//0
>>700 701
ロジックはわかたのだけど
具体的な書き方が一部わからない
IMEとロックキー系の制御はTimerで自動化してるので

SetTimer, Timer01, 1000
Timer01:
で作ったんだけど...

一応、タイマーとトリガーになるキーでアクティブ化だけは出来たけど
MouseGetPos, ここがいまいち書き方がわからない
タイトルは毎回変わるのでWinGetTitleでいいのかどうか...
できればclass名で指定したいのだけどマウス下のclassも指定できるのでしょうか?
とりあえず、あとで作ろうと思ってたのが先にできたやつを...
このタイマーより上のところをなんとかすればいいわけなんだろうけど...

Timer01:
if(A_TimeIdlePhysical>5000)
WinActivate, ahk_class 742DEA58-ED6B-4402-BC11-20DFC6D08040
return

これをどう使ってどう書いたらいいのかわからないです
MouseGetPos, この後は?
OutputVarWin ↓このと一緒に使うのか?
ahk_id %OutputVarWin% どう使う?
WinGetTitle ↑でマウス下のタイトルを格納して、WinGetで拾うということ?

あと、アクティブ後のタイマーをどうするか
アクティブ化が無限ループする。何故か非アクティブでも永久最前面化する
トリガーがキーなら問題なかった
とりあえず、タイマーを止める方法を探し中です
ってかマウス下の情報取れれば勝手に止まんのかな?
0708名無しさん@お腹いっぱい。 (ワッチョイ 426c-CicO)垢版2017/07/02(日) 16:07:52.84ID:aE09zI+k0
昨日みんながしたレスは別に何が何でもWinGetやWinGetTitleを使えって意味じゃないよ
質問したときにclassで判定したいと書かなかったからそういうのが使えるのではないかって言っていただけであって
0709名無しさん@お腹いっぱい。 (ワッチョイ 6d8e-wjSU)垢版2017/07/02(日) 16:19:30.09ID:pM51ez0b0
学ぶのは二の次で、とりあえず動けばいいんでしょ?
だったら個人的には盗んだほうが良いと思うから
正解貼っつけてそれを好きにさせればいいと思う
ぐちゃぐちゃと小難しいアドバイスを並べるよりその方が双方にとって良いかもな
0714名無しさん@お腹いっぱい。 (ワッチョイ 426c-R8v4)垢版2017/07/03(月) 01:00:48.37ID:7r3+wgPa0
Pauseで赤くなっているスクリプトにpostmessageで
メッセージを送り続けるとと
色が赤と緑の間を行き来して点滅するのですが

これはメッセージを受け取る処理を実行するためにpause
が一時的にoffになっているのでしょうか?
0717名無しさん@お腹いっぱい。 (ワッチョイ 2d0f-OZRj)垢版2017/07/05(水) 11:54:00.28ID:THqxI/Y/0
>>715
HDD漁ったら昔書いたコードが残ってたんで貼ってみる

OnMessage(0x20, "WM_SETCURSOR")
OnMessage(0x201, "WM_LBUTTONDOWN")

Gui, Window:+LastFound -Caption +AlwaysOnTop
Gui, Window:Color, 000000
Gui, Window:Show, W100 H100 X100 Y100 NA
Return

WM_SETCURSOR() {
hCursor := DllCall("LoadCursor", Int, 0, Int, IDC_HAND:=0x7F86)
DllCall("SetCursor", Ptr, hCursor)
Return 1
}

WM_LBUTTONDOWN() {
PostMessage, WM_NCLBUTTONDOWN:=0xA1, HTCAPTION:=0x2
}

Esc::ExitApp
0718名無しさん@お腹いっぱい。 (ワッチョイ 06dd-CicO)垢版2017/07/05(水) 13:38:06.91ID:pQcxE+w20
>>716
なるほどそんな方法があったとは
>>717
調べてみましたがOnMessageでウィンドウに送られた操作により
関数WM_LBUTTONDOWNを実行していて
0x201が左クリック押し下げで、HTCAPTIONがタイトルバーの事で
0x2は(中止 再試行 無視)?0xA1?
左クリック押し下げをタイトルバー左クリック扱いにしてる的な?
これ以上はアホすぎて分かりませんでしたが
ありがたく使わせてもらいますありがとうございました
0719名無しさん@お腹いっぱい。 (ワッチョイ 57f4-pw7L)垢版2017/07/06(木) 14:41:03.04ID:bDkSu5ce0
皆さんのお知恵を拝借したく存じます
OSはWindows 10 Creators Update(32bit)で、AutoHotkeyは最新の
v1.1.26.0(32bit)を使用中です
やりたいことは「ウインドウズの「天気」アプリを起動する。すでに起動済
みの場合はアクティブにする」です
起動済みのアプリはウインドウのタイトル──「天気」──を指定すれば
アクティブにできるのですが、新規に起動させる方法がわかりません
「天気」アプリのフルパスはC:\Windows\System32\
ApplicationFrameHost.exeで、どうやら「天気」に限らず「カレンダー」
「電卓」「設定」などすべてのアプリはフルパスが同じ、つまり
ApplicationFrameHost.exeという共通の実行ファイルのようです
ふだんはClassicShellのメインメニューにショートカットを置いてあるのでク
リックすればすぐ起動できるのですが、AutoHotkeyで一発で起動でき
ればなお便利です
「天気」アプリだけを新規に起動させる方法をご存じのかたがいらっしゃれ
ば教えていただきたく存じます
0721名無しさん@お腹いっぱい。 (ワッチョイ 57f4-pw7L)垢版2017/07/06(木) 15:19:57.87ID:bDkSu5ce0
>>720
さっそくのレスどうもありがとう
ClassicShellに置いてあるショートカットは自分で作成したものではなく、
Windows 10のデフォルトのスタートメニューで選んだ「天気」アプリのアイ
コンが自動的に登録される仕組みです
ご指摘に従ってコマンドを調べようと右クリックしてプロパティを確認したところ
「Microsoft..BingWeather_8wekyb3d8bbwe!App」と書いてありました
そこで、Run, Microsoft..BingWeather_8wekyb3d8bbwe!App を実行
したところ「指定されたファイルが見つかりません」というエラーダイアログが
出てしまいます
どうすればよいのかしら?
0724名無しさん@お腹いっぱい。 (ワッチョイ 57f4-pw7L)垢版2017/07/06(木) 15:27:44.81ID:bDkSu5ce0
>>722
おかげさまでばっちりうまくいきました!
ちなみにコピペさせてもらったままだと「指定されたファイルが見つかりませ
ん」というエラーダイアログ」が出ましたが、「Microsoft」と「Bing」のあいだ
のピリオド2つ「..」をピリオド1つ「.」にしたら大成功でした
どうもありがとう!
0731名無しさん@お腹いっぱい。 (ワッチョイ 1c6c-W3I9)垢版2017/07/17(月) 13:04:37.83ID:3YRBsneS0
キーAを押しっぱなしにすると連射状態になりますが
他のキーを押すとAを押しっぱなしでも連射状態は止まりますよね?
このとき連射状態を復活させる手段はないでしょうか?
連射状態が復活できれば
完全に近いレジストリを書き換えないcapslockのモディファイア化が出来ます。


#capslockのモディファイア化挑戦の現状
キーの連射状態を観察してcapslockキーのリリースを一応検知できるところまでは出来ました
しかしcapslockを押している最中に他のキーを押すとループが終了して
リリースが検知できなくなってしまいます。

その一回でa::xは動作します。
押しっぱなしのモディファイアとしてはホットキー一回分しか使えないのが現状です。
0732名無しさん@お腹いっぱい。 (ワッチョイ 910e-z+eH)垢版2017/07/18(火) 15:52:32.59ID:HJjTR5hZ0
a.ahkというスクリプトを管理者で実行していて、その中から、Runコマンドで他のアプリを実行すると
それは管理者として起動します
これを管理者ではないユーザーとして実行することってできますか?
Win7なのですが、管理者として実行した場合とそうでないときとで、アプリの動作が違うのです
0734名無しさん@お腹いっぱい。 (ワッチョイ 478e-E/h9)垢版2017/07/20(木) 13:41:15.68ID:ntVZc9sC0
AutoHotKey - Changes & New Features
1.1.26.01 - July 16, 2017

Fixed RegDelete (with no args) failing when A_LoopRegSubKey is blank, such as when enumerating keys directly under the root key.
Fixed RAlt/LAlt:: sometimes failing to prevent menu activation after the user alt-tabs away from a window and reactivates it.
Fixed SC → VK translation for multimedia keys, CtrlBreak, Pause, LWin and RWin, with the exception that multimedia keys and CtrlBreak are still translated incorrectly on Windows 2000 and XP.
Fixed VK → SC translation for multimedia keys, CtrlBreak and Pause.
Fixed 'Wait commands such as RunWait to log extra lines for ListLines only when necessary to show that it is still waiting; that is, after resuming from an interruption which logged other lines.
0735名無しさん@お腹いっぱい。 (ワッチョイ df87-YpI/)垢版2017/07/22(土) 01:25:20.71ID:bUHxCpI00
>>710

          ,,,,,..ー彡彡ミミ))))ミノ、、、、
        彡彡///ミミミ)))))))ノノ)))ヽ
      //////ゞゞヾノノノノ//ノヾヽ
     ////////////゙ヾ、ノノノノ"~///ミミミミミミ
    r////////////           ミミミヾ)))))
   ノノノ/////////            ミヾ)))))))))
   ノノノノ////////              ミ)))))))))ノ
  ((//////////.,,、、,,,   )(    .,,,,,,、、 ヾノノノノノノ
  ノノノ.((((/////ノ.  ヾ゙ゝ // ./''"    ノノ((((((ノヾ
 ノノノ///////ノノ.∠ ●ヽ     /●`ヽ、 ((ヾヾヾヾ)
 ((((((((((///.   ` ー~ ` | |  `ー ´   |ヾヾミミヽ
 ((((((((((/ r.|      .,,.- l  l 、     .|^/))))))))
 ((((((((((.\_|     / ( (._) )\    |/)))))))))
 ((((ヾヾヾヾ .l   .f ,,,-===.v===-、ヽ  .iノノノノノノノ
 λヾヾヾヾヾヽ   l.`、.LlLlLlLlLl 7´.l  ./ノノノノノノノ この、ハゲーーーっ!
  ((ノノノノノノノノ.ヽ  ゝ ゝ 二二二ノ ./ ./ノノノノ
  λヾヾヾ|  ヽ\         /./ノノノノ
    \\.|   ヽ.ヽ、     ノ/   \
    / ヾヽ     \```ー.´´/      \
0740名無しさん@お腹いっぱい。 (ワッチョイ 476d-dw5s)垢版2017/07/25(火) 22:13:52.45ID:Say/v9tX0
マウスカーソルを動かした時に任意のコマンドを実行したい場合
MouseGetPosとSetTimerでカーソル位置の監視を繰り返すしかないですかね?
もし可能ならSetTimerを使わずにマウスの移動を検知する方法があったら
ご教示お願いします
0743名無しさん@お腹いっぱい。 (ワッチョイ 7b01-FEN5)垢版2017/08/02(水) 19:51:14.90ID:swdU24Q10
F1::menu,私のメニュー,Show
sc07B & i::send,{Blind}{Up} ;無変換キーとiで↑
sc07B & k::send,{Blind}{Down} ;無変換キーとkで↓

menuコマンドでメニューを出した時その選択にカーソルキーを使いますが
その時ホットキーが使えないのは回避できませんか・・・・?
0746名無しさん@お腹いっぱい。 (ワッチョイ 7b1c-yAow)垢版2017/08/03(木) 00:13:24.75ID:ZCPN+VNJ0
>>743
単なる好奇心で聞きたいんだけど何のためにわざわざそんな面倒な操作するの?
テンキーレスやノートpcのキーボードでもカーソルキーなんて付いてると思うが…
それをわざわざ無変換+IとKって押しにくい位置だし、まだ無変換+WやSとかの方が
押しやすいだろうに
0757名無しさん@お腹いっぱい。 (ワッチョイ 0d01-3aaz)垢版2017/08/03(木) 01:29:37.86ID:I890JROW0
>>745
ありがとう
別AHK化ついでに抜本的に自分のコードを再構築することにした
現在まで拡張を重ねて1200行
複雑で重くなりメンテも機能追加も困難になってきてる
使用頻度の低い機能や高速応答性を求めない機能は外部化してその都度Runで呼び出す形にしよう

しかし、本格的なプログラミング経験もないし、改築・増築を繰り返して膨らんだコードは汚くなるなorz
リファクタリング頑張るぞー

>>749
そうみたいだね
0763名無しさん@お腹いっぱい。 (ワッチョイWW 7bc6-sMLe)垢版2017/08/03(木) 07:23:40.79ID:pJZy4g/s0
うちはshiftもctrlも左小指固定だな、英数が左よりなら片手で右寄りなら両手
右手はマウスやカーソルキーへの持ち替えでホームにいない事も多いからか
修飾キーを右で押そうとは思わんかった
なので変換無変換もIMEのためだけのキーだわ
0764名無しさん@お腹いっぱい。 (ワッチョイ cf63-gAma)垢版2017/08/03(木) 07:55:18.63ID:wNqV+uXd0
変換はエディタやIDEのようなキーボード主体のアプリで
アプリ固有のショートカットを割り当てるのに使ってるな
汎用操作を割り当てると混乱するしマウス操作が面倒になるので割り当てない
0781名無しさん@お腹いっぱい。 (ワッチョイ 6f63-dE0h)垢版2017/08/04(金) 11:25:35.48ID:dxEdSaJ60
おれもこの機会に無変換+IKJLで上下左右設定して
UとOにもPgUpとPgDnを設定したんだけど
HomeとEndも同様に設定してる人いたら割り当て聞いてみたい
イメージとしては上の7,9が順当な気がするけど
下のM,[.]の方が押しやすいかなとかY,Hもアリかなとか迷ってる
0783名無しさん@お腹いっぱい。 (ワッチョイ 0d01-3aaz)垢版2017/08/04(金) 17:24:29.81ID:hl+IJSJ50
>>781
単体のHome,End,PgUp,PgDnやNumLockオフ時のテンキーと合わせたくなるから
umo.=Home,End,PgUp,PgDn
にしたくなるumo.
0788名無しさん@お腹いっぱい。 (ワッチョイWW 57ec-SIsL)垢版2017/08/04(金) 18:18:51.61ID:tO7YGvF00
無根拠な独自ショートカット考えだすと
後で忘れたりソフト固有のものや慣例的なショートカットと混同したりで困るぞ


でもそこでBSの代わりならとH持ち出すとjkhlと被るんだよなぁ……
仕方なくDにDelあててるけど
0791名無しさん@お腹いっぱい。 (ワッチョイ 7bc6-dE0h)垢版2017/08/04(金) 18:41:33.40ID:SkKFgPJN0
プログラマブルなゲーミングマウスもいくつも使ったがどのボタンになに割り当てたか忘れるし
ショートカットキーはキーボード上で完結しないと使いづらいんだよな
まあトラボ使いだからマウス鬱陶しいてのが一番の理由だが
0795名無しさん@お腹いっぱい。 (ワッチョイ e963-gAma)垢版2017/08/05(土) 01:58:47.82ID:P44HsfO70
割り当てたキーは無変換+F1で即確認できるようにすれば良い
自分はTiddlyWikiの"メモ帳/ショートカット"のようなページをセカンダリモニタに表示して
いつでも確認、編集できるようにしてある

あとはifwinactiveごとにこんなのを仕込んですぐエディタで開けるようにしておくとか
#IfWinActive,ahk_exe myapp.exe
+!Q::EditMe(A_LineFile, A_LineNumber)
0803名無しさん@お腹いっぱい。 (ワッチョイ 575c-ubby)垢版2017/08/05(土) 18:11:42.09ID:yxYjm/HS0
すみません、お尋ねします。
IniReadだと変数が改行されません。

HENSUU.ini, INIの中身
[INI]
HENSUU=1111`n2222

IniRead, HENSUU, HENSUU.ini, INI, HENSUU
msgbox, %HENSUU%

IniReadせず、同一スクリプト内で変数を指定すると改行されます。

HENSUU=1111`n2222
msgbox, %HENSUU%


IniReadでも変数を改行するにはどうしたら良いでしょうか?。
よろしくお願いします。
0809名無しさん@お腹いっぱい。 (ワッチョイ 7bc6-dE0h)垢版2017/08/05(土) 19:43:26.63ID:lJmnygdT0
TomoClip懐かしいなまだ現役なんか

そういやTomoClip起動用ホットキーって設定したまま忘れてたわ
クリップボード履歴は特定の作業中しかいらないから常駐させずAHKから起動かけてたんだった
でもたぶん10年単位でもう使ってないわ
さすがに外すか
0816名無しさん@お腹いっぱい。 (ワッチョイ 9ff3-V3Ru)垢版2017/08/09(水) 19:46:35.65ID:djpeYP7/0
真性のキチガイ荒らし
0823名無しさん@お腹いっぱい。 (ワッチョイ 5b0f-3Zbj)垢版2017/08/10(木) 07:03:11.04ID:WOdOtC3Q0
#If IsCursorInsideRect(0, 0, 32, A_ScreenHeight)
WheelDown::Send, ^{Tab}
WheelUp::Send, +^{Tab}
#If

IsCursorInsideRect(Top, Left, Right, Bottom) {
MouseGetPos, X, Y
Return (Top < Y && Left < X && Right > X && Bottom > Y)
}

#If を使うと少し簡素化できる
0824名無しさん@お腹いっぱい。 (ワッチョイ 7ad1-1nXk)垢版2017/08/10(木) 09:11:28.00ID:PHXtA8CC0
v1.1.26.01 を使っています。
流行らせるページ管理人様のFileLaunchを以下のコマンドで実行したところ
エラーで起動しませんでした。

AutoHotkeyU64.exe Lib\FileLaunch\FileLaunch.ahk
----
Error: Invalid Option.
Specifically: Delimiter

---> 089: Gui,add,ListBox,Multi -E0x00000200 w400 h300 vLst Delimiter

----

Guiコマンドのオプションはバージョンに寄って違いがあるのでしょうか?
すみませんが、教えてください。
0825名無しさん@お腹いっぱい。 (ワッチョイ 0e67-A0Mu)垢版2017/08/10(木) 10:13:41.21ID:RFn9sxkC0
違いはある、というか新しいバージョンでオプションが追加されることは結構ある
古いオプションが使えなくなるのは、Guiコマンドについてはなかったような気がする
(古いコマンドが使えなくなることも、AutoItの残り香的なやつを除けば、基本的になかったはず)

流行らせるページのは昔のAutoHotkey無印用に作られたやつだから
AutoHotkeyA32.exeで動かすか、AHKファイルの文字コードを変更してやるとちゃんと動くかも

ただ>>824のはDelimiterオプションで何も指定してないのがエラー元じゃないのかな
0826名無しさん@お腹いっぱい。 (ワッチョイ 9ac6-W16a)垢版2017/08/10(木) 10:18:04.83ID:G0B+NxzO0
エラーチェックが厳しくなってこれまでスルーされてたエラーが引っかかることはある
上の例だとL氏が引き継ぐ前の旧バージョン(1.0.48.5)では引っかからなかった
とりあえずエラーメッセージにあるDelimiter以降削ったら最近のAHKでも起動はしたが
流行らせるの頃はANSI版前提で作られてるのでA32.exeで実行したほうが無難かもしれない

あと試す前にタスクマネージャで余分なAHK起動してないか確認したほうがいいかも
うちではエラー出た後にプロセス状態で居座ってた
0827名無しさん@お腹いっぱい。 (ワッチョイ 9ac6-W16a)垢版2017/08/10(木) 10:55:06.29ID:G0B+NxzO0
>>825
メッセージ省略されてるけど 元ソースだと指定はされてる

> Gui,+Delimiter`n
> Gui,add,ListBox,Multi -E0x00000200 w400 h300 vLst Delimiter`n,

ヘルプ見るとGui,addでDelimiterオプションは存在しない
Delimiterの指定は上行のGui,+で行われてるので消しミスかも
0828824 (ワッチョイ 7ad1-1nXk)垢版2017/08/10(木) 11:10:49.66ID:PHXtA8CC0
申し訳ありません。
エラーメッセージを手打ちでしたので、不要と思い一行上の
> Gui,+Delimiter
を省いてしましました。

AutoHotkeyA32.exe で起動しましたが、状況変わらず。
*.ahk をUTF-8に変換したところ、今度は以下のエラーとなりました。
---
Error: Call to nonexistent function.
Specification: Scan(GetRealPath(dir),ptn,ld,ep,dep))

---> 641: UpdateIndex(dir,Scan(GetRealPath(dir),ptn,ld,ep,dep))

---
これら関数はFileLaunch.ahk内に定義されていると思うのですが....

>>827氏の
>Delimiterの指定は上行のGui,+で行われてるので消しミスかも

とは、どの部分のことか教えてください。
0830824 (ワッチョイ 7ad1-1nXk)垢版2017/08/10(木) 14:56:37.15ID:PHXtA8CC0
>>825,826
お陰様で無事起動できました。
ご親切な対応に感謝いたします。ありがとうございました。
0837名無しさん@お腹いっぱい。 (ワッチョイ 7f45-aEKd)垢版2017/08/16(水) 07:47:02.89ID:WajeZll00
ホットストリングスのキーの入力間隔指定がうまくいきません
いろいろ試してみたんですがどれもダメです
#Hotstring K1000
#Hotstring K 1000
#Hotstring K,1000
#Hotstring Kn1000
#Hotstring Kn 1000
#Hotstring Kn,1000
0845名無しさん@お腹いっぱい。 (ワッチョイ c977-qs+I)垢版2017/08/17(木) 09:41:55.54ID:duntHIrz0
>>838-844
ふーむ、A_ScreenDPIなんてものがあったのか。

100%のときに96、125%のときに120という値が返るのはWindowsの仕様。
そもそもWindowsで扱っているのはDPI値で、たとえば文字のポイント数と
ピクセル数との相互換算にはこの数字を使う。

100%とか125%とかいうのは、コントロールパネルが便宜的にそう称しているだけの値。

というか今のご時世、「50インチで1920×1080のテレビチューナーつきディスプレイ」と
「9インチで2560×2048のタブレット端末」とが両方とも珍しくないんだから、
倍率だけ取得してもあんまり意味ないよ。
0848名無しさん@お腹いっぱい。 (ワッチョイ 018d-jLVh)垢版2017/08/21(月) 13:12:07.19ID:A6ALt3nf0
AHKを使って、あるウインドウを指定してそれの指定した場所に色を塗る、とかは出来ませんか

既存のソフトがあって、そのある領域に色を付けたらとてもみやすくなるのにと思ったりすることがあるので
ウインドウを指定して指定した領域に色を塗ったり線を引いたりが出来ればいいのにと思うことがあるのですが

あるいはそれが出来るソフトはないでしょうか
0849名無しさん@お腹いっぱい。 (オッペケ Sr4d-QQrd)垢版2017/08/21(月) 17:41:25.00ID:RNkT0uESr
>>848
Gui, Add, Pictureでタイトルバーなしクライアント領域透過で背景透過のpng画像をその位置に置くか
特定の領域だけ隠したいだけなら
WinSet, Region
でもやれると思う

WinSet, Region, 0-0 300-0 300-300 0-300 0-0 100-100 200-100 200-200 100-200 100-100, A
Sleep, 5000
WinSet, Region,, A ; Restore
return
0855名無しさん@お腹いっぱい。 (ワッチョイW 938f-FDjR)垢版2017/08/22(火) 18:36:22.06ID:qLSs8lj90
PixelSearchは指定した色が存在するときにヒットしますが
逆に指定した色が存在しないときに、座標を取得することはできますか?

PixelGetColorをLoopしてやってみましたがかなり遅かったので・・
0857名無しさん@お腹いっぱい。 (ワッチョイW 938f-FDjR)垢版2017/08/22(火) 18:59:16.85ID:qLSs8lj90
失礼しました具体的に書きますね
ブラウザ上でyoutubeの動画が再生されている座標(とりあえずX座標)を取得したいです

背景が0xF1F1F1ですので
左から色を検索して、0xF1F1F1ではなくなるX座標を取得すればいいと思いますが
それができないです
0858名無しさん@お腹いっぱい。 (ワッチョイ 2bf3-jY+h)垢版2017/08/22(火) 21:58:22.61ID:fSLki/+h0
>>857
flash playerの現在位置を知りたいってことだよね?
だったら、ControlGetPos でflash playerのControl class名(aPluginWinClass1)を元に左上角の位置が取得できる
あとはSetTimerで回しとけばスクロールして場所が変わっても常に最新の位置が取得できる
0861名無しさん@お腹いっぱい。 (ワッチョイ dd72-wNGo)垢版2017/08/26(土) 21:58:41.09ID:ffDSWmBD0
Array := Object()
Array[0] := [1,2,3]
Array[1] := [10,20,30]
Array[2] := [100,200,300]

こんな感じの配列のそれぞれのキーの値を1つずつ取り出して
1,10,100、1,10200、1,10,300、1,20,100……
という全ての組み合わせが欲しい場合、どういう処理をすればいいですか?

上の例ではキー3つ、値3つずつしかありませんが、実際に処理したい内容は
配列のキーの数は1〜13、1つのキーに含まれる値は1〜25程度あります。
0865名無しさん@お腹いっぱい。 (ワッチョイ cad1-M74o)垢版2017/08/27(日) 01:30:46.31ID:ZKXMcXTK0
書き込めるようなのでお聞きしたいのですが。

ローカルにあるファイルを書き換えたり、開いたりしたくて

・・・・(動作記述) C:(以下フルパス).test.txt


・・・・(動作記述) C:(以下フルパス).test.txt


・・・・(動作記述) C:(以下フルパス).test.txt

のように同じファイルを扱う記述を何回かくりかえすのですが
場所を変えるたびに何か所も書き換えるのが面倒なんで
一か所変数にフルパスを入力して以下そこを参照してって構造にしたりできませんか?
0867名無しさん@お腹いっぱい。 (ワッチョイ cad1-M74o)垢版2017/08/27(日) 13:42:45.03ID:ZKXMcXTK0
ありがとうございます
今は記述見られる環境にないのですが、fileappendとRunだったと思います
具体的にどのように記述したらよろしいのでしょうか?

fileappend,Text,C:・・・.test.txt
Run,C:・・・.test.txt
0875名無しさん@お腹いっぱい。 (ワッチョイ ad6c-beId)垢版2017/08/27(日) 19:21:04.89ID:GLVvABwQ0
>>861
k:=Array.MaxIndex()
a:=[]
f(0)

f(i){
 global Array,a,k
 Loop,% Array[i].MaxIndex()
 {
  a.Push(Array[i][A_Index])
  if (i < k)
   f(i+1)
  else
   ここに来るごとに各組み合わせが取れる(配列a)
  a.Pop()
 }
}


適当に書いたが上手くいってるように見える
ほめられたやり方なのかどうかは知らない
0876名無しさん@お腹いっぱい。 (ワッチョイ cac6-vgeI)垢版2017/08/27(日) 22:12:04.15ID:PtjqheDO0
>>870
そのものずばり 変数 って回答もらってるんだからそれ以上の精度の回答なんてない思うが…
あなた過去にも咀嚼しないで再質問繰り返してる人だよね?
言っちゃ悪いけどこんなの 僕は自分で調べる気一切ありません て宣言してるのも同じだよ?

1. 質問する前にwikiの スクリプト仕様 を読み返す
2. 回答もらったらwikiの検索BOXにキーワード入れて検索

これが実行できないのならAHK使うの諦めたほうがいいよマジで
悪いけど質問していいレベルの事柄ですらない
0884名無しさん@お腹いっぱい。 (ワッチョイW 86f3-xnv4)垢版2017/08/28(月) 22:21:14.23ID:OD5GMrv+0
>>873-874
他にはボタンのスクショを予め撮って置き、それをImageSearchで捜す
あとは、例えばボタン文字列が「開く(O)」みたいになってたら、send,!oでも行けそう
もっと有るかもしれないけど↑以外自分は分からない

そもそも何で座標を指定するやり方が嫌なのか分からないが、
もし、該当のボタン含むウインドウが表示する度に場所が変わるってことなら、
CoordMode, Mouse, Window で基準をウインドウ左上の角にすれば良いだけだと思うが・・・
でも、ボタンの位置がコロコロ変わるってんなら話は別で、やっぱ上記のやり方かなー
0885名無しさん@お腹いっぱい。 (ニククエ cd63-xjvb)垢版2017/08/29(火) 16:39:55.54ID:bNioMEw20NIKU
英語キーボードなんですが左altに無変換を同時に割り当てることってできます?
左altを無変換に割り当てたところalt+f4で閉じるが使えなくなったので
できれば慣れてるやり方で使えればと思いまして
0887名無しさん@お腹いっぱい。 (ニククエ fe9c-oKtA)垢版2017/08/29(火) 16:55:45.51ID:3SEZMKvw0NIKU
>>885
まず、レジストリ系のキー変更アプリで、左alt を f13 キーにしておく。
そして、↓のように書けば良いんじゃないかな。

f13 & f4::Send,!{f4}
f13::Send,{sc07B}

装飾キーはそのまま使うとたまに誤動作するから。
0893名無しさん@お腹いっぱい。 (ワッチョイ c33e-k/3h)垢版2017/09/01(金) 01:07:37.82ID:0PMQPHaA0
QorEを押したらもう一度押すまでおしっぱにされているスクリプトを見つけたんですが
シフトを押した場合おしっぱを解除したいんですが下記にどのようなコードを追加すればいいでしょうか?

https://autohotkey.com/boards/viewtopic.php?f=19&;t=32339
0897名無しさん@お腹いっぱい。 (ワッチョイ cf01-k/3h)垢版2017/09/01(金) 20:22:06.32ID:1G41JveX0
たいへん勉強になりました!!
0901名無しさん@お腹いっぱい。 (ワッチョイ a3ec-k/3h)垢版2017/09/02(土) 13:27:53.00ID:medBOmhe0
多分簡単な内容かも知れませんが宜しくお願いします。

SPLASHとかてにWINSET等の方法又は 最前面に固定したアプリ又は画像ウィンドウの領域を反応させないで
表示させたまま下のウィンドウの操作をしたいのですが組み方としてはどうすれば良いんでしょう?
WinSet, AlwaysOnTop 等では画像分のアクティブになってしまうようでして。
0902名無しさん@お腹いっぱい。 (ワッチョイ b387-b8Mh)垢版2017/09/02(土) 19:26:50.64ID:PxYybRRg0
>>901
透過ウィンドウのことだね

Gui, Add, Edit, h500 w500
Gui, Show, NA, TEST
WinSet, Transparent, 50, TEST

Gui, +AlwaysOnTop +E0x00000020
; WinSet, AlwaysOnTop, On, TEST ; 最前面
; WinSet, ExStyle, +0x00000020, TEST ; WS_EX_TRANSPARENT(透過ウィンドウ)
return
0903名無しさん@お腹いっぱい。 (ワッチョイ a3ec-k/3h)垢版2017/09/03(日) 07:58:15.02ID:tPQnacaR0
>>902

あーーー!!!
コレです!
これだけわかればもうOKです。
有難うございます。こう指定すればよかったのですか…勉強になりました。
0905名無しさん@お腹いっぱい。 (ワッチョイ ff87-uJLR)垢版2017/09/04(月) 00:16:19.30ID:bG9ijaw10
すみません質問いいでしょうか

やりたいのは アクティブなら最少化、非アクティブならアクティブに、起動してないなら起動です
他のプログラムではうまくいくのですがExplorer(ブラウザじゃない方)が起動しないです
" Run,C:\Windows\explorer.exe"以外の書き方ってありますか?
windows7です。よろしくお願いします

#E::
Process, Exist, explorer.exe
If (ErrorLevel <> 0)
{
IfWinActive, ahk_class CabinetWClass
{
PostMessage, 0x112, 0xF020, , , ahk_class CabinetWClass
}
Else
{
WinActivate, ahk_class CabinetWClass
}
}
Else
{
Run,C:\Windows\explorer.exe
}
Return
0917名無しさん@お腹いっぱい。 (ワッチョイ ff87-uJLR)垢版2017/09/04(月) 02:21:40.56ID:bG9ijaw10
>>907
失念してました
>>908
ありがとうございます解決できました
プロセスが常に起動してることを失念してたのが原因ですかね
プロセスじゃなくウィンドウが存在するかどうかで処理すればよかったのですね

>>909
ご指摘どうもです
上のElse 1つ余計で要らなかったですかね?

#E::
IfWinExist, ahk_class CabinetWClass
{
IfWinActive, ahk_class CabinetWClass
{
PostMessage, 0x112, 0xF020, , , ahk_class CabinetWClass
}
{
WinActivate, ahk_class CabinetWClass
}
}
Else
{
Run,C:\Windows\explorer.exe
}
Return
0919名無しさん@お腹いっぱい。 (ワッチョイ b3f3-WcSR)垢版2017/09/04(月) 02:49:11.33ID:IxgPkgxk0
>>917
Elseを使わない場合はこうですね

#E::
IfWinExist, ahk_class CabinetWClass
{
IfWinActive, ahk_class CabinetWClass
{
PostMessage, 0x112, 0xF020, , , ahk_class CabinetWClass
Return
}
WinActivate, ahk_class CabinetWClass
Return
}
Run,C:\Windows\explorer.exe
Return

書き方の違いだけでElse使っても同じ動作させられるので好みだと思いますが
0921名無しさん@お腹いっぱい。 (ワッチョイ ffc6-6h2J)垢版2017/09/04(月) 07:35:31.57ID:iAwmkG+w0
>>919
うーん…
それ己が好きで使う分にはいいかも知れんけど人に薦めないほうがいいような
出口をむやみに増やす書き方は好みと呼ぶには変態すぎる
多重loopの深い階層から一気にアボートしたい場合時は自分も中途return使うけど基本的に変則処理だから

>>917
そこのelseは必要
行数減らしたいなら1行しか処理内容がない場合の{ }は省略可能

#E::
  IfWinExist, ahk_class CabinetWClass
  {
    IfWinActive, ahk_class CabinetWClass
      PostMessage, 0x112, 0xF020, , , ahk_class CabinetWClass
    (else)
      WinActivate, ahk_class CabinetWClass
  }
  Else
    Run,C:\Windows\explorer.exe
Return
0922名無しさん@お腹いっぱい。 (ワッチョイ b3ac-WcSR)垢版2017/09/04(月) 12:52:51.87ID:s4P5aKg20
>>921
別に人に薦めてるわけじゃないですよ
ただ初心者向けのwikiのサンプルコード集とかも{}の中にReturnを付けてElseを使わない書き方が
多かったので、たまたま自分はそれに慣れてしまったというだけですので
完全に独学なので何が変則とか分からないですしね
0924名無しさん@お腹いっぱい。 (ワッチョイ 0387-joaX)垢版2017/09/04(月) 14:07:18.50ID:9j+nU6QO0
マウスのサイドボタン+ホイール上下で
firefoxのyoutubeの音量を調整するために下記のように設定したのですが

;Firefox音量調整
#IfWinActive ahk_class MozillaWindowClass
xbutton1::Send,^w
xbutton1 & WheelUp::send,{Up}
xbutton1 & WheelDown::send,{Down}
#IfWinActive

初めのうちは問題なく動作するのですがしばらくすると音量の上げ下げを受け付けなくなります
その際も xbutton1::Send,^w の方は受け付けています
その後、Reload This Script すると再び動作しますがしばらくするとまた
マウスの2ボタンを使ったスクリプトは受け付けなくなります

firefoxの問題かとも思ったのですがIEでも同じ挙動になります
どうすれば安定して動作するでしょうか?
0925名無しさん@お腹いっぱい。 (ワッチョイ cff3-GmsI)垢版2017/09/04(月) 21:10:41.98ID:8+O37YES0
>>924
参考になるか分からんけど、自分もwheel操作にキーを送るスクリプト(>>819と同等の)使ってるが、
以前、「マウス関数群 (MUS.ahk)」ていう関数を使う別のホットキーのコードも併記していたら同じようになった
でも、MUS.ahk使うコードが不要になり、この関数を使わなくなったら以降同現象は発生しなくなった

※MUS.ahkが悪さしてたというより自分の書き方が悪かったのかもしれないので念のため
0927名無しさん@お腹いっぱい。 (ワッチョイ 0387-joaX)垢版2017/09/04(月) 22:11:00.76ID:9j+nU6QO0
>>925
ありがとう
自分は他のスクリプトは併用していないし念のため32ビットと64ビット両バージョンで試したけど
だめだった
仕様だと思って諦めます

>>926
そうなのよ、急に ^w だけ認識するようになって音量調整しようとしたらてタブが閉じるようになった
0928名無しさん@お腹いっぱい。 (ワッチョイ cff3-GmsI)垢版2017/09/04(月) 23:58:21.70ID:8+O37YES0
今頃気づいた
自分使ってないので分からないが、firefoxってホイールクリックでタブ閉じないのかな?
ホイールクリックでタブ閉じする方が誤爆率低そうなんだが…
そうすればxbutton1は別用途で使えるようになるから良いと思うがな

スレ違いand大きなお世話ですまん
0935名無しさん@お腹いっぱい。 (ワッチョイW cff3-PFWn)垢版2017/09/05(火) 11:51:00.61ID:RQRJN7rO0
wikiのサンプルコード集 - 1つのキーに3種類以上の動作割り当て
どうしてもxbutton1に拘りたいなら、これでxbutton1のダブルクリックに^w割り当てれば誤爆減るかもね。
あとは、ホイールクリックに^w割り当てる手もある。(パンて言うのかオートスクロールって言うのかの機能殺すだろうけど)

firefoxの機能に「このタブより右(左)を全て閉じる」みたいな機能(拡張)あるならそれ使えば良いのに、、、とも思う。
0936名無しさん@お腹いっぱい。 (ワッチョイ 0387-joaX)垢版2017/09/05(火) 13:32:39.30ID:188LMfmV0
>>935
「このタブより右(左)を全て閉じる」も使ってるけどだいたい10から20くらいのタブの間を
行ったり来たりするから細かく素早くタブを消したいのよ
誤爆してタブ消すことあるけど拡張のマウスジェスチャーで 右ボタン→← を
ctrl+shift+T に割り当ててるから一瞬でタブ復活できて読んでたページのスクロール位置も記憶してて
そこまで戻ってくれるから自分にはサイドボタンを ctrl+w に割り振るのが1番使いやすいです
0938名無しさん@お腹いっぱい。 (ワッチョイ 0387-joaX)垢版2017/09/05(火) 14:42:48.54ID:188LMfmV0
>>937
自分の使ってるのはエレコムの安い2000円くらいの5ボタンマウスだけど
壊れて他の使うと手になじむまで結構かかるからまとめて同じの10個くらい買ってる
1個の寿命がだいたい3年くらいもつのでたぶん自分が呆けるか死ぬかUSBの規格が
終わるくらいまではもつかなw
ゲームとかで激しく使うわけじゃないから壊れたと思っても分解清掃したら復活して全然壊れないw
0939名無しさん@お腹いっぱい。 (ワッチョイ f34c-ffya)垢版2017/09/05(火) 16:24:36.71ID:2p8x7jza0
WinActivateでwindowを指定したいんですけど、
同じアプリで2つwindowを開いてるからタイトルもクラスも同じだから、
先に起動したほうのwindowがアクティブになるんです。

後に起動したwindowをアクティブにしておいてからやっても、先に起動したほうの
windowがアクティブになってしまう……。
何か解決方法ありますでしょうか?
0943名無しさん@お腹いっぱい。 (ワッチョイ b387-b8Mh)垢版2017/09/05(火) 17:02:37.45ID:uXUJebp/0
>>939
ウィンドウハンドルで指定

https://msdn.microsoft.com/ja-jp/library/cc344590.aspx
> Windows では、作成されたウィンドウにハンドルを割り当て、ウィンドウが削除されると、割り当てているハンドルを解放します。
> ウィンドウが存在する限りそのハンドルは保持されますが、ウィンドウを一度削除して再作成したときに同じハンドルが割り当てられるとは限りません。
> ハンドルを変数に保持する場合は、ウィンドウが削除されるとそのハンドルは無効になることに注意してください。
0945名無しさん@お腹いっぱい。 (ワッチョイ b70e-x/0H)垢版2017/09/07(木) 12:23:30.02ID:/lAMkvyj0
Win7です。 WindowsUpdateを起動するとき、

Run, wuapp

とすると、WindowsUpdateのウインドウが出てきますが、一発で更新プログラムの確認をしたいのです
今は、このウインドウを起動して、あとは手作業でマウスを動かしてやっていますが、
一発で更新プログラムの確認が出来る方法、コマンドってありますか
0952名無しさん@お腹いっぱい。 (ワッチョイ 3e67-xkdj)垢版2017/09/10(日) 05:56:51.93ID:Gp5DYXYz0
MButton::
if(clickEnable = true)
clickEnable := false
if(clickEnable = false)
clickEnable := true
loop{
click
sleep 250
if(clickEnable = false){
break
}
}
return

ミドルキーを押すと連打、もう一度押すと連打解除のスクリプトを作りたくて組んだのですが、
連打解除が出来ない状態です。
どなたかアドバイスをお願いします。
0957名無しさん@お腹いっぱい。 (ワッチョイ 3e67-xkdj)垢版2017/09/10(日) 09:07:45.68ID:Gp5DYXYz0
clickEnable := false

MButton::
if(clickEnable = true)
clickEnable := false
else if(clickEnable = false)
clickEnable := true
loop{
SetTimer, click , 250
if(clickEnable = false){
break
}
}
return

すいません。
やはり動きませんでした。
更に助言を頂ければ幸いです・・・。
0960名無しさん@お腹いっぱい。 (ワッチョイ 0b87-x/0H)垢版2017/09/10(日) 09:46:26.55ID:HxrW5Xht0
最近やり始めた。

ファイルがあればおkとか初めの?にも書いてあるし
ネットの入門ページにもEXEダブルクリックでおkとか書いてあるのに
結局ファイル取らせないと起動しない上
?ページの英語頑張ってよみつつ検索してもencordでマッチしないし
webページはバージョン違いで参考にならないから
コンテキストメニューからの生成で8Bってわかって変えてやりかたかった
win+Tへのリマップいきなりできたからイイけど

そもそも同じ場所に3つもEXEあるしソレゾレの説明が無い。
まぁこのスレの説明から恐らくU32がオススメなんだとは思うが
沢山あるネット入門ページが変なのは今までの歴史の重積のセイだと思うんだけど、
コレじゃ新規ゆとりんには流行らんわコレ

あまりに案内がメチャクチャ過ぎる
0961名無しさん@お腹いっぱい。 (ワッチョイ 0e67-njbG)垢版2017/09/10(日) 10:33:39.93ID:ZLodYEhw0
>>960
ほんとそれ

> ファイルがあればおkとか初めの?にも書いてあるし
> ネットの入門ページにもEXEダブルクリックでおkとか書いてあるのに
> 結局ファイル取らせないと起動しない上

EXEファイルと同じ名前のAHKファイルを起動するだけならEXEダブクリでおk

> そもそも同じ場所に3つもEXEあるしソレゾレの説明が無い。
> まぁこのスレの説明から恐らくU32がオススメなんだとは思うが

A32→Ansi/32bit版、U32→Unicode/32bit版、U64→Unicode/64bit版
PCが32bitなら32bit版、64bitなら64bit版
基本はUnicode版推奨だけど、一部の古いスクリプトを動かしたいだけならAnsi版が都合のいい時があったりなかったり

> 沢山あるネット入門ページが変なのは今までの歴史の重積のセイだと思うんだけど、
> コレじゃ新規ゆとりんには流行らんわコレ

Unicode版の登場と、最近A32・U32・U64が同じパックで配布されるようになって入門のあたりはだいぶ信用できなくなってるけど
それ以外は昔の記事でも役に立つから…(震え声)
0962名無しさん@お腹いっぱい。 (ワッチョイ 17ec-x/0H)垢版2017/09/10(日) 10:57:13.22ID:9Ln2fu6j0
むかし流行らせた本人はもう流行らせたくないつってサイト閉めちゃったからねぇ
正直>960が何言ってるのかよくわからんが AHK分かりにくいよ何参考にしたらいいんだよ ってこと?

アプデ追従常時最新じゃないにしろ AutoHotkey Wikiなら情報古すぎて役に立たないってことはない
AHK v2についてはα版だし解説も少ないので初心者がいきなり手を出さないほうがいい
0963名無しさん@お腹いっぱい。 (ワッチョイ 0e67-njbG)垢版2017/09/10(日) 11:43:33.03ID:ZLodYEhw0
>>952>>957
勘違いだったら悪いけど、スクリプトがどういう順番で動いているかの理解がいろいろ間違ってる

@最初にミドルを押すとMButton::ラベルが実行されるけど、もう一度ミドルを押したときは実行されない(正確にはスレッドの割り込みが行われない。詳しくはThreadとか)
Aループ中にclickEnableをfalseにする処理がないから、一度目のループが永遠にbreakしない(動かないように見えるだけで、実際はずっと必死にループしてる)
BSetTimerは別にラベルが必要

やり方としては、一度のMButton::ラベルの中だけで全部終わらせるようにする
具体的にはloopの中に、2回目のミドルクリックをkeywaitかinputとかgetkeystateとかで感知してbreakする処理を入れてやる
keywaitおすすめ
0966名無しさん@お腹いっぱい。 (ワッチョイ 17ec-x/0H)垢版2017/09/10(日) 17:54:59.37ID:9Ln2fu6j0
キーボードだったらキーリピート発生するから>893みたいな例でKeyWaitやGetKeyState使えるけど
マウスの場合 Send, {Lbuton Down}してもクリック連打にはならないので
MButton::スレッド内で完結させるのは難しい

KeyWait中はクリック連打させられないしGetKeyStateでBreakしちゃったら
その後の再押下までやっぱりクリック連打されない
Loopは諦めて素直にSetTimerにしたほうがいい
0968名無しさん@お腹いっぱい。 (ワッチョイ 0e67-njbG)垢版2017/09/10(日) 20:08:04.68ID:ZLodYEhw0
>>954
俺の書き方が悪かった、その調整で大体あってるけどそれだと
ループに入った後に次のミドルクリックをひたすら待って2回目のミドルクリックでbreakしてるか
あるいは1回目のミドルクリックが離される前にkeywaitの判定に入っちゃって即座にbreakしてる
どちらにしろループの1回目でbreakしてるから連打できてない

>>967の人ので動いてくれると思う
クリック

ミドルクリックが押されるのを待つ、ただし250ミリ秒たったらタイムアウト(sleepの行の節約にもなる)

タイムアウトしなかったら(errorlevelが0なら)、つまり2回目のミドルクリックされたらbreak
タイムアウトしたら(errorlevelが1なら)次のループへ

ループの前のkeywaitは、1回目のミドルクリックが離されるのが遅くて即座にbreakしてしまうのを防ぐ保険だと思う

あと最初に言えばよかったんだけどlistlinesかタスクトレイメニューのOpenでスクリプトの流れが見えるから
今回くらいの短さのやつならそっちを確認しながらやるといろいろ捗る
0969名無しさん@お腹いっぱい。 (ワッチョイ 0e67-njbG)垢版2017/09/10(日) 20:56:51.46ID:ZLodYEhw0
せっかくだからタイマー使うやり方も
スレッドが2つになるのがあんまり好みじゃないけど、こっちの方が最初に希望してた動作に近いかな?

MButton::
clickEnable := clickEnable ? false : true
if(clickEnable = true)
settimer, clicktimer, 250
else if(clickEnable = false)
settimer, clicktimer, Off
return

clicktimer:
click
return
0972名無しさん@お腹いっぱい。 (ワッチョイ ff77-WPj4)垢版2017/09/11(月) 12:47:39.81ID:rdkmRnoo0
>>961
今から始めるなら基本はU32版。
これなら普通に使っている限り、Windowsが32bitでも64bitでもきちんと動いてくれる。
U64版は64bit版のWindowsにしかない機能を使うときのためのもの。
A32版はWindows95/98/Me/NT4をまだ使っている人と、
その時代のスクリプトを手直しせずに使いたい人のためのもの。

ちなみに俺の場合、64bitマシンのProgram Filesには素直に64bit版を入れているけど、
Ahk2ExeでコンパイルするときはA32・U32・U64 を3つとも作るようにしている。
…で、ほとんどの場合は持込先が64bit OSでもU32のEXEファイルだけで事足りている。
今のところ、Win64のDLLを使うとか、よほど巨大なデータを扱うとかしない限り、
「迷ったらU32版」で何も問題ないと思うよ。
0975名無しさん@お腹いっぱい。 (ワッチョイ 0e67-njbG)垢版2017/09/11(月) 21:30:39.92ID:gvgo1xfh0
>>971
settimerはコマンドで、settimerのパラメータにユーザー定義ラベルを指定する必要があって
ユーザー定義ラベルの代わりにユーザー定義関数が最近使えるようになった、てのが正確なところだけど…
まあ当初の目的が達成できたならよかったよ
0983名無しさん@お腹いっぱい。 (ワッチョイ 5a87-HP8N)垢版2017/09/12(火) 10:45:08.23ID:T5YGvLqj0
すみません質問いいでしょうか?
何枚か重なったウィンドウで1番裏にあるウィンドウをアクティブにするコードなんですが
グループを指定しなくても出来ますか?
特に指定や除外条件が無いので簡単に最裏を指定したいです。

;Auto-execute Section
;〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
GroupAdd, UraWindow, ahk_exe firefox.exe
GroupAdd, UraWindow, ahk_class WindowsForms10.Window.8.app.0.141b42a_r14_ad1
GroupAdd, UraWindow, ahk_class MontBlancApp_mtvGuide
Return
;〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
#x::
WinActivateBottom, ahk_group UraWindow
Return
0990983 (ワッチョイ 5a87-HP8N)垢版2017/09/13(水) 03:27:48.82ID:fOGI8mDI0
無理みたいですね
+!{tab}は使えませんでした
私の環境だとAlt+Tabはモニタ毎にそれぞれで起動してるタスクを表示させてるので
全体のタスクから拾えないんです
どのみち最少化してるのまで含んでしまうし駄目ですけどね

試行錯誤しながらクラス名書き出してたらとりあえずいっぱいになったので
このまま突き進みます

ありがとうございました。
0992名無しさん@お腹いっぱい。 (ワッチョイ 714d-b7qB)垢版2017/09/14(木) 00:43:31.34ID:bO4XyPKz0
>>990
DllCallでGetWindow関数を使えば、
最裏(つまりデスクトップの一つ上)のウィンドウを取得することができるかもしれない
申し訳ないがDllCallに詳しくない自分のテストではデスクトップを取得するだけに至り、その上のウィンドウ取得ができなかった
しかしGetWindowはアプローチとしては良いと思ったので提案
0993名無しさん@お腹いっぱい。 (ワッチョイ 2bf3-BM26)垢版2017/09/14(木) 07:56:08.61ID:21FBV48V0
ただの発想なので欠陥だらけかも…
それに、うまく行ったとしてもタイムラグ激しそう

-------------------------
WinGet, OutputVar, list
で存在する全てのウィンドウを列挙し、(loopで回すのが賢い)
GroupAdd, UraWindow, ahk_id OutputVar1
GroupAdd, UraWindow, ahk_id OutputVar2
      ・
      ・
で取得した全ウインドウハンドルを次々にグループに登録し、
WinActivateBottom, ahk_group UraWindow
で実行
-------------------------

例えばこのスクリプト↑を「a.ahk」とし、

-------------------------
#x::
run, a.ahk
Return
-------------------------

という「b.ahk」スクリプト↑を常駐させる
0994名無しさん@お腹いっぱい。 (ワッチョイ 2bf3-BM26)垢版2017/09/14(木) 08:02:12.92ID:21FBV48V0
>>993>>990へのレス
そして訂正
>で存在する全てのウィンドウを列挙し、(loopで回すのが賢い)
の(loopで回すのが賢い)は、間違い
正しくは↓
で取得した全ウインドウハンドルを次々にグループに登録し(loopで回すのが賢い)、

ですた、スマンOTZ
0997名無しさん@お腹いっぱい。 (ワッチョイ c977-fKjf)垢版2017/09/14(木) 12:08:58.65ID:uijNj4qb0
次スレです。

AutoHotkey スレッド part25
http://egg.2ch.net/test/read.cgi/software/1505357560/

連投規制でテンプレを最後まで貼れなかったので、誰かヨロ。
0998名無しさん@お腹いっぱい。 (ワッチョイ c977-fKjf)垢版2017/09/14(木) 12:12:14.96ID:uijNj4qb0
あ、しまった、いま気付いたけど、
「!extend:checked:vvvvv:1000:512と次スレを立てる際は1行目に記入してください」
>>1の頭に2回書かないといけないのか。
最近の2chは色々と難しいなあ…。
10011001垢版Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
SLOT Results
🎰🎰🎰 Excellent!! 0
🎴🎴🎴 Gratz!! 0
🌸🌸🌸 OPPAI Ban!! 0
💣💣💣 Backingum!! 0
Win!! 1
Points 7 pts.

life time: 210日 18時間 27分 44秒
10021002垢版Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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