17/02/15 18:04:32.01 kshCKhXn0.net
!extend:checked:vvvvv:1000:512と次スレを立てる際は1行目に記入してください
■配布元
URLリンク(ahkscript.org)
■前スレ
AutoHotkey スレッド part23
スレリンク(software板)
■日本語解説等
AutoHotkey Wik
URLリンク(ahkwiki.net)<) (不調時は URLリンク(hdd.s300.xrea.com) )
AutoHotkeyJp(過去ログdatあり)
URLリンク(sites.google.com)
Autohotkey日本語ヘルプ(chmファイル)
URLリンク(www6.atwiki.jp)
Autohotkey専用うpろだ
URLリンク(ux.getuploader.com)
簡易スクリプト掲示板
URLリンク(pastebin.com)
■派生版
IronAhk (.NET製、クロスプラットフォーム)
URLリンク(github.com)
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
URLリンク(www.autohotkey.com)
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2:名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)
17/02/15 18:09:06.23 kshCKhXn0.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:名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)
17/02/15 18:10:01.04 kshCKhXn0.net
■過去スレ
Part1 スレリンク(software板)
Part2 スレリンク(software板)
Part3 スレリンク(software板)
Part4 スレリンク(software板)
Part5 スレリンク(software板)
Part6 スレリンク(software板)
Part7 スレリンク(software板)
Part8 スレリンク(software板)
Part9 スレリンク(software板)
Part10 スレリンク(software板)
Part11 スレリンク(software板)
Part12 スレリンク(software板)
Part13 スレリンク(software板)
Part14 スレリンク(software板)
Part15 スレリンク(software板)
Part16 スレリンク(software板)
Part17 スレリンク(software板)
Part18 スレリンク(software板)
Part19 スレリンク(software板)
Part20 スレリンク(software板)
Part21 スレリンク(software板)
Part22 スレリンク(software板)
part23 スレリンク(software板)
4:名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)
17/02/15 18:12:28.64 kshCKhXn0.net
以下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を起動する。( URLリンク(www.forest.impress.co.jp) )
「調査」→「どのキーなのか?またはスキャンコードでキーを変更します」を選択。
F12を押すとスキャンコード(0x0064はF13)が表示されるので覚えておき「終了」をクリック。
「ひらがな」キーをクリックすると「【ひらがな】キーをどのキーに変更しますか?」という
ウィンドウが表示されるので右上の「Scan code」をクリック。
覚えておいたスキャンコード(0064)を入力し、「OK」ボタンをクリック。
「登録」をクリックし、Windowsを再起動する。
5:名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)
17/02/15 18:13:24.86 kshCKhXn0.net
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のジョイスティックサポートはかなり貧弱なのでプログラマブルにやる必要がある。
6:名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)
17/02/15 18:13:52.08 kshCKhXn0.net
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, 窓使いの憂鬱 等のキーボードフィルタドライバを用いるアプリケーションを使っている
7:名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)
17/02/15 18:14:20.95 kshCKhXn0.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:名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)
17/02/15 18:15:23.33 kshCKhXn0.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:名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)
17/02/15 18:15:52.21 kshCKhXn0.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:名無しさん@お腹いっぱい。 (ワッチョイ 997d-ENO3)
17/02/15 18:19:16.36 kshCKhXn0.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)
AutoGUI
URLリンク(www.autohotkey.com)
※テンプレここまで
11:名無しさん@お腹いっぱい。 (オッペケ Srfd-Oti2)
17/02/15 19:54:36.77 eLd/9sJir.net
MsgBox, 64,, % ">>1乙", 1
12:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/16 01:25:51.17 kR5g/uiD0.net
質問です。
ウィンドウのリサイズのホットキーを作成してみました。
;ウィンドウリサイズ
#!Numpadadd::
winsize()
return
winsize(){
WinMove,ahk_class Chrome_WidgetWin_1,,1300, 100,1200,1500
}
これでwinキーaltキーを押しながらテンキーの+を押せばウインドウがでかくなります。
ただ、これはGoogleクロームのウィンドウだけです。
これをその都度のアクティブウインドウすべてを対象にしたいのですが、
ahk_class Chrome_WidgetWin_1 ここを空欄にすると全く動いてくれなくなります。
対象をすべてに広げるのはどうすればよいでしょうか?
よろしくお願いします。
13:名無しさん@お腹いっぱい。 (ワッチョイ c3fc-eq+O)
17/02/16 01:54:37.17 Hw1FRYME0.net
>>12
wikiの「ウィンドウ指定の方法」のページをよく読め
14:名無しさん@お腹いっぱい。 (オッペケ Sr07-ic+v)
17/02/16 02:01:06.97 kh3cI+d4r.net
WinMove, A,, x,y,w,h
アクティブウインドウすべてって意味が分からないが同じプロセスの複数のウインドウって意味ならahk_groupかWinGetでlist作ってLoopかな
15:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/16 02:04:49.72 kR5g/uiD0.net
>>13
読んでみます
>>14
パットウィンドウを開いたときに小さい場合、簡単に大きくするのが目的なので
現在アクティブなウィンドウのみに作用できればそれでOKなんですが、
今は指定したタイトルのウィンドウ(アクティブでない場合も作用してしまう)にしか作用してくれないです。
16:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/16 02:09:19.74 kR5g/uiD0.net
>>13
>>14
;ウィンドウリサイズ
#!Numpadadd::
winsize()
return
winsize(){
WinMove,A,,1300, 100,1200,1500
}
簡単にできました。ありがとうございました。
出来てみると、「直前のサイズに戻す」もやりたくなってきました。
17:名無しさん@お腹いっぱい。 (ワッチョイ 2b13-eq+O)
17/02/16 13:11:49.55 jjXXp67P0.net
パソコン2台モニター4枚使っています
で、パソコンAのマウス、キーボードでパソコンBも操作していて、Mouse wituout Borders(MWB)を使っています
パソコンAでコピーしたテキストはこのMWBを使えばパソコンBでペーストできるのですが、
パソコンAでテキストをコピーすると、パソコンBである処理をさせるというのを自動でしたいのです
パソコンAのAHKスクリプトで、パソコンBのスクリプトを作用させることって出来ますか
18:名無しさん@お腹いっぱい。 (ワッチョイ 2b13-eq+O)
17/02/16 13:15:31.96 jjXXp67P0.net
例えば、SendMessageを使うと、同じパソコン内の別のスクリプトにメッセージを送ることは出来ますが
他のパソコンのスクリプトにメッセージを送る方法があるとか?
19:名無しさん@お腹いっぱい。 (ワッチョイ 5e89-eq+O)
17/02/16 14:35:48.97 1T8DysXM0.net
LAN間メッセージならWinSock
ググったらAHKsock.ahkてのが出てきたからそれ使えばできんじゃね
UACやファイアウォールは適宜設定で
20:名無しさん@お腹いっぱい。 (ワッチョイ f756-//k8)
17/02/16 19:41:02.31 rLJDfIZX0.net
>>17-18
PC-B の方で OnClipboardChange を定義してみては?
URLリンク(sites.google.com)
21:名無しさん (ワッチョイ 2baf-V1oq)
17/02/16 23:12:05.79 ye2J2HHb0.net
>>16
ウィンドウサイズの変更なら、このあたりが参考になると思う
URLリンク(autohotkey.s365.xrea.com)
ポップアップメニューにするなら
URLリンク(blog.blueblack.net)
キーボード操作にしたいのなら、CoordMode,Mouse,Screen~の4行はいらないんじゃないかな
ついでに、
URLリンク(ahkwiki.net)
>メニューアイテム名に &a のように & に続いて英数字を~
を組み込めば、キーボードだけで柔軟にサイズ・位置変更ができると思う
22:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/17 00:29:57.50 waXhf69C0.net
>>21
ありがとうございます。自分は最近大きなモニターを買ったり前から持っていたモニターと併せて3枚にしてみたりしていて
新しく開くウインドウがあまりに小さく遠くに開いてしまうことが多かったので
簡単にメインの大きなモニターの中央にそれなりに大きくするコマンドを作成したかったのですが、
いざやってみると全部同じ位置に集まってしまうのでwトグルでもとに戻したりしたいなと思い、
ifとかいろいろ組み合わせて、一つのウインドウを拡大→元通り→拡大 を同じ操作でトグルさせること自体はできたのですが、
途中で別のウィンドウを触ってしまうとメッチャクチャになってしまうwことが判明しました。
基本的なフローが頭にできていないからダメなんですけど、
隅っこにウィンドウが開いてしまった→操作A大きくして中央に移動→別のウィンドウをクリック(それなりになにか操作)
→さっきの大きくしていたウィンドウをクリック→操作A元の場所に戻す
などできるようにするには多分ウィンドウ特定する固有の値を取得してそれぞれの状態を
触れたウィンドウ全部についてどんどん蓄積していかなくてはならないのかなーなどと考えています。
道のりは長そうです。
23:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/17 00:33:08.13 waXhf69C0.net
お恥ずかしい限りですが、作ったスクリプトはコレです。
マウスの中ボタンプラス左クリックでトグル操作するようにしました。
これだと一つのウィンドウだけいじってる間は問題ありませんが、
途中でほかのところを触ったとたんにぐちゃぐちゃになります。
;ウィンドウリサイズ
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
24:2b13-eq+O (ワッチョイ 1f24-eq+O)
17/02/17 08:02:49.16 UhCxCwGJ0.net
>>20
出来ました。こんな方法があったんですね。 これでいきます
25:名無しさん@お腹いっぱい。 (ワッチョイ 8204-2WKk)
17/02/17 12:40:18.45 IGN6zQZQ0.net
windows,Shift,mのコマンドをShift長押しで出力するものを作りたいのですが、3キー同時押しのコマンドがどうしても出来ません。
そのようなことはできるのでしょうか?
26:名無しさん@お腹いっぱい。 (ワッチョイ de4f-eq+O)
17/02/17 13:09:16.89 jgyqu4id0.net
>>25
+#m
質問するならまず自分の書いたスクリプトを張った方がいいぞ
27:名無しさん@お腹いっぱい。 (ワッチョイ 87fb-hUlN)
17/02/17 15:04:04.80 KGsRqZeY0.net
なにこのメールこわ
28:名無しさん@お腹いっぱい。 (ワッチョイ 8204-nViG)
17/02/17 15:54:12.08 IGN6zQZQ0.net
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
です。
29:名無しさん@お腹いっぱい。 (JP 0Hea-eq+O)
17/02/17 16:47:23.91 1vTfdLX7H.net
そもそも Shift+Win+m の組み合わせはahk関係無く使用できないのでは?
キー入力検出ソフトでも Shift+Win+m を同時押ししても検出できないし
ちなみに Shift+Win+n や Ctrl+Win+m などは使える
OSが認識できないものはahkでも当然無理だし送ることも受けることも出来ない
30:名無しさん@お腹いっぱい。 (ワッチョイ f756-//k8)
17/02/17 18:03:26.95 KpKwj6iW0.net
つNキーロールオーバー
>>28
長押ししてタイムアウトしたら、 ErrorLevel は 1。つまり Send コマンドが逆だと思うけど
あと、うちだと + や Shift だとだめで、RShift や LShift でやればいけたよ
31:名無しさん@お腹いっぱい。 (ワッチョイ 8204-nViG)
17/02/17 18:28:20.86 IGN6zQZQ0.net
>>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の動作と一緒になってしまい、ウィンドウが最小化してしまいます。
32:名無しさん@お腹いっぱい。 (ワッチョイ f756-//k8)
17/02/17 18:33:22.19 KpKwj6iW0.net
>>31
Send の引数の指定は >>26 でいいんじゃないの
33:名無しさん@お腹いっぱい。 (ワッチョイ 8204-nViG)
17/02/17 18:51:47.17 IGN6zQZQ0.net
>>32できました!!ありがとうございます。
$RShift::
KeyWait,Shift, T0.3
if ErrorLevel
send,+#m
else
send,{RShift}
keywait, RShift
return
34:名無しさん@お腹いっぱい。 (ワッチョイ f756-//k8)
17/02/17 19:31:05.99 KpKwj6iW0.net
あぁ、これ Windows のショートカットキーか。上でキー入力ソフトで検出出来なかったっていうのは、そのせいかもしれんね
35:名無しさん@お腹いっぱい。 (ワッチョイ 3ff7-eq+O)
17/02/18 07:29:39.06 OYYffKZK0.net
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はあってもなくても同じです
36:名無しさん@お腹いっぱい。 (ワッチョイ 3ff7-eq+O)
17/02/18 07:47:06.41 OYYffKZK0.net
訂正します。 最初から起動するときもやはり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
とすると、回避できます。これしか方法はないのかな
37:名無しさん@お腹いっぱい。 (ワッチョイ c37d-Z7AI)
17/02/18 08:18:26.79 Hk0iB5Hc0.net
>>36
URLリンク(autohotkey.com)
この例は、スクリプトが最初に起動したときに関数が呼び出されないことを除いて
OnClipboardChangeと同じです。クリップボードの内容が変更された場合のみです。
#Persistent
OnClipboardChange("ClipChanged")
return
ClipChanged(Type) {
ToolTip Clipboard data type: %Type%
Sleep 1000
ToolTip ; Turn off the tip.
}
38:名無しさん@お腹いっぱい。 (ワッチョイ 12d9-veJH)
17/02/18 08:34:34.76 92Fl7ir90.net
URLリンク(i.imgur.com)
あるウィンドウだけウィンドウスタイルをこういうクラシックスタイルにしたいんですけども
winsetで指定できるウィンドウスタイルにそれっぽいのが見つかりません。
ahkでそういうのって可能ですか?
DllCall("dwmapi\DwmEnableComposition", "uint", false)
とか試してみたんですけど全てのウィンドウが中途半端にAeroオフになるだけで駄目でした。
39:名無しさん@お腹いっぱい。 (ワッチョイ 3ff7-eq+O)
17/02/18 08:45:38.27 OYYffKZK0.net
>>37
なるほど。ありがとうございました
40:名無しさん@お腹いっぱい。 (ワッチョイ 3ff7-eq+O)
17/02/18 09:09:37.75 OYYffKZK0.net
>>37
実際にこれを使って作り変えてみました。ばっちりでした。ありがとうございました
41:名無しさん@お腹いっぱい。 (オッペケ Sr07-r/J+)
17/02/18 19:11:20.89 KUL6+Z39r.net
おい、日産よ!
いつまで無視出来るかなww
日産自動車栃木工場上三川寮
管理人は合鍵を使い従業員の部屋に無断で侵入。
抜き打ちで従業員の私物を全て調べるブラックの中のブラック企業。
残業賃金一部未払いの最低のクズ会社
42:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/20 23:16:31.90 5RugC6ZF0.net
質問させてください
アクティブウィンドウの位置を取得する際に、
取得する座標をウィンドウタイトルに関連した変数として取得したいです。
まずタイトルを取得して
WinGetActiveTitle, Title01
WinGetPos, X%Title01%, Y%Title01%, W%Title01%, H%Title01%,A
WinMove,A,,1300,100,1200,1500
MsgBox, %X%Title01%%
return
43:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/20 23:21:13.22 5RugC6ZF0.net
すいません途中で書き込んでしまいました。
キーがおかしいw
まずタイトルをTitle01という変数名に取得します
WinGetActiveTitle, Title01
そしてこのTitle01に座標を関連させて4つの変数を決めます。
XTitle01 YTitle01 WTitle01 HTitle01
この変数にウィンドウの位置を取得させたいのですが、
WinGetPos, X%Title01%, Y%Title01%, W%Title01%, H%Title01%,A
これで取得できるでしょうか?
44:r> MsgBox, %X%Title01%% これで書き出しても空欄になってしまいます。 ただ %X%Title01%% これがおかしいのは自分でもわかりますwww 「変数1%変数2%」 という表現や書き出す際にそれを表示させるにはどうすればいいでしょうか?
45:名無しさん@お腹いっぱい。 (ワッチョイ b739-/qTs)
17/02/20 23:35:51.43 LEVOvOAT0.net
1.
hoge := X%Title01%
MsgBox, %hoge%
2.
MsgBox, % X%Title01%
46:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/21 00:40:49.28 UifnTonW0.net
>>44
ありがとうございます。
前進しました。
2.
MsgBox, % X%Title01%
これはどういうことでしょうか。
やってみたら、普段Msbと表示されるメッセージボックスのタイトルバーにも数字が
現れましたが、、
47:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/21 00:48:04.95 UifnTonW0.net
いや、なんだか混乱してきました。
出直します。ありがとうございました。
48:名無しさん@お腹いっぱい。 (ワッチョイ 87fb-hUlN)
17/02/21 01:59:45.49 nheq0azW0.net
'% 'はahkのわかりづらいとこだな ググりにくいし
49:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/21 02:34:26.26 UifnTonW0.net
すみません、やっぱりうまくいきませんでした。
^#!Numpad1::
WinGetActiveTitle, Title00
hoge:=X%Title00%
MsgBox, %hoge%
return
これで、コントロール+ ウィンドウズ+alt+1で、
英語タイトルのウィンドウがアクティブの時はメッセージボックスは空白になり、
日本語を含むタイトルのウィンドウのときはイリーガル文字が使われてるというエラーメッセージがでます。
目的としては
ウィンドウ位置を移動させるコマンドを実施した時にアクティブなウィンドウの移動前の座標をタイトル文字を使った変数として覚えておいて、
必要な時に再度コマンドを実施した時にその位置に移動させたい(戻したい)という感じです。
ある一つのウィンドウだけではなく、いろんなウィンドウに対応させたいので四苦八苦している感じです。
変数とか配列とかよくわかっていない素人なので、、
50:名無しさん@お腹いっぱい。 (ワッチョイW 9e4e-CFij)
17/02/21 03:55:56.99 IYHQ65RM0.net
変数名に空白とか漢字とか使えないんじゃね?配列の添字で実現すればいいよ。
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
51:名無しさん@お腹いっぱい。 (ワッチョイ 2b62-eq+O)
17/02/21 10:54:25.03 zPRLOhIL0.net
マウスを動かす時、大きく動かしたあと細かく動かそうとした際に上手に動かせずに
苦労することとかがあります
ペイントソフトで特定の範囲を選択したいときとか1ピクセル動かすのに苦労するとか
なので、たとえばシフトキーを押しながらマウスを動かすとゆっくりになるとかをAHKを用いて実装できますか
52:名無しさん@お腹いっぱい。 (オッペケ Sr07-ic+v)
17/02/21 12:36:27.91 ulZsc9y6r.net
>>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使わずにメモリ上で完結出来るんじゃないかな
53:名無しさん@お腹いっぱい。 (オッペケ Sr07-ic+v)
17/02/21 13:09:01.51 ulZsc9y6r.net
>>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 MouseSen
54:sitivity ) 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) ;トラックボールモード
55:名無しさん@お腹いっぱい。 (ワッチョイ 9ec0-qUVP)
17/02/21 13:21:52.79 Z5KCL75j0.net
>>50
マウスの加速機能はついてないの?
56:名無しさん@お腹いっぱい。 (ワッチョイ 1f12-DpDM)
17/02/21 16:36:30.88 XlUCT1ZY0.net
>>50
RegWrite, REG_SZ, HKEY_CURRENT_USER, Control Panel\Mouse, MouseSensitivity, 5
レジストリ直接いじった方が早いそうなので試したけど、うまくいかなかった
再起動しなきゃダメなのかね
57:名無しさん@お腹いっぱい。 (ワッチョイ 1f24-eq+O)
17/02/21 17:36:36.03 iWUpBYRA0.net
>>52
コンパネのマウスのポインターオプションの速度の
ポインターの速度を選択する
ってとこを動かすと、レジストリのMouseSensitivityが1~20まで変化する
MouseSpeedとの違いが謎だな
58:名無しさん@お腹いっぱい。 (ワッチョイ 1f24-eq+O)
17/02/21 17:41:03.95 iWUpBYRA0.net
>>54
regeditでレジストリを直接いじってみたが、コンパネのマウスにはまったく反映されずに
マウスのプロパティを閉じたりするとレジストリがもとに戻る
レジストリを変更したのをメッセージとして通知せんとダメなんじゃね?
SystemParametersInfoを使うとそれをしてくれるのか
でもダメだったっていうHPもあったなw
59:名無しさん@お腹いっぱい。 (ワッチョイ c37d-Z7AI)
17/02/21 18:27:03.92 VNYq5LdE0.net
>>38
exeのプロパティで互換性→視覚テーマを無効にすれば個別にAero切れる
WinSet, ExStyle, 0x00000080, hoge でさらにクラシックぽくなる
変更する為にはレジストリを変更する必要があるので慎重に
参照: URLリンク(w-mashiro.rhcloud.com)
例: 互換性モードで実行
Path = C:\Users\User\Desktop\TestOS.exe
RegWrite, REG_SZ, HKEY_CURRENT_USER, Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers, %Path%, WINVISTASP2 VISTARTM
60:名無しさん@お腹いっぱい。 (ワッチョイ e32a-//k8)
17/02/21 19:25:38.86 La4vYKtz0.net
マウスポインターの速度変更ならヘルプのDllCallのサンプルコードにあるけど
61:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/21 19:41:24.03 UifnTonW0.net
>>49
ありがとうございます。
グローバル関数とはなにか、そもそも関数の扱いがわからないのでネットで勉強することにします。
そこでお尋ねしたいのですが、
titles[title] := [] ; さらに配列
この四角いカッコはコマンド的に意味のあるものなのでしょうか。
{ }や( )ではなく [ ] をautohotkeyで使う場面がわからないのですが、
何かの一例ということで例えばtitles a というような意味でしょうか。
それとイコールの右側の四角い記号はカッコの組み合わせを隙間なく書いてあるようですがどういう意味でしょうか?
そのカッコの中に何かを書き込めという意味でしょうか?
よろしくお願いします。
62:名無しさん@お腹いっぱい。 (ワッチョイW 9e4e-CFij)
17/02/21 20:05:23.31 IYHQ65RM0.net
>>59
いやー俺もつい2週間前くらいに始めたところでw
配列を [] (大括弧)で書くのと {} (中括弧)で書くのに違いはないってどっかでみたよ
あと Object() て書いても同じことらしい。
他人が読んだときに、どういう意図か伝えるために書き分けるって考え方があって
普通に数字や文字列を入れるときは大カッコがいいかなあと俺は思った。
クラスのインスタンスとか、いろんなもの入れるとかの場合
63:が中カッコ。俺はそうかなと 思っただけ。 でも別に気にしなくてもいいんじゃねw あと Global も、別のいろんな言語の経験から反射的につけただけ。なくても動くかも しれない。動かないかもしれない。ごめんねこんなんでw
64:名無しさん@お腹いっぱい。 (ワッチョイ 12d9-veJH)
17/02/21 22:19:56.43 RVqdF5O60.net
>>57
すごい! それっぽくできました
ありがとうございます
65:名無しさん@お腹いっぱい。 (ワッチョイ 1f99-eq+O)
17/02/22 02:53:24.69 dVZ+QgoV0.net
PCゲームのDeadSpace3の上で、ahkがまったく動作しません。
ゲームなのでもうしょうがないのでしょうか?
英語でちょっとぐぐると同様の人がいるみたいですが、解決策を見つけられませんでした。
対戦ゲームが搭載されていますがメインではないので、アンチチート系のブロックではないと
思うのですが。このスレッドではゲームの話題は却下なのでしょうか
66:名無しさん@お腹いっぱい。 (ワッチョイ debb-eq+O)
17/02/22 03:18:30.57 SyYG6t1J0.net
>>62
ahkスクリプトを管理者権限で実行してもダメ?
67:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/22 04:09:38.36 llRBXp7y0.net
>>60
ありがとうございます。
わからないなりに真似してやってみたところ残念ながらタイトル固有の位置を取得できていない状態です。
同じコマンドでトグル動作するように設定しているのですが、
結局一番最後にウィンドウを中央に移動した直前の位置を覚えているだけみたいで
配列の部分を全部読み込まなくても同様の動きになりました。。。。
添字?でしょうか、なにか書式が違うんでしょうか。。。
次のレスにコピーしますが、もし、、、なにか間違いがわかったらご意見うかがえると幸いです。
68:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/22 04:11:32.16 llRBXp7y0.net
^#!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
69:名無しさん@お腹いっぱい。 (ワッチョイW 9e4e-CFij)
17/02/22 05:07:29.61 Lnwqrb+t0.net
>>65
さりげなく画面でかいなおい。
Global titles の行を一番上に、^#!Numpad より上に。
あと Label2 の w とか h とか、:= の前が全角のスペースだったから確認
if (IsObject(titles[t])) {
て書けば、座標を記憶してればどうたら~って書けるよ。if (titles[t]) { て
書いても動くようだけど。あと
title をキーにして覚えるよりはウィンドウID(HWND)で覚えたほうがいいと思う。
タイトルは変わることがあるからな。
最後俺のミスだけど、titles て変数名はあんまりよくなかったw
windows とかのほうがマシだったわ
そして Global はつけなくても動いた。先頭に title := [] て書いとけばいい。
70:名無しさん@お腹いっぱい。 (ワッチョイ 9691-qUVP)
17/02/22 12:13:06.28 Idlhi0l50.net
すみません、
Google chrome (正確にはSRWare Iron)上で再生しているHTML5ビデオプレイヤーにフォーカスを合わせる方法ってないでしょうか?
HTML5ビデオプレイヤーにキーをsendしたいんですが、ブラウザ自体をwinactivateしてもそうはならないようで…
71:名無しさん@お腹いっぱい。 (ワッチョイ 9ec0-qUVP)
17/02/22 12:59:48.89 1sPWRQrc0.net
>>67
そういうのは俺環で動けば良いって割り切って、
ControlClick でプレーヤー内の影響ない場所を狙い撃ちしてフォーカス合わせてから、
ControlSend でキーを送ってるなぁ
72:名無しさん@お腹いっぱい。 (ワッチョイ 1f12-DpDM)
17/02/22 13:08:23.34 NiPWfYF40.net
ブラウザをアクティブにしたあとでタブ送るとか
73:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/22 19:29:32.02 llRBXp7y0.net
>>66
ありがとうございます。4kモニター買ったら真ん中以外がすごく操作しづらくてそれで考案中ですw
全角スペースを半角に直したら「戻り」が正しく動かなくなりました。
w := titles[t].w
h := titles[t].h
x := titles[t].x
y := titles[t].y
これが機能してなかったのが逆に表面上だけはうまく動いたように見えていたようです。
ウィンドウID(HWND)とは何でしょうか。
調べてみたところautohotkeyにはウィンドウを特定する方法のなかに
個別のIDはなさそうなんですが、、、
URLリンク(ahkwiki.net)
いい方法があると良いのですが。
if (IsObject(titles[t])) {
これは、titles[t]に値が入っていたら っていう意味でしょうか。。
やりたいことはさほどでもないのに実際挑戦すると深みにはまっていきます。
74:名無しさん@お腹いっぱい。 (ワッチョイW 9e4e-CFij)
17/02/22 19:52:07.18 Lnwqrb+t0.net
>>70
titles := [] を一番上にした?俺実際に動作確認してから書いたんだぞw
ウィンドウIDじゃなかったっけか。一般には HWND で通るんだけどなんか
変わった名前で呼ばれてた記憶があってウィンドウIDだったかなーと思って書いた。
WinExist() のところみたら「ウィンドウのハンドル」て書いてあるね
75:名無しさん@お腹いっぱい。 (ワッチョイW 9239-oOoW)
17/02/22 20:45:28.25 llRBXp7y0.net
>>71
はい。一番上にしたんですけど、、、おかしいなあ。
そちらで動いたのならこのまま欠点を調べてみます。
一番上っていうかショートカットコマンドの上に書きました。
他のスクリプトもいくつかある中で、不安ながら初めてキーコマンドの上に書きました。
ウィンドウのハンドル、調べてみます
ただちょっと腰痛がひどくて取り掛かるまでに時間がかかりそうです、、、
76:名無しさん@お腹いっぱい。 (ワッチョイW 9239-oOoW)
17/02/22 20:47:16.07 llRBXp7y0.net
>>71
スクリプト丸々貼っていただけると有難いのですが、、、
見比べられると見つけられる気がします
いろいろ要求してすみません
77:名無しさん@お腹いっぱい。 (アウアウウーT Sa03-gU8W)
17/02/22 21:13:33.94 yvaLHXOma.net
あ~むずかしい
日本語の説明書ないかな
英語とかのはあるっぽいんだが
78:名無しさん@お腹いっぱい。 (ワッチョイW 9e4e-CFij)
17/02/22 21:13:59.79 Lnwqrb+t0.net
もう捨てちゃったよ。最初から RAMDISK 上でやったからなー
他思いつくことは
文字コードを utf-8 BOM 付きにした。
うちは 4K じゃないので指定どおりのウィンドウサイズにはならなかった
そのため「戻り」が呼ばれることはなかった。サイズを小さくしたら指定どおりになったけど
その時はすでに IsObject() で分岐するように改変してたから、ウィンドウサイズの判定で
正しく分岐するかどうかは確認してない。ただし MsgBox で表示させてサイズの確認はやった。
79:名無しさん@お腹いっぱい。 (ワッチョイW 9239-oOoW)
17/02/22 21:22:48.29 llRBXp7y0.net
>>75
そうですか、、、
なんでかなあ
ありがとうございます
80:名無しさん@お腹いっぱい。 (ワッチョイ 9239-P9CU)
17/02/22 22:12:30.20 llRBXp7y0.net
>>75
とりあえずウィンドウのハンドルの取得方法がわかりました
URLリンク(sites.google.com)
WinGetでIDを指定するみたいです。
ウィンドウの特定のところでなんでパッと出てこないのか、、
しかしこれプログラム初心者にどっかで教えてくれる場所ないかなー
81:名無しさん@お腹いっぱい。 (ワッチョイW 9e4e-CFij)
17/02/22 22:27:42.26 Lnwqrb+t0.net
ウィンドウハンドルとか置いといて
とりあえず自分で書いたプログラムを動かすことを考えたほうがいいなこれは。
動かさないことには気持ち悪いだろう。
ほんで10行程度のプログラムの説明に100行書くのはごめんだw
82:名無しさん@お腹いっぱい。 (ワッチョイ 127c-Vm/o)
17/02/22 22:31:40.86 teNn2wZc0.net
スクリプト貼り付けpen.ioとか使うのはダメなのかな
アップローダーはちとめんどくさいのはあるが
これだと適当なページ名とパスワード入れるだけで使える
アカウント作成とかも不要
83:名無しさん@お腹いっぱい。 (ワッチョイ 5f39-/qTs)
17/02/22 22:38:36.03 a43g1lV70.net
>>78
一度相手したなら最後までちゃんと面倒みろ
84:よ オブジェクトの説明とかめんどくさいことになりそうだったから俺はレス思いとどまった
85:名無しさん@お腹いっぱい。 (ワッチョイW 9e4e-CFij)
17/02/22 22:43:18.02 Lnwqrb+t0.net
ずっとこの調子でやったらやったで
よそでやれとかいうくせにw
86:名無しさん@お腹いっぱい。 (ワッチョイ 9299-P9CU)
17/02/22 22:49:41.31 2kfOkFZd0.net
>>79
>>1
> 簡易スクリプト掲示板
> URLリンク(pastebin.com)
87:名無しさん@お腹いっぱい。 (ワッチョイ 127c-Vm/o)
17/02/22 23:00:06.64 teNn2wZc0.net
>>82
これ修正するのにアカウント必要じゃない?
88:名無しさん@お腹いっぱい。 (ワッチョイ a36d-QlaG)
17/02/22 23:23:10.19 Ga4mI7520.net
AHKって書くの面倒なんだよな
ちょっとボタン入れ替えたいときとか不便だわ
自動記述できるようなツール誰も作ってないのかな
89:名無しさん@お腹いっぱい。 (ワッチョイ bfe6-d4M5)
17/02/23 00:41:11.32 uTk4Z6DV0.net
>>84
Dresskey
使ったこと無いけど
90:名無しさん@お腹いっぱい。 (ワッチョイ 6f6e-8lb6)
17/02/23 02:03:19.02 Ki8zWHFj0.net
暇つぶしに辞書読むような感覚でリファレンス読んでたら自然に覚えたけどな
初心者だから教えてくれとか言わずにもうちょっと時間かけて努力してみなよ
91:名無しさん@お腹いっぱい。 (ワッチョイ bf39-d4M5)
17/02/23 02:36:36.48 iWncX5Sd0.net
>>86
結構何時間も試行錯誤した末の質問なんですけどね
サイトは教科書ではないから、頭から読んだけどどうもある程度何かを知っていることが前提になっているようで。
それで質問したらヒントくれる人がいたけど、そのヒントがわからないから
コピペして試行錯誤するしかなくて正直何時間もやった挙句のレスなんですわ
自分で動かしてみろって書いてあるけど、それは何度も繰り返してるんですけどねえ、、、、
92:名無しさん@お腹いっぱい。 (ワッチョイ bf39-d4M5)
17/02/23 02:50:30.56 iWncX5Sd0.net
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
93:名無しさん@お腹いっぱい。 (ワッチョイ bf39-d4M5)
17/02/23 02:51:06.75 iWncX5Sd0.net
やっぱりこれは動かないです。
皆さまお騒がせしてすみません。
また試行錯誤します。
94:名無しさん@お腹いっぱい。 (ワッチョイ ffb2-8lb6)
17/02/23 03:58:51.54 n/Mbm79B0.net
よく分かってないやつが出したヒントを鵜呑みにしない方が良いんじゃね
95:名無しさん@お腹いっぱい。 (ワッチョイW ff4e-sTLI)
17/02/23 06:00:59.80 tvLqh4DN0.net
>>88 コピペで動いたぞ
画面サイズ 1200x1500 のところを 600x400 に変えたけど
96:名無しさん@お腹いっぱい。 (ワッチョイ ff89-8lb6)
17/02/23 10:56:33.91 pFFh4T600.net
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%
97:名無しさん@お腹いっぱい。 (ワッチョイW ff4e-sTLI)
17/02/23 11:12:27.44 tvLqh4DN0.net
最初に回答書いたのは自信あったからだ。あとは訊かれたから書いたんだ
2/10 にAHKインストールしたとこなんだ。細かいことは勘弁してくれよな
98:名無しさん@お腹いっぱい。 (ワッチョイ afd2-8lb6)
17/02/23 12:06:10.57 YeB1kZ5I0.net
半年ROMれの典型例
2週間じゃスレの雰囲気もようわからんだろうに
しつこく食い下がってくる質問者のほうが悪いとでもいいたげだがあまり気楽に答えてやるな
白旗上げるなら早いうちのほうが相手の被害も最小限ですむ
自分も始めたばかりならよう分からん回答者に振り回される恐怖は想像できるだろう
99:名無しさん@お腹いっぱい。 (ワッチョイW ff4e-sTLI)
17/02/23 12:16:11.12 tvLqh4DN0.net
わかったよう
でもウィンドウID(HWND)は日本語サイトだけみたら間違いと思うかもしれないけど
本家みたらそんなには間違ってないと思うぞ
100:名無しさん@お腹いっぱい。 (ワッチョイ ff54-8lb6)
17/02/23 12:50:20.10 FGOgLwLP0.net
分かってねーなこいつ
101:名無しさん@お腹いっぱい。 (ワッチョイW bf39-Z+OO)
17/02/23 19:20:42.45 iWncX5Sd0.net
>>91
中央に移動させるのは動くけど引き続き同じキーコマンドで元の場所に戻らないんです。
その配列に元の位置が記憶されていない状態だと思います
配列が分からないのでとりあえず作ったスクリプトで今抱えている問題は、
ウィンドウAにキーコマンド→中央へ拡大移動しつつ前の位置を記憶
ウィンドウBにキーコマンド→中央に拡大移動したつ前の位置を記憶
これで2つのウィンドウが重なります。
そこで手前のウィンドウBを手動でずらす
ウィンドウAにキーコマンド→ウィンドウBの元の位置に移動してしまう
という現象です
記憶が1つならそうなるのは当然なんですけど
それを回避するのは配列しかないかなあと、、、
102:名無しさん@お腹いっぱい。 (ワッチョイW bf39-Z+OO)
17/02/23 19:22:35.59 iWncX5Sd0.net
>>92
ありがとうございます
それでも良く分からないけどまたやってみます。
腰痛が酷くて椅子に座れなくて、、、、
103:名無しさん@お腹いっぱい。 (ワッチョイ 7f91-ixyU)
17/02/23 19:28:11.16 QlvMT+qG0.net
タスクバーの右にあるタスクトレイ?でしたっけ、この部分に表示されているアプリがクラッシュするとアイコンだけが残りますよね?。
この部分をリフレッシュして状態を元に戻したいんですが、Windows10だと海外のどのコードを使用しても反映されません。
グーグルで”autohtokey tasktray refresh”で検索したコードを使用してもWindows7では正常に動作しますが、Windows10では動作しませんでした。
ToolbarWindow321をToolbarWindow324にしても効果なしでした。
何か良い方法等ありませんでしょうか、よろしくお願いします。
104:名無しさん@お腹いっぱい。 (ワッチョイ ff54-8lb6)
17/02/23 19:38:58.76 FGOgLwLP0.net
>>99
マウスカーソルを残ったアイコンに合わせると消えるだろ?
なのでMouseMoveで瞬時にトレイアイコンをなぞるスクリプト作れば消せる
105:名無しさん@お腹いっぱい。 (ワッチョイ 6f56-O1Hn)
17/02/23 19:47:13.93 0D7QEc5c0.net
>>99
そのキーワードで検索して出てきた Noesis さんのスクリプトが、
Windows 10 で動作報告いっぱいあるようだけど、これじゃいかんの?
URLリンク(autohotkey.com)
106:名無しさん@お腹いっぱい。 (ワッチョイ 7f91-ixyU)
17/02/23 20:57:23.04 QlvMT+qG0.net
>>100
有難うございます。
その方法は代替案として既に実践済みなのですが、やっている事がダサ過ぎて止めた経緯があります。
すみません、言葉足らずで。
>>101
有難うございます。
このコードも過去に試してはいるのですが、ホットキーを指定しないと反応しないようなので諦めていました。
が、今一度確認しました所、Tray_Refresh()の部分を削除すれば出来るようですね。
解決出来ました、有難うございます!。
107:名無しさん@お腹いっぱい。 (ワッチョイ 7f91-ixyU)
17/02/23 21:06:43.44 QlvMT+qG0.net
念の為、こちらの環境で動作したコードを貼っておきます。
URLリンク(pastebin.com)
108:名無しさん@お腹いっぱい。 (ワッチョイ bf39-d4M5)
17/02/24 02:42:55.56 xNGPh+BS0.net
>>92
そのまま貼り付けてやってみました。
きちんとID固有の変数に位置情報が読み込めててワクテカです
自分のスクリプトに組み込めるようトライしてみます。
109:名無しさん@お腹いっぱい。 (ワッチョイ bf39-d4M5)
17/02/24 03:28:32.74 xNGPh+BS0.net
>>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
110:名無しさん@お腹いっぱい。 (ワッチョイ bf39-d4M5)
17/02/24 03:37:44.76 xNGPh+BS0.net
というかこのautohotkeyはいろいろな事ができて凄いと思うのだけど
あんまり話題になってないように思うのですがどうなんでしょうかね。
もともと自分はmac歴が長いので細かい省略キーが使えないウィンドウズに不満があったのですが、
これでカスタマイズしまくればある意味最強だと思えます。
書籍とか、馬鹿でもスクリプトがつくれるアプリとかあればいいのになあと思いました。
まあだから「流行らせるページ」なんてものができてたりするんでしょうけども。
111:名無しさん@お腹いっぱい。 (ワッチョイ ef30-8lb6)
17/02/24 12:48:34.68 4TN8NtnJ0.net
文字列操作についてですが、
StringSplitを使うと、文字をカンマ等で分割して、変数名を A とすると、
A1 A2 A3
等に分割して入れてくれます。 逆に、A1 A2 A3等からまとめてもとのカンマ等で結合された文字列に戻す
命令ってないのでしょうか。 あるいは1行で簡単にできる操作ってありますか
112:名無しさん@お腹いっぱい。 (ワッチョイ 6fcd-8lb6)
17/02/24 13:23:32.90 5m0+00Nm0.net
テス
113:名無しさん@お腹いっぱい。 (ワッチョイ 6fcd-8lb6)
17/02/24 13:24:46.07 5m0+00Nm0.net
>>107
関数化してみては?
; 分割
Str := "あ,い,う"
A := StrSplit(Str, "●")
; 復元
Str := StrRestore(A)
MsgBox, % Str
StrRestore(A)
{
Str := ""
Loop, % A.Length()
{
Str .= ((A_Index > 1) ? "●" : "") . A[A_Index]
}
Return Str
}
114:名無しさん@お腹いっぱい。 (ワッチョイ 6fcd-8lb6)
17/02/24 13:26:13.77 5m0+00Nm0.net
>>107
"●"は","に変えてくさい
115:名無しさん@お腹いっぱい。 (ワッチョイ ff89-8lb6)
17/02/24 14:07:02.47 W1kZDMOP0.net
StringSplit て言うてるやん
初心者(と思われる)相手に扱いのややこしいオブジェクト使った返答はやめたげなさいよ
>>107
分割数が固定なら A := A1 "," A2 "," A3 で一行化も可能だが
可変だったらループで回すしかないんじゃない?
やってるこた>109と同じだが
A:=""
Loop, %A0%
A .= A%A_Index% (A_index<A0 ? "," : "")
116:名無しさん@お腹いっぱい。 (ワッチョイ 6fcd-8lb6)
17/02/24 14:41:54.05 5m0+00Nm0.net
>>111
最初はそう答えようかと思ったけど、>>107は関数的な使い方求めてるのかなと思った
それで関数内をグローバル変数化するのはトラブルの元かと思って変えたわ。すまん
117:名無しさん@お腹いっぱい。 (ワッチョイ ef30-8lb6)
17/02/24 15:50:45.98 4TN8NtnJ0.net
お二人ともありがとうございました。非常に参考になりました
118:名無しさん@お腹いっぱい。 (ワッチョイ bfd9-/vtI)
17/02/25 11:23:21.06 u9ENoZ/u0.net
107じゃないけど演算子がいみふで>>111を理解するのを諦めた
?:とか.=使ってるのほとんど見たことなかったんだけど割と一般的なの?
それとも1行にまとめられるからレス用にあえてそうしてるだけ?
119:名無しさん@お腹いっぱい。 (ワッチョイ ff89-8lb6)
17/02/25 11:56:06.40 g79Hejm/0.net
. 演算子 (文字列連結) URLリンク(ahkwiki.net)
?:(条件) (三項演算子) URLリンク(ahkwiki.net)
代入演算子 URLリンク(ahkwiki.net)
三項演算子はぱっと見で意味が通りにくいので避ける人もいるが
覚えると便利なので多用する人は結構いるよ
107は行圧縮が課題なので使用したが式の意味の理解しやすさ的にはあまり親切な回答ではないね
視認性や効率無視で更に詰めると2行までは圧縮できる
Loop, %A0%
A := (A_index=1 ? "" : A) A%A_Index% (A_index<A0 ? "," : "")
120:名無しさん@お腹いっぱい。 (ワッチョイ 6fcd-8lb6)
17/02/25 12:45:39.21 XCqVx4l30.net
俺は>>107が文字列への戻し方を理解した上での質問だと解釈してたわ
121:名無しさん@お腹いっぱい。 (ワッチョイ bf39-8Hz2)
17/02/25 13:17:08.13 FDsrzjQa0.net
三項演算子がAutoHotkeyで使えるという発想がなかった
122:名無しさん@お腹いっぱい。 (オッペケ Sr03-qMfP)
17/02/25 13:31:02.35 1dPH+8dyr.net
a := (aaa ? aaa
: (bbb ? bbb
: (ccc ? ccc : ddd)) )
みたいにテンプレ入れてるな俺
視認性はif文と大して変わらないかもだけど
123:名無しさん@お腹いっぱい。 (ワッチョイ ef99-8lb6)
17/02/26 01:26:03.66 g3AOYpmk0.net
教えてください。
無変換キーコンビネーションキーの一つ目で使用しているのですが、
一つ目のキー単独の元の機能は失わないようにしたいです。そこで
vk1Dsc07B::vk1Dsc07B ←これが動作しません
vk1Dsc07B::Send, {vk1Dsc07B} ←これは動作するのに
これはどうしてでしょうか?変換キーは同じこと(リマップ)をしてもそのまま動作するのに。
あとチルダ(~)をつければ大丈夫ってwikiみたのですが動く気がしません。
124:名無しさん@お腹いっぱい。 (ワッチョイ ff51-8lb6)
17/02/26 02:23:39.42 EZAUaAEs0.net
vk1Dsc07B::vk1Dsc07B
これも普通に動作したけど
125:名無しさん@お腹いっぱい。 (ワッチョイ ef99-8lb6)
17/02/26 02:26:33.44 g3AOYpmk0.net
ありがとう。えー、どうしてだろう。もう一回やったけど僕無理だ。
126:名無しさん@お腹いっぱい。 (ワッチョイ ff51-8lb6)
17/02/26 02:39:53.60 EZAUaAEs0.net
ヘタに省略せず登録したコンビネーションキーとかも全て書くべきだと思うがな
ちなみに俺が試したのは下記
vk1Dsc07B::vk1Dsc07B
vk1Dsc07B & x:: AltTab
これで無変換キー単独で押した時は普通に無変換キーとして動作してる
127:名無しさん@お腹いっぱい。 (ワッチョイ ef99-8lb6)
17/02/26 04:06:34.29 g3AOYpmk0.net
原因わかりました。
別の所で特定のウインドウが前面になったときの個別のキー割り当てのなかに
#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}
------ここまで-------
ぼくは決定的なことがわかってないんだと思います。教えてください。
128:名無しさん@お腹いっぱい。 (ワッチョイ 7f91-BsB8)
17/02/26 13:46:35.37 pxJcwieV0.net
MPC-HCにAHKからsendでのキー操作(早送り、次のトラック等)が
届くものと届かないものがあるんですが同じようなことで悩んだ先達さんいないでしょうか
全部効かせるコツがあったら教えて下さい
129:名無しさん@お腹いっぱい。 (ワッチョイ ffbb-8lb6)
17/02/26 13:53:37.36 CqbTNGi00.net
メディアキーが効かないならキーボードショートカット使えば?
ショートカットキーはMPC-HC側でいくらでも編集出来るし
130:名無しさん@お腹いっぱい。 (ワッチョイ ffbb-8lb6)
17/02/26 14:43:56.66 CqbTNGi00.net
>>124
てか試して見たら次のトラックとかメディアキー(Media_Next)でもキーボードショートカット(デフォならPgDn)でも
AHKからSendして普通にMPC-HCで使えたけど
根本的に何か記述間違ってるだけじゃね
131:名無しさん@お腹いっぱい。 (ワッチョイ 7f91-BsB8)
17/02/26 17:36:49.95 pxJcwieV0.net
>>126
ありがとうございます
それで問題が狭まったかも
実は問題はSVP 3.1.5に同梱されているmpc-hcで出ていて
madVRやReClock併用時だけの問題なのかもです
色々試してみたけどやぱり分かりませんね…
132:名無しさん@お腹いっぱい。 (ワッチョイ ffbb-8lb6)
17/02/26 18:05:19.38 CqbTNGi00.net
スクリプトすら貼らないから何が問題なのかすら伝わってこないんだが
質問するやつ言葉足らずが多すぎ
133:名無しさん@お腹いっぱい。 (ワッチョイ ff89-8lb6)
17/02/26 18:15:27.29 TxBZNz0e0.net
最近妙にご新規さんが増えてるっぽい印象は感じる
どこぞで紹介でもされたんかね
134:名無しさん@お腹いっぱい。 (ワッチョイ 2f13-8lb6)
17/02/27 14:33:40.39 KE+0u5pR0.net
ToolTipのフォントが小さいのですが、フォントを変更することは出来ますか
135:名無しさん@お腹いっぱい。 (ワッチョイ 7f32-GWeL)
17/02/27 14:35:24.62 iBgmHIgZ0.net
:::Send,{'} ; [:] -> '
+:::Send,{"} ; Shift + ' [*] -> "
WildcardをDouble questionにremapしたいのですが何故か動作しません助けて下さい
136:名無しさん@お腹いっぱい。 (ワッチョイ ffbb-8lb6)
17/02/27 14:48:45.00 TdJpVywr0.net
*::"
137:名無しさん@お腹いっぱい。 (ワッチョイ ff89-8lb6)
17/02/27 14:52:38.05 wiDI8cWz0.net
URLリンク(ahkwiki.net)
138:名無しさん@お腹いっぱい。 (ワッチョイ efe6-d4M5)
17/02/27 14:56:37.32 5ofIhFHw0.net
>>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
}
139:名無しさん@お腹いっぱい。 (ワッチョイ 2f13-8lb6)
17/02/27 15:26:41.86 KE+0u5pR0.net
>>134
作らないといけないということですね。ありがとうございました
140:名無しさん@お腹いっぱい。 (ワッチョイ ef99-8lb6)
17/02/28 00:08:57.54 GG32Wtxo0.net
どなたか>>123の疑問を解決していただけませんか?
どうしてこの最小構成のスクリプトでvk1Dsc07Bの単独の機能が死んでしまうのが
理解できません。なにがだめなんでしょうか?
141:名無しさん@お腹いっぱい。 (ワッチョイW bf39-Z+OO)
17/02/28 02:01:23.61 TZ6azZE+0.net
部分的すぎて質問の意味が伝わって泣きんじゃないか?
動くほうのスクリプトと動かないスクリプトの両方をはっつけて
何は出来るのに何ができないって示さないとわかんないんじゃないかな
142:名無しさん@お腹いっぱい。 (ワッチョイWW ff89-AAEx)
17/02/28 08:09:02.90 FkW/ZsiE0.net
環境書かない質問はスルーしていいってじっちゃが言ってた
143:名無しさん@お腹いっぱい。 (ワッチョイ ffc0-BsB8)
17/02/28 08:37:07.90 GJMq1dBE0.net
>>136
vk1Dsc07B::
if WinActive("ahk_class GomPlayer"){
Send, !{F4}
} else {
Send,{vk1Dsc07B}
}
で良いんじゃないの?
144:名無しさん@お腹いっぱい。 (ワッチョイ ef39-6M2V)
17/02/28 10:40:52.10 LhprMn5H0.net
>>136
同じキーへの割当でホットキーとリマップを混在させるとよろしくない
リマップは実行時ホットキーに自動変換されることが関係してるらしい
145:名無しさん@お腹いっぱい。 (ワッチョイ af7d-HyQo)
17/02/28 11:25:14.64 ztkILZtN0.net
>>136
コンビネーションキーとして使用すると
一つ目のキー自体のもともとの機能は無効化される。
機能残したいなら#ifを使おう
#IfWinActive 電卓
vk1Dsc07B::Tooltip 電卓
#if GetKeyState("vk1Dsc07B")
x::Tooltip x
#If
146:名無しさん@お腹いっぱい。 (ワッチョイ ffbb-8lb6)
17/02/28 12:04:10.61 zYze+Gwq0.net
>>139-141
>>136
147:の質問の仕方が下手糞なせいもあるが、質問内容に沿ったを回答をしてるのは>>140だけ
148:名無しさん@お腹いっぱい。 (ワッチョイ ef99-8lb6)
17/02/28 13:22:09.15 GG32Wtxo0.net
レスたくさん頂いてありがとうございます。文章が下手ですいません。
>>140
・#IfWinActiveで別々のケースとして区切っているのに、ホットキーとリマップの混在になってしまうのでしょうか?
・その混在で不都合がでるのはコンビネーションキーを設定したときに、一つ目のキーを離したときに発動する機能に限ったことなのでしょうか?
ぼくのautohotkey.ahkの構成は、#IfWinActiveをつかって
Aのソフトウェアが前面にあるときのホットキー
Zのソフトウェアが前面にあるときのホットキー
それら以外の場合のホットキー
という順で、どのソフトウェアが前面であるかを一つのユニットとして、別々にホットキーを
設定しているので#IfWinActiveの仕切りを越えて影響してきたら若干困ります。
AからZのホットキーの場合は前後で#IfWinActiveで仕切っているのに対して
「それら以外の場合の」ホットキーの場合は前後になんの工夫もなくただ書いているだけなのがまずいのかな。
149:名無しさん@お腹いっぱい。 (ワッチョイ 6f99-8lb6)
17/02/28 13:36:30.15 XP3qQWy90.net
>>143
何が困るんだよ
自分で最初に書いた通り
vk1Dsc07B::Send, {vk1Dsc07B}
で動くんだからそれでいいじゃん
150:名無しさん@お腹いっぱい。 (ワッチョイ ef12-4rO4)
17/02/28 16:07:06.51 qHZRcqns0.net
>>143
最初の「なんで」という疑問に「ahkはそう言う仕様で作られてる」というしかない気もするけど
リマップとSendどうしても混在させたいなら開発者に要望出すしかないんじゃないですかね
151:名無しさん@お腹いっぱい。 (ワッチョイ 7fd2-ixyU)
17/02/28 23:19:34.98 pfHbqPzF0.net
デスクトップの向きって取得出来ませんか?。
wiki見た感じだとsysgetやwingetでは無理そうなんです。
152:名無しさん@お腹いっぱい。 (ワッチョイ ff89-8lb6)
17/02/28 23:30:28.86 FkW/ZsiE0.net
ポートレートかランドスケープかって判断ならhright widthの値比較でわかると思うが
タブレットデバイスの 0/90/180/270 角度判断は無理じゃね
153:名無しさん@お腹いっぱい。 (ワッチョイ 7fd2-ixyU)
17/02/28 23:56:51.35 pfHbqPzF0.net
角度は無理そうですか。
有難うございます。
154:名無しさん@お腹いっぱい。 (ワッチョイ 2f2e-8lb6)
17/03/01 00:03:41.20 YlFSJdgd0.net
どんな用途か知らんけど大抵は縦か横かの判定だけで事足りる気がするけど
155:名無しさん@お腹いっぱい。 (ワッチョイ ef99-8lb6)
17/03/01 01:25:21.04 vkF2E2Qp0.net
>>144
vk1Dsc07Bの単独の機能が死ぬんだがw
156:名無しさん@お腹いっぱい。 (ワッチョイ bf66-8lb6)
17/03/01 01:34:35.06 7S3s7KBn0.net
>>150
死なないよ
てかお前が最初に>>119で
vk1Dsc07B::Send, {vk1Dsc07B} ←これは動作するのに
って書いてるじゃん
こっちでもちゃんと検証して動作確認済み
157:名無しさん@お腹いっぱい。 (ワッチョイ ef99-8lb6)
17/03/01 01:46:08.52 vkF2E2Qp0.net
>>151
は?w
158:名無しさん@お腹いっぱい。 (ワッチョイ bf66-8lb6)
17/03/01 01:47:28.86 7S3s7KBn0.net
>>152
は?w
159:名無しさん@お腹いっぱい。 (ワッチョイ ff80-8lb6)
17/03/01 02:53:29.56 CdHko6H20.net
(ワッチョイ ef99-8lb6)
なんだこいつ態度急変キモイ
160:名無しさん@お腹いっぱい。 (ワッチョイ 6ffb-JWrO)
17/03/01 03:20:05.71 fP4W4bcy0.net
もうクソ質問者はスルーでいいだろ
161:名無しさん@お腹いっぱい。 (ワッチョイ ef8c-qCCQ)
17/03/01 11:29:34.71 IaUsgbY50.net
>>146
>>147
かなり力技だけど
タスクバーを常に出してるならそれぞれの画面角度のスタートボタンとかの画面キャプチャ(bitmap形式)を保存しといて
ImageSearch使って判別すれば角度もわかると思う
162:名無しさん@お腹いっぱい。 (ワッチョイ 7f51-8lb6)
17/03/01 13:00:43.90 bWmGcKpi0.net
>>156
0度と180度(または90度と270度)ってAHKから見たら同じで判別不能じゃね?
163:名無しさん@お腹いっぱい。 (ワッチョイ bfd9-/vtI)
17/03/01 20:49:17.06 bF3Dp7fJ0.net
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個ラベルを書いていくのはつらいです
164:名無しさん@お腹いっぱい。 (ワッチョイ ef39-6M2V)
17/03/01 20:55:32.57 0YtyRuzK0.net
ComboBoxではだめな理由があるの?
165:名無しさん@お腹いっぱい。 (ワッチョイ ff89-8lb6)
17/03/01 21:34:35.90 rWcbJ3kU0.net
>>158
Gui, Add, Button, x+50 y%ypos% vb%A_Index% Gcopysub,これを押すと左のeditboxのテキストをクリップボードにコピーさせたい
copysub:
msgbox,%A_GuiControl%
return
166:名無しさん@お腹いっぱい。 (オッペケ Sr03-qMfP)
17/03/01 21:49:08.51 E4tjBCtbr.net
>>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
167:名無しさん@お腹いっぱい。 (ワッチョイ 3ad9-gN9z)
17/03/02 00:37:44.30 1f30O+z30.net
>>160のcopysubラベル内でA_GuiControlを使ってcontrolgettextしたら無事動作しました。
ありがとうございました!
168:名無しさん@お腹いっぱい。 (ワッチョイ c51c-7il/)
17/03/02 19:23:57.83 yxlabhZo0.net
変数名を文字列として格納できないかの質問。
下みたいな指定した変数のリストをメッセージボックスに表示する関数を作った。
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に変数名の情報を引き渡すことはできないだろうか?
169:名無しさん@お腹いっぱい。 (ワッチョイ 6d56-TgS+)
17/03/02 21:42:23.09 a9s2vKBl0.net
>>163
;呼び出し
OutputValue({"a":a, "b":b}*)
;関数定義内で
For k, v in Variabe
Strings .= "変数" . k . ":" v
170:名無しさん@お腹いっぱい。 (ワッチョイ 6d56-TgS+)
17/03/02 21:58:53.96 a9s2vKBl0.net
* は要らんわ。まぁ、とにかく変数名をキーにした配列を渡す以外に道は無いと思う
171:名無しさん@お腹いっぱい。 (ワッチョイ c51c-7il/)
17/03/02 22:01:44.99 yxlabhZo0.net
>>164
ありがとう。
172:名無しさん@お腹いっぱい。 (ワッチョイ c539-anrw)
17/03/02 22:01:46.72 jvAYnBY/0.net
a := 5
c = a
OutputValue(c)
return
OutputValue(v) {
MsgBox, % v ":" %v%
}
173:名無しさん@お腹いっぱい。 (ワッチョイ c51c-7il/)
17/03/02 22:17:16.48 yxlabhZo0.net
>>167
こっちでも出来た。多謝。
a := 5
b := 7
c = a
d = b
OutputValue(c,d)
return
OutputValue(v*) {
Loop,% v.MaxIndex(){
v2 := v[A_Index]
Strings .= v[A_Index] ":" %v2% "`n"
}
174:名無しさん@お腹いっぱい。 (ワッチョイ c51c-7il/)
17/03/02 22:18:52.57 yxlabhZo0.net
MsgBox,% Strings
}
コピペ抜け
175:名無しさん@お腹いっぱい。 (ワッチョイ 6d56-TgS+)
17/03/02 22:25:39.67 a9s2vKBl0.net
>>167>>168
それは OutputValue() 内に定義された変数名と同じ変数名が渡されたとき、意図しない動作になるから気を付けて
そのコードで
v2 := 5
c = v2
として
OutputValue(c,d)してみ
176:名無しさん@お腹いっぱい。 (ワッチョイ c51c-7il/)
17/03/02 22:29:02.24 yxlabhZo0.net
>>170
確認した。ありがとう
177:名無しさん@お腹いっぱい。 (ヒッナー 9691-BL34)
17/03/03 17:11:26.26 5KTlVZI300303.net
このスクリプトがUnicode版だと動作しないのは何故でしょうか?。
URLリンク(pastebin.com)
ansi版では動作します。
178:名無しさん@お腹いっぱい。 (ヒッナー 9691-BL34)
17/03/03 17:40:33.47 5KTlVZI300303.net
sFile = gui.png
にしたら動作しました。
お騒がせしました。
179:名無しさん@お腹いっぱい。 (ヒッナー 9691-BL34)
17/03/03 17:41:43.23 5KTlVZI300303.net
ごめんなさい、嘘です。
全く動作しませんでした。
180:名無しさん@お腹いっぱい。 (ヒッナーW 4e4e-ukLe)
17/03/03 17:41:57.35 MhJlJ3Ar00303.net
最後らへんで MultiByteToWideChar かましてるから
A_IsUnicode チェックするなりして外してみたら?
181:名無しさん@お腹いっぱい。 (ヒッナー 8e89-BJNc)
17/03/03 18:43:53.33 eGsuleKk00303.net
追試してほしいならansi版で動作するパーツセットは最低限揃えるべきじゃね
拾い物の動作確認依頼にしても不親切すぎるだろ
182:名無しさん@お腹いっぱい。 (ヒッナー 9691-BL34)
17/03/03 18:57:57.64 5KTlVZI300303.net
>>176
失礼しました、よろしくお願いします。
Gdip.ahk
URLリンク(www.autohotkey.net)
183:名無しさん@お腹いっぱい。 (ヒッナー 6d56-TgS+)
17/03/03 18:59:01.12 zFdEJt/o00303.net
つか、もう>>175で回答出てるでしょ。たぶんそれで動くよ
184:名無しさん@お腹いっぱい。 (ヒッナー 9691-BL34)
17/03/03 19:13:19.41 5KTlVZI300303.net
If A_IsUnicode = 1の場合に
DllCall("kernel32\MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sFile, "int", -1, "Uint", &wFile, "int", 512)
この行を無効にするって事ですか?全く理解できていません。
185:名無しさん@お腹いっぱい。 (ヒッナーWW 8e89-VELR)
17/03/03 19:31:52.21 eGsuleKk00303.net
>>177
そっちじゃなくてgui.pngのほう
176投稿前にググって拾ってきたgdip.ahkと
ローカル画像を適当にリネームしたgui.pngじゃ
ansiもunicodeもみえないウィンドウ起動されるだけで挙動変わんなかったぞ
ソース貼るだけじゃどう動いてほしいのかすらわからん
186:名無しさん@お腹いっぱい。 (ヒッナー 96d2-BL34)
17/03/03 19:41:16.65 desiQVSy00303.net
>>180
こちらにはansiとunicode共に32ビット版のVersion 1.1.24.1が有ります。
そして172のスクリプトを実行すると、unicode版だけ画像が表示されないんですよ。
画像ファイルは何でも良いと思います。
187:名無しさん@お腹いっぱい。 (ワッチョイ 11a4-m4jB)
17/03/04 21:34:48.97 X+DGGu4u0.net
Ctrl & 無変換 & j の3キー同時押し処理をしたいけれど、
押す順番で動作しないことが有ります。
vk1Dsc07B & j:: Send, {Blind}{Left}
こんな風に書いた場合、
無変換 -> Ctrl -> j の順に押すと Ctrl & Left として処理されるけど
Ctrl -> 無変換 -> j の順だと Ctrl & j として処理されてしまいます。
このページを参考に色々手を加えてもやっぱりダメだった。。
URLリンク(did2.blog64.fc2.com)
何か良い方法は無いでしょうか。
188:名無しさん@お腹いっぱい。 (ワッチョイ 4ec0-M3Ci)
17/03/04 22:22:35.67 bmdqhUvr0.net
>>182
私は同じことを変換キーでやっているんだけど、どっちの順番でも正常に動作するよ
189:名無しさん@お腹いっぱい。 (ワッチョイ c539-anrw)
17/03/04 23:59:43.26 KMbQaFtK0.net
>>182
無変換down、ctrlJをsend、無変換up
190:182 (ワッチョイ 11a4-m4jB)
17/03/05 12:24:10.80 FTkBqX9p0.net
情報ありがとうございます
英語配列キーボードを使ってるんですけど、
レジストリいじって英語配列使えるようにしたり、無変換・変換を割り当てたりしてるんでそのせいかも・・
レジストリをもとに戻して別の日本語配列キーボードを使ったら、確かに3キーの押す順番を変えても正常に動作してくれました
191:名無しさん@お腹いっぱい。 (ワッチョイ fa99-RQJ9)
17/03/07 01:01:54.19 igDWGueT0.net
すみません初心者なのですが質問いいでしょうか
Windowsキー単独のみを無効にしたいんです
Windowsキー+Rとかは普通に使いたいです
どのようにすればいいでしょうか
192:名無しさん@お腹いっぱい。 (ワッチョイ 41fc-BJNc)
17/03/07 01:40:50.62 aCPxdpZT0.net
>>186
LWin & r::Send, #r
LWin::Return
これでWinキー単独は無効化、Win+Rは使用可能
あとは使いたいWin+○のショートカットを全て登録すれば・・・
と思ったんだけどなぜかこの2行だけでWin+EやWin+Dなど他の組み合わせも使用可能になった
けがの功名だけどこれで良いのかな
193:名無しさん@お腹いっぱい。 (ワッチョイ fa99-RQJ9)
17/03/07 02:49:42.64 igDWGueT0.net
>>187
ありがとうございます
WindowsキーをRetuるrnして使いたいキーを、それぞれ追加す以外にスマートな方法があるかなと思ったんですが
どうやら、LWin & r::Send, #rのみで他の組み合わせも使えますね...気づきませんでした
194:名無しさん@お腹いっぱい。 (ワッチョイ eb91-ldtI)
17/03/13 10:12:25.02 9KlZZ2sm0.net
>>69
亀レスですがそれで解決しました。
ありがとうございます。目からウロコでした。心から感謝
195:名無しさん@お腹いっぱい。 (オーパイ Sd03-JT/Z)
17/03/14 18:48:55.49 qGTDkJ3gdPi.net
sleep時間をスクリプト起動中に変更したいんだけど
引用数字って可能?
それかクリップボードの数字を引用させるでもいいんだけど
196:名無しさん@お腹いっぱい。 (オーパイ 457c-jgBb)
17/03/14 19:24:42.03 UqdowXo+0Pi.net
変数でよくない?
197:名無しさん@お腹いっぱい。 (ワッチョイ e3e5-G3bw)
17/03/15 02:10:45.16 +W/tCI4i0.net
>>191
Gui,Add,Slider,vmyslider Range100-1000 ToolTip x6 y10 w300 h30
Sleep, %vmyslider%
これで読み込めないんだけど:=もだめ
そもそもこれで変数としてよみこめてるのかな?
198:名無しさん@お腹いっぱい。 (ワッチョイ 857d-aizu)
17/03/15 02:28:53.68 uyZbH3FO0.net
>>192
Gui, Submit または GuiControlGet
MsgBoxで変数の中身を見ていれば空だとわかる
199:名無しさん@お腹いっぱい。 (ワッチョイ 0dfb-KBVs)
17/03/15 03:59:28.69 2v/WnyI60.net
>Sleep, %vmyslider%
そもそもvが余計
200:名無しさん@お腹いっぱい。 (ワッチョイ 457c-jgBb)
17/03/15 07:09:05.75 3wo/Hu/l0.net
>>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
201:名無しさん@お腹いっぱい。 (ワッチョイWW 7b89-vcyR)
17/03/15 08:13:05.34 EC8yCRZy0.net
質問内容はスクリプト実行中(本来の意図は起動時ではない)の数値反映で
スクリプト終了状態の保持ではないからiniは余計じゃね
質問者が躓いてるとこスルーして他の機能盛り込まれても混乱させてしまうだけでそ
202:名無しさん@お腹いっぱい。 (ワッチョイ fbc0-ldtI)
17/03/15 08:17:03.90 NGi/MHju0.net
v付けちゃったあるあるミスなだけでしょ。
203:名無しさん@お腹いっぱい。 (ワッチョイ e3e5-G3bw)
17/03/15 12:25:05.71 +W/tCI4i0.net
>>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消えてしまうのは
再起動を組んで解決?ずっと表示していてほしい
204:名無しさん@お腹いっぱい。 (オッペケ Srb9-h5lj)
17/03/15 14:09:37.78 APz6NzFEr.net
試してないけどGui,Showの次の行にreturn入れれば良いだけでね
205:名無しさん@お腹いっぱい。 (ワッチョイ 6504-2gzW)
17/03/19 14:31:54.63 0FObHEAj0.net
$RShift::
KeyWait, RShift, T0.13
if ErrorLevel
send,{RShift}
else
send,#{Tab}
keywait, RShift
return
機能は短く押した時Windows10のタスクビューが動作し、長く押すと右Shiftが押されるというものを作りたいのですがいくら長押ししても右shiftが出力されません。
教えてください。
206:名無しさん@お腹いっぱい。 (ワッチョイ 96ae-rAXi)
17/03/19 17:20:41.79 LvXCj/QY0.net
試してないけど「~」付けたらどうだろう?
207:名無しさん@お腹いっぱい。 (ワッチョイ 6504-2gzW)
17/03/19 17:24:16.47 0FObHEAj0.net
どこにですか?教えていただけるとうれしいです
208:名無しさん@お腹いっぱい。 (ワッチョイ 4582-Dx6a)
17/03/19 18:55:41.33 z8QAGZGe0.net
右shiftが出力されませんてのは何を見てそう言ってるの?
ちゃんと押されてるのを認識してないだけじゃないの
209:名無しさん@お腹いっぱい。 (ワッチョイ 196a-tpgq)
17/03/20 00:18:22.44 wjZDytjZ0.net
>>200
まずサンプルページをよく見て記述を見直そう
あとRShiftの押し下げと上げの記述もちゃんと書こう
210:名無しさん@お腹いっぱい。 (ワッチョイ 4eb6-UnlH)
17/03/20 06:46:02.77 bwg2wt630.net
俺も「~」付ける書き方に変更することに賛成だな。
211:名無しさん@お腹いっぱい。 (ワッチョイ 6504-2gzW)
17/03/20 08:54:18.97 VXF0FNnI0.net
>>203 メモ帳で大文字を打とうとしたときにわかりました。あとで確認したらShift+Deleteもできないことで出力されていないとしました。
>>204 ごめんなさい。サンプルコード見ても何もわかりませんでした...わたしの理解力不足なのは重々承知の上、教えて頂けないでしょうか?
212:名無しさん@お腹いっぱい。 (ワッチョイ 4eb6-UnlH)
17/03/20 09:06:58.30 bwg2wt630.net
Win7だから、タスクビュー出せないけど、こんなスクリプトなら動作したよ。
~RShift::
KeyWait,RShift,T0.13
if(ErrorLevel){
return
}
MsgBox,短く押されたよ
return
213:名無しさん@お腹いっぱい。 (ワッチョイ 196a-tpgq)
17/03/20 11:46:59.75 wjZDytjZ0.net
本来はShift+Win+Tabではタスクビュー呼び出せないので、~付けるのはダメな気がするけど
なぜか~付けてsend,#{Tab}でもタスクビューは呼び出せるね
そのやり方で行くなら0.13秒以上押した場合にRShiftを送る必要もない
ただし>>207のスクリプトだと長く押してもMsgBoxが出てしまうのでkeywaitは必要
でも>>200はそれ以前にifの使い方とか基本的なことすら分かってないというね
214:名無しさん@お腹いっぱい。 (ワッチョイ 4582-Dx6a)
17/03/20 13:00:20.47 Y3ljsR+90.net
>>206
Send,{shift} が送れているかいないかと
それで大文字が打てるかは話が別
215:名無しさん@お腹いっぱい。 (ワッチョイ 4eb6-UnlH)
17/03/20 15:15:07.83 bwg2wt630.net
>>208
>なぜか~付けてsend,#{Tab}でもタスクビューは呼び出せるね
Shiftを離した時に発動するから、タスクビューを呼び出せるってことかも
216:名無しさん@お腹いっぱい。 (ワッチョイ 196a-tpgq)
17/03/20 15:45:01.98 wjZDytjZ0.net
>>210
言われてみればその通りだね
217:名無しさん@お腹いっぱい。 (ワッチョイ 4eb6-UnlH)
17/03/20 17:44:58.82 bwg2wt630.net
KeyWaitのTオプションとErrorLevelはあてにならない感じだし、こんなのかな
~RShift::
KeyWait,RShift
if(A_TimeSinceThisHotkey>130){
return
}
send,#{Tab}
return
218:名無しさん@お腹いっぱい。 (ワッチョイ 4eb6-UnlH)
17/03/20 17:47:22.41 bwg2wt630.net
あ、違った。こう。
~RShift::
KeyWait,RShift
if(A_TimeSinceThisHotkey<130){
219:send,#{Tab} } return
220:名無しさん@お腹いっぱい。 (ワッチョイ 196a-tpgq)
17/03/20 17:55:55.68 wjZDytjZ0.net
>>212
>>207のやり方でも良いんだよ
~RShift::
KeyWait,RShift,T0.13
if(ErrorLevel){
keywait, RShift ;←これが必要
return
}
MsgBox,短く押されたよ
return
221:名無しさん@お腹いっぱい。 (ワッチョイ 4eb6-UnlH)
17/03/20 19:30:13.57 bwg2wt630.net
>>214
なるほど。
ちょっとカウント入れて実験してみたけど、Shiftキーもキーリピートがかかるみたいだね。
222:名無しさん@お腹いっぱい。 (ワッチョイ 6504-2gzW)
17/03/21 14:31:44.92 iEQL6gRD0.net
教えてくださった皆様ありがとうございました‼
223:名無しさん@お腹いっぱい。 (ワッチョイ ebf7-3M3l)
17/03/27 22:37:20.07 G8pXe9Nd0.net
キーボード上に円記号とbackslashのキーがあるんですが円記号はBackslashとして識別されるので
2つの同一キーがある事になるんですが片方だけを別のキーにremapしたいんですが上手く行けません
助けて下さい
224:名無しさん@お腹いっぱい。 (ワッチョイ 4187-VHv+)
17/03/28 00:34:01.36 352uP9pg0.net
>>217
sc07d::a
sc073::b
うちではこれで「\→A」「バックスラッシュ→B」に出来てる
225:名無しさん@お腹いっぱい。 (ワッチョイ 6b46-Oorx)
17/03/28 00:48:56.75 R1cCrp1o0.net
\のスキャンコードはSC07DでバックスラッシュはSC073だった
226:名無しさん@お腹いっぱい。 (ワッチョイ ebf7-3M3l)
17/03/28 11:56:38.65 H5Vxi1en0.net
>>218
>>219
正常に作動しました ありがとうございます
227:名無しさん@お腹いっぱい。 (ワッチョイ 09e6-3N3C)
17/03/28 19:53:18.78 qY4734Eq0.net
リマップ単体にsleepを挟む事ってできたっけ?
228:名無しさん@お腹いっぱい。 (ササクッテロル Sp05-8s2n)
17/03/30 14:10:31.25 geXqI1Q2p.net
チルトホイールにキーを割り当てても、動作が反映されないのですがどうすれば良いでしょうか?
テストで以下の様にアサインしました
WheelUp::a
WheelDown::b
WheelLeft::c
WheelRight::d
+WheelLeft::e
+WheelRight::f
ホイールの上・下(a・b)は問題なく入力できますが、チルトの右・左もa・bが入力されてしまいます(押し続けると連打状態になります)。
問題の切り分ける為に、入力コマンドを変えSift + チルトで別文字の入力も試しましたが、
大文字のA・Bが入力されてしまいます。
229:名無しさん@お腹いっぱい。 (ワッチョイ 9399-Bnm4)
17/03/30 15:29:04.21 zMByxgkz0.net
WheelLeft::C
WheelRight::d
Shift & WheelLeft::e
Shift & WheelRight::f
Windows7
ロジのマウスで普通に問題無い
230:名無しさん@お腹いっぱい。 (ワッチョイ 91da-agmj)
17/03/30 16:10:41.20 vx9xRmlh0.net
LGSのホイール左右は普通のWindowsAPIとは違って特殊だったはず
231:名無しさん@お腹いっぱい。 (ワッチョイ fbcd-agmj)
17/03/30 16:57:19.53 UOhzBMkG0.net
まず環境書くところからだな
まさかとは思うがXPだったりしないよな?
232:名無しさん@お腹いっぱい。 (ワッチョイ 91f0-QmV0)
17/03/30 18:18:51.62 karOX2/F0.net
>>222
key history で入力されているボタンを確認
233:名無しさん@お腹いっぱい。 (ワッチョイ 9399-Bnm4)
17/03/30 19:33:08.70 zMByxgkz0.net
>>224
ドライバ入れてなきゃ普通にWindowsAPI
234:名無しさん@お腹いっぱい。 (ワッチョイ 91da-agmj)
17/03/30 19:41:53.45 vx9xRmlh0.net
>>227
そりゃOSの汎用ドライバだとOSのAPIに従うしかないので当たり前
235:222 (ササクッテロル Sp05-8s2n)
17/03/31 09:13:24.91 /tjD63Ljp.net
>>223-228
環境が抜けてました。申し訳ございません。
OSはWindows 7、マウスはrazer mamba teという有線マウスです。
ドライバーもユーティリティも入れなかったのですが、razerなのでロジに変えないと無理かもしれませんね。
236:名無しさん@お腹いっぱい。 (ワッチョイ 0bec-agmj)
17/03/31 12:49:52.07 pCDRt8//0.net
>>229
Razerならドライバの有無問わずどちらでも使えるよ
237:名無しさん@お腹いっぱい。 (ワッチョイ 91f0-QmV0)
17/03/31 18:51:07.63 ZqPImTZm0.net
>>229
右下アイコン > open > key history からキーのログを見て
何が押されているのか確認しろと・・・
238:名無しさん@お腹いっぱい。 (ワッチョイ d1e6-/lGF)
17/03/31 18:53:37.73 z5qdkgS00.net
認識されてないからログに残ってないんじゃないの?
239:名無しさん@お腹いっぱい。 (ワッチョイ 1382-agmj)
17/03/31 19:03:57.61 cGFvp01G0.net
認識されないならされてないってわかるからいいじゃん
想像で物言ってもしょうがないし
240:名無しさん@お腹いっぱい。 (ワッチョイ 91f0-QmV0)
17/03/31 19:06:26.28 ZqPImTZm0.net
何も書いて無いから判断できない
キーログなし → 特殊キーはドライバ入れ無ければ動作しない(チルトは問題ない)
キーログあり(キーが正しい) → スクリプトを修正
キーログあり(キーが違う) → ドライバソフトで修正またはスクリプトを修正
241:名無しさん@お腹いっぱい。 (ウソ800 MM8b-lABk)
17/04/01 10:49:34.34 2+mdruUsMUSO.net
sleep中にsleepが今どれだけ経過したか確認するスクリプトってある?
242:名無しさん@お腹いっぱい。 (ウソ800 7bb6-HQfx)
17/04/01 11:06:18.40 U/0D9SW80USO.net
>>235
SetTimer内で経過時間をToolTipに表示かな
243:名無しさん@お腹いっぱい。 (オイコラミネオ MM8b-lABk)
17/04/01 12:06:29.37 2+mdruUsM.net
>>236
サンクス試してみる
244:名無しさん@お腹いっぱい。 (ワッチョイ 8b46-nY2v)
17/04/01 20:45:54.42 5yrylj0A0.net
コンパイルした状態からのスクリプト抽出について質問です。
リソースを覗く以外でスクリプトを抽出する方法は、予めFileappend等で出力するようにするしかないですか?。
245:名無しさん@お腹いっぱい。 (ワッチョイ 91f0-QmV0)
17/04/01 21:08:59.47 A9hGnOQj0.net
>>238
用途がさっぱり分からないが
AHKのライセンスならソースもセットなので
.ahkを読めばいいだけでは?
246:名無しさん@お腹いっぱい。 (ワッチョイ 8b46-nY2v)
17/04/01 22:05:00.73 5yrylj0A0.net
はい、出直してきます
247:名無しさん@お腹いっぱい。 (ワッチョイ fbcd-agmj)
17/04/01 22:06:31.19 +iTtNJOZ0.net
今はもう exe2ahk.exeじゃ逆コンパイルできないんだっけ?
>予めFileappend等で出力
出力方法はそれでいいとして実行中のスクリプトから自身のコード抽出する方法なんてあったっけ?
.ahkの状態ならA_ScriptFullPathで自身をFileReadすればいいけど
(元ソースがあるから別途出力する意味もなくなるが)
とりあえずここのAHK_decompilerで "リソースを覗く"ことはできる模様
URLリンク(autohotkey.com)
248:名無しさん@お腹いっぱい。 (ワッチョイW 13da-PfJG)
17/04/02 03:45:19.83 BQQWG+X/0.net
インストーラーを使わずに、ポータブル版としてAHKを起動すると、Winキーの押しっぱなしや、キーリマップのすり抜けがときおり発生するのは仕様?
これを解決するにはどうしたらよい?reloadすればキーのすり抜けは改善するので、Settimerで30分ごとにreloadするようにしてみたけど、あまり状況は改善せず…
会社のPCで管理者権限がないので、通常インストールができない。