AutoHotkey スレッド part21at SOFTWARE
AutoHotkey スレッド part21 - 暇つぶし2ch2:名無しさん@お腹いっぱい。
15/07/26 20:37:02.93 3Hxp3NyD0.net
■重要事項
オリジナルである、旧 "AutoHotKey" の開発は2009年9月で終了している。
現在は、そこからフォークした "AutoHotkey_L" が主流となり、2014年1月からは後のLが取れ
正式にAutohotkeyとして扱われるようになりました。
よって古いスクリプト(主にDllCall()を利用しているスクリプト)は最新Verで動作しないものがあり、
その場合はスクリプトの修正が必用です。
旧版のAHKとの変更点多数。新しい仕様や互換性についてはドキュメントを良く読むこと。
 →URLリンク(ahkscript.org)
 →URLリンク(ahkwiki.net)
※新規利用者には最新版を推奨しますが、旧AHK(2009年9月までのVer)の利用者は新AHKへの移行に際して
少なからず改修が必要となります。特に、旧流行らせるページの配布物(MouseGesture等)の多くは
そのままでは動作しません。安定利用できている環境を崩して移行するかどうかは各人の判断による。
MouseGestureについては有志の方が最新AHK対応版(MouseGestureL.ahk)を配布しているのでそれを
利用するのもありです。
URLリンク(hp.vector.co.jp)
URLリンク(code.google.com)
※ACC.ahk(旧版用)とCOM.ahkはフォーラムのリンク先にファイルが存在しませんので下記から入手してください。
 URLリンク(ux.getuploader.com)
※Unicode版のACC.ahkは下記(AccInfoViewer.ahk付き)またはフォーラムから入手してください。
 URLリンク(ux.getuploader.com)
■質問に際して
OSの種類(XP/Vista/7)や32/64ビット版の違い、利用するAutoHotkeyのバージョンを明記すること。
また、操作したいソフト・やりたい処理などは具体的に書いた方がレスが付きやすい傾向にある。
2chの仕様の関係で、このスレではインデントに全角スペースを使ってコードを貼り付ける事があるので、
レスをコピペして利用する場合は行頭の全角スペースをタブ等に置換してから利用すること。 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


3:名無しさん@お腹いっぱい。
15/07/26 20:38:55.75 3Hxp3NyD0.net
■過去スレ
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
以下FAQ等
■実行環境
Q1:スクリプトに書いた日本語が文字化けしちゃうんだけど...
A1:スクリプトファイルを「UTF-8」の「BOM」付きで保存する。(AHKLの場合)
Q2:初めて使うけどどれを使えばいいの?
A2:AHKLのユニコード版を推奨。
  旧流行らせるページの配布物をそのまま使う場合は本家をそのまま利用する事。
  64ビットOSでAHKL32ビット版の使用は制約が多いので、64ビット版を強く推奨。

4:名無しさん@お腹いっぱい。
15/07/26 20:40:40.55 3Hxp3NyD0.net
■ リマップ・ホットキー割り当て
Q1:[CapsLock(英数)][ひらがな][全角/半角]キーの割り当てがうまくいかないよ
A1:OSのローカライズ段階で発生してる問題なので日本語環境だとLock系キーの動作は不定。
  OS側がキーUp/Down情報を正しく返してこないのでAHKのみで対処は無理です。
  レジストリ変更等で別キーへ再配置を行い、AHKで割り当てを行うという二段構えが必要。
 
 例) ChangeKeyを使って[ひらがな]を[F13]にする
  AutoHotkeyで任意のキーをF13にリマップする(例えばF12をF13にリマップし、スクリプトを実行)。
   F12::F13
  Changekeyを起動する。( URLリンク(www.forest.impress.co.jp) )
  「調査」→「どのキーなのか?またはスキャンコードでキーを変更します」を選択。
  F12を押すとスキャンコード(0x0064はF13)が表示されるので覚えておき「終了」をクリック。
  「ひらがな」キーをクリックすると「【ひらがな】キーをどのキーに変更しますか?」という
  ウィンドウが表示されるので右上の「Scan code」をクリック。
  覚えておいたスキャンコード(0064)を入力し、「OK」ボタンをクリック。
  「登録」をクリックし、Windowsを再起動する。
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}

5:名無しさん@お腹いっぱい。
15/07/26 20:45:57.07 TPDevIuG0.net
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のジョイスティックサポートはかなり貧弱なのでプログラマブルにやる必要がある。
Q8:ジョイスティックのボタン1とボタン2の入れ替えなどはどうやってやるの?
A8:AutoHotkeyではできない。

6:名無しさん@お腹いっぱい。
15/07/26 20:47:36.57 TPDevIuG0.net
Q9:[Ctrl][Shift][Alt]が押されっぱなしになる時がある。これってAHKのせい?
A9:AHKが原因の場合とそうでないときがある
 ○AHKが原因の場合
  AHKには、以下のような修飾キー付きのホットキーで修飾キー無しでキーを発効する場合、
  一時的に修飾キー押下を解除して、発効後に押下状態を再度設定する機構がある。
  しかしこのように発効するキーストロークが多い場合は、Sendコマンドが完了する前に
  物理キーが押下解除されてしまっている場合がある。この齟齬が押しっぱなしの原因となる。
   例) ^W::Send, {w 30}
  これを回避するためには、以下の方法をとればよい:
   ・キー押下状態を常に監視するキーボードフックを導入する(#InstallKeybdHook)
   ・キー発効のコマンドを SendInput, SendPlay にする(SendModeで一括指定でもよい)
   ・上記二つが出来ない場合は、SetKeyDelay, 0 等としてキー発効をなるべく早く行うか、
     #HotkeyModifierTimeout で修飾キー押下のタイムアウト値を長めに設定をする。
  なお、他のキー発効を行うツール(クリップボードユーティリティやマウスジェスチャツールなど)が、
  発効する修飾キーが原因となる場合もあるが、フックの導入でほぼ解決出来ると思われる。
 ○AHK以外が原因の場合:
  環境により異なるので何とも言えないが、以下のような環境の場合発生する事が報告されている。
  ・ Logicool(Logitec)のマウスユーティリティSetPoint(verによっては問題ない事もあるとか)など他多数
  ・VirtualPC, WMWare, 窓使いの憂鬱 等のキーボードフィルタドライバを用いるアプリケーションを使っている

7:名無しさん@お腹いっぱい。
15/07/26 20:49:09.47 TPDevIuG0.net
■ IME関連
Q1:IMEのOn/Offの切り替えや、状態を得るにはどうすればいいの?
A1:URLリンク(www6.atwiki.jp) の「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に各種エディタの定義ファイル及びキーワード一覧あり。( URLリンク(ahkwiki.net) )
Q3:GUI作るのめんどくせ~~
A3:海外の有志が作ったツールを使うと楽。
 SmartGUI Creator ( URLリンク(www.autohotkey.com) )
 GUI Creator ( URLリンク(ahkscript.org) )
Q4:AHKってマルチスレッドじゃないの?
  タイマーやMsgBox, WinWait, KeyWaitを使ってるけど思った通りに動かない。
A4:「擬似マルチスレッド」です。最後に割り込んだスレッドが終わるまで元スレッドは動きません。
 MsgBox、WinWait、KeyWait、Process,WaitClose などをタイマーで複数動かす時は注意。
  > 要は処理系統が複数同時に走らないってこと。図にするとこんな感じ。
  > → 実行中、 …:割り込み終了待ち
  > 元スレッド   →→→→→→……………………………………→→→→
  >                  ★割込                ↑再開
  > 割り込みスレ          →→→→…………→→→→→→END
  >                        ◆割込 ↑再開
  > 更に割り込み                →→→END

8:名無しさん@お腹いっぱい。
15/07/26 21:00:19.79 TPDevIuG0.net
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を右クリックしてプロパティを開き、「互換性」→「管理者としてこのプログラムを実行する」にチェック。
 スクリプトに記載する方法もある( URLリンク(www.autohotkey.com) )
2:対策パッチ
 実行ファイルのマニフェスト書き換え、自己署名証明書のインストールが行われる。
 ※AutoHotkey.exeはProgram Files以下に置く必要がある。
 URLリンク(www.autohotkey.com)
3:UAC停止 ※注意!! 必ずHIPS機能がある他のセキュリティ対策ソフトを導入してください。
 「コントロールパネル」→「ユーザーアカウント」
 Vista:「ユーザーアカウント制御の有効化または無効化」→ チェックボックスをオフ。
 7/8/8.1:「ユーザーアカウント制御設定の変更」→ スライドバーを一番下に。
 ※Windows 8/8.1では上記に加えレジストリを変更する必要があります。(注意:Windowsストアアプリが実行できなくなる)
 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
 「EbableLUA」の値を「0」に変更。

9:名無しさん@お腹いっぱい。
15/07/26 21:05:18.20 ZZbYoBXG0.net
■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(開発終了)
URLリンク(www.autohotkey.com)
Autohotkey 1.1 (Autohotkey_L)
URLリンク(ahkscript.org)
■開発中
Autohotkey v2(下位互換性を排除して操作利便性の向上)
URLリンク(ahkscript.org)

10:名無しさん@お腹いっぱい。
15/07/26 21:13:12.90 ZZbYoBXG0.net
■派生版
IronAhk(.NET製、クロスプラットフォーム。開発終了)
URLリンク(www.ironahk.net)
AutoHotkey.dll(真のマルチスレッド対応)
URLリンク(www.autohotkey.com)
AutoHotkey_N(開発終了)
AutoHotkey_H
URLリンク(www.autohotkey.net)
■統合
AHK_U(Unicode版)
URLリンク(www.autohotkey.com)
AHK64(64bit版)
URLリンク(www.autohotkey.com)
■スクリプト作成支援ツール
AutoHotKey専用エディター ※必須ではありあせん。
 SciTE4AutoHotkey
 URLリンク(fincs.ahk4.net)
GUI作成ツール
 SmartGUI Creator
 URLリンク(www.autohotkey.com)
 GUI Creator
 URLリンク(ahkscript.org)

11:名無しさん@お腹いっぱい。
15/07/26 21:20:25.62 ZZbYoBXG0.net
■質問する場合のアドバイス
「○○という処理をするにはどういうコードを書いたらできますか?」 では返答は無いでしょう。
「○○という処理をすることを目的に、このようなスクリプトを組みましたがうまく動きません
どこを修正すればいいですか?」 という質問なら返答が付きやすい。
もっと言えば、「動かない」だけではなく、「××といった想定外の動作になります」ならベター
スクリプトをロクに書かずに答を教えてくれ、では単なるクレクレとみなされます。
なぜそれが嫌がられるかと言えば、自分で学ぼうとも調べようともせずにまたクレクレするだろうと思われるからです。

12:名無しさん@お腹いっぱい。
15/07/27 01:37:14.42 S5otcsZd0.net
● 分からない理由 ●
1. 過去ログを読まない。
2. 読んでても肝心な所が見えてない。
3. 検索能力が低い。
4. そもそも検索する気がない。
5. 類推という概念がない。
6. それ以前に普通に頭が悪い。
<わからない11大理由>
1.読まない …現行スレ、テンプレ、取説などを読まない。読む気などさらさらない。
2.調べない …過去スレ、ググるなど最低限の内容も自分で調べようとしない。
3.試さない …めんどくさいなどの理由で実行しない。する気もない。
4.覚えない …人から聞いて、楽して得た答えは身に付かないから、すぐに忘れる。
5.説明できない …何に困っているのか、第三者に正確に伝わる文章が書けない。
6.理解力が足りない …理解力以前の問題で理解しようとしない。
7.人を利用することしか頭にない …甘え根性でその場を乗り切ろうとする。
8.感謝しない …教えてもらって当たり前。事がすんだらさようなら。
9.逆切れする …自分の思うようにならないと逆切れする。
10.開き直る …自分の思うようにならないと開き直る。
11.2ちゃんねるをお客様相談室だと思っている。

13:名無しさん@お腹いっぱい。
15/07/27 01:37:55.77 S5otcsZd0.net
★教えて君五大要素★
1 読まない             (文盲)
2 調べない             (能なし)
3 試さない              (発想力欠如のアホ)
4 理解力が足りない        (馬鹿)
5 人を利用することしか頭にない (死ね)

           YES → 【見つかった?】 ─ YES → じゃあ聞くな死ね
         /                  \
【探した?】                        NO → なら、ねぇよ
         \
            NO → 死ね

14:名無しさん@お腹いっぱい。
15/07/30 11:35:03.48 M8B+XcpF0.net
windows10でwindow spy使ったら
応答不能になって終了しても画面に残っちゃう

15:名無しさん@お腹いっぱい。
15/07/30 18:52:43.04 YiGVsR6Y0.net
Win10はウィンドウの左右と下の枠線7px分を透過して見えなくしてるだけだな
WinMoveで画面端に動かすと上だけぴったりで後は隙間が空く

16:名無しさん@お腹いっぱい。
15/07/31 13:01:58.84 F6kc0r2b0.net
>>14
Win10にアップデートしてないから試したわけじゃないけど
代わりにAccInfoViewerを使ってみては?
Controlgettextが省かれているので必要なら改造して追加すればいい。
基本的な使い方はダウンロードするページのコメントに書いてある。
URLリンク(ux.getuploader.com)
それとAccInfoViewerの右上にある「Show Acc Structure」をクリックすると
取得したInfoの詳細(ボタンやメニュー等)を選択することが出来る。
選択してみるとメニューやボタン等が重複してることが多けど。 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


17:名無しさん@お腹いっぱい。
15/07/31 13:51:46.28 SCSL0lts0.net
ux.getuploader.com
はRock54のNGワードのようです

18:名無しさん@お腹いっぱい。
15/07/31 14:44:47.50 AnTnCFEn0.net
URLリンク(ux.Getuploader.com)

19:名無しさん@お腹いっぱい。
15/07/31 18:23:23.62 063vTjGG0.net
loopで次々ファイル情報を変数に入れて表示ってできませんか?
フォルダの中のファイルをリストアップしたいんです

20:名無しさん@お腹いっぱい。
15/07/31 18:35:39.16 dngwMttJ0.net
できるよ

21:名無しさん@お腹いっぱい。
15/07/31 18:55:52.29 063vTjGG0.net
Loop,%A_scriptdir%\*.*,,1
{
Filelist = %Filelist% %A_LoopFileFullPath%%A_LoopFileTimeModified% `n
}
あ、できたわ。自己解決しました

22:名無しさん@お腹いっぱい。
15/07/31 20:27:08.57 sAPF/B6Z0.net
Run, cmd /c POWERCFG /GLOBALPOWERFLAG off /OPTION RESUMEPASSWORD ;(スタンバイ復帰時にパスワード入力を求めない)をした上で
Run, cmd /c SCHTASKS /CREATE /RU %A_ComputerName%\%A_UserName% /RP %pwd% /TN "%taskname%" /TR "%batfile%" /SC ONCE /SD %date% /ST 00:00:00 >%A_Temp%\stdout.txt
みたいにして新規タスクを作ったとき、ahkから「タスクを実行するためにスリープを解除する」設定を有効にする方法ってないです?
SCHTASKS /CREATEや/CHANGEのコマンドラインスイッチでそれらしきものは無いようだし
Run, properties %A_WinDir%\Tasks\%taskname%.job
でもタスクのプロパティは開かないし、レジストリをタスク名で検索してもヒットしないし、どうしたものやら…。

23:名無しさん@お腹いっぱい。
15/07/31 20:27:37.90 sAPF/B6Z0.net
ちなみに過去ログのGetCommandLine()関数で「タスクのプロパティ」ウィンドウのコマンドラインを調べても
C:\WINDOWS\Explorer.EXE と出るだけでした。
;######################################################################################################
; Function: GetCommandLine
; Description:
; pidを指定してコマンドラインを取得する関数
; 出展:AutoHotkey スレッド part8( スレリンク(software板:291番) )
; Syntax: GetCommandLine([pid = 0, WinTitle = "A"])
;######################################################################################################
GetCommandLine(pid=0, WinTitle="A") {
ptr := (NumGet(DllCall("kernel32.dll\GetProcAddress"
, "UInt",DllCall("kernel32.dll\GetModuleHandle", "Str","Kernel32")
, "Str","GetCommandLineA", "UInt")+1))
hp := DllCall("kernel32.dll\OpenProcess", "UInt",0x001F0FFF, "UInt",0, "UInt",pid, "UInt")
VarSetCapacity(res, 1024)
DllCall("kernel32.dll\ReadProcessMemory", "UInt",hp ,"UInt",ptr, "UIntP",addr, "UInt",4, "UInt",0)
DllCall("kernel32.dll\ReadProcessMemory", "UInt",hp ,"UInt",addr, "Str",res, "UInt",1024, "UInt",0)
DllCall("psapi\CloseProcess", "UInt",hp)
return, res
}

24:名無しさん@お腹いっぱい。
15/08/01 14:12:13.05 myyyIzKF0.net
誰か助けてくれ……。
例えば、ファイルを右クリックしてDを押すっていう一連の作業は、
割り当てたいkey::Send,{RButton}Send,L
じゃダメなの?
割り当てたいkey::Send,{RButton & Send,Lにしても無理だし……。
何がいけないんだろう……。

25:名無しさん@お腹いっぱい。
15/08/01 14:29:46.99 3ysW3zO/0.net
まず解説サイトよく読みなさいよ
Send,{RButton}してもフォーカスが当たってるファイルをクリックするんじゃなくて、いまカーソルが在るとこを右クリックするだけ。代わりにキーボード右下にあるコンテキストメニューキー{AppsKey}を送ればいい
あと1キーごとにSend,入れなくていい。BAKAと押したければSend,BAKAでいい
つまり、Send,{AppsKey}L

26:名無しさん@お腹いっぱい。
15/08/01 14:50:16.94 myyyIzKF0.net
>>25
ごめん。説明が悪かった。
ファイルじゃなくて、とある特定の場所で、
右クリックしたのちにLを押したいんだわ。
だから、Send,{AppsKey}Lってやっても無理だわ……。

27:名無しさん@お腹いっぱい。
15/08/01 14:52:09.81 myyyIzKF0.net
>>25
ありがとう。
解決したわ。

28:名無しさん@お腹いっぱい。
15/08/01 14:55:23.95 HkIEirnZ0.net
>>24
ヘルプやリファレンスをよく見よう
key::Send,{RButton}Send,L
ではダメ
key::
Send,{RButton}
Send,L
return
もしくは
key::Send,{RButton}L

29:名無しさん@お腹いっぱい。
15/08/01 15:19:23.00 myyyIzKF0.net
>>28
ありがとう。
key::
Send,{RButton}
Send,L
return
こういう方法を見たことあったから、Send,が必要だと思ったんだよ。
この方法だと改行しないとダメみたいだな。

30:名無しさん@お腹いっぱい。
15/08/01 15:38:10.75 myyyIzKF0.net
十字キーの上下だけ、あるアプリで動作しないんだけど?
左右はちゃんと割り当てられた通りに入力できる。上下だけ機能しない……。
そのほかのアプリでは上下左右機能する。
理由は何が考えられると思います?
ちなみに、無変換+jkliにそれぞれ割り当ててます。

31:名無しさん@お腹いっぱい。
15/08/01 16:08:56.05 kE7wEdk30.net
最近暑いからそのせいじゃないかな

32:名無しさん@お腹いっぱい。
15/08/01 16:17:32.86 HkIEirnZ0.net
あるアプリって何?それが分からないとどうしようもないけど。
可能性としてはアプリ側でハード入力だけ受け付けるようにしている可能性あり。
作っている途中で仕様変更して、他のキーはソフト入力を受け付けるとかある。

33:名無しさん@お腹いっぱい。
15/08/01 16:31:23.98 WqWbJZkt0.net
上みたいな仕様勘違いやTypo等のケアレスミスの可能性

34:名無しさん@お腹いっぱい。
15/08/01 17:02:38.08 myyyIzKF0.net
>>32
MicrosoftのOneNote2013ですね。
Auto Hot Keyで設定した十字キーの上下だけ機能しない……。
でも、KeySwapっていうレジストリ?をいじるソフトだと機能します。
なんでだろう。

35:名無しさん@お腹いっぱい。
15/08/02 03:49:33.76 jgpMVIyI0.net
>>34
sendmode play
もしくは
sendplay,{up}
>KeySwapっていうレジストリ?をいじるソフトだと機能します。
レジストリはシステム設定変更だから動くのは当然

36:名無しさん@お腹いっぱい。
15/08/02 06:20:25.70 K0ehGXOn0.net
>>35
vk1Dsc07B & I::SendInput,{Blind}{Up}
vk1Dsc07B & K::SendInput,{Blind}{Down}
sendplay,{up} 試してダメだったから、上記も試したけど、
ダメでした……。

37:名無しさん@お腹いっぱい。
15/08/02 07:46:48.05 jgpMVIyI0.net
>>36
OneNote2013で動作確認してからレスしたんだけど
>>1 の最新版Autohotkeyを使ってる?
Autohotkeyでググったら旧版がTopにくるけど誤って旧版を使ってない?
他のAutohotkeyスクリプトを全て終了した状態で試した?
それでも反応しないなら使っている環境が悪としか言い様がない。
ちなみに俺の環境は↓だけど何れも動作した。
Win7 64bit Pro で AutohotkeyU32、U64
Win7 32bit Starter 32bit で AutohotkeyU32
Sendplay,{up}
Sendplay,{down}

vk1Dsc07B & I::Sendplay,{Blind}{Up}
vk1Dsc07B & K::Sendplay,{Blind}{Down}
のどちらでも反応する
SendInputは反応しない。

38:名無しさん@お腹いっぱい。
15/08/02 08:02:24.59 K0ehGXOn0.net
>>35
vk1Dsc07B & I::sendplay,{Blind}{Up}
vk1Dsc07B & K::sendplay,{Blind}{Down}
こういうふうにもして、ユーザー制御アカウントもOFFってみたましたが、
やっぱりダメでした。
何か間違っているのでしょうか?

39:名無しさん@お腹いっぱい。
15/08/02 08:08:08.09 K0ehGXOn0.net
>>37
環境はWindows8.1の64bit版です。
バージョンは1.1.22.03です。
ずっと対策練ってるけど、なかなかできないです……。

40:名無しさん@お腹いっぱい。
15/08/02 13:31:53.45 bnRNKiwz0.net
>>14
Windows10をクリーンインストールしてAutoHotKeyも新規インストール
今のところすべて問題なく動作しております

41:名無しさん@お腹いっぱい。
15/08/02 16:29:13.29 K0ehGXOn0.net
OneNoteの上下キーがAuto Hot Keyで機能しない問題は、
ググると出てくるわ……。
Windows8以降の問題みたい。7だと動くみたい。
Windows7に戻すか、それともWindows10にするか、
どっちがいいだろうか??

42:名無しさん@お腹いっぱい。
15/08/04 05:16:31.65 vzvO042E0.net
win8.1のときsettimerで常駐監視させてたら
ときどきCPUがタスクのホストプロセスとやらに15%ぐらい使用されたままになることがあったんだけど
win10だと今のとこならない
.netのプロセスが一瞬跳ね上がったのを一度だけみたけれど

43:名無しさん@お腹いっぱい。
15/08/04 12:35:23.44 2LqZAPqi0.net
今までUSBキーボードにPS/2キーボード端子への変換アダプタを挟んでPCのPS/2端子に接続していたんだけど
それだと正常にpower,sleepキーが使えていたけど、
USB端子にそのまま接続するようにしたら上記のホットキーが働かなくなってしまった
何か助言ある人いたらお願いします

44:名無しさん@お腹いっぱい。
15/08/04 18:04:14.04 LjUF0Btp0.net
>>43
#Persistent
#InstallKeybdHook
フック+常駐させてキーログを見て指定が正しいか自分で確認

45:名無しさん@お腹いっぱい。
15/08/04 18:55:10.44 2LqZAPqi0.net
>>44
ありがとう!見た結果どうもpower,sleep,wakeのホットキーがUSB接続だとそもそも効いてないと分かった。
しかも別の新品のキーボードを挿しても同じだからキーボードの故障でもないっぽい、
そこで一つ前の問題に戻って質問ですが
そもそもUSB接続にしたいと思った理由が最近PCを操作してると突然キーボードが英語キーボードに認識されてしまう現象が頻発してるからなんです
(全角キーが「`」になっちゃう奴)
地域と言語→キーボード→テキストサービスと入力言語→入力言語の切り替え、のホットキーを無効にしてみたがやっぱり起こる
こういう現象ってAHKユーザーの皆さんのお宅では起こったりしますか?
AHKをガシガシ使ってるからなのか、それ以外の理由なのか知りたいので何か助言あるエスパーさんいたらお願いします

46:名無しさん@お腹いっぱい。
15/08/04 19:01:23.15 bGwgNVIv0.net
Linuxerになってからというもの、あれだけ頼り切ってたAutoHotkeyとEverythingが無くても別に困らない日々が続いておる

47:名無しさん@お腹いっぱい。
15/08/04 19:09:01.36 LjUF0Btp0.net
>>45
解決したいなら問題のスクリプトと環境を書かなければ分からない
英語配列になるのはAHK無関係
URLリンク(support.microsoft.com)

48:名無しさん@お腹いっぱい。
15/08/04 19:22:26.11 YvqEVU7K0.net
>>45
PS/2接続で英語版になったりするならデバイスマネージャーから
キーボードのドライバを更新を選択して日本語(日本語109など)を指定すれば
勝手に変わらないようになるはず。XPを使っていた時はこれで対処してた。
Vista以降で有効なのか解らない。
USB接続に変えてスリープボタン等が効かないのなら、マザーボードのBios設定に
それらの項目があったような気がする。
電源オプションに「スリープボタンを押したとき」の設定があるけど今回は関係ないと思う。
(設定以前にスリープボタンが認識されていないということなので)

49:名無しさん@お腹いっぱい。
15/08/04 20:53:20.29 2LqZAPqi0.net
>>46 なんで?暇あったら具体的に教えて
>>47 なるほど
>>48 網羅的にありがとう、3つの段落すべて非常に参考になりました
 今パソの電源落とせないので2つ目の効果はすぐには検証できないけど明日やってみる

50:名無しさん@お腹いっぱい。
15/08/04 23:33:08.59 bGwgNVIv0.net
>>49
コマンド使えば困らない程度に同等のことが出来る
→無い環境に慣れる
→→使い方すら忘れる
→→→比較対象が消失することで現状を不便に思わなくなる
まぁあった方がいいんだろうけど。使い方忘れた道具より今使ってる道具だよねって話かな
あと俺が元々キーボード使いだからLinuxのソフト群と相性が良くAHKの補助があまりいらないという話もある

51:名無しさん@お腹いっぱい。
15/08/04 23:40:52.46 oE35GsDs0.net
そんな誰のためにもならんはなしされても正直その、困る。

52:名無しさん@お腹いっぱい。
15/08/04 23:52:07.93 WpJVsnFL0.net
ahkは常駐させてgui操作やファイル整理やweb巡回の自動化に使ってて
肝心のホットキーは外付けテンキーにちょこっと割り当ててみただけであんまり使えてない
ファイル整理なんかはバッチファイルとかでやるものらしいけどパッと見何書いてるか分からなかった
ahkだとなんかわかりやすくてこっち使ってる

53:名無しさん@お腹いっぱい。
15/08/05 00:13:18.71 hhv7THdd0.net
>>51
×誰のためにもならん
○たいていの人のためにならん
白いカラスが存在しないことを証明しろ的な意味で

54:名無しさん@お腹いっぱい。
15/08/05 04:41:01.56 o5HmsZkX0.net
>>52
>ahkは常駐させてgui操作やファイル整理やweb巡回の自動化に使ってて
もし、ホットキー設定と別スレッドで使ってるならAutoItっての使うのも良いかも。
まぁ、AHK使い慣れてるみたいだから、こいういのも有るってことで。。。

55:名無しさん@お腹いっぱい。
15/08/05 04:42:42.85 o5HmsZkX0.net
>>54
こいういのも → こういうのも

56:名無しさん@お腹いっぱい。
15/08/05 06:53:11.34 fWzpjOKi0.net
ネットで拾ったマウスカーソル下の非アクティブなウインドウもスクロールできるようにするWheelScroll.ahkってスクリプト
Windows10のスタートメニューやアプリでスクロールできなくてしょんぼりしながらはずしたけど
10はデフォルトでマウスカーソル下のウインドウのスクロールに対応してたんやね

57:名無しさん@お腹いっぱい。
15/08/05 08:37:34.82 7v/7k9WM0.net
FILCOのMajestouch MINILAって、スペースの両端に
Fnキーあるから、買わないほうがいいよね?
Auto Hot Keyで設定どうしてもできなくない?

58:名無しさん@お腹いっぱい。
15/08/05 09:16:38.61 nqH3d7r30.net
>>57
URLリンク(yoshiko.hatenablog.jp)
無理みたいね

59:名無しさん@お腹いっぱい。
15/08/05 09:51:25.01 7v/7k9WM0.net
>>58
ああ~……。
クソ高いHappy Hacking Keyboardを買うことになるのかオレは。

60:名無しさん@お腹いっぱい。
15/08/05 19:19:28.72 bi6CPWl80.net
>>57
前スレにも同じ質問が
1 → 1
Fn+1 → F1
Fn → 信号なし
フックなしで出ている信号に対してホットキー登録すればいい
※テストしてないので買うなら自己責任
参考
URLリンク(gist.github.com)

61:名無しさん@お腹いっぱい。
15/08/07 09:56:52.90 ry5Cqi630.net
ニコニコ実況SDKというものについてなんですが
これはautohotkeyからでも使えるものなんでしょうか?
ホームページからダウンロードしたvcredist_x86とjknicom_releaseをインストールしたあと
VBScriptによるサンプルというものに
  'JKNiCOMを実体化
  Set JKNiCOM = WScript.CreateObject("jkNiCOM.JKNiCOM")
とあったので試しにautohotkeyで
  JKNiCOM := ComObjCreate("jkNiCOM.JKNiCOM")
とやってみても 0x80040154 - クラスが登録されていません とエラーがでてきます
根本的に使い方を間違ってるのでしょうか?
ニコニコ実況のコメント数をみて盛り上がっていれば通知してテレビを表示するということがしたいです
環境はwin10 64bitです

62:名無しさん@お腹いっぱい。
15/08/07 12:39:12.21 ry5Cqi630.net
普段使ってる64bit版autohotkeyではだめで
32bitのunicode版autohotkeyでなら使えました
exeに変換するときもBaseFile(bin)のところを64bitだと0x80040154 - クラスが登録されていませんと出ますが
32bitにすると動いてくれました

63:名無しさん@お腹いっぱい。
15/08/07 16:44:08.15 040ZZWGA0.net
loop命令で便利な機能作ってみたい
みんなどんなことに使ってる?

64:名無しさん@お腹いっぱい。
15/08/07 17:46:25.15 uW9FUtk70.net
>>62
32bit用DLLを64bitソフトで動かすことはできない(OSは例外)
AHKをインストーラで導入した場合は32/64bit両方インストールされているので
スクリプトで使い分けするように書けばいい

65:名無しさん@お腹いっぱい。
15/08/07 21:09:16.96 Sz6aWKHa0.net
>>59
Happy Hacking Keyboard 買う前に、ちょっと実際触ってキーピッチチェックした
方が良いぞ。個人的に持ってて使ってるけど、他のキーボードと併用してると
くっ狭いなとおもうときがある。

66:名無しさん@お腹いっぱい。
15/08/08 10:52:06.90 ISMb2HQ70.net
>>63
リスト作って突き合わせてフォルダ監視とかインストールされてるのは確定してるけどどこに実行ファイルがあるかわかんない時とか

67:名無しさん@お腹いっぱい。
15/08/10 00:29:21.91 awndHrrB0.net
普段ディスプレイに隙間なくウインドウを設置してるんだけど
win10にするとなんか画面端にセットしてたソフトのウインドウが再起動させると微妙にずれるから
普段使うソフトを全部指定した位置・サイズにセットするもの作った
ついでに作業ごとにウインドウの位置切り替えるようにしたった

68:名無しさん@お腹いっぱい。
15/08/10 01:53:10.09 sYzf9Mx60.net
俺もウインドウの位置大きさ常に固定しておきたい人だから自作して使い続けてるわw

69:名無しさん@お腹いっぱい。
15/08/10 09:20:09.38 LNLE13d70.net
上下左右半分って不便なんだよ。
上3下3の整理が捗る

70:名無しさん@お腹いっぱい。
15/08/10 13:09:26.77 Hy3ClwTj0.net
win10のpc再起動させたら
winactivateしてもタスクバーに最小化したウインドウが出てこなくなった・・・・・

71:名無しさん@お腹いっぱい。
15/08/10 13:38:14.95 1jvW/jNb0.net
detecthiddenwindows,on
winrestore,wintitle
で出てくるようになった
何が原因なのかさっぱり

72:名無しさん@お腹いっぱい。
15/08/10 15:40:30.60 3ij+fdTp0.net
とりあえず
detecthiddenwindows,on
はwikiでしらべときーや

73:名無しさん@お腹いっぱい。
15/08/14 17:23:49.09 Dvpxj0pY0.net
ジョイスティックのボタンに応じて、「Send, ×××」で文字の出力をしたスクリプトを組みました。
windows8.1までは何ごともなく動いていたのが、DG-D09IW(windows10機)上で実行しても何も出力してくれません。
どこを見た方がいいですか。
もちろん、ジョイスティックのボタンがwin10上のプロパティで正しく反応していることを確認しています。
※これまでに試してみたこと
・最新版に移行(Autohotkey1.1)
・その最新版で再コンパイルする
・DG-D09IW 上でコンパイル
・実行ファイルを管理者モードで実行
・   〃   互換モードで実行

74:名無しさん@お腹いっぱい。
15/08/14 18:42:36.72 R4EUU6JC0.net
>>73
問題のスクリプトを最小限にしてここに書く
AHKのログを見る、ここに書く。スクリプトは実行されているか、キー信号は送信されているか

75:73
15/08/14 20:54:17.68 Dvpxj0pY0.net
>>74
ありがとうございます。ボタン1を一度押してから「離した後に」文字が出力されます。
===スクリプト
Joy1::onKeyDown()
onKeyDown(){
SetTimer, WaitForButtonUp_1, 10
return
}
WaitForButtonUp_1:
if GetKeyState("Joy1")
return
SetTimer, WaitForButtonUp_1, off
send, hogehoge
return

76:73
15/08/14 20:56:01.52 Dvpxj0pY0.net
===ログ(windows7機)
001: Return (20.37)
001: onKeyDown()
003: SetTimer,WaitForButtonUp_1,10
004: Return
001: Return (0.01)
007: if GetKeyState("Joy1")
008: Return (0.02)
007: if GetKeyState("Joy1")
008: Return (0.02)
007: if GetKeyState("Joy1")
008: Return (0.01)
007: if GetKeyState("Joy1")
008: Return (0.02)
007: if GetKeyState("Joy1")
008: Return (0.01)
007: if GetKeyState("Joy1")
009: SetTimer,WaitForButtonUp_1,off
010: Send,hogehoge (0.25)
011: Return (1.92)
Press [F5] to refresh.
===ログ(windows10機)
001: Return (876.34)
Press [F5] to refresh.
===
ボタンを押してもonKeyDown()に飛んでくれません。

77:名無しさん@お腹いっぱい。
15/08/14 21:09:28.33 /ysh04Z70.net
接続しているコントローラーが優先デバイスになってないとか?
↓を試してみては
2joy1::msgbox,2_1
3joy1::msgbox,3_1
4joy1::msgbox,4_1
5joy1::msgbox,5_1
2joy5::msgbox,2_5
3joy5::msgbox,3_5
4joy5::msgbox,4_5
5joy5::msgbox,5_5

78:73
15/08/14 22:00:23.96 Dvpxj0pY0.net
>>77
ありがとうございます。ビンゴでした。
どういうわけか、2番目のジョイスティックとして認識していたようでした。
優先デバイスに指定したら、ちゃんと1番目のジョイスティックとして認識して、
要求通りの動作をするようになりました。

79:名無しさん@お腹いっぱい。
15/08/18 02:13:20.13 faf0+ECI0.net
1つのソフトを保存場所を変えて3つ同時に起動させてます
この3つ起動させたソフトを別々に操作したいのですが
WinActivate , title ahk_class ○○○ ahk_exe ○○○
とやっても3つとも同じなので区別して操作が出来ません
exeファイルの場所によって区別したりする方法はないでしょうか

80:名無しさん@お腹いっぱい。
15/08/18 02:43:36.28 Gk29n+ex0.net
>>79
WinGet URLリンク(ahkwiki.net)
List で対象全部探してから ID や ProcessPath

81:名無しさん@お腹いっぱい。
15/08/18 05:27:00.73 HLq89bww0.net
>>79
実行ファイル名を変えても動く場合があるので変更してみては?
例えば abc.exe なら abc1.exe abc2.exe abc3.exe にする

82:名無しさん@お腹いっぱい。
15/08/18 10:33:47.04 IZcp4ksq0.net
ahk_exeにフルパスを指定する

83:名無しさん@お腹いっぱい。
15/08/18 11:00:44.63 Q2V/EF320.net
WingetでListを使いloopでリストを分解してPIDなりタイトルなりを探す。

84:名無しさん@お腹いっぱい。
15/08/18 11:09:07.60 Q2V/EF320.net
もしくは起動時にAHKを介してrunコマンドで起動させ、PIDを記録しておくのが一番手っ取り早くかつわかりやすいと思うな

85:名無しさん@お腹いっぱい。
15/08/18 15:49:57.69 faf0+ECI0.net
WinActivate , ahk_exe C:\○○○.exe
とフルパスをつけることで区別するようにしました
ありがとうございました

86:名無しさん@お腹いっぱい。
15/08/18 16:50:27.11 38BX3gJf0.net
使ってる多ボタンマウス(MMO TE)がWin10に対応せず(8時代からソフトで設定しても出来ない項目は多かったが)全く使い物にならないのでAHKでどうにか出来ないかと調べ始めました。
取りあえずMouseGesture2.ahkを入れてやってみましたがその後MouseGestureL.ahkの方が多機能みたいなので変えました。
ジェスチャーをせずマウスクリックだけで設定を実行する事は出来ないでしょうか?
ジェスチャー認識処理の間隔は20以下にしても20に戻ってしまいますね。
カーソル移動量、通常ストロークは0にしています。
MouseGesture2.ahkのReadmeに書いていたので12ボタンまではX1B~トリガ操作の追加で登録はしました。
Win10だから出来ないのか、マウスクリックだけでは無理なのかどちらでしょうか?
Windows10 Pro 64

87:名無しさん@お腹いっぱい。
15/08/18 17:01:39.32 Y/Ko/Nw60.net
>>85
そんなことできるんだ
知らなかったなー

88:名無しさん@お腹いっぱい。
15/08/18 17:04:41.84 38BX3gJf0.net
別でMouseGestureL.ahkを使わない方法を試そうと
MButton::F5
XButton1::BS
などもしてみましたが無反応。
これも何か他に認識させる設定とかあったでしょうか?
どうかよろしくお願いします。

89:名無しさん@お腹いっぱい。
15/08/18 17:40:00.72 38BX3gJf0.net
あれっ!?
MButton::F5
XButton1::BS
XButton2::!Right
としてたのですが、なぜか左クリックでF5動作になってしまったので1行目を消した所F5では無くなりましたがBS動作になり、それも消しましたが今度は!Right動作になってしまったのでそれも消しました。
どうしてこんな事になったか何かおわかりになりますか?
MouseGestureL.ahkは動かしたままですが、そっちは左クリックには何も設定しておらず「中央ボタン押し下げ」に「;キー操作を発生させる Send{F5}」とはしていましたが無反応です。
何ですかね…

90:名無しさん@お腹いっぱい。
15/08/18 18:29:14.80 Gk29n+ex0.net
>>89
原因を探したいなら他の要因は徹底的に排除してからテスト。
AHKのバージョンは?
マウスの設定は?
フックは? URLリンク(ahkwiki.net)
フックなしの場合はマウスのソフト設定に対してAHK割り当て
フックありは実際のキーに対してAHK割り当て
マウス設定>XButton1>F1 の場合
AHKフックなし>F1::???
AHKフックあり>XButton1::???

91:86
15/08/18 19:31:42.18 38BX3gJf0.net
>>90
レスありがとうございます。
バージョンは最新の1.1.22.03
Hookは未記入のOn
MButtonは第3ボタン(ホイール)なので左(第1)ボタンに影響する事って普通は無いですよね?
XButton1も2も左ボタンには関係無いと思うのですが、他のが何か影響与えてるんでしょうかね…
これらを書いた時以外はおかしな動作をしないので問題無いかと思ったのですが、一度全部他を無しで試してみた所変な動作も望んだ動作も無く無反応でした。
他に色々書いてるどれかが悪さをしていたようです。
こんな事を起こしそうな設定とか何か思い付く物ありますでしょうか?

92:86
15/08/18 19:34:21.94 38BX3gJf0.net
あ、あとマウスの設定は専用ソフトが使えない(起動や設定は出来るが反映はされない)ので起動はしていません。
ですので特に何も無い素の状態?かと思います。

93:名無しさん@お腹いっぱい。
15/08/20 06:31:30.87 A5z4ei1W0.net
>>89
例えばこんな感じになってるんじゃない?
Lbutton::
;(中略)
; Return無しだと↓のF5が発動する。
MButton::F5 ; これを削除すると↓のBSが発動する。
XButton1::BS
XButton2::!Right

94:名無しさん@お腹いっぱい。
15/08/20 06:41:54.59 A5z4ei1W0.net
>>89
もうちょっと分かりやすく書くと
下記スクリプトはA~Eのどれを押しても
メッセージボックス(hoge)が表示される。
a::
b::
c::
d::
e::msgbox, hoge

95:名無しさん@お腹いっぱい。
15/08/20 12:06:35.58 EPuGWAPM0.net
>>93-94
レスありがとうございます。
ああ、そうなってます。
ドラッグで文をコピーする物(~LBotton:: (略) Return } })が直前にあります。
Wikiも見直したんですが終わらせる時にReturnって入れますよね?
;を付けるとそこはコメントアウトされるから終了にならないですよね?
でもこの状況になった理由はそれみたいですので理由がわかって良かったです。

96:名無しさん@お腹いっぱい。
15/08/21 20:08:10.14 JPGBlagg0.net
URLリンク(ux.getuploader.com)
左クリック押しっぱなしで思い思いのラベルの動作をさせるものを作ってみた
keywaitじゃ違和感のあるドラッグにも対応。
MGLに使う場合
#If MGLoff()
とかでくくってな。 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


97:名無しさん@お腹いっぱい。
15/08/22 11:31:57.80 MIdcIMT10.net
>>96
こうするのか。なるほどなー
Whileやる間を1秒とかどうやって計測すればいいんだろう

98:名無しさん@お腹いっぱい。
15/08/22 11:42:43.00 MIdcIMT10.net
自己解決
while前に現在時刻入れて現在時刻+3秒みたいな計算しておいて式に入れておけばいいんだな

99:名無しさん@お腹いっぱい。
15/08/22 15:21:06.55 MIdcIMT10.net
具体的にはCountじゃなくて関数の最初のwhile以前に
waittime := A_TickCount+ミリ単位で数字
Count条件のところを
If (A_TickCount > waittime)
にしてやれば指定した時間待ってくれる

100:名無しさん@お腹いっぱい。
15/08/22 21:24:12.17 IEzJt/SK0.net
URLリンク(ux.getuploader.com)
なるほどと思ったのでちょっと直してみた。元のはパスワード設定していなかったので削除できず放置 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


101:名無しさん@お腹いっぱい。
15/08/24 05:34:45.49 aWJLnuLf0.net
変数内の文字列に全角の英数字があれば半角に置換するにはどうすればいいでしょか

102:名無しさん@お腹いっぱい。
15/08/24 08:49:17.76 XzCBRntl0.net
RegExReplace

103:名無しさん@お腹いっぱい。
15/08/24 12:30:03.53 BBDOPljJ0.net
ググったらいいものがあった
;全角英数字を半角英数字に変換
WideToNarrow( str )
{
buf =
Loop , Parse , str
{
If( RegExMatch( A_LoopField , "[!-~]" ) )
{
code := Asc( A_LoopField ) - 65248
buf := buf . Chr( code )
}Else
{
buf := buf . A_LoopField
}
}
Return buf
}

104:名無しさん@お腹いっぱい。
15/08/24 13:30:20.08 JbvfckjL0.net
WheelLeft チルト左
WheelRight チルト右
チルトつきマウスって使ったことないけどahkに割り当てられるなら欲しくなってきたな
これって誤爆したりせず正確に入力できるんだろうか

105:名無しさん@お腹いっぱい。
15/08/24 13:31:59.43 TDGzbkU50.net
ワイルドカードを使用したフォルダの削除が以下のスクリプトでは出来ませんでした。
お力添えをお願いします。
FileRemoveDir, c:\jpg\*, 1 ;jpgフォルダ内のフォルダを削除

106:名無しさん@お腹いっぱい。
15/08/24 13:48:00.27 snF1k1Ry0.net
>>104
問題なく動くものとそうでないものがある
マウス側でF13やF14を当てれるゲーミングマウスであるならソレにリマップしてからなら使える。
タブ移動、モニタ切り替えとかにとても便利
>>105
msgbox % ErrorLevel
でそもそも成功してるかどうか見てみる

107:名無しさん@お腹いっぱい。
15/08/24 13:56:21.20 fWpSRoYm0.net
Loop , C:\jpg\* , 2 , 0
{
FileRemoveDir , %A_LoopFileLongPath%
}

108:名無しさん@お腹いっぱい。
15/08/24 14:13:17.46 TDGzbkU50.net
>>106
有難うございます。
ErrorLevelは1でした。しかし変化はなかったです。
>>107
無事出来ました!有難うございました。

109:名無しさん@お腹いっぱい。
15/08/24 18:15:24.97 pdTUfM210.net
左クリック長押し関数。調子に乗って選択部分の文字列オートコピー機能をつけてみた。
MGLにも対応したのでプラグインフォルダにポンと入れればそのまま使えます。
多分これで最後。
URLリンク(goo.gl)

110:名無しさん@お腹いっぱい。
15/08/24 19:46:55.67 saPJBpY50.net
>>103
関連で自分用に作ったやつ
つべとかでよくあるタイトルコピると濁点が別文字に分かれてるのを直すもの
DakutenNaoshi(STR) {
While (ICHI := RegExMatch(str, "[カ-トハ-ホ]【※1】")) {
MOJI := SubStr(STR, ICHI, 2)
STR := RegExReplace(STR, MOJI, Chr(Asc(MOJI) + 1))
}
While (ICHI := RegExMatch(STR, "[ハ-ホ]【※2】")) {
MOJI := SubStr(STR, ICHI, 2)
STR := RegExReplace(STR, MOJI, Chr(Asc(MOJI) + 2))
}
Return, STR
}
【※1】の位置はU+3099の濁点、【※2】にはU+309Aの半濁点

111:名無しさん@お腹いっぱい。
15/08/25 13:30:29.37 zVK9XD+N0.net
>>109
あー、まじ便利だコレ
俺の糞マウスホイールクリックしにくかったからマジ助かる

112:名無しさん@お腹いっぱい。
15/08/25 19:23:39.17 HVWI17xf0.net
今まで、1台のパソコンでAutoHotkeyを使っていましたが、パソコンをもう1台買って
2台で作業をするようになりました。マウスとキーボードは1台づつでするために
mouse without bordersというソフトを導入してこれで作業しています
ところが、いままで1台でAutoHotKeyで、マウスを動かしたりダブルクリックさせたりと
いうのをしていたのですが、2台にすると、たまーにですが、パソコンAにしか
AutoHotKeyはインストールもしていないのに、マウスの移動が、パソコンBのモニターの方へ
移って、パソコンBのモニター上で動いてしまう、ということが起こります
特に操作を誤ってマウスをパソコンBの方に動かした、とかはしていません
どういう条件でこのようなことが起こるのか、再現条件を調べているのですがよくわかりません
似たような経験をされた方はいませんか。
ちなみに、AutohotKeyでさせてるのは、ある場所を右クリックすると、パソコンAのモニタ上の
5か所を自動でクリックしながら回る、みたいなものです

113:名無しさん@お腹いっぱい。
15/08/25 21:20:48.14 E0WBYw330.net
どこかのテンプレか何か?

114:112
15/08/26 12:23:10.04 4nXUt1/O0.net
>>112ですが、マルチモニターでやってる方はいても複数パソコンでやってる方は
いらっしゃらないのかな

115:名無しさん@お腹いっぱい。
15/08/26 12:29:38.05 ZcWGXrDu0.net
複数PCは別にマウス別にキーボードだから正直答えようがない
そのmouse without bordersというソフトとの問題ならソレを導入してない人にとっては解決策の提示のしようがない

116:名無しさん@お腹いっぱい。
15/08/26 12:54:30.78 4nXUt1/O0.net
mouse without bordersを使うと便利ですよ
以前はどこドアを使っていました。1セットのマウス、キーボードで複数のパソコンを操作できます
ソフトの種類は違っても使っている方は多いと思っていたのですが。是非お勧めです
mouse without bordersの問題なのかな。なら仕方がないですね

117:名無しさん@お腹いっぱい。
15/08/26 13:00:07.68 4nXUt1/O0.net
問題になってるAutoHotKeyのスクリプトを使うときは、とりあえず
mouse without bordersをオフにすることで対応することにしました

118:名無しさん@お腹いっぱい。
15/08/26 14:27:33.65 X6N1SlBd0.net
mouse without borders使ってたけど
マウスとキーボードのデバイスが微妙に連動しないのが面倒くさいのと
MS特有のお行儀の悪さが気になって使うのやめた
グローバルホットキーで Ctrl+Alt+任意キー を設定できるが
Ctrl+Alt+Shift+任意キー や Ctrl+Alt+Win+任意キー なんかも全部乗っ取られる
AHKのホットキーは勿論Photoshopは普通のアプリのショートカットも全部持ってかれる

119:名無しさん@お腹いっぱい。
15/08/26 14:54:38.29 4nXUt1/O0.net
ありがとうございます。どうもAutoHotKeyとの相性は悪そうですね
どこドア2はXPのときに使っててWin7になって対応してなかったのかな、で使えなくて
やめました。でもXPのときもどこドアですが複数パソコンでやってたのですが
あまりこういう問題は起きてなかったと思います。なんか残念

120:名無しさん@お腹いっぱい。
15/08/26 22:02:14.32 PxOK28lS0.net
わからん。ドラッグスクロールのahkみてもさっぱりわからん。MGLに組み込みたいのに

121:名無しさん@お腹いっぱい。
15/08/26 22:06:14.42 KnOhpy/70.net
MGLの話はスレチになるかもだが
ドラッグスクロールはMGLにデフォで入ってる

122:名無しさん@お腹いっぱい。
15/08/26 22:35:31.87 PxOK28lS0.net
まじか。まじだ。
これか
if (MG_While()) {
MG_DragScroll2(1, 0, 30, 30)
}
それを>>109の長押しクリックで切り替えてスクロールさせたいと思ったけどちゃんと読んでくれない。
何がいけないんだろう
Mdoit:
if (MG_While()) {
MG_DragScroll2(1, 0, 30, 30)
}
return
ではいかんのか

123:名無しさん@お腹いっぱい。
15/08/26 22:37:45.84 PxOK28lS0.net
ああ、そうか、MG_WhileてMG通してないからダメか。こっちから調べていかないとダメか

124:名無しさん@お腹いっぱい。
15/08/26 22:58:18.37 PxOK28lS0.net
あーそうかMG_DragScroll2を分解しなきゃいけないのか

125:名無しさん@お腹いっぱい。
15/08/26 23:49:03.07 /aMJcH2P0.net
Lbuttonの設定するととても怪しい挙動になるのがMGLの欠点

126:名無しさん@お腹いっぱい。
15/08/27 01:31:33.67 TGBhd8a90.net
都合により既存の.ahkを全体にわたって編集しようとしたら遠大すぎてやる気が……

127:名無しさん@お腹いっぱい。
15/08/27 02:11:47.99 5BeDDZgS0.net
そうならないよう機能毎にプラグイン化しとくべき

128:名無しさん@お腹いっぱい。
15/08/27 15:17:02.45 6R7nKD+m0.net
Windows8.1で右クリックでコンパイルしようとすると、Error opening the destination fileが出て出来ない。
フォルダーのアクセス権の問題と考えて、コマンドプロンプトからattrib -Rしたが変化なし。
しょうがないからユーザーフォルダ直下に管理者権限でインスコしなおしたけど、症状変わらず。
本家掲示板にも同じ症状の人がいたんだけど、同じことをしても治らない。
URLリンク(www.autohotkey.com)
結局、Ahk2Exe.exeから直接コンパイル出来たんだけど、右クリックが使えないと不便。
何かご存じの方いらっしゃいますか?

129:名無しさん@お腹いっぱい。
15/08/27 15:49:22.05 A1kVA00s0.net
>>128
>>8 管理者権限は?

130:名無しさん@お腹いっぱい。
15/08/27 15:56:03.66 6R7nKD+m0.net
>>129
コマンドプロンプトも管理者権限で実行しましたがダメでしたね
再インスコのときは注意して管理者権限で実行しましたが、やはりダメでしたね。
attribで表示させるとどのファイルにもRが表示されないのがこれまた不思議なんですよね。
うちのPCだけの問題なのか、他のPCにも同じ現象があるのか知りたいですね。
ちなみに適当なフォルダに新しいフォルダを作成すると、読み取り専用で作成されてしまうことも発見しました。
これは正常な現象なんでしょうか?

131:名無しさん@お腹いっぱい。
15/08/27 18:41:30.79 TGBhd8a90.net
ところでMS Edge周りでなんか問題とかあった?
いや、使う気はないんだけど

132:名無しさん@お腹いっぱい。
15/08/27 18:41:41.52 QrGpaeh50.net
セキュリティー系のアプリが邪魔してるとか?

133:名無しさん@お腹いっぱい。
15/08/27 18:58:41.77 6R7nKD+m0.net
>>131
ググりました。ブラウザなんですね。使用していませんね。
>>132
avira antivirus proを使用してますが、すべての機能を無効にしても症状は変わりません。

134:名無しさん@お腹いっぱい。
15/08/27 20:02:23.90 HDPjNIFE0.net
口調が変な奴はおよそそいつ自身に問題がある

135:名無しさん@お腹いっぱい。
15/08/28 02:05:27.60 kfCF/ZI40.net
コマンドを発動させるために使ったホットキー自体を無効化する設定ってないですかね?
Poserというソフトでショートカット変更をしたいので
こういうスクリプトを書きました
!Rbutton::
Send,{space down}{Ctrl down}{Lbutton down}
Loop
{
sleep, 15
GetKeyState, state, Rbutton , p
if state = u
break
}
Send, {space up}{Ctrl up}{Lbutton up}
return
やりたいことはAlt+Rbuttonを押した時に
space + Ctrl +Lbuttonを押してPoserにあるショートカットを使いたいのですが、
このかき方だとPoserにある別のAlt+Lbuttonで動くショートカットがかなりの確率で
誤爆してしまうので、Altを完全に無効にしたいのです

136:名無しさん@お腹いっぱい。
15/08/29 01:35:19.24 27J7ydmj0.net
>>135
KeyWaitでAlt離してからSend

137:名無しさん@お腹いっぱい。
15/08/29 23:40:15.51 9L1dhnYA0.net
>>120です
だいぶドラッグスクロールできそうな雰囲気になってきた。
んだけどMozillaエンジンやChromeのスクロールメッセージがわからんくてpostmessageで送れない
誰か知らない?

138:名無しさん@お腹いっぱい。
15/08/30 13:15:33.91 XxCQb5ii0.net
>>48
この勝手に英語キーボード問題って実は根深いんだよね
ユーザーができることってPS2かUSBかぐらいしかないんだよね
それでもシステムが常に英語キーボードを使いたがる場合
それを防ぐ手段は無いと思う
レジストリに韓国語キーボード設定が紛れていたりとか
他にも原因はいろいろあるが
キーボードを変えるのは本末転倒だけど
キーボードを分解して物理的に中の配線をつなぎ替えるって手段も通じそうにないし
ってなるとソフト的にキーを入れ替えて
システムからは英語キーボードで認識させておいて
日本語キーボードのように使えるようにマッピングを入れ替えるみたいな
スマートでない手段しか解決はない

139:名無しさん@お腹いっぱい。
15/08/30 17:35:57.25 C8RQoIT90.net
           (ヽ∧__∧
           、ヽ`∀´> <呼ばれて無いのにチョチョチョチョーン
            )   )つ
            >⌒)ノ
            ゝノ/
   パカチョン    ノ~ノ
  /|     ///
  | |    ///
  | |ミ ///.
  |/ ̄    /
   " ̄ ̄ ̄ ̄

140:名無しさん@お腹いっぱい。
15/08/30 17:35:58.77 +8DTYiHZ0.net
>>137
スクロール関連ではTrackWheelがいろんな方法を取り入れてる、難解だけど参考になるよ
URLリンク(sites.google.com)
なおスクリプトは64bit版ahkでは動かない模様

141:名無しさん@お腹いっぱい。
15/08/30 21:22:45.27 jAU9uCOQ0.net
>>136
キーを離してしまうと厳しいですね Alt押しで別の動作もさせるので
Alt+Mbutton、Alt+Lbutton、Alt+Rbuttonと合わせて3パターンで切り替えるのでAltはずっと押していたいんです
どうもでした

142:名無しさん@お腹いっぱい。
15/09/01 19:21:17.34 ATL7zO2X0.net
文字列を入れた配列を結合したいのですが
autohotkeyにjoinのようなものはないのでしょうか?
自分でforで回して文字列を作るのでしょうか?

143:名無しさん@お腹いっぱい。
15/09/01 21:16:44.69 oOn6cjJn0.net
俺も拍子抜けしたんだけどね、文字列の後に文字列入れたら文字列になるんだよ
hoge = %hoge% %hage%

144:名無しさん@お腹いっぱい。
15/09/01 22:35:54.73 ATL7zO2X0.net
出来ました
ありがとうございます

145:名無しさん@お腹いっぱい。
15/09/02 11:34:03.68 27CQDY4v0.net
Everythingで検索した結果のファイルパスを変数に入れたいのですが
以下の関数でやると記号のハートマークが含まれてたりするとその部分が?になってしまいます
RetunのところにStrGetでCP932に変換してみたら一文字目だけ変数に入るだけでした
どこかおかしいところがあるんでしょうか?
es_StdoutToVar( search_word )
{
objShell := ComObjCreate("WScript.Shell")
;コマンドライン版Everything,es.exeのインストール場所
objExec := objShell.Exec( "インストール場所\es.exe" " " search_word )
While , !objExec.StdOut.AtEndOfStream
{
strStdOut := objExec.StdOut.ReadAll()
}
Return strStdOut
;Return StrGet(&strStdOut,"CP932")
}

146:名無しさん@お腹いっぱい。
15/09/02 20:04:32.30 wcJk7beK0.net
あぷろだのコンテキストメニューがモロにそれなんで試してみたら?

147:名無しさん@お腹いっぱい。
15/09/04 02:41:16.97 DGVcxvcT0.net
文字列の選択範囲が存在するか否かを調べる方法はありませんか?
^cをSendしてClipWaitしてErrorLevelを調べる、
とやってみたのですが、
使っているエディタは範囲選択していない場合にCTRL+Cを押すと
カーソルのある行全体をコピーするので、正しく検出できませんでした

148:名無しさん@お腹いっぱい。
15/09/04 03:14:02.68 VDkFX/7X0.net
末尾が改行コードかどうかで判別するとか

149:名無しさん@お腹いっぱい。
15/09/04 04:21:08.46 DGVcxvcT0.net
なるほど
それなら出来そうですね
ありがとうございます

150:名無しさん@お腹いっぱい。
15/09/04 05:00:30.42 0fv3FZza0.net
ウィンドウIDを取得して
そのID名+x、そのID名+yという変数にウィンドウ座標を代入したとして、
その変数から取得した座標を取り出すにはどうしたらいいですかね?
こんなかんじにやってもうまくいかなかったんですが、こういう感じのことがしたいです。
Winget,test,ID,A
WingetPos,%test%_x,%test%_y
msgbox, %%test%_x%, %%test%_y%

151:名無しさん@お腹いっぱい。
15/09/04 05:40:44.53 Mfg9efKS0.net
>>150
Winget , test , ID , A
WingetPos , %test%_x , %test%_y , , , ahk_id %test%
MsgBox , % %test%_x "," %test%_y
こうすると見れたよ
URLリンク(ahkwiki.net)

152:名無しさん@お腹いっぱい。
15/09/04 06:50:50.14 0fv3FZza0.net
>>151
できました ありがとうございました

153:名無しさん@お腹いっぱい。
15/09/04 23:10:57.00 7YsI0USd0.net
Gui, Add, Edit にて複数のテキスト入力欄を作った際に、
エンターキーで次のテキスト入力欄に移動したいのですがどのようにすればいいでしょうか。
また、移動後最初に入力欄に表示されているテキストを選択状態にしたいのですができますでしょうか。

Gui, Add, Edit , Number Limit4 , 1234
Gui, Add, Edit , Number Limit3
上記1234のテキストを選択状態(反転状態)にしたいのです。
1234のままでよければエンターで次のテキスト入力欄に、変更が必要ならそのままテンキーを押して変更を行えるようにしたいのです。
宜しくお願いします。

154:名無しさん@お腹いっぱい。
15/09/04 23:34:35.40 mkbLU6h20.net
>>153
OnMessage()かエンターホットキー+#If
反転状態=全選択 フォーカスあわせてctl+a

155:名無しさん@お腹いっぱい。
15/09/04 23:36:03.54 o3G+4tqy0.net
EnterにTabをSendさせるとか

156:名無しさん@お腹いっぱい。
15/09/04 23:42:55.92 eYYZnR930.net
ルー語みたいだな

157:名無しさん@お腹いっぱい。
15/09/05 01:44:18.45 UXTJ6C/Y0.net
一度Shift押すともう一度Shift押すまで押しっぱなしになるってShift::Send,{Shift Down or UP}でできますか?
トグル状態にする書き方が分かりません

158:名無しさん@お腹いっぱい。
15/09/05 03:19:52.89 76NUCaeT0.net
2点教えて下さい。
IfInString, clipboard, C:
run, explore %Clipboard%
else IfInString, clipboard, D:
run, explore %Clipboard%
①こちらが動作しないのですが、理由が分かりません。
②また、簡素な記述法を教えて頂ければ幸いです。

159:名無しさん@お腹いっぱい。
15/09/05 05:43:01.20 WX1fwC0+0.net
>>157
フラグ管理すればいい
shift::
send, % !shiftflag ? "{shift down}" : "{shift up}"
shiftflag := !shiftflag
return
>>158
俺の環境ではそのままで動いたよ
OSとAutohotkeyのVerは何?

160:157
15/09/05 07:49:16.43 UXTJ6C/Y0.net
>>159
ありがとうございます!
しかしShift押しっぱなしだとその間Shift+なショートカットキーが押せないことに気づきました。あきらめます

161:名無しさん@お腹いっぱい。
15/09/05 10:27:37.59 76NUCaeT0.net
>>159
windows10 build 10525
ahk 112203 x64です。

162:名無しさん@お腹いっぱい。
15/09/05 10:31:42.19 76NUCaeT0.net
あ、失礼しました。
次の行に
;の文があったのですが、それを削除したら動作しました。
なぜかは、、若ってませんw

163:名無しさん@お腹いっぱい。
15/09/05 10:42:30.07 p/CJbrsT0.net
>>158
②こう書くこともできるよ
If( RegExMatch( Clipboard , "C:|D:" ) )
{
Run , explore %Clipboard%
}
Return

164:名無しさん@お腹いっぱい。
15/09/05 13:01:45.41 76NUCaeT0.net
できました。なるほど、正規表現で表現すれば良いのですね。
ありがとうございました。

165:名無しさん@お腹いっぱい。
15/09/05 20:48:50.98 1jU9sHQY0.net
間違って過疎スレの方に書いてしまったので再度質問です
Arr := {}
Arr := [{Key: Value}
, {Key: Value}
, {Key: Value}

, {Key: Value}]
のように一度に代入する内容が多いとエラーが出るのですが、Object.Push等を使い分割して入れていくしかありませんか?

166:名無しさん@お腹いっぱい。
15/09/05 21:13:51.76 2aSk8rw40.net
>>165
こうしたら動くけど、やりたいことと違うんかな?
Arr := {}
Arr := {"Key1": "Value1"
, "Key2": "Value2"
, "Key3": "Value3"
, "Key4": "Value4"}
MsgBox, % Arr["Key1"]

167:名無しさん@お腹いっぱい。
15/09/05 21:25:49.13 1jU9sHQY0.net
>>166
どうもです
内容は実際は異なるものでそれ自体は問題なく代入できてますが
その量が多いとエラーが出るので、仕方なく.Push等で分割して入れてるのです
Arr := {}
Arr.Push := ({Key: Value}
, {Key: Value}
, {Key: Value}

, {Key: Value})
Arr.Push := ({Key: Value}
, {Key: Value}
, {Key: Value}

, {Key: Value})

これらを分割せずに代入したいのです
あと.Pushだと

Arr[Key].Push := ({Key: Value}
, {Key: Value}
, {Key: Value}

, {Key: Value})
のようにキーを指定して追加することができないのがちょっと不便なのです

168:名無しさん@お腹いっぱい。
15/09/06 00:24:12.56 Nw/T60NE0.net
いまモニターを3台つないでるんですが、プライマリ以外のデスクトップ上にマウスカーソルがあるときにF1を押した場合にAHKを動かしたいんですがうまくいきません
二枚目と三枚目のデスクトップ上の固有のClassが#32769
でProcessNameはcsrss.exeみたいですが二枚目と三枚目のデスクトップ上にマウスカーソルがある判定がつくれません
何かいい方法はないでしょうか?

169:名無しさん@お腹いっぱい。
15/09/06 00:40:42.32 Nw/T60NE0.net
>>168ですがなんとかなりました 失礼しました
二枚目三枚目のデスクトッをクリックした時にWindowSpyでもClass名が取得できないので
その時に
WinGetClass, AC, A
if !AC
の判定を使ってスクリプトを動かすようにしたらうまくいきました

170:名無しさん@お腹いっぱい。
15/09/06 00:40:59.01 T4UZ6BTe0.net
単純にモニタの最大をsysgetで持ってきて、そこからプライマリ分を引いたら2枚目、二枚目分を引いたら3枚めになる。
例えば横一列に並べてる1920ワイド3枚なら最大は5760だし、それはsysgetで持ってくるなりできたと思う。
1921からが2枚目となり、3841からが三枚目となる。
あとはMousegetposで場所を判定してやればいい。

171:名無しさん@お腹いっぱい。
15/09/06 00:59:39.93 Nw/T60NE0.net
>>170
Windows7のWin+shift+左右矢印キーで動くウィンドウ移動ショートカットに使うので一枚目二枚目三枚目判定はsysgetで作ってますが
それだと二枚目三枚目のデスクトップ上にマウスカーソルがある判定がつくれなかったのです

172:名無しさん@お腹いっぱい。
15/09/06 09:06:26.68 p3to+8FO0.net

Mousegetposで位置取れなかったん?

173:名無しさん@お腹いっぱい。
15/09/06 09:07:22.25 rl/qzrB40.net
ファイルの種類(例えばmp4が動画か音楽か)の判定をスマートにする方法はありますか?
今のところ真空波動研を使って力業でやってますが少し時間が掛かってしまいます

174:名無しさん@お腹いっぱい。
15/09/06 11:34:13.87 p3to+8FO0.net
SinkuSuperLite.exe /s よりもスマートな方法ってことかな
dllcallで直接sinku.dllと叩くとか?

175:名無しさん@お腹いっぱい。
15/09/06 15:15:03.29 rl/qzrB40.net
>>174
そういう方法(というかVer?)があったのですか。ありがとうございました

176:名無しさん@お腹いっぱい。
15/09/06 16:13:54.63 rl/qzrB40.net
ループを使わずにディレクトリ内にファイルがあるか調べる方法はありますか?

177:名無しさん@お腹いっぱい。
15/09/06 16:21:39.32 T4UZ6BTe0.net
If(FileExist("data.txt"))
ピンポイントならこれ

178:名無しさん@お腹いっぱい。
15/09/06 16:37:38.03 rl/qzrB40.net
>>177
説明が悪かったですね。ディレクトリ内が空っぽであるかをスマートに調べる方法があれば知りたいのです
関数作れば事足りることではありますが

179:名無しさん@お腹いっぱい。
15/09/06 16:39:58.19 T4UZ6BTe0.net
そういう意味ではloopが最もスマートかつ管理しやすいかと。

180:名無しさん@お腹いっぱい。
15/09/06 16:42:36.39 rl/qzrB40.net
>>179
分かりました。ありがとうございました

181:名無しさん@お腹いっぱい。
15/09/06 21:16:42.64 Nw/T60NE0.net
>>172
位置はとれますけどウィンドウハンドルやclassNN情報が拾えませんでした

Autohotkey_Lでinspect_toolbar_ids.ahkって動かないのでしょうか?
このスクリプトの
Progress,%tmp%,%num%/%cnt%
の部分で
Error: Max window number is 10.
というエラーがでていて動かないのですがどういうエラーなのかよくわかりません

182:名無しさん@お腹いっぱい。
15/09/06 23:58:03.69 /ARUILMV0.net
#include Lib\IME.ahk
#If !IME_GET() ; IME がOFFの時だけ有効
;変換キーでIMEオン(IE10で不具合)
;sc079 :: Send,{Blind}{vkF2sc070}
IE10以上だとこれが正常に動作しないんだよな

183:名無しさん@お腹いっぱい。
15/09/07 00:17:19.68 oseNuDgH0.net
MouseGetPos,,,Winid,Ctr
ControlClick,%Ctr%,ahk_id %Winid%,,L
return
おかしーな、なんでコレで動かないんだろう
ただアクティブじゃないウィンドウの上で左クリックしたいだけなのに

184:名無しさん@お腹いっぱい。
15/09/07 14:18:15.90 icUjHksq0.net
win7からwin10にしたらime.ahkのIME_SetConvModeが動作しなくなったのだけど
何か仕様が変わったのかな?

185:名無しさん@お腹いっぱい。
15/09/07 18:37:01.59 0prwMOwD0.net
Win10使ってないからわからんけどついにIMMからTSFに切り替わったってことなのかな
OS側がIMM互換残してくれてないとIME.AHKではどうしようもないと思う

186:名無しさん@お腹いっぱい。
15/09/07 20:59:42.12 icUjHksq0.net
>>185
将来的にはTSFオンリーになるという話は聞いていたような気がするけど
ついにその時が来たってことなのかなぁ

187:名無しさん@お腹いっぱい。
15/09/08 18:25:22.21 DiTxEGzB0.net
スクリプトでテキストデータを貼り付ける時は
クリップボードにテキストを入れてsend ^vで貼り付け
とやってるんですがクリップボードの履歴を利用できるソフトにその内容が入ってしまいます
クリップボードを介さないで^vのようにパッとテキストを貼り付ける方法ってあるんでしょうか?

188:名無しさん@お腹いっぱい。
15/09/08 20:45:46.24 pZfe2zr60.net
ドロップダウンメニューが表示されている時に特定の動作をさせたいんですけど
ドロップダウンメニューの判定ってどうとればいいですかね?

189:名無しさん@お腹いっぱい。
15/09/08 20:56:21.82 8bMO9ZgT0.net
>>14
亀レスだけどWin10にしても問題なく動いたよ
もし、古いWindow Spyを使ってるなら更新してみては

190:名無しさん@お腹いっぱい。
15/09/08 21:15:37.03 8bMO9ZgT0.net
>>187
クリップボードを使う前にクリップボード監視ソフトを停止(終了)、終わったら再開(起動)
>>188
ドロップダウンリストのクラスを取得してWinWaitかWinExist()で判定。
ほとんどは #32769 だけどソフトによって違う場合あり。
F9::
mousegetpos, , , hwnd
wingetclass, WClass, ahk_id %hwnd%
clipboard := WClass
msgbox, %WClass%
return

191:名無しさん@お腹いっぱい。
15/09/08 22:26:42.47 pZfe2zr60.net
>>190
なるほどどうも
さっきまで自分で試してたんですけど
MouseGetPos,,,hwnd,,3
Wingettitle,title,ahk_id %hwnd%
これでタイトルを取得出来ない場合はドロップダウンメニューという判定でもうまくいきました

192:名無しさん@お腹いっぱい。
15/09/09 01:58:13.37 sfIbO/Lh0.net
AHKでMedia Player Classcのフルスクリーン時の最前面化を解除したいんですがどうにもなりません。
誰かここでそういうことをしてる人はいませんか?
Winset, Alwaysontop, , A
で最前面解除しても、プレイヤーがアクティブ状態になるとすぐに最前面化されてしまいます。
何かいい方法はないでしょうか?

193:名無しさん@お腹いっぱい。
15/09/09 02:20:18.82 sfIbO/Lh0.net
>>192ですがこのタイマーでなんとかいけましたがなるべくPCに負荷をかけたくないのでタイマー以外の方法があったら教えて下さい。

SetTimer,MPC_FullScreen,350
MPC_FullScreen:
ifwinexist ahk_group MPC
{
WinGet, MPC_windows, ID, ahk_group MPC
WinGet, ExStyle, ExStyle, ahk_id %MPC_windows%
if (ExStyle & 0x8)
{
Winset, AlwaysOnTop, off, ahk_id %MPC_windows%
return
}
else
{
return
}
}
return

194:名無しさん@お腹いっぱい。
15/09/09 02:26:42.78 qqzz6oSe0.net
>>192
俺の環境じゃ最前面化されないな。
MPCの「表示」→「手前に表示」(または動画部分を右クリック → 表示 → 手前に表示)にチェックが付いてるだけじゃ?

195:名無しさん@お腹いっぱい。
15/09/09 02:48:05.08 sfIbO/Lh0.net
>>194
いい忘れました Media Player Classic BEとHCを使ってるんですが、BEのほうだけフルスクリーン表示の時に
手前表示を切っても最前面かされてしまうのです。いろいろ調べたんですが解決策がみつかりませんでした。

196:名無しさん@お腹いっぱい。
15/09/09 02:55:06.35 qqzz6oSe0.net
それはソフト側のバグなんじゃ

197:名無しさん@お腹いっぱい。
15/09/09 06:03:44.25 sfIbO/Lh0.net
>>196
ソフトの仕様らしいです

198:名無しさん@お腹いっぱい。
15/09/09 10:31:37.09 k1YibYKM0.net
>>193
タイマーを使わないならこれ
URLリンク(sites.google.com)

199:名無しさん@お腹いっぱい。
15/09/09 13:41:54.81 eoTr4N+F0.net
ControlsendってBlindつかえないのん?

200:名無しさん@お腹いっぱい。
15/09/10 05:14:35.69 Ogg7g5iG0.net
>>198
例にあるウィンドウがアクティブになったら何かをさせる、のスクリプトを使って、MPCプレイヤー以外のウィンドウがアクティブになった時に
MPCプレイヤーが最前面なら最前面化をその解除する、というスクリプトを作りましたがそれで動きました。ありがとうございます。
ただEVENT_SYSTEM_~のイベント識別番号に最前面判定がないのですがそんなもんですかね?もしかしてそれもあったりしますか?

201:名無しさん@お腹いっぱい。
15/09/10 14:35:46.46 EJyV3hmS0.net
DELLCALLいみわかんね

202:名無しさん@お腹いっぱい。
15/09/10 16:38:15.18 Lu4JniIi0.net
デルのサポセンか何かか

203:名無しさん@お腹いっぱい。
15/09/10 20:34:29.26 T57FNj1S0.net
タッチパッドT650の三本指スワイプに別のアクションを割り当てたいのですが
三本指スワイプのコードが分かりません

204:名無しさん@お腹いっぱい。
15/09/10 21:52:24.11 En8CayDb0.net
ここはお前らのつぶやき場じゃねえ
いみわかんねとか分かりませんとか言われてもそうですかとしか

205:名無しさん@お腹いっぱい。
15/09/11 02:44:50.22 KgQY+xdZ0.net
そうですね

206:名無しさん@お腹いっぱい。
15/09/11 17:29:40.35 oJhYNlfM0.net
タスクバーにあるウィンドウだけピックアップしてリストにするのどうすればいいの
wingetリストじゃ今ないウィンドウも拾っちゃう

207:名無しさん@お腹いっぱい。
15/09/11 17:55:31.33 BoB/uXR80.net
ExStyleに0x00000080を持つかどうかで分岐させるとか

208:名無しさん@お腹いっぱい。
15/09/13 04:16:53.85 tppm85mx0.net
Internet Explorerの保護モードとは?
Internet Explorerの保護モードを有効にしておくと、悪意のあるプログラムやスクリプトなどがシステムの重要な情報を窃取したり、
システムを変更したりするのを可能な限り防ぐことができる。その設定方法や現在の状態の確認方法などを解説する。
これが代表的だけど,ストアアプリに関してもキーボード・マウスフック系ツールは全滅だな

209:名無しさん@お腹いっぱい。
15/09/13 05:18:38.41 tppm85mx0.net
IME_GET(WinTitle="")
;-----------------------------------------------------------
; IMEの状態の取得
; 対象: AHK v1.0.34以降
; WinTitle : 対象Window (省略時:アクティブウィンドウ)
; 戻り値 1:ON 0:OFF
;-----------------------------------------------------------
{
ifEqual WinTitle,, SetEnv,WinTitle,A
WinGet,hWnd,ID,%WinTitle%
DefaultIMEWnd := DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint)
;Message : WM_IME_CONTROL wParam:IMC_GETOPENSTATUS
DetectSave := A_DetectHiddenWindows
DetectHiddenWindows,ON
SendMessage 0x283, 0x005,0,,ahk_id %DefaultIMEWnd%
DetectHiddenWindows,%DetectSave%
Return ErrorLevel
}
これが機能しないんだよな

210:名無しさん@お腹いっぱい。
15/09/13 10:12:25.20 JTOkkRYB0.net
この辺が参考になるかも
URLリンク(d.hatena.ne.jp)
URLリンク(d.hatena.ne.jp)
URLリンク(d.hatena.ne.jp)

211:名無しさん@お腹いっぱい。
15/09/13 12:55:50.14 tppm85mx0.net
意図通り動作するマシンとしないマシンがあって混乱中
ほぼ同じ環境なのに

212:名無しさん@お腹いっぱい。
15/09/13 15:54:22.92 0IksCrEg0.net
あるスクリプトから既に常駐状態の別のスクリプト内にある
aaa:
というラベルを実行するにはどうすればいいでしょうか

213:名無しさん@お腹いっぱい。
15/09/13 18:51:04.35 ZFeoAT7n0.net
あるスクリプトからPostMessage
別スクリプトでOnMessage()→GoTo, aaa

214:名無しさん@お腹いっぱい。
15/09/13 20:01:20.58 0IksCrEg0.net
>>213
ありがとうございます
下のようにやることでできるようになりました
送られる側
MsgNumber := 2457 ;数値はてきとう
OnMessage( MsgNumber , "FunctionName" )
FunctionName( wParam , lParam , msg , hwnd )
{
MsgBox , ウインドウメッセージが送られました`n`nwParam:%wParam%`nlParam:%lParam%`nmsg:%msg%`nhwnd:%hwnd%
If( wParam = 1 )
{
MsgBox , 1を実行
}
}
送る側
DetectHiddenWindows, On
Msg := 2457 ;メッセージ番号
wParam := 1 ;メッセージの第1引数
PostMessage , Msg , wParam , , , 送られる側のスクリプトのパス ahk_class AutoHotkey

215:名無しさん@お腹いっぱい。
15/09/13 20:53:44.44 lBJNhxx/0.net
>>214
横からだけど使わせてもらうサンクス。

216:名無しさん@お腹いっぱい。
15/09/14 01:31:47.47 OiVrGh/t0.net
OnMessageってのはautoexecutionとかで1回起動させてしまえば
timerイベントで常に実行させておく、みたいなことをする必要無いですかね?

217:名無しさん@お腹いっぱい。
15/09/14 01:49:16.10 mUgBafdp0.net
ないよん
定期監視じゃなくイベントが発生したタイミングで起動するためのものだし

218:名無しさん@お腹いっぱい。
15/09/14 02:42:19.29 OiVrGh/t0.net
>>217
どうもです

219:名無しさん@お腹いっぱい。
15/09/14 22:58:53.08 u4kScnm60.net
If (○○)
Return
みたいなのって一行で書けないものかな?

220:名無しさん@お腹いっぱい。
15/09/14 23:38:37.10 mUgBafdp0.net
IfEqual

221:名無しさん@お腹いっぱい。
15/09/14 23:46:07.93 efpHlwrD0.net
三項演算子
でも視認性メンテナンス性を考えたらちゃんと綺麗にパターンにそってスクリプトは書いとくほうがいいぞ
後で何してんだこれとか自分で書いてるものを読み解くのに時間食われたらそれこそ時間の無駄だし

222:名無しさん@お腹いっぱい。
15/09/15 01:02:26.04 hsiwELNn0.net
三項演算子は基本変数への代入系しかできないじゃね
return frag ? true : false などの関数の戻り値指定は有効だが
frag が有効なときだけreturnする、は無理かと
1行でルーチン抜けたいならこっち
IfEqual frag,1, return
URLリンク(ahkwiki.net)
>IfEqualのようなコマンド名の形式の場合、更にカンマで区切って条件に一致した場合に実行するコマンドを記述できる。

223:名無しさん@お腹いっぱい。
15/09/15 03:20:04.42 /YUs9+C50.net
>>220-222
どうもです。IfEqualというコマンドがあったのかーと思ったらv2では排除されてたようです…
三項演算子みたいな省略的な書き方が他にもあるのかと気になってたのでVerまでは考慮しておりませんでした。すんません

224:名無しさん@お腹いっぱい。
15/09/15 03:51:15.34 A4RzQ5uM0.net
行を減らしさえすれば美しいという幻想はいつまで続くのか

225:名無しさん@お腹いっぱい。
15/09/15 06:17:48.39 /YUs9+C50.net
単に使い分けたいだけなんだがなぁ
視認性優先して改行入れて行数増やすこともあるよ

226:名無しさん@お腹いっぱい。
15/09/15 07:12:09.96 UsCwcKFK0.net
v2なら if true, MsgBox ってな感じでいけるみたいやで
ドキュメント見ただけだけど

227:名無しさん@お腹いっぱい。
15/09/15 07:24:15.25 /YUs9+C50.net
>>226
ほんとだ。ありがとう

228:名無しさん@お腹いっぱい。
15/09/15 10:02:28.32 hsiwELNn0.net
v2て、そんな特殊なもの使うのにver指定もなしで普通に質問されてもさあ
特にif回りはバグ元になるから旧コマンド一掃するよって謳ってるverなのに

229:名無しさん@お腹いっぱい。
15/09/15 14:37:46.05 mWkYRkN50.net
マウスを動かした方向とは別の出力をさせるみたいなことってできますかね?
たとえば、
AAAAAAAAAAAAAAAAAA
という文字列があったとして、この文字列の中央で左クリックしながら右にマウスを動かして文字を選択した場合に、
中央から右側にマウスカーソルは動くけれど、ドラッグ選択される文字は中央から左側になる、みたいな感じのことがしたいです

230:名無しさん@お腹いっぱい。
15/09/15 15:46:53.97 3CHmYEvD0.net
できるよ。現座標Xに対して+かーでmousegetposで調べればいい。

231:名無しさん@お腹いっぱい。
15/09/15 15:48:21.63 3CHmYEvD0.net
あ、でも多分カーソルの反対にドラッグとか言うのは無理かも。
shiftとLeft送ることになると思う。

232:名無しさん@お腹いっぱい。
15/09/15 16:31:57.16 /YUs9+C50.net
>>228
三項演算子のような他言語でも用いられる事がある書き方で解決できるのか疑問に思ってたので
AHK特有のコマンド(または仕様)にまで及ぶ内容だとは想定できませんでした。すんません

233:名無しさん@お腹いっぱい。
15/09/15 16:42:38.32 3CHmYEvD0.net
思いついたのは
mousegetpos,X,Y
while getkeystate("Lbutton","P"){
mousegetpos,X2,Y2
idouX = X-X2
If (idouX > 20)
send,+{left}
}
みたいな感じ。動かしても居ないから結果は知らんけど。
要するに押してる間中pos監視してうごいた分でsendを送る

234:名無しさん@お腹いっぱい。
15/09/15 19:46:05.35 5o1yy9Si0.net
自分にぴったりなサイトがあった
日本語で書いた変数名を英語にしてくれるサイト
URLリンク(codic.jp)
素人かつ英語苦手だとまず変数名や関数名をどうするかで悩むんだよね
まぁahkは日本語で変数名かけるけども

235:名無しさん@お腹いっぱい。
15/09/15 19:52:35.84 Eux4ANEd0.net
>>234
真っ白だと思ったらgoogle-analytics.comをブロックしてるせいだった

236:名無しさん@お腹いっぱい。
15/09/15 20:01:13.60 tUDP7N170.net
解析ブロックしたら表示されないってひどい作りだなw

237:名無しさん@お腹いっぱい。
15/09/15 20:09:23.81 Eux4ANEd0.net
まあ、サービス改善にもなるかもしれないし別にいいけどw

238:名無しさん@お腹いっぱい。
15/09/15 22:47:08.77 zhVi9RCM0.net
USBキーボードとPS/2キーボードで挙動が異なる現象に遭遇
F1 & H::send,{Blind}{Left}
でShiftも押した場合に
USBキーボードだとShift+←と同じ挙動
PS/2キーボードだと1文字だけShift+←,その後はShift+Hと同じ挙動です.
この現象は既知なのでしょうか?
VerはWin8.1が1.1.22.04でWin7 32bitが.1.22.06です.2台のPCで同じ現象が見られています.

239:名無しさん@お腹いっぱい。
15/09/16 00:52:28.10 tU5xmvOn0.net
>>233
文字選択のほうがわかりやすいかとおもってそちらを例えに出しましたが
例えがまずかったですね +{Left}だとまずいです すいません
前にここでPoserの質問をしていたのは自分ですが
今回やりたいことは、Poserのビューポート上で、左クリック+ドラッグ操作をする時にマウスの動きをいじりたかったのです
具体的にはマウスを左クリックしながら右にドラッグすると上方向にドラッグしたことになり、
左にドラッグすると下にドラッグしたことになることにしたかったのです
Poserのビューポート操作を自分がよく使う3Dアプリと同じように操作できるように設定したいのですがうまくいきません
その3Dアプリだと左右ドラッグ操作で発動するショートカットがあるのですがPoserではこれが上下ドラッグになっているのです

240:名無しさん@お腹いっぱい。
15/09/16 01:23:31.20 TmYsYnFU0.net
強制的にそういう操作するならやっぱりwhileだな。mousemoveの合わせ技だ。
要するに指定方向に差分だけ進むようにすればいいんだけど、その分While監視だと処理は重くなる

241:名無しさん@お腹いっぱい。
15/09/16 05:13:15.83 H3wp36km0.net
UserAgentを変更してURLからHTMLを取得して変数に格納する方法を教えて下さい。
使ってるのは AutoHotkeyU32 (v1.1.22.06) です。
二つのモジュールを使って試みたもののやり方が悪いのか成功せず。
#Include %A_ScriptDir%/httpQuery.ahk
; URLリンク(www.autohotkey.com)
#Include %A_ScriptDir%/UrlDownloadToVar.ahk
; URLリンク(www.autohotkey.com)
URL = URLリンク(www.ugtop.com)
UserAgent = Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
# httpQuery
html := ""
httpAgent := UserAgent
httpQuery(html, URL)
file := FileOpen("output-A.html", "w")
file.Write(html) ; 空になる
file.Close()
# UrlDownloadToVar
html := UrlDownloadToVar(URL, "20932", "", "", "", "", "", UserAgent) ; 20932 == euc-jp
httpAgent := UserAgent
httpQuery(html, URL)
file := FileOpen("output-B.html", "w")
file.Write(html) ; 文字化けする
file.Close()

242:名無しさん@お腹いっぱい。
15/09/16 05:15:54.43 H3wp36km0.net
すいません。二番目のソースに一番目のソースが混ざりました
# UrlDownloadToVar
html := UrlDownloadToVar(URL, "20932", "", "", "", "", "", UserAgent) ; 20932 == euc-jp
file := FileOpen("output-B.html", "w")
file.Write(html) ; 文字化けする
file.Close()

243:名無しさん@お腹いっぱい。
15/09/16 12:34:50.08 5kMnRgYx0.net
>>241-242
"20932" → "euc-jp"
これで文字化けは直ると思ったが、不完全だった。(何でだろ?)
ちなみに、このスレのURLで実験したが、問題なかった。
文字化けする
UrlDownloadToVar("スレリンク(software板)l50", "")
文字化けしない
UrlDownloadToVar("スレリンク(software板)l50", "shift_jis")
回答にならなくてスマン

244:名無しさん@お腹いっぱい。
15/09/16 17:55:15.94 H3wp36km0.net
>>243
今しがた、同じ条件で試してみたんですが、今度は文字化けなく成功しました。
初めに"euc-jp"と指定したときは確かに文字化けしたような気がするんですが……。
(そういえばその後にバージョン情報を調べるついでにAHKを最新版にしたので、
もしかしたらそのことが関わっているのかもしれません)
一応エディタをアンドゥしまくって失敗時のソースを復元し、再度実行してみても成功しました。
ともかく、解決できてよかったです。ありがとうございました。

245:名無しさん@お腹いっぱい。
15/09/16 18:31:53.58 5kMnRgYx0.net
>>244
今気付いて>>243を再確認してみた。
html := UrlDownloadToVar(URL, "euc-jp", "", "", "", "", "", UserAgent) ; 20932 == euc-jp
MsgBox, % html
ファイルに出力しないで直接MsgBoxで見たら文字化けは無かった。

246:名無しさん@お腹いっぱい。
15/09/17 00:08:29.44 0GNCebUh0.net
>>245
こちらで再試行したときはファイル出力も成功しました。
一応、バージョン情報も確認してみてください。
いつの間にか2chのdatが取得できなくなってたので、
早速UrlDownloadToVarを利用したスクレイパーを書いてみました。
URLリンク(pastebin.com)
>m ^と$が各行の行頭・行末にマッチするようになる。
作る途中で気付いたんですが、これ m) 働いてなくないっすか
RegExMatch("
(
aaa
bbb
ccc
)", "m)^(bbb)", $)
MsgBox % $1 ; 空文字

247:名無しさん@お腹いっぱい。
15/09/17 00:13:06.45 0GNCebUh0.net
あとこれも初めて知った。トラップが多い!
/* 複数行コメントの終わりが単独だと
*/
ToolTip, 実行される
Sleep, 2000
/* 複数行コメントの終わりが単独でないと */
ToolTip, 実行されない
Sleep, 2000

248:名無しさん@お腹いっぱい。
15/09/17 01:13:17.18 WqwVZrqD0.net
>>240
そうですか ちょっとためしてみます どうもです
>>247
これが原因だったんだ たまにスクリプトが動かないことがあったけど ためになった

249:名無しさん@お腹いっぱい。
15/09/17 03:54:06.32 3HuGyT6d0.net
初心者向けのページ教えて

250:名無しさん@お腹いっぱい。
15/09/17 08:01:13.31 qHToz6EC0.net
>>1

251:名無しさん@お腹いっぱい。
15/09/17 08:08:55.12 kM3ONwaq0.net
>>246
mオプションでのデフォルトの「行末」は\r\n
ヒアドキュメントの改行コードは\nなのでマッチしてない
RegExMatch("aaa`r`nbbb`r`nccc", "m)^(bbb)", $)
or
RegExMatch("
(
aaa
bbb
ccc
)", "m`n)^(bbb)", $)

252:名無しさん@お腹いっぱい。
15/09/17 08:10:11.30 kM3ONwaq0.net
×「行末」 ○「改行」

253:名無しさん@お腹いっぱい。
15/09/17 10:41:54.18 ji2+y1tj0.net
ウィンドウの右上の閉じるボタンの位置情報取得ってどうすればできます?

254:名無しさん@お腹いっぱい。
15/09/17 11:09:40.82 wVWznDfL0.net
SysGetで
SM_CXSIZE (30)
SM_CYSIZE(31)
SM_CYFRAME(33)
SM_CXFRAME(32)
あたりの値を求め、ウィンドウサイズ左端から逆算して割り出す
尚、最大最小?等のアイコンがあるかどうかはWinGet, Styleで調べられる

255:名無しさん@お腹いっぱい。
15/09/17 11:10:43.33 wVWznDfL0.net
×左端から
○右上端から
寝ぼけたすまん

256:名無しさん@お腹いっぱい。
15/09/17 11:37:01.52 +U+k5cUm0.net
width-30,10あたりを適当に押してるけどw

257:名無しさん@お腹いっぱい。
15/09/17 12:22:08.24 A/7kw9Bt0.net
>>253
その情報を取得して何がしたいか分からないけど、
例えば、「閉じる」ボタンを押したらウインドウを閉じるんじゃなく最小化したいとかなら、
以下の関数使えばマウスポインタの位置が「閉じる」ボタンの上か調べられる
>【 名 称 】 Autohotkey マウス関数群 (コピペ/組込用)(MUS.ahk)
>【製作言語】 AutoHotkey Scripts (URLリンク(www.autohotkey.com))
>【 更新日 】 2012.11.11
>【 製作者 】 eamat.
>【 URL 】 URLリンク(www6.atwiki.jp)
の、MUS_GetTitleBarPos()関数で「20」が返って来るかどうか。
↑何か質問の答になってないようなので、別な答を。
力技だけど、閉じるボタンの画像を用意して「ImageSearch」で位置を取得する。

258:名無しさん@お腹いっぱい。
15/09/17 16:27:55.00 4LAmt04I0.net
Firefoxのキーボードショートカット
URLリンク(support.mozilla.org)
Firefoxというブラウザのキーボードショートカット
「次のタブグループ」:Ctrl+`
をAutohotkeyからFirefoxへ入力させたいんですが
Send , ^`
とやっても無反応で
Send , ^+@
とやるとどうも「前のタブグループ」:Ctrl+Shift+`
が発動します
意図したとおり、「次のタブグループ」、「前のタブグループ」のキーを入力させるにはどうすればいいでしょうか

259:名無しさん@お腹いっぱい。
15/09/17 16:57:47.86 F1JlH5P90.net
>>258
手動で試してみたが次のタブグループは日本語キーボードだと反応しない?
> 補足: Customizable Shortcuts 拡張機能を用いて、キーボードショートカットをカスタマイズすることができます。
変えたらできるかも未確認
×次のタブグループ Ctrl + `   一部のキーボードレイアウトでのみ使用可
○前のタブグループ Ctrl + Shift + `  一部のキーボードレイアウトでのみ使用可
前のタブグループ
×Send ^`
○Send ^`` ; エスケープ
○Send ^+@ ; 上と同じ意味

260:名無しさん@お腹いっぱい。
15/09/17 17:03:19.64 F1JlH5P90.net
補足
A → Shift + a
` → Shift + @
同じ意味になる
Ctrl + ` → Ctrl + Shift + @
Ctrl + Shift + ` → Ctrl + Shift + @

261:名無しさん@お腹いっぱい。
15/09/17 17:23:23.84 0GNCebUh0.net
>>251
なるほど、そういうことでしたか。ありがとうございます。

262:名無しさん@お腹いっぱい。
15/09/18 16:38:39.51 MADHZaul0.net
>>254
やってみたけどうまくいかない。実測では50くらいあるのにフレームとサイズ合わせても50に届かない。なんでだろう

263:名無しさん@お腹いっぱい。
15/09/18 18:00:02.89 9G09CoR10.net
環境書いてないからわからんが
エアロ(非クラシック)だと閉じるボタンだけ他より横に長い
あと解像度の高いモニタでDPI 100%超の設定で使ってると取得値が変わるのかも
うちは最小ボタン横にツールチップ表示させてるが
厳密なサイズ割り出しまでは必要ないので適当なオフセット値入れてごまかしてる

264:名無しさん@お腹いっぱい。
15/09/18 18:14:57.18 z07x5dup0.net
エアロは取得できないのか。知らんかった

265:名無しさん@お腹いっぱい。
15/09/18 18:23:03.13 9G09CoR10.net
いや取得できないわけじゃないけど最大&最小と閉じるボタンとでボタンのサイズ違うでしょ
エアロがどうかっていうよりXP以降の仕様かな、詳しくはわかんない
ちなみにエアロかどうかは
DllCall("dwmapi\DwmIsCompositionEnabled","IntP",_ISENABLED)
で取得できる

266:名無しさん@お腹いっぱい。
15/09/19 02:09:26.93 AqLWnhbc0.net
戻り値を見る限り成功してるっぽいんですが、キャプチャが空なのは何故でしょうか?
ret := RegExMatch("test", ".+", "$")
msgbox,
(
ret: %ret%
$: %$%
)


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch