AutoHotkey スレッド part24 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。 転載ダメ©2ch.net (ワッチョイ 997d-+Qhn)
垢版 |
2017/02/15(水) 18:04:32.01ID:kshCKhXn0
!extend:checked:vvvvv:1000:512と次スレを立てる際は1行目に記入してください

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

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

■日本語解説等
AutoHotkey Wik
http://ahkwiki.net
AutoHotkeyを流行らせるページ(ミラー)
http://ahk.xrea.jp/ (不調時は http://hdd.s300.xrea.com/ahk/ )
AutoHotkeyJp(過去ログdatあり)
http://sites.google.com/site/autohotkeyjp/
Autohotkey日本語ヘルプ(chmファイル)
http://www6.atwiki.jp/eamat/
Autohotkey専用うpろだ
http://ux.getuploader.com/autohotkeyl/
簡易スクリプト掲示板
http://pastebin.com/

■派生版
IronAhk (.NET製、クロスプラットフォーム)
https://github.com/polyethene/IronAHK
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
http://www.autohotkey.com/board/topic/39588-autohotkeydll/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2017/06/24(土) 13:53:09.45ID:yjIQZ1qBa
みんなエディタなんて使ってたんだ
メモ帳で作ってるのは俺くらいか
2017/06/24(土) 13:55:41.46ID:wPSmyizc0
メモ帳もエディタですよ
2017/06/24(土) 13:59:20.31ID:qRGNaQEn0
紙のメモ帳にフォント並の字で書いてOCRで取り込んでるのかも知れん
2017/06/24(土) 14:14:24.39ID:yjIQZ1qBa
Windows標準のメモ帳のソフトですけど
言われてみればメモ帳もエディタですね
2017/06/24(土) 14:22:39.70ID:Ez5Ls9yUa
まったくくわしくないわい、gpadとやらを一週間ほどまえから使い始める
タブがあるだけでも便利やわ
あと半角スペースがあるかどうかも記号でわかりやすくなってていい!
2017/06/24(土) 20:32:14.31ID:wJzxORLj0
>>624
ありがとうございます。!
自分も大丈夫な時は大丈夫なのですが、
症状が出るときと出ないときがあってその違いがなぜ起きるのかがよくわかっていません。

>>620
このかたが紹介してくれてる>>6ですが、
自分はsetpointを使ってロジクールのマウスを使っているのでそれが悪さしているのかもしれません。
あえてリリースの動きなどを追加して安定して動くようにしたいのですが、
ボタンを離すというコマンドはどうやって設定すればいいのか
ご指南いただけますと幸いです。
2017/06/24(土) 20:39:29.33ID:SopaneP20
>>1にある日本語解説等のAutoHotkey Wikiで検索して見よう
調べ方を身に付けないとずっと誰かに助けて貰うことになるぞい
2017/06/24(土) 20:43:14.07ID:wJzxORLj0
>>631
日本語解説。たしか2耳管で全部読めるとか書いてあったところがあったと思うのですが、
そこを何日かかけて読んだり結構いろいろ読んだんですが
プログラミング自体について初心者なので途中でわからなくなってしまうんです。
無念
なにか一から解説してあるような書籍などがあればいいんですが。
2017/06/24(土) 20:48:30.77ID:wPSmyizc0
>>632
もう諦めて
2017/06/24(土) 20:51:37.50ID:v3bkCIdO0
コマンド名も書かれていたのにwiki見ずに教えろと言えばそりゃ>>631のような書き方になる
まず書かれていたコマンド名でwikiをもう一度見て今作っているスクリプトと違うもっと簡単なもので
動作を確認してそれでわからなかったら質問
俺もスクリプトなんてこれしかわからないけど習うより慣れろといった感じでやればなんとかなる

DllCallはわからないけどな!
2017/06/24(土) 20:52:27.76ID:wJzxORLj0
Click , Middle, up, , ,
ていうのを追加して様子を見てみます
2017/06/24(土) 20:55:19.75ID:wJzxORLj0
>>634
すみません
「SendかMouseClickでU投げたらいいだけじゃね」
これのMouseClickというのがコマンドだということが今わかりました。
そしてUというのがボタンリリースだというのも今わかりました。
投げるという表現が自分には全く入ってこなかったです。すみません。
2017/06/24(土) 20:56:03.12ID:wJzxORLj0
>>634
いや、またすみませんwikiは何度も見てるんです。
あほですみません
2017/06/24(土) 20:59:06.13ID:wPSmyizc0
● 分からない理由 ●
1. 過去ログを読まない。
2. 読んでても肝心な所が見えてない。
3. 検索能力が低い。
4. そもそも検索する気がない。
5. 類推という概念がない。
6. それ以前に普通に頭が悪い。

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

;ウィンドウ中央マウス
MButton & LButton::
WinGetActiveStats, t, wa, ha, xa, ya
MouseClick,M,,,,,U
if(xa=1200 and ya=50 and wa=1345 and ha=1500)
{
2017/06/24(土) 22:16:25.10ID:/sn1OQI60
すまん>621見て触っちゃいけない系の人だったの思い出して以後スルーしてたわ

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

[HAGE]
JANAI= 1

こんな感じです。
宜しくお願いします。
2017/06/26(月) 00:18:36.56ID:FrkIaZPO0
すみません、スペースの位置が逆でした。

[HAGE]
JANAI =1

こんな感じです。
宜しくお願いします。
2017/06/26(月) 00:27:31.99ID:bEun5TYg0
IniWrite, %A_Space%1, hoge.ini, HAGE, JANAI
2017/06/26(月) 00:31:27.44ID:bEun5TYg0
IniWrite, 1, %A_ScriptFullPath%, HAGE, %A_Space%JANAI
2017/06/26(月) 00:33:06.10ID:FrkIaZPO0
有難うございます、出来ませんでした!。
INIは以下の様になってしまいます。

[HAGE]
JANAI= 1

JANAI =1
これは出来ませんかね?。
2017/06/26(月) 00:44:42.19ID:bEun5TYg0
すまんCルートは書き込めないんだっけ

IniWrite, %A_Space%1, %A_ScriptDir%\hoge.ini, HAGE, %A_Space%JANAI
2017/06/26(月) 00:53:25.37ID:bEun5TYg0
ごめん寝ぼけてる、iniファイルのパス指定部分は無視して

ようはスペース入れたいところに A_Spase 入れればいい
wikiは組み込み変数の一覧を参照
2017/06/26(月) 00:59:15.16ID:FrkIaZPO0
検証有難うございます。
やりたい事は以下なのですが、スペースが無効になってしまうんですよね。
IniWrite, 1, %A_ScriptDir%\hoge.ini, HAGE, JANAI%A_Space%
AHKの仕様では無理なのでしょうかね。
2017/06/26(月) 01:23:29.64ID:ocEGmmY40
WritePrivateProfileSection(lpAppName, lpString, lpFileName) {
DllCall("WritePrivateProfileSection", "Str", lpAppName, "Str", lpString, "Str", lpFileName)
}

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

自分で好きなように関数作ればいいと思う
2017/06/26(月) 01:23:32.01ID:Ok7Ir4BO0
質問させてください

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

また、一つのスクリプトファイルに沢山書き込むと編集しづらいのでいくつかに分けたいのですが
その場合、複数のスクリプトをひとつのファイルの時と同様に読み込ませて機能させるようにするにはどうすればよいでしょうか
バージョンはv1.1.24.05でwindows10です
よろしくお願いします
2017/06/26(月) 01:29:52.00ID:09H448sO0
AutoHotkey.ahkが自動で読み込まれるんだからそれで良くね?
って思うんだが
2017/06/26(月) 01:31:19.51ID:09H448sO0
複数のスクリプトに分けたいなら #Include
2017/06/26(月) 01:40:23.45ID:Ok7Ir4BO0
>>652
wikiなどいろいろな解説ファイルにはINIファイルの使用法が書いてあるんですが
その通りにしてもダメなのが不安になりまして、、、
いじっているうちにスクリプトを右クリックしてもautohotkeyのコンテキストメニューも出なくなってしまったり、、、

>>653
#Include
ありがとうございます!やってみます
2017/06/26(月) 02:47:44.70ID:PiKYFlvbM
autohotkey.iniはどっかの時点で廃止になって
以降自動読み込みはautohotkey.ahkに統一されたんじゃなかったっけ
2017/06/26(月) 11:45:18.69ID:Ok7Ir4BO0
>>655
ありがとうございます
それなら安心です
どうも自分のだけ動きがおかしいのかと不安になっていました
2017/06/26(月) 14:30:22.31ID:FrkIaZPO0
>>650
返信ありがとうございます。
セクションにも、こんな感じ[ HAGE ]でスペースを入れる事は可能でしょうか?。
以下の様にしてもスペースが入りませんでした。

Test=HAGE
Foo1=JANAI 1
Foo2=JANAI 2

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

WritePrivateProfileSection(" " Test " ", "Foo1 = "Foo1 "`nFoo2 = "Foo2 , A_ScriptDir "\Settings.ini")
2017/06/26(月) 19:34:22.14ID:pyd3Grcl0
>>655>>656
正確にはスクリプトを実行するEXEファイルと同名のAHKファイルが読み込まれるようになった
Revision 51(April 11, 2010)
2017/06/27(火) 09:06:36.36ID:Bqvd7oMV0
>>657
https://github.com/aviaryan/autohotkey-scripts/blob/master/Functions/_Ini.ahk
このライブラリだとセクションにもキーにも値にもスペースが入るから、これ使うといいよ
660名無しさん@お腹いっぱい。 (ワッチョイ 9f74-FY8v)
垢版 |
2017/06/27(火) 09:56:08.05ID:ejaLfnRG0
質問です。
現在ノートPCでタッチパッドが5点まで認識するのですがAHKで今何点が押されているか確認し、
ショートカットを設定することはできますか?
もしできるのならば、その方法と具体的なスクリプトを教えてください。
2017/06/27(火) 10:03:56.71ID:vkbvVv0A0
>>660
「何点が押されているか確認」することは出来ません
5点を認識できるユーティリティソフトがあるならそのソフトでWindowsAPIに変換して使いましょう
例えばユーティリティ側で5点押し=F13などに割り当てれば、AHKでF13に機能割り当てて使うことが可能になる
ただしユーティリティ側で何が出来るのかは知ったこっちゃないのでその部分はスレチ
2017/06/27(火) 11:26:28.29ID:P0n7PECZ0
>>659
これだとキー一個書き換えるたびに毎回
ini全読み→該当箇所の値書き換え→FileDelete→FileApend を繰り返すことになるな
さすがにこれは効率悪いのでは

ここまでやるならStaticな内部バッファに一時的にセットする関数と
最後にに一括でファイル書き出しする関数を自分で作ったほうがいいかも
663名無しさん@お腹いっぱい。 (ワッチョイ 9f74-FY8v)
垢版 |
2017/06/27(火) 11:29:37.28ID:ejaLfnRG0
>>661
ありがとうございます。
できないんですか...
2017/06/27(火) 11:34:42.92ID:9u6cgLv30
>>663
タッチパッド5点押しとかはWindows標準APIではなくてそのハード固有の機能だからな
そこんとこちゃんと理解した方がいい
2017/06/27(火) 11:54:56.46ID:Bqvd7oMV0
SynapticsのタッチパッドならCOMから情報を取得するのをフォーラムで見かけた気がする
タッチ点数を取得できるかは知らんけど

>>662
https://github.com/aviaryan/autohotkey-scripts/blob/master/Functions/AhkIni.ahk
効率重視なら、こっちを改変して使う方がいいだろうね
2017/06/27(火) 11:57:54.30ID:b5HmRloM0
https://autohotkey.com/board/topic/65849-controlling-synaptics-touchpad-using-com-api/

>Based on the SDK documentation we could for example:
>- retrieve our finger position (absolute/raw X,Y position)
>- detect tap gesture eg. one,two,three finger tap, & more

これのことかなあ
667名無しさん@お腹いっぱい。 (ワッチョイ 9f74-FY8v)
垢版 |
2017/06/27(火) 14:56:24.63ID:ejaLfnRG0
>>664
理解していませんでした。教えてくださり、ありがとうございます。勉強になりました。

>>665
ありがとうございます。
ちょうどSynapticsでした。
フォーラムというのはこちらでしょうか?
http://bbs.wankuma.com/index.cgi?mode=al2&;namber=77616&KLOG=131
2017/06/27(火) 15:48:47.83ID:r7GIhaVr0
>>659>>662>>665
返信ありがとうございます。

お手数お掛けしましたが、>>665リンクのコードで出来ました。
有難うございました。
2017/06/28(水) 05:01:44.69ID:10kTcfV00
アホカーはマストバイ
ASCII.jp:なんじゃこりゃ? 右クリックがキーパッドのヘンテコマウスが上海問屋から
http://ascii.jp/elem/000/001/506/1506549/?rss
http://ascii.jp/elem/000/001/506/1506552/sd3_640x480.jpg
2017/06/28(水) 05:11:33.75ID:jlw4Fzf/0
マッハで壊れそう&地雷臭漂う
見事な一品ですな
2017/06/28(水) 19:32:01.74ID:Va2ZS1+90
どっちかって言うと左中右クリックとマウスセンサーのついたテンキーが欲しいな
2017/06/28(水) 20:35:40.90ID:GAxoDHcD0
>>671
NagaやG600でいいのでは?
2017/06/29(木) 16:05:22.83ID:4E/r5Hsm0NIKU
たとえば、
a:: と b:: でルーチンを組んだとき、a;; の途中で b:: が割り込みで入ることができます
このとき、 a;; の処理の途中で、ここからここの間だけ割り込み禁止ってできますか

たとえば、
WinAcrivate, タイトル
MouseMove, x, y
とかするとき、ときどきこの間に割り込みが入ってることがあるのです。 こういうところを割り込み禁止にjしたいのですが
しかし、a;; 全体を割り込み禁止にする必要はありません
2017/06/29(木) 17:07:08.06ID:6ChmMJrc0NIKU
critical
2017/06/29(木) 17:19:16.72ID:4E/r5Hsm0NIKU
ありがとう
2017/06/29(木) 17:52:51.60ID:n8Ag4QWE0NIKU
ああ、5年もAHKを使用しているのにCriticalの存在を知らなかった私は馬鹿なのだろうか・・・。
とても便利な機能。
2017/06/29(木) 18:08:14.84ID:6ChmMJrc0NIKU
Thread、Transformとかコマンド自体の使い道が思い当たらなかったものに
NoTimersやReDefみたいな便利機能がひっそりとあるのがなかなか気付けない
2017/07/01(土) 03:57:01.99ID:gSvccc2ld
色々調べて解決できなかったんで
お願いします

sc07B & l::Send, {Blind}{Right} 無変換 + L = →
で割り当てているのですが、
ウィンドウを右に持ってこようと
Win + →しようと上記のバインドと
一緒にするとロックであるWin + Lが
反応してしまいます。この場合
どのようにすればよいのでしょうか?
2017/07/01(土) 04:32:54.49ID:ghwZJPXH0
http://potato.2ch.net/test/read.cgi/software/1470936221/587-
2017/07/01(土) 06:46:12.85ID:fx/eUvvT0
>>678
実際に Win + L を押しているんだから仕方ないね。
自分なら、Win + ↑↓←→ に対応するホットキーを設定するかな。
2017/07/01(土) 07:02:05.63ID:fx/eUvvT0
>>678
レジストリ変更式キーリマップで、WinをF13に置き換えて、自前で Win や Win+ の動作を全部書けば
良いんじゃないかと思って調べたら、やってる人がいた。

スキャンコード f13 でググると最初の方に見つかったよ。
2017/07/01(土) 07:21:11.28ID:fx/eUvvT0
あ、自前で全部書かなくても
f13::LWin
でいけるわ。
ただ、Win + L の機能は本物のWinキーがないとダメみたいだね。
2017/07/01(土) 07:35:13.05ID:fx/eUvvT0
>>678
まとめ
チェンジキーアプリで、Winキー を 0x0064 にリマップし、
↓をAutoHotkeyに記載
f13::LWin
#l::
Send,{Win Up}
run,rundll32.exe user32.dll`,LockWorkStation
return
2017/07/01(土) 08:41:05.82ID:dDrobFzk0
すみません初心者なのですが質問します
指定した特定のウィンドウに対してだけマウスオーバーでアクティブにさせることは可能でしょうか?
Windows7の標準機能だと全部のウィンドウが反応してしまうのでAHKで何とかならないものかと...
可能でしたら、どの辺りを参考にしてよいのか誘導お願いします。
2017/07/01(土) 08:59:04.12ID:BN5dn+9M0
あくまで一つの方法。他にいい方法があるかもしらんが
タイマーで0.5秒間隔でそのウインドウの位置とサイズをWinGetPosでゲット
その範囲にマウスがあるかを判断
あれば、WinActivate
2017/07/01(土) 09:02:37.21ID:h4CY9SuL0
settimer
mousegetpos
winactivate
あたりかな
マウスオーバーの条件がわからんが常時監視の必要があるので
初心者が組むスクリプトとしては難易度高め
2017/07/01(土) 09:07:04.20ID:BN5dn+9M0
たとえばシフトキーを押したときだけ、0.5秒間隔でチェック用のタイマー起動
シフトキーを離せばタイマーオフ
とかすれば、常時年がら年中タイマー起動ってのは避けられるな
OnMessageを使えばもっと高度なことが出来そうだが、めんどくさいので自分で調べてね
2017/07/01(土) 09:20:42.53ID:Kym5lIIJ0
特定のウィンドウの条件がわからないけど
タイトルとかプロセスで条件つけるならMouseGetPosで直下のウィンドウのウィンドウハンドルとって
WinGetで条件の値とってIf var in で判定すればいいんでね
2017/07/01(土) 09:22:59.12ID:qbi52RGz0
タイマー周りのデバッグはややこしいけど
^aのようなショートカットで発動するようにして
テストしてけば行けるでしょ
2017/07/01(土) 09:25:56.71ID:BN5dn+9M0
AHKでは、OnMouseMoveみたいなイベントドリブンが出来ないのが残念だよねえ
バージョンアップで対応できないかな
2017/07/01(土) 10:27:10.34ID:h4CY9SuL0
>>689
この場合の肝は発動条件のほうかと
発動内容はwinactivateするだけだからデバッグの必要はあんまり…
2017/07/01(土) 10:56:10.76ID:dDrobFzk0
>>688 ありがとうございます
ちょっと調べてみたのですが分かりませんでした
具体的に言うと指定しておいたソフトのウィンドウが非アクティブの状態の時
マウスが座標に関係無く、そのウィンドウに乗ったら自動でアクティブにしたいのです
2017/07/01(土) 10:59:31.10ID:4rmjj/NJ0
>>631>>634を見よう!
2017/07/01(土) 11:02:45.02ID:7VWC/RaU0
>>692
>>686の回答が全てだわ
せめてその3つのコマンドくらいしっかり調べて使い方理解しな
このスレは要望すれば丸々スクリプト書いてくれるスレじゃないから
wiki熟読して試行錯誤して散々遠回りして失敗繰り返しながら自力でスクリプトを書くしかない
それが無理なら素直に諦めな
2017/07/01(土) 11:29:24.81ID:dDrobFzk0
>>694
何故試行錯誤してないと思った?
しかも作ってくれなど一言も言ってない
2017/07/01(土) 11:33:51.73ID:GNy005Tu0
>>695
だったら普通に「ありがとう、がんばります」だけ言ってもう消えて
2017/07/01(土) 11:39:09.16ID:Kym5lIIJ0
>>692
わからないと言われても何がわからないのかわからないとこちらも説明しようがないので……
俺もそう長く使ってるわけでもないけどとりあえず目標を決めて、始点と終点定めて、間を探って行けばいい

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

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

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

この中で「if」で処理分岐させる必要あるけど、おそらくこれで希望の動きするんではないだろうか?
検証してないので申し訳ない
まぁとにかくガンバレや
2017/07/02(日) 09:11:22.27ID:GMfVtPTc0
>>700
付け足し
マウスが該当ウインドウ上に任意秒以上停止していた時のみ適用させる
↑とかの条件もある場合はまた別の処理が必要となる→mousegetposでマウス位置確認かな?
2017/07/02(日) 11:06:20.53ID:awNBOFJu0
どちらかと言うと、前回調べたマウス位置から動いていなければ何もしないって処理の方が大切かも。
タイマー処理はなるべく何もしないことが理想だし。
2017/07/02(日) 15:06:39.07ID:D83LxS//0
>>700 701
ロジックはわかたのだけど
具体的な書き方が一部わからない
IMEとロックキー系の制御はTimerで自動化してるので

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

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

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

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

あと、アクティブ後のタイマーをどうするか
アクティブ化が無限ループする。何故か非アクティブでも永久最前面化する
トリガーがキーなら問題なかった
とりあえず、タイマーを止める方法を探し中です
ってかマウス下の情報取れれば勝手に止まんのかな?
2017/07/02(日) 15:18:49.67ID:B/VAnNKj0
>>703
対象となるウインドウのidをまず求めておく

で、タイマーが来る毎に、MouseGetPosで得られるマウス下のウインドウのidが、そのidと同じかどうかを比較するだけ
2017/07/02(日) 15:46:13.12ID:zGkf+D8A0
とりあえずそこまで全然わかってない状態なら先にチュートリアル熟読したほうがいいと思う
まずはコマンド説明の読み方を理解するところからだね
2017/07/02(日) 15:49:47.86ID:zGkf+D8A0
失礼
× チュートリアル
○ リファレンス
2017/07/02(日) 16:05:24.41ID:Vg1N9enI0
この調子だとこの問答延々と続く気がする
2017/07/02(日) 16:07:52.84ID:aE09zI+k0
昨日みんながしたレスは別に何が何でもWinGetやWinGetTitleを使えって意味じゃないよ
質問したときにclassで判定したいと書かなかったからそういうのが使えるのではないかって言っていただけであって
2017/07/02(日) 16:19:30.09ID:pM51ez0b0
学ぶのは二の次で、とりあえず動けばいいんでしょ?
だったら個人的には盗んだほうが良いと思うから
正解貼っつけてそれを好きにさせればいいと思う
ぐちゃぐちゃと小難しいアドバイスを並べるよりその方が双方にとって良いかもな
2017/07/02(日) 16:25:00.35ID:kl59ZEpW0
>>709
そういう奴は図に乗るから軽くあしらってさっさと諦めさせた方が良い
半端に教えてるやつもその辺ちゃんと考えた方が良いぞ
2017/07/02(日) 16:57:42.64ID:SQKHkVnb0
それだったら別にAHKにこだわらなくても
似たような事出来るフリーソフト探した方が早いんじゃないか
2017/07/02(日) 17:43:30.12ID:zGkf+D8A0
>>709
ここはそういうスレじゃないから
2017/07/02(日) 17:50:33.60ID:GOyy/jnt0
>>692見た瞬間に相手するのやめて終われた話いつまで引っ張るの
2017/07/03(月) 01:00:48.37ID:7r3+wgPa0
Pauseで赤くなっているスクリプトにpostmessageで
メッセージを送り続けるとと
色が赤と緑の間を行き来して点滅するのですが

これはメッセージを受け取る処理を実行するためにpause
が一時的にoffになっているのでしょうか?
2017/07/05(水) 09:48:11.45ID:pQcxE+w20
GUIでタイトルバーが邪魔なので消したいんですけど
それ以外にウィンドウつかめるようにする方法を教えてほしいです
2017/07/05(水) 11:41:51.96ID:7Cvx27b80
OnMessage(0x201, "WM_LBUTTONDOWN") でGUI上にMouseDownイベント発生させる
その中でマウスUPが行われるまでループで回してマウス移動分をWinMoveし続ける
2017/07/05(水) 11:54:00.28ID:THqxI/Y/0
>>715
HDD漁ったら昔書いたコードが残ってたんで貼ってみる

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

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

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

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

Esc::ExitApp
2017/07/05(水) 13:38:06.91ID:pQcxE+w20
>>716
なるほどそんな方法があったとは
>>717
調べてみましたがOnMessageでウィンドウに送られた操作により
関数WM_LBUTTONDOWNを実行していて
0x201が左クリック押し下げで、HTCAPTIONがタイトルバーの事で
0x2は(中止 再試行 無視)?0xA1?
左クリック押し下げをタイトルバー左クリック扱いにしてる的な?
これ以上はアホすぎて分かりませんでしたが
ありがたく使わせてもらいますありがとうございました
2017/07/06(木) 14:41:03.04ID:bDkSu5ce0
皆さんのお知恵を拝借したく存じます
OSはWindows 10 Creators Update(32bit)で、AutoHotkeyは最新の
v1.1.26.0(32bit)を使用中です
やりたいことは「ウインドウズの「天気」アプリを起動する。すでに起動済
みの場合はアクティブにする」です
起動済みのアプリはウインドウのタイトル──「天気」──を指定すれば
アクティブにできるのですが、新規に起動させる方法がわかりません
「天気」アプリのフルパスはC:\Windows\System32\
ApplicationFrameHost.exeで、どうやら「天気」に限らず「カレンダー」
「電卓」「設定」などすべてのアプリはフルパスが同じ、つまり
ApplicationFrameHost.exeという共通の実行ファイルのようです
ふだんはClassicShellのメインメニューにショートカットを置いてあるのでク
リックすればすぐ起動できるのですが、AutoHotkeyで一発で起動でき
ればなお便利です
「天気」アプリだけを新規に起動させる方法をご存じのかたがいらっしゃれ
ば教えていただきたく存じます
2017/07/06(木) 14:58:13.34ID:cYpWMSdX0
そのショートカットに書かれてるコマンドそのままRunしてできないの?
2017/07/06(木) 15:19:57.87ID:bDkSu5ce0
>>720
さっそくのレスどうもありがとう
ClassicShellに置いてあるショートカットは自分で作成したものではなく、
Windows 10のデフォルトのスタートメニューで選んだ「天気」アプリのアイ
コンが自動的に登録される仕組みです
ご指摘に従ってコマンドを調べようと右クリックしてプロパティを確認したところ
「Microsoft..BingWeather_8wekyb3d8bbwe!App」と書いてありました
そこで、Run, Microsoft..BingWeather_8wekyb3d8bbwe!App を実行
したところ「指定されたファイルが見つかりません」というエラーダイアログが
出てしまいます
どうすればよいのかしら?
2017/07/06(木) 15:22:51.01ID:mu6k+ziL0
レス書いてたら割と正解に近づいていたという

Run, shell:AppsFolder\Microsoft..BingWeather_8wekyb3d8bbwe!App
でできると思う
2017/07/06(木) 15:27:33.81ID:YlZ3WLUw0
run ,explorer.exe shell:AppsFolder\Microsoft.BingWeather_8wekyb3d8bbwe!App
こうじゃないの?
2017/07/06(木) 15:27:44.81ID:bDkSu5ce0
>>722
おかげさまでばっちりうまくいきました!
ちなみにコピペさせてもらったままだと「指定されたファイルが見つかりませ
ん」というエラーダイアログ」が出ましたが、「Microsoft」と「Bing」のあいだ
のピリオド2つ「..」をピリオド1つ「.」にしたら大成功でした
どうもありがとう!
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

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