[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 01/22 01:40 / Filesize : 157 KB / Number-of Response : 443
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

AutoHotkey スレッド part17



1 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/02(土) 18:27:44.86 ID:h5sjW8CN0]
■配布元
www.autohotkey.com/
本家Autohotkeyは事実上開発停止で、派生のAutoHotkey_L(AHKL)が主流。
新規利用者には日本語の扱いで不具合の無いAHKLのユニコード版の利用を推奨。

■前スレ
AutoHotkey スレッド part16
anago.2ch.net/test/read.cgi/software/1367725658/

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

■派生版
IronAhk (.NET製、クロスプラットフォーム)
www.ironahk.net/
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
www.autohotkey.com/board/topic/39588-autohotkeydll/

テンプレ>>2-10

75 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/09(土) 20:21:05.43 ID:JAsitH9B0]
If 〜
{
 処理
}



If 〜 {
 処理
}

だと行数が減る分
下の方がわずかに読み込みが早かったりするのかな

76 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/09(土) 21:09:58.17 ID:JduWIw5T0]
>>75
ご指摘ありがとう。
今までは、そういう風にするとエラー出るんで長ったらしく記述してたよ。
んで、改めて他作者スクリプトを良く見てみると、( )付いてるか否かの違いに気付いた。
ということで、
If ( 〜 ){
 処理1
}else if ( 〜 ){
 処理2
}else{
 処理3
}
こう記述すと効率が良いってことかな?

77 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/09(土) 21:12:38.72 ID:VKMWxPBd0]
        ____
        /     \
     /   ⌒  ⌒ \   何言ってんだこいつ
   /    (●)  (●) \
    |   、" ゙)(__人__)"  )    ___________
   \      。` ⌒゚:j´ ,/ j゙~~| | |             |
__/          \  |__| | |             |
| | /   ,              \n||  | |             |
| | /   /         r.  ( こ) | |             |
| | | ⌒ ーnnn        |\ (⊆ソ .|_|___________|
 ̄ \__、("二) ̄ ̄ ̄ ̄ ̄l二二l二二  _|_|__|_

78 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/09(土) 22:11:16.50 ID:2JOYU1ck0]
変数名もできるだけ短くした方がいいぞ

79 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/09(土) 22:25:51.34 ID:PcXU61XN0]
AHKは昔 if (式) が使えなかった
進化の仮定で (式)が加わり、)で明示的に式の終わりを指定できるようになったため
改行前の{ も有効になった。
今でも()なしifやLoopなんかは改行しないとエラーになるものもある

改行するしないはプログラム上はCRLFの2バイト挿入されるだけで速度にはほとんど影響ない
むしろ↓のようにスペースやコメント文字を入れするほうがバイト数的には増えてることもある
if (Expression)   {   ; ○○の時は△△する

単純に自分が視認しやすい方でよいと思う

80 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/09(土) 22:45:52.08 ID:JAsitH9B0]
>>79
わざわざ直す必要はないみたいだね
ありがとう

81 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/09(土) 22:45:53.05 ID:/kjb4T9e0]
そんなことより>>68とか、最初のifがfalseだったとき次どこいくと思ってんのかな

82 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/09(土) 23:14:04.13 ID:E6QyIEbp0]
式は{}使えっていつも言ってんだろー!!

83 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/09(土) 23:29:53.31 ID:s8rJVbwc0]
>>81
インデントがスペース一個で、しかも専ブラで見ると、インデント不明すぎるなw
せめて2スペでないと流し読みするから構文ミス見逃すわ
よく気付いたな…



84 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/09(土) 23:58:17.17 ID:JduWIw5T0]
>>68 なんだけど、弁解じゃないけど一応
>>68は元々以下の感じでインデントしてたのを貼り付けた。
(下のは全角スペースで疑似インデント)
Process,Exist,notepad.exe
If ErrorLevel=0
 Process,Exist,wordpad.exe
 if ErrorLevel=0
  Run,wordpad.exe
else
 Process,Exist,wordpad.exe
 If ErrorLevel<>0
  Process,Close,wordpad.exe

で、これは>>70で指摘された通り、{ }で括り忘れてるので間違ってることは認識してる。(>>69についても同じ)

いい加減うざいよね、スマン。

85 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 09:14:56.06 ID:uDdR3jCo0]
いやそれはわかってる
スペース一個じゃインデントしてても見づらいよって話
自分は4タブ(タブ押しでスペース4個分インデント)だが
2タブ、4タブあたりの人が多いんじゃないかね

86 名前:名無しさん@お腹いっぱい。 [2013/11/10(日) 09:15:50.43 ID:OuL0Jpyr0]
AHKで設定したホットキーが、Window7では正常に動作したのにWindows8では
機能しないことがあります。たとえば、タスクマネージャーがアクティブなとき、
Win+F1を押すと、AHKで設定したものではなく、「Windows ヘルプとサポート」
が立ち上がり、Win+zなどの設定もまったく機能しません。どうしてなんでしょう?

87 名前:名無しさん@お腹いっぱい。 [2013/11/10(日) 09:47:44.93 ID:OuL0Jpyr0]
スクリプトを管理者として実行する必要があるんですね。分かりました。

88 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 10:33:04.15 ID:iru0aH2t0]
>>72
サブルーチンに入ってからThread, Priority,n指定しても割り込まれるだけじゃないかと思ってた

Thread, Interrupt, Duration [, LineCount]と併用するのね。ありがとー


>>87
Windows8だとそんなめんどくさいことになってるのか・・・

89 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 13:21:21.09 ID:ahi6Vsgq0]
ブロックでくくるのは1行だろうとやってるな

どういう式なのか視認しやすいから

90 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 14:01:05.86 ID:CJr4mQyO0]
このスレは行頭に半角空白とタブ付いてると、
それが削除されるからコード見ずらくなるよな。
書き込むだけなら全角使っても良いけど
コピペして使う方は一手間いるから、そこがなあ。

全板、全スレそうなのかな?

91 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 14:19:25.55 ID:QQRdwQ7U0]
スレというかhtmlの表示ルールがそうなんでないかと
AAもそれ前提に作られてるから専ブラの表示も合わせてあるのが多い

92 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 17:04:51.43 ID:/7GhoBz90]
> 変数名もできるだけ短くした方がいいぞ

て本当? 処理がわずかでも早くなる?
今まで気ままに付けてた
日曜プログラマーにマジレスお願いします

93 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 17:07:11.02 ID:CJr4mQyO0]
ところで、AutoHotkeyに付属してるSciTE4AutoHotkeyで
TABキー1回押しで半角空白4個挿入するにはどうすんの?

それこそスクリプト書けって言われるのが落ち?



94 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 17:20:58.92 ID:Wsob4QVh0]
簡単やから書いちまえ
IME関数でIME状態記録して半角にしてからsend,でスペース4回、その後IMEの状態をもとの書式形態に戻せばいいだけだから

95 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 17:22:41.51 ID:tboc7JFs0]
janedoe view使いだけど、別にTABだろうとスペースだろうと
ポップアップ表示させればインデント正確に表示されるから気にしてないな

96 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 17:27:13.63 ID:Q7AykSK80]
>>94
確かにそれは>>93の希望の動作だけど、>>93の求める動作はきっとそれとは違うw

97 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 20:25:57.27 ID:CJr4mQyO0]
>>94
どうもです。ヒントまで書いてくれて。
エディタ側に設定する所ないなら、そういうスクリプト書くしか無さそうだね。

>>96
エディタ側の設定で出来ればベストなんだけどね。

98 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 21:08:11.30 ID:SvuwF5o10]
>>92
コメントも極力書かないようにな

99 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 21:28:11.23 ID:SKyuhMaS0]
>>97
そのエディタを使ったことは無いけど、ソースコード編集用エディタでタブをスペースに
置き換える機能がないということは考え難いので、探せば設定項目があると思う

軽く調べた感じでは use.tabs が怪しい

100 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 21:48:36.67 ID:OuL0Jpyr0]
>>87
Windows8では、あるプログラムを「管理者が起動する」のと、
「管理者が管理者として起動する」のでは違うんだそうです。

101 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 21:51:26.75 ID:OuL0Jpyr0]
Windows7でもこの違いはあったようですが、
デフォールトの設定で問題が生じなかったので、
気に留めたことがありませんでした。

102 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 22:54:35.79 ID:CJr4mQyO0]
>>99
わざわざ調べてくれてありがとう。
webサイトの方に細かいこと書かれてたので、それ参考にいじってみるよ。

なんか、『質問する前に調べろよ、ドアホ』ってみんなから言われそうだけど、勘弁してくれ。

103 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/10(日) 23:00:18.49 ID:rKrXT9cD0]
次から気をつけるならいいよ



104 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 01:17:57.60 ID:igGN+y/w0]
>>92
振り回されすぎ

>>98
振り回しすぎ

105 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 01:53:19.76 ID:j8vopFcs0]
大昔のリソースが潤沢じゃなかった時代は、実際にそういうことやってメモリ稼いだりとかはあったが
今は見やすさ重視で書くヨロシ
見難いコード書いたせいでバグ誘発したり、メンテナンスに掛かる時間のほうがよほど無駄

カッコのつけ方は一貫性あればいいと思うが
一行で省略できる場合でも、個人的には常につけるべきだと思っている
あとで処理を付け足したりしたくなった場合の変更に臨機応変に対応できるのと
変更した時にカッコの付け忘れでのバグ防止、ブロックを明確にするなど
メリットのほうが大きいと考える

106 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 01:57:09.28 ID:rT6KkNEF0]
てーかきれいなGUIとか昨日過多とか裏でわけわかんないもの走らせない限りは他のexeに比べて圧倒的に軽いんだからあんま気にすることでもないと思う

107 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 01:58:48.44 ID:j8vopFcs0]
あと、今更ってカンジだけどよく言われるのが、
コメントがなくても分かるコードを書け。とか
コメントを信じるな。とか

コメントに書いてあることが仕様変更に追従してない場合もあるからな
綺麗なコードはコメントなくても文章のように読める・・・はず

108 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 15:28:26.33 ID:0W7UPHuM0]
一行で省略できる場合でもカッコ使ったほうがいいんですね
真似してみます

If(ahk){
 xxx
}

If(ahk)
{
 xxx
}
はどちらがメジャー?

109 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 15:35:26.31 ID:uNURXBw20]
俺上使ってる

まぁ、そんなことよりsakuraエディタにAHK色変えプロファイルをインストールすべき

110 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 16:15:54.62 ID:aO9uH+Y50]
>>109
んなの、[AutoHotkeyフォルダ]\Extras\Editors\[各種エディタ]
内のキーワードファイルからキーワード移植すれば良いだろ?
...\Extras\Editors\EmEditor\ahk.esy
辺りが移植しやすいんじゃないか?
正規表現使いたい場合は自分で作成するしかないかもしれないけどね。

111 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 16:31:40.73 ID:aO9uH+Y50]
例えば、If WinExist( … )とかじゃなく
IfWinExist, … の場合は、{ } はどうしたらいい?

112 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 16:44:46.44 ID:2yW1lBYX0]
>>110
情報古すぎ、AutoHotkey_Lにはキーワードファイルは付いていません。

そんなことよりいつまで括弧の話題引っ張る気だよ
書き方なんて個人の好みでやればいいだけだろ。

113 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 18:31:12.20 ID:aO9uH+Y50]
>>109 >>112
捜したら有ったぞ。
直リンはしないからね。
ahkwiki.net/Tools



114 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 18:43:42.47 ID:2yW1lBYX0]
>>113
付属していませんと指摘したんだが。
同一人物だと思うが国語が残念な人、もう少し文章よく読んだら?

115 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 19:07:56.38 ID:5hyh3Jpc0]
wikiにこういうのあったのか
Mery用に使わせてもらうわさんきゅー

116 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 19:21:58.62 ID:9keEvpOM0]
会話噛み合ってないなぁwとは思ったがそんなキレんでも
あとIDというものをご存知か

117 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 19:32:49.20 ID:2yW1lBYX0]
>>116
時々スレに書き込んでる人で会話にならないのがいる。
少し上にも特徴的なのが・・・。

118 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 19:40:59.11 ID:9keEvpOM0]
!?オレもキレられるんだw
同ID相手にわざわざ
>同一人物だと思うが
とか言うからもしかしたら知らないのかなぁと思ったんだけど

もし「仮に」、
>会話噛み合ってないなぁw
の方に突っかかってオコなんだったら、それこそ国語が……

119 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 19:46:35.21 ID:o5+fta200]
どっちもどっちにしか見えないけどな
付属してないって言われて、今ある場所を見つけてきたんだから
間違いを指摘するだけよりもよっぽど有意義だと思うよ

120 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 19:57:23.09 ID:2yW1lBYX0]
>>118
ああ誤解させちゃったごめんなさいww ID:JduWIw5T0です。
名指しするのもアレだから曖昧に書いたのが失敗だった。
スレ汚し失礼しました。

121 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 20:25:48.06 ID:64SiAhDR0]
アンカーミスが混乱をうんでる

122 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 20:29:25.85 ID:3Ouxq7Pu0]
誰も彼も混乱してら

123 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 20:41:04.23 ID:u9ftSiTp0]
蛇足が多すぎ
括弧の話題の方がまだ建設的だ



124 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 22:24:17.09 ID:2eN3Ej5Z0]
>>125
ホラ
力抜けばそれだけ楽になるでしょ?

125 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 22:27:29.02 ID:/X1j4cqa0]
>>111
普通はこう
IfWinExist, , , ,
{
}

邪道だけどこういう書き方ができなくもない(最後の , はIfWinExistとは関係ない)
IfWinExist, , , , , {
}

126 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/11(月) 22:46:17.24 ID:aO9uH+Y50]
>>125
なるほどサンキュー、勉強になるよ。




おやすみ(´・ω・`)

127 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/12(火) 18:46:02.31 ID:UAyBMDZq0]
マウス(カーソル)の位置じゃなくて
カーソルの位置(?)を取得するにはどうすればいいんでしょうか?

たとえばブラウザのアドレスバーに何かタイプしてENTERするとき
カーソルがアドレスバーの位置にあればALT+ENTERにしたいです

128 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/12(火) 21:11:11.93 ID:Yc1HB9nl0]
>>127
A_CaretX と A_CaretY かな
ただし、Wiki に
>一部のウィンドウではキャレット座標が実際の位置と異なるものを返す場合がある。
>FireFoxなど独自描画を行っているものはキャレット位置を取得できない事がある。
とあるので、使っているブラウザによってはダメかもしれない
ahkwiki.net/Variables

129 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/12(火) 21:58:10.41 ID:UAyBMDZq0]
ありがとうございます<(_ _)>
確かにFirefoxでは無理でした Chromeでも正確な値は取得できないみたいです

130 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/13(水) 10:15:27.62 ID:f+Nw+fu90]
カーソル(キャレット)の位置より
アクティブな(≒その位置にカーソルがある)コントロールのクラス名で判断するのがいいんじゃないかね
やったことないけど

131 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/13(水) 11:01:15.53 ID:Kqgc6YmM0]
そのアイデアだと
日本語入力→変換→ENTER でもALT付きになるじゃないか

132 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/13(水) 12:39:11.95 ID:b8f6krUA0]
うーん、firefoxを一度RAMディスクに書き出してから起動したいんですが書き出し処理の終了を待たずにfirefoxが起動してしまいます

run,RAMdisk.ffs_batch ;DropboxからRAMに書き出し。外部アプリケーション
SetTitleMatchMode 2
DetectHiddenWindows On
Process,WaitClose,FreeFileSync_x64.exe   ←どうもこれをすっ飛ばして起動処理に入るようなんです
Run,firefox起動処理
Process, Priority, %NewPID%, AboveNormal

なにか間違ってますでしょうか

133 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/13(水) 12:39:30.36 ID:GKnPy8OAi]
MouseGestureL.ahk の専用スレ立てたので、一応お知らせ。

【AHK】MouseGestureL.ahkを語るスレ【ジェスチャ】
anago.2ch.net/test/read.cgi/software/1384313234/



134 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/13(水) 14:29:55.78 ID:wCIurgL70]
>>132
1行目でRunした後、2-4行目は一瞬だからFreeFileSync_x64.exeが起動する前に4行目が実行されてるんじゃない?
4行目の前に適当にSleep入れるか↓追加でどう?
Process,Wait, FreeFileSync_x64.exe

135 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/13(水) 16:00:59.94 ID:b8f6krUA0]
>>134
お、うまくいきましたありがとうございます

136 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/13(水) 16:49:13.23 ID:wCIurgL70]
>>135
書き忘れてたけど、RunWaitでうまく処理終了が待てるならそっちの方がいいかも

137 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/14(木) 14:46:14.34 ID:70uZZmDc0]
upボタンを連続して押して特定のアイテムを上に持って行こうとしましたができませんでした
ボタンを1回押したらlistviewのアイテムをクリックしないとupボタンが動作しましせん
ボタンを押したあと選択箇所が移動しないのもその原因だと思うのですがよくわかりません
どこを修正すればいいのでしょうか

Gui, Add, ListView, r10, index|number
loop, 10
{
Random, rand, 1, 10
LV_Add(, A_Index, rand)
}
Gui, Add, Button, gUp, Up!
Gui, Show
return

Up:
Gui, Submit, NoHide
below:=LV_GetNext(, "F"), above:=below- 1
LV_GetText(t1,below,2), LV_GetText(t2,above,2)
LV_Modify(below,-Select, ,t2), LV_Modify(above,Select, ,t1)
return

138 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/14(木) 19:17:27.10 ID:fSUAmxD/0]
>>137
後もう少しで完成する、問題点は以下の通りがんばれ〜。

*関数なのでオプション名を "" で文字列にしないと変数参照になっている
*オプション Focus が足りない
*一番上になった場合何もしない処理が足りない

LV_Modify(below,"-Select -Focus", ,t2), LV_Modify(above,"Select Focus", ,t1)

139 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/15(金) 13:15:09.73 ID:HLAQQ9P90]
環境が変わってもIEを起動したいんですけど
%ProgramFiles%だとファイルが見つからないと言われます
おとなしく絶対パス指定しないとダメなんでしょうか?

140 名前:名無しさん@お腹いっぱい。 [2013/11/15(金) 13:51:00.01 ID:PErdqdg50]
>>139
Run, iexplore.exe
これだけでOKだと思うけど

141 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/15(金) 15:03:29.90 ID:HLAQQ9P90]
>>140
マジデスカ

142 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/15(金) 15:06:25.52 ID:HLAQQ9P90]
マジデスタ

ありがとうございます助かりました

143 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/15(金) 15:53:10.45 ID:ar/doy2G0]
>>138
できました!感謝です!



144 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/15(金) 16:44:40.43 ID:ZpjJqT760]
64bitOSに変えた?
俺も同じ状態になったからとりあえず
%A_ProgramFiles% (x86) で代用してるわ
"C:\Program Files (x86)"を直で指定する組み込み環境変数ってあるんかな

145 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/15(金) 17:45:23.62 ID:ZlJjRCAZ0]
ifexist,%systemroot%\syswow64
{
64bitOSで走らせる処理
}
else
{
32bitOSで走らせる処理
}
で分岐はできるぞ。
要するにsyswow64が存在するかどうかをチェックしてやればいいわけで
これで64bit、32bitそれぞれに分かれてるプログラムの自動起動もできるようになる

146 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/15(金) 18:14:46.33 ID:z0tVrYIF0]
>>145
組み込み変数追加されてるぞ
A_Is64bitOS (OSが64-bitなら「1」、32-bitなら「0」)
ttp://ahkwiki.net/Variables

147 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/15(金) 18:20:23.78 ID:ZlJjRCAZ0]
なん、だと・・・

ありがたく使わせてもらいます。ありがとう!

148 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/15(金) 20:57:10.67 ID:AqO+XN+s0]
なんかのアプリで編集しようとしてnotepad.exeで開こうとしたら
サクラエディタに変更させるようなことはできないですか?

149 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/15(金) 21:01:25.11 ID:ZlJjRCAZ0]
www.crystal-creation.com/software/tool/system/auto-hot-key/setup/

このへんどぞー
困らないならahkファイルをそのまま関連付けて、Runコマンドでahkpassを指定して引数でahkファイル選択して云々とかでもいいとは思う

150 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/15(金) 21:08:11.85 ID:fT/a9cih0]
これはTerapadの方法だけど、こういうことをやりたいってことでしょ?
okwave.jp/qa/q3936777.html
リンク先に書かれている tp.ini の中身を他のエディタ(サクラエディタ)のパスに書き換えれば
サクラエディタが起動するようにも出来るんだけどね。

話はそれたけど、ahkで同じようなラッパーを作ってnotepad.exeと入れ替えれば出来るよ

151 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/15(金) 21:16:40.99 ID:z0tVrYIF0]
>>148
サクラエディタの関連付け変更すればいい

152 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/15(金) 23:37:40.72 ID:QdLf00QQ0]
今日から使い始めてまだ全然使いこなせてないが、
これしゅっごいね
世界が変わったわ

153 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/16(土) 04:09:07.76 ID:XVNmzA0x0]
Windows 8.1にしたら
Send,!{Tab}
とか
Send,{Alt Down}{Tab}{Alt Up}
なんかが効かなくなったんだけど使えてる人いる?
管理者権限で実行してもダメなんだけど



154 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/16(土) 04:15:11.74 ID:/DSb0fi40]
>>153
解決したいなら環境ぐらい全部書こうや

155 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/16(土) 07:52:21.20 ID:XVNmzA0x0]
>>154
いや8.1で使えてる人がいるかどうかだけ聞きたいんだ
他の人が使えてるならこっちの問題だからあれこれ試してみるけど、
8.1で非対応になっちゃったのなら時間の無駄だからね
ちなみに他のキーストロークのSnedは正常動作している
Alt絡みでもね

156 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/16(土) 08:55:12.96 ID:SGeYgS4w0]
いやあのね、そうあからさまに自分だけ良ければいいって言われても…
これから8.1にしようとしてる人もいるだろうし他の人の参考にもなるんだから
ちゃんと情報だそうや
せめてAHKのバージョンくらい書くのが礼儀でしょ

157 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/16(土) 11:12:33.29 ID:XVNmzA0x0]
もう面倒だから自分で調べたわ
8.1 というかWin8だとAlt+Tabは効かないらしい
解決策としてAutoHotkey_L作者が作った↓のスクリプトで
AutoHotkey.exe自体にパッチを当てると使えるようになる
www.autohotkey.com/board/topic/70449-enable-interaction-with-administrative-programs/

ってことで試したら確かに直ったよ
他にも管理者権限のウィンドウも操作出来たり、SendPlayが
使えるようになったりするらしい
ただしAutoHotkey.exeはProgram FilesとかのOSが信頼する
場所に置かないと効果が出ない

158 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/16(土) 19:17:21.97 ID:/DSb0fi40]
UACをOFFにすればいいだけじゃないか?

159 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/16(土) 21:36:52.37 ID:9zWik5h40]
UACオフとかないわー
ひくわー

160 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 08:49:13.81 ID:O37TPfeO0]
そりゃUAC OFFにすりゃAHK以外でも色んな問題が解決するわなw
自分がそれで良いと思うならそうすりゃ良いよ
だが人には勧めんな

161 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 10:08:04.14 ID:37z1dVEm0]
firewallとhipsで管理すりゃ
UACとかいらなくね

162 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 10:53:15.63 ID:spOsTE5/0]
Windows8の問題っていうより、Vista以降の仕様じゃね

163 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 13:19:12.84 ID:nP8Zxfpa0]
え?みんなUACとかどういう設定にしてる?
当たり前のようにオフにしてたわ



164 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 13:25:18.19 ID:6vjG/kgD0]
AHK使う上でどうにもならなくてUACは切ることにした
>>157のパッチは初めて知ったけど、バージョン上がるごとにパッチあてるんじゃめんどいし
このままOFFでいいかな

165 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 14:53:11.38 ID:kQ6OtSac0]
NortonUACェ……

166 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 17:53:58.67 ID:dM2lh/9X0]
UACって肝心のセキュリティー性能が低い上に弊害を多発させるからそのまま使う奴の気が知れない。
他のセキュリティーソフトの方が性能良い、弊害無いから普通はそっち使うよなw
自分はCOMODO(Firewall+HIPS フリーソフト)使用。

167 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 18:09:39.38 ID:k7PszIJ60]
そもそも自分だけのPCの場合は邪魔だしな
でも家族で使うとか会社で使うなら切るべきものじゃない

168 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 19:09:25.72 ID:u1WcORIm0]
まあ脱初心者したくらいでみんな通る道かもね>UAC OFF

169 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 19:56:40.55 ID:sFdMuGQe0]
AHKに関連して語るならまだしも、On/Offに伴うセキュリティ的な話題とかならよそでやれ

170 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 21:33:44.99 ID:fhX8uY3m0]
firewall と UAC は同列に話すようなもんじゃないが

171 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 21:38:08.02 ID:KDQ403jh0]
そういえばUACを回避するパッチをlexikosがフォーラムに出していなかった?

172 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 21:39:24.65 ID:una8jQOX0]
話を元に戻そう

ポータブルユーザー向けに「相対パス起動バッチ」を作れるAHKを作ろうと思うが、需要あるかな?

まぁ、まだ考えてる途中なんだけども

173 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 21:55:44.22 ID:k7PszIJ60]
>>172
ニーズ狭いなオイ



174 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/17(日) 22:27:31.40 ID:OKOOTUfZ0]
狭いニッチを埋めるのこそAHKが適してると思うけどね

175 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/18(月) 01:15:03.95 ID:q7SDJwhc0]
ホットキー追加したら何時の間にか古いホットキーが動かなくなってたりするのは仕様なんだろうか
どっかで奪ってるのかなぁ

176 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/18(月) 12:29:29.97 ID:Lu28XJXP0]
>>172
自分も色々トラブった。例えばMouseGestureL.ahkでahk関連付けなしだと
1MouseGestureL.ahk をコンパイルしたMouseGesureL.exe ⇒ 当然駄目
2Autohotkey.exe 直下のAutohotkey.ini に#include MGL.ahk ⇒ 駄目
3Run "%A_ScriptDir%\MGL.ahk" ⇒ (行けると思ったけど)駄目

4結局、MGL.ahkのアイコンをAutohotkey.exe に食わせてしのいでる。
>>172 需要あるからインスコ・関連付けなしにどうにかできるやつ作ってくれ

177 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/18(月) 15:05:38.93 ID:44Zvdgh/0]
意外と躓いてる人いるのかな?簡単にメモ書いとく

MouseGesture.bat
↓書いてること
start ..\AutoHotkey_LPortable.exe MouseGestureL.ahk

実際のところこういう行を書いたbatがあれば使える
batがあるフォルダの一つ上の階層のAutoHotkey_LPortable.exeにbatがあるトコと一緒のフォルダに入ってるMouseGestureL.ahkを送って起動する

ポータブルAppsにAutoHotkey_LPortable.exeはある
アップデートはApp\AutoHotKey_Lの中にAutoHotkey.exe、AutoHotkey64.exeがあって、バージョンアップは本家サイトからDLしたものを直に上書きすればok
64はリネームでおk

これでbatを起動すれば関連付けもドライブレターも関係なしでahkがうごかせる

178 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/18(月) 19:37:08.56 ID:m/oJB8p00]
ポータブル環境でやる場合はいくつか方法がある。
どれが最適なのかは各自の環境で判断してほしい。

--exeから起動--
 使用したいスクリプトと同じフォルダ内にAutoHotkey.exeを同名にリネーム(MouseGestureL.ahkの場合)
AutoHotkey.exe → MouseGestureL.exe(.ahkと同じ場所に保存)

--RunでAutoHotkey.exe指定--
 Run,"C:\〜省略〜\AutoHotkey.exe" "C:\〜省略〜\MouseGestureL\MouseGestureL.ahk"

--バッチファイル(.bat)から起動--
テキストファイル(.txt)に以下のコマンドを書いて拡張子を変更(.bat)
 start "C:\〜省略〜\AutoHotkey.exe" "C:\〜省略〜\MouseGestureL\MouseGestureL.ahk"

179 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/18(月) 19:45:23.43 ID:Xr6kemFF0]
>>176-177
横からだけど、怒らず聞いて欲しい初心者っぽい疑問だけど、
MouseGestureL.ahkのフォルダにAutoHotkey.exeをコピーして、
そのexeを「MouseGestureL.exe」にリネームし、それを起動する。

これでも駄目ってこと?

180 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/18(月) 19:47:13.21 ID:Xr6kemFF0]
先に書かれてしまった…(´・ω・`)ショボーン

181 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/18(月) 20:10:59.26 ID:m/oJB8p00]
追加、おそらくこれで全部

--スクリプトの実行ファイル化--
 **.ahk を ahk2exe.exeを使いスクリプトを実行ファイル化

--AutoHotkey.exeにドラッグ&ドロップ--
 **.ahk を AutoHotkey.exeにドラッグ&ドロップ

182 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/18(月) 20:12:35.00 ID:fX+rdGjS0]
>>178
exeからの起動の例ってもしかして
autohotkey.exeがリネームされていたらその名前.ahkを実行できるってこと?
かなり便利な機能なのに知らなかった

183 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/18(月) 22:02:23.25 ID:Xr6kemFF0]
相対パスで思い出したけど、AutoHotkey.exeフォルダ配下に
名前を「include」にしたフォルダを配置すると
そこに置いた(関数などの)ahkファイルをインクルードする時に
#Include を相対パス指定できるとかの特権はないの?

やるとしたら、
#Include %A_AhkPath%\include\kansu.ahk
これしかない?まあ、これでも文句はないけど。



184 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/18(月) 22:14:01.45 ID:hRoSj7CU0]
Lib

185 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/18(月) 22:49:31.47 ID:Xr6kemFF0]
>>184
おう「Lib」とな。
しかも#Includeの記述さえ不要とは…
教えてくれてありがとう。

186 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/19(火) 08:25:04.45 ID:7L3k8gzn0]
#Includeなしでいけるのは関数だけじゃなかったっけ?
なんにしろLibフォルダからの相対パス指定で#Includeはいけたハズ

187 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/19(火) 10:29:37.07 ID:Lh9KvNx10]
知りたいことがあったらまずwikiで該当項目見なさいよ
こんなに情報が充実しているフリーソフトなんて珍しいというのに

188 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/19(火) 12:30:41.05 ID:fM0m1mZj0]
#include %A_ScriptDir%
#include ..\MyScript\hogehoge.ahk

で相対指定できてるが

189 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/19(火) 12:45:15.59 ID:Rhk1Izc70]
とりあえず魔法の言葉SetWorkingDir,%A_ScriptDir%をおぼえればいい
Menu,Tray,icon,%A_ScriptDir%..\..\..\Icon\Icon_169.ico
あとこれはアイコンの場所指定なんだけども、この行を見てもらえれば相対パスはイケることがおわかりいただけると思う

190 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/19(火) 19:53:02.46 ID:wNIYddS70]
気になってたんだが
>>172の相対パス云々っていったい何をするためのパッチなん?

191 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/19(火) 20:51:04.25 ID:isr4byqx0]
もしかしてスレ違いになるかもだけど、「..\」とか「\..」(の意味や書き方)がよく分かんない。

192 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/19(火) 20:57:04.18 ID:61RbzuhO0]
>>191
PCのパス指定の基本なのでググって勉強してらっしゃい。
検索ワード:絶対パス 相対パス フルパス

193 名前:176 mailto:sage [2013/11/20(水) 23:07:21.26 ID:IViM/TQQ0]
>>172
私のせいで変な方向に話がそれたとしたらごめんなさい。
>>177-182
解決しました.ありがとう



194 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/20(水) 23:19:56.96 ID:xBePS8Uv0]
SHIFTキーを押されるまで処理を待つ方法なんてありますか?
大量のローカルログをOperaで表示させようとしています。
今まではローカルログをOperaで事前に一つづつ表示させておくスクリプトを
AHKで書いていて、多機能マウスの戻るボタンで戻って表示させていたのですが、
ページ数が多すぎてだんだんと遅くなってくるようになってしまいました。

そこでスクリプトを開始した後は、SHIFTキーとCtrlキーが同時に押されている間は
ログページを順番に表示させ、押されていない間は待つなんてことができるのでしたら、
やり方を教えて下さい。

今現在押されているキーなんて解る方法はありますか?

195 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/20(水) 23:38:23.77 ID:+i0au6Rz0]
autohotkey_Lの一番新しいバージョンを使っています
こういうスクリプトを作ったらエラーになりました
test()
return

test(){
Run, www.autohotkey.com
}
クラスが登録されていません、と出るのですがどこがおかしいのでしょう

196 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/20(水) 23:40:59.28 ID:OofHMdcO0]
>>194
keywaitのオプションつかってエラーレベルで判定
もしくはgetkeystateでいけんじゃないかなー?

197 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/20(水) 23:42:33.55 ID:IpEjnz5u0]
>>194
GetKeyState + Loop か SetTimer でキー監視したらいいんじゃない?

やりたいことが決まったら該当しそうなコマンドがあるのか確認。
むしろ今後のためにも全て目を通した方がいい。
ttp://ahkwiki.net/Commands_Category

198 名前:195 mailto:sage [2013/11/20(水) 23:52:58.72 ID:+i0au6Rz0]
ブラウザ側の設定を変更したらエラーメッセージが消えました
スレ汚し失礼しました

199 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/21(木) 11:19:28.43 ID:dWWNh+SH0]
ネトゲのXGENCODEってマクロ・チート対策に引っかかるようになってしまった
マクロも使ってないしpause sprictしても落とされる もうやめるわ
ネトゲを

200 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/21(木) 11:37:32.13 ID:o/8Ro1rc0]
>>199
よく言った!それでこそ生粋のホモルーデンスだよ!

201 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/21(木) 12:50:41.93 ID:9zUhsSJq0]
>>199
最近、ゲームでAutohotkeyを利用している動画が山ほどツベに載せられてるから
どこもかしこも対策に動き出してるのかもしれん。

202 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/21(木) 14:30:35.51 ID:sABHiha50]
autohotkeyのforumにゲーム用のカテゴリが設けられたぐらいだしね

203 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/21(木) 15:02:01.94 ID:HN7FYLf30]
格ゲーも規制されちゃうんかね・・・
キーボードゲーマーなんでHitbox配列作ったんだけどこれも規制されちゃうとこまるなぁ



204 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/21(木) 20:19:43.77 ID:V+B1gFkC0]
PCで格ゲーって言うほど盛り上がってなさそうだけど

205 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/21(木) 22:10:38.53 ID:HN7FYLf30]
左右のボタンが押されてる時ニュートラルにするスクリプト便利なんよ
ヨガフレイムコマンドの精度あがるんよ

206 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/22(金) 10:15:08.40 ID:wWYPEutH0]
使えなくするなら代わりの物を教えてほしいよね
対策に引っかかる常駐ソフトをゲーム起動時に落とす為にAutohotkey使ってたのに、本末転倒
けどAutohotkeyの便利さがすごいからやめられない止まらない

207 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/23(土) 13:51:23.92 ID:gnR+5Fxb0]
対策されたゲームが、Autohotkeyのどの部分を見て判断しているのか知らないけど
仮にウィンドウクラスを見ているとしたら、Autohotkey.exeをバイナリエディタで書き換えれば回避出来るよ。
実際はそんな簡単な問題でもなさそうだけど。

208 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/23(土) 16:02:13.44 ID:MHBddyEo0]
LLフックだろうね

209 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/24(日) 21:56:38.57 ID:6MZ1sECB0]
連続したホットキーWheelDownの最後にだけ処理を実行するにはどうしたらいいんでしょうか?

WheelDown::
  MsgBox, ホイールダウン

ホイールをまとめて回転してしまうと何回も実行されてしまうのを防ぐため
50ms間ができたら実行というようなことをしたいです

210 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/24(日) 22:03:42.69 ID:6l7gRGw60]
settimer,ラベル,-50

かな

211 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/24(日) 22:26:56.93 ID:6MZ1sECB0]
>>210
ありがとうございます
そういうのどうやったらパッと思いつくんですか?
賢いです頭良いです参りましたー

212 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/24(日) 22:46:53.44 ID:GF2TaHiu0]
>>209
SetTimerだと経過後実行なのでレスポンス悪くなる。
50msだと問題ないが間隔大きくする場合はこっちの方がいいかも。

TickCount =
Return

WheelDown::
ToolTip
If A_TickCount - 500 > TickCount
ToolTip OK
Else
ToolTip NO
TickCount := A_TickCount
Return

213 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/24(日) 23:17:21.45 ID:6MZ1sECB0]
>>212
ありがとうございます
賢いですー

これはホイール回転の最初の1回目に実行する方法ですかね?
>>209が分かりにくいですがホイールをまとめて回転させた最後に
1回だけ実行させるにはSetTimer方式しかないでしょうか?
勘違いでしたらすみません



214 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/24(日) 23:23:38.83 ID:4heix6ya0]
#IfWinActive ahk_class hoge はひとつしか登録できないんでしょうか?
複数のahk_classに同じものを登録したい場合まとめて設定できますか?

215 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/24(日) 23:26:46.08 ID:6l7gRGw60]
>>214
#IF winactive("ahk_exe hoge") && winactive("ahk_exe hige")

みたいな

216 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/24(日) 23:30:57.46 ID:4heix6ya0]
>>215
ありがとう 試してみます

217 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/25(月) 00:50:14.57 ID:dyr+O2fS0]
>>209
参考になるか分からんけど。

AutoHotkeyを流行らせるページ → 使用例 → 何も操作をしていないときに実行
ahk.xrea.jp/Examples.html

218 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/25(月) 20:49:51.60 ID:4VOX6Bwt0]
>>217
サンクスです!
勉強になります

219 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 00:48:35.56 ID:MOrY+w/n0]
いままで日本語オフにしたいときに
IME_OFF("A")
って入力してたんですが、バージョンアップかなにかの節目を境に
上のを書き込むと
error : call to nonexistent function
ってでてエラーがでてしまいます。
IME_Func.ahkはautohotkey.exeがあるフォルダにあります。

日本語オフをするときには今はどうやるのがスタンダードなのでしょうか?
おしえてください。

220 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 01:03:11.13 ID:8MuF3GKU0]
>>219
MouseGestureは専用スレでよろしく
誘導された事と再度質問を書こう。

【AHK】MouseGestureL.ahkを語るスレ【ジェスチャ】
ttp://anago.2ch.net/test/read.cgi/software/1384313234/

221 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 01:05:00.79 ID:8MuF3GKU0]
と思ったらただのIMEスプリクトか失礼。

222 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 01:08:37.93 ID:IXvseLy+0]
eamat @Cabinet - IME.ahk
www6.atwiki.jp/eamat/pages/18.html
ime_func.ahkはわからないけれど
ime.ahkならIME_SET(FALSE) でいいんじゃないかな

223 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 01:14:04.47 ID:8MuF3GKU0]
>>219
error : call to nonexistent function
エラー:存在しない関数の呼び出し

置く場所や記述ミスじゃない?
 %A_MyDocuments%\AutoHotkey\Lib\
 {AutoHotkey.exeのあるディレクトリ}\Lib
 %A_ScriptDir%/Lib

8.1 ライブラリディレクトリ
ttp://ahkwiki.net/Function



224 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 01:33:00.62 ID:tG5dZZAr0]
#includeが通ってないぽいかな
あとIME_Func.ahkはかなり古い版なのでAHK_Lに対応してないかも
>222の新版だとLibに入れとけば#includeなしでもいけると思う

使い方は
IME_SET(1) : IME ON
IME_SET(0) : IME OFF みたいな感じで
www6.atwiki.jp/eamat/pages/17.html

225 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 02:23:57.01 ID:MOrY+w/n0]
219です。ありがとうございました。うまくいきました。
ただ二個のことしないと上手く行かなかったように思います。
・LibフォルダにIME.ahkを入れる
・IME_SET(0)にする (IME_SET(FALSE) だと上手く行かなかった。)
222の保存の方法もあまり分からずテキストコピペしたりして試しましたが
IMEオフはなんとかできたっぽいです。

226 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 17:11:52.08 ID:FrZA908G0]
IME.ahkで現在変換中の状態かどうかを取得するにはどうすればいいですか?
IME窓(漢字の候補)が出てる状態でなく
「ファイル」みたいな一つしか候補がなくてIME窓が出ない単語でも
変換中かどうか取得できるでしょうか?

227 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 20:59:40.83 ID:IXvseLy+0]
>>226
>>222
>IME 文字入力の状態を返す
かな?

228 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 21:18:02.01 ID:FrZA908G0]
>>227
ありがとう〜
試してみます

229 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 21:49:21.00 ID:FrZA908G0]
メモ帳では正しく取得できるのですが
FirefoxやChromeでは常に戻り値ゼロになります
Win7x64です何か改善策ないでしょうか

230 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 22:00:40.20 ID:hJltsLV50]
>>7Q2

231 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 23:29:55.03 ID:tG5dZZAr0]
>>229
(IMEの設定 秀丸の例)
homepage3.nifty.com/kons/hidemaru/helpsite/hidemaru/html/070_Env_Edit_Ime.html

ソフト側のIME入力方法が↑ここの「トゥルーインライン入力」のようになってると取得できない
「通常のインライン入力」か「システムライン入力」にしてやる必要があるが、
設定方法はソフト毎に違うしそもそも変更できるかもわからん、個別で確認してみてくれ

MS-Officeの場合は手元の2007までは解除できた、それ以降のバージョンは持ってないのでわからん
>※ MS-Office系で 入力窓のクラス名 を正しく取得するにはIMEのシームレス表示を
> OFFにする必要がある
> オプション-編集と日本語入力-編集中の文字列を文書に挿入モードで入力する
> のチェックを外す

232 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/27(水) 23:56:42.75 ID:FrZA908G0]
どうもありがとうー

233 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/29(金) 02:21:22.37 ID:lflsJ3W60]
ちょっとなかなか調べても見つからないので聞きたいんですけど、タスクトレイアイコンをダブルクリックした時の挙動を変えるにはどうすればいいでしょう?



234 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/29(金) 02:42:42.07 ID:+F16pq690]
Menu, TRAY, Default, MenuItemName

235 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/29(金) 02:44:47.57 ID:G8+3dUdT0]
>>233
wiki内検索したらすぐ出たぞ?(タスクトレイアイコン ダブルクリック)
ttp://ahkwiki.net/Menu

236 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/30(土) 01:48:29.15 ID:nKfwT6LB0]
質問です
押す度に順に違うキーを送信したいのですが
F1,F2,F3と来て元のF1に戻りません
var = 0
PrintScreen::
if (var = 0) {
  Send, !^+{F1}
} else if (var = 1) {
  Send, !^+{F2}
} else {
  Send, !^+{F3}
}
var += 1
if (var > 2) var = 0
return

どこを直せばいいでしょうか

237 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/30(土) 02:02:37.90 ID:/CTVHw590]

if (var > 2)
 var = 0
return

238 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/30(土) 02:13:00.46 ID:nKfwT6LB0]
ありがとうございます
次の行に書かないといけないんですね
やっと理解しました

239 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/30(土) 02:13:18.54 ID:QMrAE7z20]
>>238
もう少しシンプルに書いた方が
可読性や保守性いいと思うが・・・。

240 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/30(土) 02:33:07.58 ID:nKfwT6LB0]
すいません
C言語書いてる癖が出てしまいました

241 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/30(土) 08:10:52.81 ID:GnWsZW4n0]
謝る必要なんてないよ
AHKの構文仕様もあまりほめられたものではないしな

242 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/30(土) 10:09:13.26 ID:JlLJ9omk0]
質問です。拡張1でコピー ダブルクリックで選択した文字を即検索は設定してます。
webページや2chブラウザで見る改変できない文字は、Wクリックすると想定通り動きます。
しかし、メモ帳やexcel等文字を入力改変できる状態で使用すると、
「vk1Dsc07B」が入力されてしまい、使い物になりません。
無変換キーを押すと問題なく出来る様にはなってるのですが、どこを修正したらいいでしょうか?


#MaxThreadsPerHotkey,2
XButton1::
If(A_PriorHotkey = A_ThisHotkey) And (A_TimeSincePriorHotkey < 500){
Flag = 0
Send,vk1Dsc07B::
Backup := ClipboardAll
Clipboard =
Send,^c
ClipWait,1
Run,https://www.google.co.jp/search?q=%Clipboard%
Clipboard := Backup
Return
}Else{
Flag = 1
Sleep,50
If(Flag)
Send,^c
}
Return

243 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/30(土) 13:45:05.00 ID:kIvii5lj0]
おそらくどっかからの丸コピコードで全然理解してないんだろうけど
vk1Dsc07B で検索して引っかかる箇所は一行だけなんだから、修正箇所は分かるでしょ

わかってないのは修正内容の方だと思うが

無変換キー送信したい → Sendの特殊キーの項目を確認
ahkwiki.net/Send#.E7.89.B9.E6.AE.8A.E3.82.AD.E3.83.BC.E5.90.8D.E4.B8.80.E8.A6.A7

なんで無変換キー送信するのか → IME OFFが目的? → >219-225



244 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/30(土) 21:38:09.30 ID:+aAc1ReT0]
MsgBoxダイアログを指定した座標に作ることはできないでしょうか?
MsgBox作成後に移動しようと思いましたがウィンドウじゃないからなのかWinMoveで移動できませんでした・・・

245 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/30(土) 23:25:50.11 ID:QMrAE7z20]
>>244
MsgBox表示中は現在のスレッドは一時停止される。
別スレッドで監視/移動 または GUIを自分で作ればいい。

F1::
SetTimer,Move
MsgBox
Return

Move:
WinWait,ahk_class #32770
WinMove,ahk_class #32770,,300,300
SetTimer,Move,OFF
Return

246 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/01(日) 00:47:10.77 ID:rr/QNjsv0]
>>245
そうなんですね
本当にありがとうございました

247 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/02(月) 20:27:22.61 ID:UoaosTTM0]
WheelAccel.ahkの話はMGLスレよりこっちの方が適してると言われたのでこっちでもう一度質問。

WheelAccelの理想の動きはイメージで言うと下のグラフのような動きなんだけど
(徐々に加速し、スクロールが停止するちょっと前から徐々に減速する様な感じ)
homepage1.nifty.com/rikiya/images/software/117_4.gif
現実問題、WheelAccel.ahkの何処をどのように変えると実現します?

それから、この中に含まれるWheelAccel.ahkが最新バージョン?
mousegesturel.googlecode.com/files/Examples_52.zip

248 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/02(月) 23:30:06.75 ID:zqwxjKTK0]
ソースコード付属のフリーソフトの改良方法を、フリーソフトを書いた言語のスレで
質問されても本当に困ってしまうわけですが。
その、WheepAccel.ahkと、MGLのソースコードを全部読んで返事してほしいということですか?

249 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/02(月) 23:48:48.95 ID:zqwxjKTK0]
>>248
くそ、なんか後味悪い

WA_Throttle()の中身弄ったらいけるんだろ

スクロールが停止する前ってのがわけわからんけどな。
ホイールが停止するのを感知しろとでもいうのか、それともホイールが停止してからも
スクロールのスピードを落としながら停止するまでスクロールしろってことか?
図でいうところのTはホイール操作としてどういう状況なのかがわからんわ

250 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/03(火) 00:01:29.39 ID:Joz+q56x0]
WheelAccel.ahkの元になったWheelScroll.ahkを書いたものですが
Scroll.ahkの加速部はここの過去スレで誰かが張ったものを元に制作
Accel.ahkの加速部はIKK…もといmobitan氏が、やっぱりここの過去スレで
別の誰かが張ったものを元に乗せ換えた、という経緯だったと思います

つまり加速に関しては各自欲しい物を適当にもってきてるという状態なので
第三の加速方法の実現方法についてはホイールの加速方法に詳しい方に理論指導ののち
ご自分で入れ込むのがよろしいかと

コード中の具体的な修正箇所はWA_Throttle()を呼び出してる行をコメントにして代わりの加速方法をいれこむか
WA_Throttle() の中を丸ごとすげ替えるかすればOKです

251 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/03(火) 00:27:10.37 ID:5fVa01nj0]
ロジクールの高速ホイールつかえばいいんじゃね

252 名前:247 mailto:sage [2013/12/03(火) 00:41:20.18 ID:gs5BzMAw0]
>>250
サンキューでした。
どこまでやれるかガンバってみるわ。

>>248-249
気分悪くさせてしまったなら悪かった、謝るよ。
それから、あんまり火病ると体に良くないよ。

253 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/03(火) 07:06:26.67 ID:132GeGa70]
質問するだけしてレスついても反応なしのやつとか
どっかで拾ったソースの改良丸投げ依頼とかそんなの多いね



254 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/03(火) 13:14:49.66 ID:pS1lIgy+0]
● 分からない理由 ●
1. 過去ログを読まない。
2. 読んでても肝心な所が見えてない。
3. 検索能力が低い。
4. そもそも検索する気がない。
5. 類推という概念がない。
6. それ以前に普通に頭が悪い。

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

255 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/03(火) 13:15:22.52 ID:pS1lIgy+0]
★教えて君五大要素★

1 読まない             (文盲)
2 調べない             (能なし)
3 試さない              (発想力欠如のアホ)
4 理解力が足りない        (馬鹿)
5 人を利用することしか頭にない (死ね)



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

256 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/03(火) 13:15:55.35 ID:pS1lIgy+0]
■回答できるレベルの人へお願い■

このスレは親切な人が多いと思うけど、もう日記に対する検証&レスは、
たとえ対処法をわかっている人がいても、レスは一切やめにしてくれないか?
こいつがやってることは

 「適当にコード作ってみたけど動かない。動かない原因を調べるのも面倒だし、
  学習する気もない。どうせここに書けばおまえらが修正するだろうから誰か直して」

ってことだ。しかも、一度だけならまだしも、何度も繰り返している。
これまでに、このスレではこの手の質問者は居なかったと記憶する。

いつまでもこんなクズにつきあう必要はない。
汎用性のないコードでスレが汚されるのは、結果的に良質な情報が
埋もれる原因になって迷惑だし、横から見ていても参考にならないし、
なによりも見ていて不快でしかない。

257 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/04(水) 12:30:17.43 ID:9w4g5HVI0]
そして誰もいなくなった

258 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/04(水) 15:06:16.01 ID:EiiyEWJU0]
ID:pS1lIgy+0のことは個人感情でしかないんで気にしないでもいいんじゃよ

259 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/04(水) 19:00:32.22 ID:pdCI9Suq0]
>>253
即使えるコピペコード期待→wkiの該当コマンドページ張られる
or WinMessageとかDllCallとかWinApiとかポインタがどうとか理解外の答え帰ってきた怖い
って感じなんだろう

ただ、クレクレに見えるレスでもとっかかりがわからんだけの初心者さんもいて
説明ページへのリンク張ると頑張りだす人もいるので
いきなり>254-255張って萎縮させるより、煽りながらもヒント出すツンデレスでやるほうがいいと思う
255は言動が明らかにおかしいチラウラ野郎用なので質問お断りみたいな流れでは張るべきじゃないね

260 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/04(水) 19:02:20.81 ID:pdCI9Suq0]
×255は
>256だった

261 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/04(水) 22:19:12.76 ID:JQh1NruY0]
このコピペが必要になるとはな・・・
みたいな万が一の事態が起きた時の保険用にか

262 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/05(木) 17:28:40.83 ID:hVYR+JZI0]
F1::
  Hoge := A_TickCount - count
  tooltip, A_TickCount=%A_TickCount% count=%count% Hoge=%Hoge%
  count := A_TickCount
  return

一回目のF1押しでHogeが空になってしまいます
static count=0
みたいにしたいのですがコンパイルエラーになります
どうすればいいんでしょうか?

263 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/05(木) 18:40:18.50 ID:92FJxjTK0]
>>262
エラーは起こっていないのでコンパイルエラーとは言わない
初回意図しない動作になるのは count の中身が指定されていないから
Hoge := A_TickCount - count → Hoge := 1234 - (空)
式として成り立っていないので (空) が返される。

スクリプト起動時に実行されるAuto-executeセクションで
count = 0 を指定すればいい。

15 スクリプトの起動とAuto-executeセクション
ttp://ahkwiki.net/Scripts
--------------------------------------
count = 0
F1::
  Hoge := A_TickCount - count
  tooltip, A_TickCount=%A_TickCount% count=%count% Hoge=%Hoge%
  count := A_TickCount
  return



264 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/05(木) 19:06:11.77 ID:hVYR+JZI0]
>>263
ありがとうございますm(_ _ )m
なるほどAuto-executeセクションに書けばいいんですね

ちなみに
static count=0を書くと私の環境ではコンパイルできないのですがどうしてでしょうか・・・?
[スクリプト仕様]のページを見ると スタティック変数の例↓のように書かれています
AAA(){
 static CalledTimes
 CalledTimes++
 MsgBox,%CalledTimes%回目
}

265 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/05(木) 19:10:53.29 ID:S42OhYbw0]
関数内じゃないから

266 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/05(木) 19:18:06.88 ID:hVYR+JZI0]
よく分かりましたm(_ _ )m

267 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/08(日) 00:09:08.12 ID:HwtBWHvTP]
..

268 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/11(水) 23:18:15.76 ID:VBfa8aHJ0]
GUIのEditコントロールにテキストを追記したいのですが質問があります。
アドバイスもらえませんか。  Windows7 64bit, AHK_L v1.1.13.01 64bit

Q1. GuiControlとControlSetTextの違いは?
 ControlSetText, Edit1, %text%, ahk_class AutoHotkeyGUI
 GuiControl, , Edit1, %text%

Q2. 全部Getしてテキストつなげて再Setだと効率悪そうだけど直接追記の方法ある?
 ControlGetText, oldtext, Edit1, ahk_class AutoHotkeyGUI
 ControlSetText, Edit1, %oldtext%%addtext%, ahk_class AutoHotkeyGUI

すんませんがお願いします。

269 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/12(木) 00:32:26.55 ID:jKLh4qEi0]
>>268
>Q1. GuiControlとControlSetTextの違いは?
 Guiコマンドで作成したGUIに対しては細かい指定ができる GuiControl[Get] を使うのが普通。
 ControlSetText > 指定したコントロール (GUI、メモ帳なのでもいい)
 GuiControl > Guiコマンドで作成したウィンドウ (細かい指定が可能)

>Q2. 全部Getしてテキストつなげて再Setだと効率悪そうだけど直接追記の方法ある?
 GuiControlGet,Var,,ControlID
 GuiControl,,ControlID,%Var%追加テキスト

270 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/12(木) 00:57:34.13 ID:okQADZym0]
>>269
ありがとう。助かった。明日試してみる

271 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/13(金) 04:18:22.59 ID:8uCBpJDm0]
処理Aを無限ループさせるスクリプトをGuiで制御させようとしているのですが
Pauseが上手く動作しません

Gui,Add,Button,,Pause
Gui,show

Label1:
 処理A
 Gosub,Label1
return

ButtonPause:
 Pause,,Label1
return

と言った感じに書いてるのですがGuiのPauseで停止は出来るのですが再開することが出来ません
Gui側で停止と再開を制御するにはどのように記述したらいいのでしょうか

272 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/13(金) 06:07:46.79 ID:HWNZLtYL0]
>>271
Wiki等説明に書いてあるが Pause はホットキーやホットストリング以外が停止する。
つまりGuiも一時停止しているのでボタンは反応しない、たまたま動いているが Pause 第2引数も間違っている。
ttp://ahkwiki.net/Pause

ループ処理は Loop SetTimer を使うべき。

Gui,Add,Button,,Pause
Gui,Show
Var = 1
TEST = 1
SetTimer,Label1,100
Return

Label1:
 ToolTip,% TEST++
 Return

ButtonPause:
 If Var = 1
 {
  SetTimer,Label1,OFF
  Var = 0
 }Else{
  SetTimer,Label1,ON
  Var = 1
 }
 Return

273 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/13(金) 07:20:03.85 ID:8uCBpJDm0]
なるほど!いろいろと勘違いしてたようです。ありがとう



274 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/15(日) 11:46:18.17 ID:Sdf3K9wN0]
【AutoHotkey スレッド part16】のレス164
>IMEの状態を間違えて打った時に、入力文字の削除、IMEの切り替え、再入力をキー一発で行う
というスクリプトを参考にしたAスクリプトと、
「文字入力操作に入ったらマウスアイコンを非表示/動かしたら表示する」、
というBスクリプトが有ります。
そのどちらでもコマンド「settimer」と「input」を使用してます。

これらをCというメインスクリプトで#Includeすると、Bスクリプトが動かなくなります。
原因はどちらでも「input」を使用してるせいだとは思いますが、
「input」以外に文字入力を感知するコマンドを見つけられませんでした。

「input」を代替するようなコマンドとか関数ありませんか?

275 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/15(日) 17:53:03.42 ID:oGoZjFg+0]
>>274
ない 作れ。
原因が分かっているなら#Includeせずに競合しないように書き直せ。

276 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/16(月) 07:52:55.08 ID:+skMhsJJ0]
アプリのスクリプト言語として組み込むような仕組みありますか?

277 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/16(月) 23:27:27.99 ID:k/O+MCiL0]
>>276
意味わからなす

278 名前:名無しさん@お腹いっぱい。 [2013/12/16(月) 23:41:25.41 ID:g9ztIiRs0]
>>276
アプリからAutohotkey呼び出せばいいだけじゃね?

279 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/17(火) 12:35:56.56 ID:HF79/rMZ0]
今プログラム起動の関数作ってるんですけど、引数受付けてくれないんで困ってます

;プログラム起動処理関数
;存在するならウィンドウアクティブ
ProcessRun(pass,option="",active =""){
SplitPath,pass,exe ;パスを分解してファイル名を取り出す
IfExist,%pass% ;exeが存在するかチェック
{
Process,Exist,%exe% ;プロセスが存在するかチェック。
if (ErrorLevel <> 0){
if(active = 1)
WinActivate,ahk_pid %ErrorLevel%
}else{
Run,%pass%,,%option%
}
}
}

これに”A.exe Bファイル”をいれても動きません
半角スペースから後ろをトリムで切り取るとか出来ませんか?

280 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/17(火) 13:12:16.51 ID:kP0TsYoU0]
>>279
RegExReplace() ttp://ahkwiki.net/RegExReplace
正規表現で出来るが、これでいいんじゃない?

ProcessRun(pass,pass2="",option="",active="")
 〜略〜
Run,%pass% %pass2%,,%option%

281 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 11:18:48.94 ID:s1lQxVjC0]
#If hoge1 := WinExist("ahk_class MozillaWindowClass") or hoge2 := WinExist("ahk_class Chrome_WidgetWin_1")
F1::
Tooltip hoge1=%hoge1% hoge2=%hoge2%
return

どちらのウィンドウも起動している状態でF1を押すと
hoge1が常に1
hoge2が常にカラになってしまうのはどうしてでしょうか?

282 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 12:28:18.59 ID:PbPhfpuw0]
論理和は式のどれかが真になった段階で真が確定する
→どれかが真になった段階で式の評価をやめるから

283 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 12:29:25.19 ID:jy55PCzK0]
if文の or だの Andだのでつなげた条件は全部実行してから判定してるとは限らんよ
速度優先でTrueを見つけた時点で次の処理に行っちゃう場合が多いと思うけど
(コンパイラによって判定順がお尻からだったり頭からだったりもする)
必ず通る前提で複数の変数に格納するのは非常に危険なのでやめたほうがいい



284 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 12:36:30.17 ID:s1lQxVjC0]
>>282
本当にありがとうございます
条件を#If hoge1 := WinExist("ahk_class MozillaWindowClass")だけにすると
hoge1がウィンドウハンドルになるのですが
2つ条件を指定するとhoge1が0か1になってしまう理由が分からないです・・・何故ですか?

285 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 15:09:03.48 ID:jy55PCzK0]
>→どれかが真になった段階で式の評価をやめるから

理由書いてあるのに何故ですかって言われても

286 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 15:17:43.51 ID:evB3MxNe0]
#If hoge1 or hoge2
になると思ってるんだろうけど
hoge1 := (WinExist() or hoge2)
になってるんじゃないの

287 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 15:18:37.09 ID:ExaGxbuH0]
>>284
#If (hoge1 := WinExist("ahk_class MozillaWindowClass")) or (hoge2 := WinExist("ahk_class Chrome_WidgetWin_1"))

288 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 15:19:09.34 ID:ExaGxbuH0]
おう、かぶった

289 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 17:38:30.18 ID:G/sv6NM00]
AHKで
「”指定した特定のウインドウのみ”、マウスオーバーでアクティブにする」
というような設定はできないでしょうか?

290 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 17:43:51.70 ID:XPNnQ2CE0]
>>289
できます。

291 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 19:31:27.95 ID:s1lQxVjC0]
>>286 287
ありがとうございます!
なるほど()が足りなかったんですね
たとえ式が1個でも()カッコつけたほうがいいかもですね

292 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 22:05:54.36 ID:R1JvPCpk0]
>>290
>>289はコードくれくれって言ってんだからさ

293 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 23:20:31.47 ID:CCaGETPl0]
便乗したいんですねわかります



294 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/19(木) 08:03:06.37 ID:zJOFP78X0]
>>292
なら書いてやれば?

295 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/20(金) 11:47:26.18 ID:mlxG5Hkg0]
>>279です>>280ありがとうざいました。とりあえず、ファイル起動関数でウィンドウ即閉じ、再起動、アクティブ化できるようにしましたので拙いですがはっておきます

;プログラム起動処理関数
;pass2には引数を指定
;optionにはMIN、MAX、HIDE、active、close、reloadを指定できる
ProcessRun(pass,pass2="",option=""){
SplitPath,pass,exe
IfExist,%pass%
{
Process,Exist,%exe%
if (ErrorLevel <> 0){
if(option = "active"){
WinActivate,ahk_pid %ErrorLevel%
}else if(option = "reload"){
Process,Close,%exe%
Process,WaitClose,%exe%
Run,%pass% %pass2%
}
}else{
If (option = "close"){
Run,%pass% %pass2%,,,pid
Process,Wait,%exe%
WinWaitActive,ahk_pid %pid%
WinClose,ahk_pid %pid%
}else{
Run,%pass% %pass2%,,%option%
Process,Wait,%exe%
}
}
}
}

296 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/21(土) 07:25:07.10 ID:58vBPubX0]
windowの表示を並べたり重ねたりするショートカットが欲しいんですが、
どうすれば良いでしょうか??

win+b→win→win→AppsKeyの後に、
d・t・i・uのどれかと言う感じのsendはスマートじゃない気がするのですが、
別の方法で「元に戻す」が使える状態での操作って出来ますか?

297 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/21(土) 07:51:08.00 ID:xmhgxw/C0]
objShell := ComObjCreate("Shell.Application")
Return

F1::objShell.CascadeWindows
F2::objShell.TileHorizontally
F3::objShell.TileVertically
F4::objShell.UndoMinimizeALL

298 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/21(土) 16:21:15.45 ID:Hds2OfjC0]
>>295
ちょっと読みづらいから書きなおしてahkファイルにしてみる
ux.getuploader.com/autohotkeyl/download/34/Processrun.ahk

299 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/22(日) 15:48:50.81 ID:GnUolT8w0]
>>297
簡潔な回答をありがとうございます。
comに付いての知識があまりなく、使用した事も無かったので勉強になりました。

dllとcomの関係、バイナリ互換とwindows・linuxの違い、comの情報を得るのが若干ハードルが高く、
oleviewがVisual Studioで見当たらなくて、Windows Server 2003 Resource Kit Toolsを知ったり・・・
comとレジストリの関係も結構驚きました。

300 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/25(水) 21:38:33.77 ID:HVB25HKc0]
USBTVチューナーに付属の視聴ソフトを起動すると、autohotkeyのホットキー設定がほとんど無効になってしまいます。
ふたたびautohotkeyのホットキー(スクリプト)を有効にするためには、
TV視聴ソフトを終了させるかもう一度autohotkey.ahkを読み込ませないといけません。
どのようにすればこのような不具合を回避できるでしょうか?おしえてください。

TV視聴ソフトは、DigiBestTVというソフトです。windows7 x64 です。autohotkey_Lはx84版のものです。
スクリプト内容が悪いのかと思い、中身を10行ぐらいのものに変えてみましたが結果は一緒でした。
DigiBestTVの設定項目も見ましたがキーバインドを操作するような項目はありませんでした。

301 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/25(水) 22:23:29.53 ID:K9GCSInG0]
>>300
キーボードフック使ってる?
何がどう反応しないのか書いてないし
スクリプト内容見なきゃ分からん。

302 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/25(水) 23:55:37.42 ID:SqymqE420]
多分管理者権限の問題だと思うけど。
そのソフトを起動中でもフォーカスを他の適当なウィンドウに当てたら
ホットキー利いたりしない?
その場合はahkを管理者権限で実行すれば解決。
管理者権限で起動するのがセキュリティ的に好ましくないahkファイルの場合は無理

303 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/26(木) 01:28:33.93 ID:zx6ulNJx0]
>>301
ちょっとわかりませんが、
#InstallKeybdHookっていうのかな。使ってないです。

>>302
autohotkey.exeを右クリして管理者として実行をしてみましたが、変わりありませんでした。
フォーカスを他のウインドウにしても効果ありません。digibestTVが起動してるとahkのホットキーが無効化されます。

反応しないというのは、無変換+J や無変換+G にカーソルやbackspaceを割り当ててるのですが、
そのままJやGを入力してしまいます。しかし一方無変換+Kanaにランチャーを割り当ててるのですが
そちらはちゃんと起動します。.ahkの内容を最小限にしても同じでした。



304 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/26(木) 01:46:39.67 ID:lsxYMpIS0]
.ahkファイル上げれば優しいお兄さんたちがいたずら……じゃなかった手取り足取り教えてくれるよ

305 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/26(木) 02:14:19.72 ID:6ztpcYyA0]
>>303
とりあえず >>301-302 で言われたこと試そう。

#UseHook または #InstallKeybdHook をAuto-executeセクションに書く
OSの機能UAC(ユーザーアカウント制御)を無効にしてみる

306 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/26(木) 07:40:42.88 ID:D0aKtmKJ0]
>>303
Dirt2というゲームをフルスクリーンにしたら
同じようになるので以前このスレを覗いたら
hookは後から実行したほうが有効になるってここで見たので
SettimerでDirt2のウィンドウ状態を監視し、
フルスクリーンになったらahkを再起起動するようにしてた。

恐らく、>>305の方法で解決出来そうな気はするけど

307 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/27(金) 19:54:53.43 ID:jkW/sj760]
winxp sp3 autohotkey_L 32bit バージョン: 1.1.13.01です。

以下のようなWM_COMMAND使う関数作ったのですが、
メモ帳のようにデスクトップにウインドウ開くものは操作できるのに
タスクトレイに常駐してるものが操作できません。
どうしてでしょうか?

ahk_WM_COMMAND(ahk_win_title, ahk_win_class, ahk_cmd){
    SetTitleMatchMode,3
    WM_COMMAND = 0x111
    WinGet, ahk_hwnd, ID, %ahk_win_title% ahk_class %ahk_win_class%
    detecthiddenwindows,ON
    postmessage, WM_COMMAND, ahk_cmd, 0, , ahk_id %ahk_hwnd%
}

※インデントは全角空白です

ちなみに、AutoIt3で作った同じ関数だと問題なくタスクトレイ常駐のものを操作できます。

308 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/27(金) 22:32:25.31 ID:Tm3zwQ4c0]
detecthiddenwindows,ONを関数の外に出したらどうなる?

309 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 00:05:07.06 ID:07ed4QJF0]
303です。
#UseHook または #InstallKeybdHookをスクリプトの一番上においてみましたが変化ありませんでした。
UACは無効です。

スクリプトのautohotkey.ahkは
#InstallKeybdHook
sc07B & H:: Send,{Blind}{BS}
sc07B & i:: Send,{Blind}{Up}
sc07B & l:: Send,{Blind}{Right}
sc07B & k:: Send,{Blind}{Down}
sc07B & j::send,{left}
これだけにしてもdigibestTVを起動するとうごきません。
4回に一回ぐらいちゃんとこのホットキーが動くという感じです。

310 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 00:47:08.71 ID:W6cSodtT0]
>>309
>動かないでも4回に一回ぐらい動く
どっちなんだよ・・・。

#InstallKeybdHook
sc07B & H::MsgBox

これで確実に動くなら Send の問題だろうな
押し下げ間隔変更してみよう。
SetKeyDelay,,100 ttp://ahkwiki.net/SetKeyDelay
一部のゲームやアプリケーションでは押下と押下解除までの間に一定時間が必要

311 名前:307 mailto:sage [2013/12/28(土) 01:13:27.92 ID:0Y0bNe0b0]
>>308
アドバイスありがとう。
ご指摘の通りやってみましたが、タスクトレイのものは操作できませんでした。

また、
ahk_WM_COMMAND(ahk_win_title, ahk_win_class, ahk_cmd){
    WM_COMMAND = 0x111
    WinGet, ahk_hwnd, ID, %ahk_win_title% ahk_class %ahk_win_class%
    postmessage, WM_COMMAND, ahk_cmd, 0, , ahk_id %ahk_hwnd%
}
としてみたり、
postmessageをSendMessageに変えてみたりしても同じく駄目でした。

今のところ、AutoIt3で作ったWM_COMMANDスクリプトをRunする方法で補ってるので
早急に解決する必要はないのですが、何かスッキリしない…

312 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 02:50:53.27 ID:AUGVJyBJ0]
>>311
APIのPostMessageをDllCallで呼んでみては?

313 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 03:46:11.48 ID:07ed4QJF0]
>>310
それやってみました。確実に動きました。ミスはなかった。
SENDに問題あるのかな。
SetKeyDelay,,100 やってみたけど、効果なし。レスありがと。

>動かない。でも4回に一回ぐらい動く

ってのはたとえば、sc07B & i:: Send,{Blind}{Up} あるじゃないですか?
sc07B & i をそこそこのテンポで押し続けていくと、
3回 i ってのが入力されたあと一回だけ↑の方向キー入力があって、そのあとまたiだけが入力されるっていうかんじ。
ランダム。



314 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 04:12:42.21 ID:W6cSodtT0]
>>313
押し下げ、押し上げを明示的に
押し下げ、押し上げ間隔変更
SendModeの種類変更 ttp://ahkwiki.net/SendMode

#InstallMouseHook
SetKeyDelay,100,100
sc07B & i::Send,{Up Down}{Up Up}

315 名前:名無しさん@お腹いっぱい。 [2013/12/28(土) 11:25:07.82 ID:Ppn9Obyz0]
面倒だけど、DOWNとUPの両方をフックして
別々にキー発行した方が確実だよ

316 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 13:16:32.74 ID:0Y0bNe0b0]
>>312
貴重な意見ありがとう。
DllCallですか?自分にはハードル高過ぎです…第一、数ある"引数"に何を入れるのかが分からない。

PostMessage系は、「VBS+dynwrap.dll」の組み合わせ以来、
「postmessage, WM_COMMAND, ahk_cmd, 0, , ahk_id %ahk_hwnd%」
の形式しか知りません…しかも「WM_COMMAND」以外使ったことないし。

317 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 13:53:08.02 ID:AUGVJyBJ0]
簡単だよ、AHKのPostMessage使うのとほぼ同じ
>>311の例を置き換えるなら↓
DllCall("PostMessage", Ptr,ahk_hwnd, Ptr,0x111, Ptr,ahk_cmd, Ptr,0)

ただしwParamには上位ワードにWM_COMMANDの詳細コード、下位ワードに
コントロールのIDを、lParamにはコントロールのウィンドウハンドルを指定する
のが本来の使い方なので、あなた関数はメニューのコマンド実行にしか使え
ないと思う

あとタスクトレイのアイコンからは通常WM_NOTIFYで通知を受けるので、いき
なりWM_COMMANDを送っても無視するアプリは当然いると思う
Spy++を使えるなら非表示化されている本体ウィンドウのメッセージを見ながら
トレイアイコンを操作すれば分かると思うけど

318 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 15:04:01.24 ID:0Y0bNe0b0]
>>317
分かりやすい説明をありがとう。
具体例を挙げてくれたお陰で、これとwikiの説明も合わせて読むことで
限定的ではありますが、何となく分かったような気がします。
(PostMessage + WM_COMMANDが使えれば満足なので)

で、DllCall()でPostMessageした結果もこれまでと同じで
タスクトレイにあるものは操作できませんでした。

あと今回は返値とErrorLevel確認してみましたが、何れも正常動作してる値でした。
気休め程度にセキュリティ系を監視無効にしてみましたが、結果は変わらず。

なかなか先が見えません…

319 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 15:06:38.39 ID:ZMFX8XS+0]
ウインドウ指定間違ってるというオチ

320 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 16:24:12.29 ID:0Y0bNe0b0]
>>319
ありがとう。再確認したけど、流石にそれはないです。
同じタイトル、クラスならウインドウが表示されてれば操作可能なのです。(Process Explorerで確認)

ちなみに、WM_COMMAND使うにあたって「タイトル」「クラス」「コマンド」は
UWSC.exe + ChkCtlID.dllでChkCtlID.uwsというスクリプトを動かして取得しています。
(実際に操作して必要なデータが取得できるので、これだけの為にUWSC使ってます)

321 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/29(日) 19:22:03.91 ID:y3TxPQeB0]
イロハのイみたいな質問で恐縮ですが…
ScrollLockがONの時だけキーリマップされるというスクリプトを作るにはどうすればいいでしょうか?
ONでリマップ、OFFの時は本来のキーの機能が働く形にしたくて、リファレンス等を見よう見まねで
やってる段階なのですが、こんな形になりました

if GetKeyState("ScrollLock","P"){
a::b
}else{
Sleep,100
}
Return

322 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/29(日) 19:24:46.34 ID:y3TxPQeB0]
すみません。長いと怒られたので連投という形に成りますがご容赦を…
上の形で動かすと、ScrollLockがONでもOFFでもAキーがBにリマップされてしまいます
それと、Sleepを充てたのもちょっと違うような気が…
そもそも、根本的に発想が間違っているのかもしれませんが、いいやり方をご教示下さい

323 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/29(日) 19:26:28.92 ID:PgaLHOAR0]
#If GetKeyState("ScrollLock","T")
a::b



324 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/29(日) 19:28:09.75 ID:o+jg+Krd0]
If(GetKeyState("NumLock","T") == 0)

たぶんトグル使えたと思うからそれを使ってみては?
Numlock状態をタスクトレイに表示できるスクリプト組んでたからタイムリー

325 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/29(日) 19:52:06.71 ID:y3TxPQeB0]
>>323-324
こんなに早く感謝!教えて頂いた方法で、希望の動作ができました
ModeをTにしないといけなかったんですね
#Ifの使い方も勉強になりました
ありがとうございました

326 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/29(日) 20:58:57.82 ID:o+jg+Krd0]
ウヒョースゲーpostmessageこれスゲー

327 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/30(月) 10:14:47.38 ID:Ut/Si46b0]
>>326
ヤベーよな
使い出したら止められねえわ

328 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/31(火) 21:32:02.68 ID:CNKTZK//0]
ちょっとスレ違いかもしれないんだけれど、
TillaGoto.ahk持ってる人誰かうpしてくれませんか?
公式とか他回ったけど出てこない…

329 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/01(水) 00:34:04.55 ID:BejZgA1u0]
SciTE4AutoHotkey

330 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/02(木) 22:16:05.97 ID:B/Qu2U8M0]
どなたかMacbookのBootcamp環境上でAHKを運用してるって方おりますでしょうか?

数年前から、Win機に変換・無変換・多ボタンマウスを修飾キーにしたワンショットモディファイア
を組み込んだりRoundMenuを使ったりしています。今回、気が向いてMacbook Air+Bootcamp
で同様の環境を作ろうとした所、「かな」キーがレジストリでリマップしようがAHKでリマップしようが
必ずトグル動作になってしまい扱いきれず困っています。「かな」キーを普通にモディファイアの修飾キー
に出来ている方がいらっしゃったら対処法を教示頂けませんでしょうか?

331 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/03(金) 04:24:05.90 ID:qbDUwg9/P]
ポンコツOS積んでるMacとか使うもんじゃないよ

332 名前:330 mailto:sage [2014/01/03(金) 15:31:57.17 ID:wDBjnsKG0]
もぅ挫折しそう… つかAHKだけじゃ100%無理っぽいです

333 名前:名無しさん@お腹いっぱい。 [2014/01/03(金) 16:17:42.99 ID:uHGrc1HW0]
というかキーボード規格の問題じゃねーのソレ
Fnキーとおなじようなもんで



334 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/03(金) 16:23:41.97 ID:uHGrc1HW0]
あ、俺からも質問
postmessageでX-finder終了メッセージ送って常駐の一斉終了に組み込みたいんだけど、リソースハッカーで調べても見つからないんだよね
プロセス強制終了だとiniに書き込まないから変更状態保存されないし
どっかに情報ないかな

335 名前:330 mailto:sage [2014/01/03(金) 16:45:32.03 ID:wDBjnsKG0]
うまくいった〜。
レジストリいじるのにChnageKey使ってたんだけど、SharpKeysに変えてみた。
変更元のキーもスキャンコードベースで指定出来るのが決め手だろうなと。
結局元コード弄る必要すらなかったです。
低レベルな悩みでお騒がせしました。

336 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/03(金) 16:45:54.69 ID:gA08nXNr0]
>>334
その書き方だと何を終了させたいのかよく分かんないけど
postmessage使う必要ある?

337 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/03(金) 17:38:53.12 ID:aSWb0+zd0]
>>334
WinCloseするだけじゃないのか? ttp://ahkwiki.net/WinClose
駄目なら↓
PostMessage, 0x112, 0xF060,,, WinTitle, WinText ; 0x112 = WM_SYSCOMMAND, 0xF060 = SC_CLOSE

338 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/03(金) 18:05:43.12 ID:uHGrc1HW0]
あ、wincloseでいいか
ありがとう

339 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/03(金) 23:43:42.30 ID:6mi/YYM20]
なんかプログラマー気取りのレスがおおいよなあ
お前らが使ってるのは言語じゃなくてスクリプトエンジンだから
RPGツクールと一緒。

340 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 00:59:23.80 ID:PYXLNTj80]
どうした、どこかトラウマを刺激するスイッチでも入ったのか?

341 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 02:07:25.03 ID:mtwYn+fq0]
クレクレの教えて君の逆恨みかな?

元マーだけど、ここにはおそらく現職のマーや多言語扱える人間が複数常駐してるなと感じることはある
だがマー気取りの痛い人というのは別段見たことがない

342 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 02:23:33.43 ID:AUsHohtA0]
プログラマーの一人称って安定しないな
マーって……

343 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 10:43:33.81 ID:N66thuPZ0]
いや一人称では無いだろ



344 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 11:08:43.98 ID:mtwYn+fq0]
さすがに現役時代でも自分のことをマーと呼ぶ人には出会ったことないわw

345 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 17:30:38.37 ID:5QWAv4qg0]
むしろム板とマ板がある2chだからじゃない?

346 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 19:56:46.04 ID:oRzkyRNu0]
スクリプトを編集してreloadした時にでるエラーメッセージをぐぐったりして調べたいんですけど
クリップボードにコピーするかテキストに出す方法ってありますか?

347 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 20:14:17.76 ID:w5g57NbE0]
>>346
WinGetTextを使った別のスクリプト呼び出すかWindow Spy使えば?

348 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 20:58:34.93 ID:iZ9IYWWx0]
単純に、crtl+cじゃ駄目なんだっけ?

349 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 21:10:03.42 ID:w5g57NbE0]
>>348
こんな機能あったのかwサンクス

350 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 21:29:26.58 ID:AjuKralY0]
Windows標準の機能だけど意外と知ってる人いないよね

351 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 01:54:21.50 ID:SqERt/fB0]
いやそこは「レベル低すぎだろ」って突っ込んであげたほうがいい希ガス
こんなもんも知らないんじゃAHKなんて活かし様ないだろ

352 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 03:01:54.64 ID:KGEDNDUc0]
>>351
ハイハイ、よかったね。

353 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 15:08:46.89 ID:b/yWfANK0]
Ctrl+CでコピーしたらCtrl+Vでパスを貼り付けられるようにしてほしかった



354 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 16:25:36.08 ID:tFFNLJlE0]
>>353
出来るだろ?

355 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 18:41:09.85 ID:b/yWfANK0]
>>354
エクスプローラではできんかった
VistaHomeBasic32bit

356 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 18:59:56.66 ID:sZA4GYag0]
AHK関係ないだろ
AHKを使ってってことなら余裕で実現可能だし

357 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 19:02:03.05 ID:b/yWfANK0]
そりゃそうだw

358 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/06(月) 02:57:17.10 ID:6M7KTWEQ0]
Send,^{Home}
Send,{Ctrl down}{Home}{Ctrl up}

この2行って違いあります?
前者だと誤動作することがあって後者に書き換えるとうまくいくことが度々あるんですが

359 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/06(月) 03:00:38.51 ID:sxo5qzGk0]
多分差はない。下ほうがうごくならそっちのほうがいいかも
ただもし他の処理とかち合ったらctrlが押しっぱなしになるかも・・・?

360 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/06(月) 03:29:08.93 ID:6M7KTWEQ0]
>ただもし他の処理とかち合ったらctrlが押しっぱなしになるかも・・・?

試しに
Sleep,1000
Send,^{Home}
としてみたら安定動作しているみたいなので
もしかしたら他のキーが一瞬押されているのかもしれません
処理に入る前にCtrl,Alt,Shift,Winあたりの押下状態を調べてUpされるのを待つなり警告出すなりしてみます
ありがとうございます

361 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/06(月) 12:29:28.31 ID:0G6McRFW0]
文字コード関係で困って自己解決したので報告です

AutoHotKeys_L unicode 64bit

特殊文字を指定するためのコマンド ASC{ nnnn } について。
解説だとnnnnをユニコードで指定できるとなっていますが、実際はキーボード(IME)の言語に依存します。
日本語キーボードならShift_Jis番号として解釈されるます。

Send {ASC 220} は
日本語キーボード だと 「ワ」
USキーボード だと 「ウムラウトの大文字U」

ユニコード番号で指定するためにはこのスタイルで書けばいいみたいです
Send {U+nnnn} * nは16進数のユニコード番号

362 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/07(火) 14:57:06.16 ID:HnLr3QxO0]
文字列「{a { b } c}」から先頭の「{」と末尾の「}」を取り除き、
「a { b } c」にしようと以下のようにしたのですが、
ret2で末尾の「}」が取り除けません。
Pattern指定のどこが間違っているのでしょうか。

Target := "{a { b } c}"
Pattern := "^\{"

ret1 := RegExReplace(Target, Pattern)
msgbox, % ret1

Pattern := "$}"
ret2 := RegExReplace(ret1, Pattern)
msgbox, % ret2

363 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/07(火) 15:08:35.62 ID:LQVBB70R0]
Pattern := "}$"



364 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/07(火) 15:42:37.93 ID:HnLr3QxO0]
>>363
ありがとうございました。

365 名前:名無しさん@お腹いっぱい。 [2014/01/08(水) 22:14:01.50 ID:kARE6RtX0]
エレコムのM-XG3Gを買ったんですが、専用ドライバーをインストールするとWheelLeftとWheelRightがAHKで拾えなくなります。
ドライバーをインストールしなければ拾えるんですけど、こういう場合、
ドライバーをインストールしたままチルト入力を拾うことってできないもんなんでしょうか?
チルト系のスクリプト全部書き直しになると地獄です。

366 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/08(水) 22:37:43.84 ID:NA8co93/0]
>>365
2.3 マウスにホットキーの割り当てをしても反応しない。 ttp://ahkwiki.net/Faqs
専用ドライバーの設定に対してAutoHotkeyで割り当て

ドライバー(WheelLeft→他のキーに変更)

対象のキーにAutoHotkeyで割り当て

367 名前:名無しさん@お腹いっぱい。 [2014/01/08(水) 22:52:22.20 ID:kARE6RtX0]
>>366
それしかないですかね?
あいにくここのドライバF13以降の割り当てができないので
なにがしかのキーボードのキー(or プラス修飾キー)を使うことになってしまうんですが。
エレコムのドライバが制御してるキー入力判定を読み取ることとtか無理ですかね?

368 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/08(水) 23:18:29.84 ID:NA8co93/0]
>>367
ドライバツールの段階でAutoHotkeyで拾えない独自のWheel***になってるのでドライバをどうにかするしかない。
もしかしたらドライバの設定ファイルを直接いじればF13以降も出来るかもしれない。

369 名前:名無しさん@お腹いっぱい。 [2014/01/08(水) 23:43:56.71 ID:kARE6RtX0]
>>368
そうですか。難しそうですね。
ドライバーのインストールフォルダの中にあったkeyboard.iniの中に
マウスボタンに割り当てるキーボードのキー情報がありました。中にあったF12キーのスキャンコードをF13のスキャンコードに置き換えて
マウスのチルトにF13を割り当ててAHKでF13を制御してみましたがいけました。どうもです。
しょうがないんでWheelleftとWheelrightは全部これで置き換えます。

370 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 12:38:55.17 ID:5Gf14WnP0]
今現在、SetTimerとWinActiveをループさせながら複数ウインドウの監視してるのですが、
この方法よりも「イベントフック専用APIを利用する」方が無駄のない方法だと知り
https://sites.google.com/site/agkh6mze/howto/winevent
此処にあるサンプルを元にウインドウ出現の監視をしようと思っています。

しかし、今動かしてるスクリプトは当該ウインドウの終了(WinNotExist)も監視してるため
WinNotExistに当たるイベントも取得したいのですがそれらしいのが見あたりません。
WinNotExistに当たる定数は何なんでしょうか?

EVENT_OBJECT_DESTROY = 0x00008001
かな?と思い、
EVENT_SYSTEM_FOREGROUND = 0x00000003
の代わりに指定してみましたが、何か違うような…

371 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 18:56:09.10 ID:1hwoDp2F0]
ウィンドウを最善面にしたらウィンドウタイトルバーの色を変える(ようは目立たせる)
というようなことをしたいです

特定のウィンドウタイトルバーの色を変えることはできますか?

372 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 19:18:49.36 ID:5Gf14WnP0]
370です。前の疑問がまだ解決してないんですけど、もう一つ質問させて下さい。(欲張ってすいません)
SetTimerの第3引数に優先度を指定できますが、特に指定しなければデフォルトの0になると思うんですけど、
その場合のスレッド起動の順番はどういう順番になるのでしょうか?

メイン.ahk
  ┃
  ┣━ サブ_1.ahk(メイン.ahkにインクルード)
  ┃
  ┗━ サブ_2.ahk(メイン.ahkにインクルード)

スレッド起動の順番は、[メイン.ahk]→[サブ_1.ahk]→[サブ_2.ahk]ですか?

また、任意に優先順位を決める場合、数字か大きい順に高いと判断して良いのですか?

メイン.ahk(SetTimer, hage, 1000, 3)
  ┃
  ┣━ サブ_1.ahk(メイン.ahkにインクルード SetTimer, turu, 1000, 1)
  ┃
  ┗━ サブ_2.ahk(メイン.ahkにインクルード SetTimer, bozu, 500, 2)

優先順位高い順に(スレッド起動の順番)、[メイン.ahk]→[サブ_2.ahk]→[サブ_1.ahk]と思っていいのでしょうか?

373 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 19:25:24.39 ID:5Gf14WnP0]
>>371
ux.getuploader.com/autohotkeyl/download/33/AltKGM12.zip
これは枠を強調表示するみたい・・・試してないので詳細不明なんです。



374 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 19:30:37.83 ID:CVWfPYOb0]
>>371
AutoHotkeyウィンドウなら Gui,Flash
それ以外はOSのAPI関数 FlashWindowEx

目的のコマンドが無い場合はAPI関数を調べる癖付けるとイイよ。
ttp://www.autohotkey.com/board/topic/92043-problems-with-flashwindowex/

375 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 20:23:13.35 ID:CVWfPYOb0]
>>370
無いものはないんじゃない?

>>372
例えがおかしい、スレッドはインクルードや.ahkは関係ないスクリプトは上の行から順に開始される。
現在のスレッドより優先度が低い場合、割り込みは行われず、操作は無視される。
ttp://ahkwiki.net/Threads

■通常(優0)
> → 実行中、 …:割り込み終了待ち
> 元スレッド   →→→→→→……………………………………→→→→
>                  ★割込                ↑再開
> 割り込みスレ          →→→→…………→→→→→→END
>                        ◆割込 ↑再開
> 更に割り込み                →→→END

■元スレッドの優先順位が高い場合割込無視される待機もしない
> 元スレッド(優2)   →→→→→→→→→→→→→→→→→→→→END
>                  ★割込無視
> 割り込みスレ(優1)      ×待機もしない
>                        ◆割込無視
> 更に割り込み(優1)            ×待機もしない

376 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 21:16:51.01 ID:5Gf14WnP0]
>>375
レスどうもです。

>>370の件は、地道にSetTimerとWinActiveをループさせときます。

あと、よく見たら、>>372の上の図で抜けがありました(すみません)
正確には、それぞれのahkでSetTimerでループ(?)しています。

メイン.ahk(SetTimer, hage, 1000)
  ┃
  ┣━ サブ_1.ahk(メイン.ahkにインクルード SetTimer, turu, 1000)
  ┃
  ┗━ サブ_2.ahk(メイン.ahkにインクルード SetTimer, bozu, 500)

この場合、どの順序でSetTimerが働くかは読み込まれた順
(メイン.ahkでインクルードを記述した順)で決まるってことなんですね。

また、下の図の優先度云々の件は、割り込みに関係するのであって順番ではないんですね。

お手数お掛けしました。ありがとうございました。

377 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 21:19:34.41 ID:1hwoDp2F0]
>>373-374
本当にありがとうございます
試してみます

378 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 21:21:07.33 ID:5Gf14WnP0]
>>376訂正

X >>370の件は、地道にSetTimerとWinActiveをループさせときます。
○ >>370の件は、地道にSetTimerとWinActive及びWinNotExistをループさせときます。

379 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/10(金) 07:00:36.49 ID:NhKU6AoL0]
こんなメモリーから読み取るBOT作られりゃ、そりゃゲーム会社も対策するわ。

Bot made in Autohotkey beats SSFIV AE 2012 on hardest difficulty
www.youtube.com/watch?v=daqBboLaMKk

Autohotkey自体の寿命が縮まらなければいいのだが。

380 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/10(金) 21:29:28.71 ID:5Jklg+MO0]
AHKからVBS(WSH)使う時はScriptControlで出きるけんど、VBSからAHK使う方法手有るのん?
試してないけんど、AutoHotkey.dllっちゅうのでできるんかいの?

それから、下のスクリプトのコメントで書いてるように
AHK側→VBS側へ変数の中身を渡せないんだけんど、何か方法ないっすか?
VBS側でAutoItX3.dllなんか使ってクリップボード介すしかない?

obj := ComObjCreate("ScriptControl")
obj.Language := "VBScript"
;~ moji := "12345" ;←AHK側で指定してVBS側へ変数の中身を渡す事ができない

script =
(
moji = "あいうえお" '←ここで直接書く他無い?
MsgBox moji
)

obj.ExecuteStatement(script)

381 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 11:06:35.83 ID:0NPVogb40]
これホントだとしたら日本ってつくづくガラパコスだよね

img104.imageshack.us/img104/3740/stolevf2.jpg

日本国内だと UWSC > AHK >> AutoIt っぽいけど…

382 名前:380 mailto:sage [2014/01/11(土) 12:14:03.24 ID:L93ysrB90]
結局こんな感じで・・・・・ちょっとだけスッキリしますた(´・ω・`)
AHKにも文字列を入れた変数を展開先で実行してくれる機能有れば良いのにぃぃぃぃぃ

script_before =
(
moji = "あいうえお"
title_string = "VBSを動かす - WshShell.Popup"
)
script_VBS := Exec_VBS(script_before, "d")
Exec_VBS(script_VBS)

次レスへ...

383 名前:380 mailto:sage [2014/01/11(土) 12:15:03.39 ID:L93ysrB90]
>>382のつづき

;"d":「データ取得モード」でVBSが動くように完全な文字列を取得(戻り値有り)
;モード無指定(実質"c"指定):「実行モード」となり、上で取得した文字列を実行する(戻り値無し)
Exec_VBS(tmp_script, mode = "c") {
    if (mode == "c") {
        obj := ComObjCreate("ScriptControl")
        obj.Language := "VBScript"
        obj.ExecuteStatement(tmp_script)
        return
    }

    script =
    (

    '↑ ここの空白行は、引数の文字列と結合する時の「改行」代わりになるので【必須】
    MsgBox moji, 3+32, "VBSを動かす - MsgBox"

    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Popup "12345", , title_string, 4+64
    )

    if (mode == "d") {
        return (tmp_script . script)
    }
}



384 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 13:11:55.87 ID:L93ysrB90]
>>381
オレの場合、実用scriptの数で言うと

VBS(WSH) + AutoItX3.dll > AutoIt > AutoHotKey > UWSC

ファイル/フォルダ扱う処理ならVBS(WSH)がこん中で一番扱いな、個人的に
UWSCはほぼ使わんから知らん

385 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 13:18:25.44 ID:DkUM7X060]
海外ではAHK出る前からある程度AutoItが普及してたんじゃない?
日本内でのAHKの認知度が上がったのはリファレンス訳して流行らせようとした人の功績だし
日本の場合ジワジワ浸透よりマニア推しの働きかけのほうが影響出てるように思う

386 名前:名無しさん@お腹いっぱい。 [2014/01/11(土) 13:31:33.31 ID:ezMuEju20]
基本的に日本語のリファレンスが充実してる言語しか日本じゃ流行らんし

387 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 17:49:30.45 ID:RzNhSytD0]
>>381
gazo.shitao.info/r/i/20140111174750_000.png
ぐるぐrトレンドですまんが、AutoitがじわじわAutoHotkeyに迫られてる気がするぞ。

お国で違うようなので、突っ込んで調査したい人は各自でグリグリやってくれ。

388 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 18:09:22.23 ID:xrpAHSIh0]
さきほどここでAutoItを知って、いまAutoIt調べまくってた
キーリマップはAHKが強いみたいだからUWSCの代替になるのかと勘案してるんだが
専用スレは落ちて久しいみたいだな

389 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 19:26:16.84 ID:eIcYw4Wm0]
Chromeバージョンアップでマウスホイールでタブ切り替え
ControlSend,,^{PgDn}, ahk_id %Win%
ControlSend,,^{Tab}, ahk_id %Win%
が効かなくなったんですか代替策ないですかね?

390 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 19:43:25.75 ID:ZCvYVkOb0]
>>389
最新版(バージョン 31.0.1650.63 m)で普通に反応するが・・・。
環境と問題のスクリプトぐらい書こう。

391 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 20:26:07.39 ID:eIcYw4Wm0]
すみません
Win7 x64とAHKL x64 最新です
WheelDown::
MouseGetPos,,,Win
ControlSend, , +^{Tab}, ahk_id %Win%

ちゃんと非アクティブ時にも動きますか?
こちらもアクティブ時は動きますが非アクティブ時に機能しなくなりました

392 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 21:20:41.28 ID:ZCvYVkOb0]
+^{Tab} → ^{Tab} → {Ctrl Down}{Tab}{Ctrl Up}
Return がないのでSend以降の行までいっている可能性あり

---------------------------------------------
; SetKeyDelay,,100 ;反応しない場合

WheelDown::
MouseGetPos,,,Win
ControlSend, , {Ctrl Down}{Tab}{Ctrl Up}, ahk_id %Win%
; ControlSend, ahk_parent, {Ctrl Down}{Tab}{Ctrl Up}, ahk_id %Win% ;FireFox用
Sleep 90
Return

393 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 21:47:05.49 ID:ElkyttuT0]
つまりautoitの日本語訳作れば大逆転なの



394 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 21:50:17.80 ID:eIcYw4Wm0]
>>392
サンクスです!
試したんですがそれだと非アクティブ時もアクティブ時も両方機能しなくなりました・・・
SoundBeepを入れてちゃんとスレッドが実行されていることは確認済みです


ですが
ControlSend, ahk_parent,, {Ctrl Down}{Tab}{Ctrl Up}, ahk_id %Win%
にするとアクティブ時のみ機能します
しかし相変わらず非アクティブ時に動きません

395 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 22:03:44.75 ID:ZCvYVkOb0]
>>394
ユーザーアカウント制御 (UAC)をOFF
フック使う #UseHook
間隔調整 SetKeyDelay,***,***
ahk_parent 有り無しで試す

396 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 22:25:56.03 ID:L93ysrB90]
>>393
AutoItのリファレンス(chmヘルプ)の中見れば分かると思うが
膨大な項目数の割りに一つ一つの説明が簡潔だから
英語が不得意でも全然分かりやすいと思うぞ

それに、ボタン一発でサンプルの動作確認もできる親切設計だ

もし日本語訳リファレンス有るんならオレも欲しい

397 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 23:03:50.10 ID:Rzl8ngLT0]
>>396
blog.livedoor.jp/blackcode/archives/1224220.html
で日本語訳chmファイル配布してるけどver.3.3.6.1のままなのが少し残念

398 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 23:07:18.92 ID:benG0tTg0]
スレ立ててそっちでやれよ

399 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/12(日) 02:13:21.88 ID:HTX3Hu0i0]
>>395
サンクスです
ですが何故か非アクティブ時だけどうしても効きません

400 名前:名無しさん@お腹いっぱい。 [2014/01/12(日) 04:20:51.54 ID:N0XLrLft0]
はじめまして。
NumLockキーを押し間違えるので
NumLock::return
と書いたのですが、そのあと、本当に必要な時のために
#NumLock::Send {NumLock}
と書いても動作しません。

どこをどう間違えているのでしょうか?

401 名前:名無しさん@お腹いっぱい。 [2014/01/12(日) 04:23:19.43 ID:N0XLrLft0]
追記。Windows XP 32bitです。

402 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/12(日) 05:44:25.72 ID:7kMoVYjO0]
>>400
Lock系のキーへのキー割り当ては上手く行かない。
ttp://ahkwiki.net/Trouble#LockTrouble

---------以下代案--------
#If !(GetKeyState("LWin","P") or GetKeyState("RWin","P"))
*NumLock::Return
#If

403 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/12(日) 21:44:58.99 ID:eJUQGLfo0]
Execute string in AHK - Support - AutoHotkey Community
www.autohotkey.com/board/topic/51532-execute-string-in-ahk/

ここ↑をヒントに文字列を実行する関数作ってみた
所詮素人が作ったものなんで突っ込み所有ると思うので、手直し必要なら教えてちょ(´・ω・`)

Exec_Strings("MsgBox,2,title_test,test test test")
Exec_Strings("WinClose,無題 - メモ帳 ahk_class Notepad")
Exec_Strings("gosub,label_sub")

Exec_Strings(cmd_strings){
    Array := StrSplit(cmd_strings, ",")

    call_func := % "func_" Array[1]
    cmd_strings := RegExReplace(cmd_strings, Array[1]",")

    if (InStr(Array[1], "MsgBox")) {
        %call_func%(Array[2], Array[3], Array[4], Array[5])
    }else if (InStr(Array[1], "WinClose")) {
        %call_func%(Array[2], Array[3], Array[4], Array[5], Array[6])
    }else if (InStr(Array[1], "gosub")) {
        %call_func%(Array[2])
    }
}

次レスへ続く



404 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/12(日) 21:45:38.86 ID:eJUQGLfo0]
>>403の続き

func_MsgBox(a, b, c, d) {
    MsgBox, % a, %b%, %c%, %d%
}

func_WinClose(a, b, c, d, e) {
    WinClose, % a, %b%, %c%, %d%, %e%
}

func_gosub(a) {
    gosub, % a
}

label_sub:
    MsgBox, sub_sub_sub
return

405 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/12(日) 21:54:15.08 ID:eJUQGLfo0]
>>403
Exec_Strings()関数内の「cmd_strings := 〜」の行は不要ですた

406 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 13:13:27.29 ID:oE7uW8Qb0]
関数も文字列として送れるようにした
とりあえずこんな感じだけど個人的には満足しとります(リマップ用スクリプトが見た目スッキリした)

Exec_Strings("kansu_1(""hoge hage"")", "f")
Exec_Strings("kansu_2(""Auto"",""HotKey"")", "f")

Exec_Strings(cmd_strings, function = ""){
    if (function = "f") { ;引数functionが「f」なら、cmd_stringsは関数と判断する
        Array := StrSplit(cmd_strings, "(")
        Pattern := "^""|""|\)$"
        tmp_Arg := RegExReplace(Array[2], Pattern)
    }else{
        Array := StrSplit(cmd_strings, ",")
        call_func := % "func_" Array[1]
    }
    if (InStr(Array[1], "kansu_1")) {
        kansu_1(tmp_Arg)
    }else if (InStr(Array[1], "kansu_2")) {
        arg := StrSplit(tmp_Arg, ",")
        kansu_2(arg[1], arg[2])
    }
}
kansu_1(hikisu){
    MsgBox, % hikisu
}
kansu_2(hikisu_1, hikisu_2){
    MsgBox, % hikisu_1 hikisu_2
}

スレ汚しスマンかった(´・ω・`)

407 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 15:32:09.11 ID:ExwEl34b0]
>>406
関数を追加するたびに else if を増やしていくのは面倒くさそう
InStr() で1つずつ調べるより IsFunc() で関数の存在と引数の個数を調べて
分岐するほうが楽じゃないかな

後、MsgBox や WinClose みたいに単体で動作するやつは新規スクリプトに
書き出してそれを実行するほうが好み
引数の個数で分岐する必要が無いし、エラーが発生しても元のスクリプトが
止まらなくてすむ

408 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 15:38:03.02 ID:qvRdmS//0]
関数とラベルチェック作るとするじゃん?

if (islabel(check))
gosub % check
else if(isfunc(check))
    この行どうしよう?
else
    Send % check
return

409 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 16:03:58.58 ID:ExwEl34b0]
やるとしたらこんな感じかな
arg1, arg2, ... は適切に設定されているとして

n := IsFunc(check)
if(n)
{
 if(n==1)
  %check%()
 else if(n==2)
  %check%(arg1)
 else if(n==3)
  %check%(arg1, arg2)
 else if(n==4)
  %check%(arg1, arg2, arg3)
  以下、予想される最大数の n まで
}

410 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 19:57:19.56 ID:oE7uW8Qb0]
>>407,>>408
アドバイスありがとう。お陰でかなり洗練されたけど、突っ込み所有れば容赦なく言ってちょ

Exec_Strings(cmd_strings, function = ""){
    if (function = "f") { ;引数functionが「f」なら、cmd_stringsは関数と判断する
        Array := StrSplit(cmd_strings, "(")
        Pattern := "^""|""|\)$"
        call_func := % Array[1]
        tmp_Arg := RegExReplace(Array[2], Pattern)

        n := IsFunc(call_func)
        if (n) {
            arg := StrSplit(tmp_Arg, ",")
            if (n = 1) {
                %call_func%()
            }else if (n = 2) {
                %call_func%(tmp_Arg)
            }else if (n = 3) {
                %call_func%(arg[1], arg[2])

            ;中略

            }else if (n = 9) {
                %call_func%(arg[1], 〜, arg[8])
            }
        }
;---------------------------------------------------------------------

次レスへ続く

411 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 19:59:10.16 ID:oE7uW8Qb0]
>>410の続き
;---------------------------------------------------------------------
    }else{
        Array := StrSplit(cmd_strings, ",")
        call_func := % "func_" Array[1]

        if (islabel(Array[2])) {
            gosub, % Array[2]
        }else{
            %call_func%(Array[2], 〜, Array[9])
        }
    }
}

またまた、スレ汚しスマンです(´・ω・`)

412 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 20:15:02.55 ID:oE7uW8Qb0]
突っ込まれる前に一つ分かってることを言っとくと、

Exec_Strings("MsgBox,2,title_test,test")
Exec_Strings("MsgBox,test")

上のは問題ないけど、下のだと表示が空になるのでまだまだですわ(´・ω・`)
後はコツコツと時間かけて手直ししていきますです

では、おやすみなさい・・・・・(´・ω・`)

413 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 23:19:06.64 ID:z3Qnnmrd0]
可変長引数使ったほうがシンプルだよ



414 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/15(水) 23:32:21.59 ID:V21fvvgZ0]
ID:oE7uW8Qb0です
>>413
可変長引数の件はかなり役に立ったよ、ありがとう

>>412の件は、func_MsgBox()関数内で第2引数以下に値が有るか無いかで
どっちのMsgBox使うか判断するようにしますた

他にも手直しが必要なところを見つけたよ・・・まだまだ先が長いな(´・ω・`)

415 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/16(木) 00:15:37.30 ID:stEVobho0]
似たようなのでini に記述されたコマンドを実行するようなマクロスクリプト作ってたわ
ahkそのものがテキストベーススクリプタだから激しく車輪の再開発なんだけどね

416 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/16(木) 00:59:56.08 ID:GI4VDAks0]
autohotkeyにreplがあればいいのに

417 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/17(金) 14:26:10.08 ID:zcQzHuv90]
Tてアスキーコードじゃ84じゃん。
そんで小文字のtは116。

でも、どっかのブログの記事だと
Send,^+tと
Send,^Tは同じになっちゃうとか??受けるアプリによるの??

おかしくね?

^+t はコントロールとシフトを押しながらt(116)となることを通常、
想定するよな?

^+tは内部でコントロール押しながらT(84)となっているの?
初心者な意見ですみません。

418 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/18(土) 17:05:43.11 ID:nVmuDu3q0]
文字コードだけでなく、スキャンコード, VKey とか色々とあるんよ
とりあえずSendやその周辺のマニュアル読むべし

419 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/19(日) 13:05:34.00 ID:dvav9W940]
降順にループしたいんだけど、こんな方法しかない?

array := Object()
array[1] := "one"
array[2] := "two"
array[3] := "three"

c := 0, n := 0
for Value in array {
  c := array.Maxindex() - n
  n ++
  MsgBox, % array[c]
}

とか

Loop, % array.Maxindex() {
  c := array.Maxindex() - n
  n ++
  MsgBox, % array[c]
}

420 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/19(日) 13:19:11.21 ID:dvav9W940]
>>419
訂正です。
実際はforループでValueの値も使いたいので、こっちので良い(スマートな)方法有ったら教えて下さい。

421 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/19(日) 13:59:26.29 ID:dvav9W940]
連投すいません・・・>>420の「Valueの値も使いたいので・・・」件は取り消します。
Valueは昇順で処理する場合必要なのであって、降順には不要でした。

422 名前:419 mailto:sage [2014/01/19(日) 18:14:49.09 ID:dvav9W940]
結局以下のようにして落ち着きました。
降順ループの場合、forだと変数Valueが無駄になるので
loopの方がメモリーを無駄遣いしなくて良いのかな・・・なんて思いました。

Loop, % array.Maxindex() {
  c := array.Maxindex() - (A_Index - 1)
  MsgBox, % array[c]
}

423 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 00:24:14.42 ID:hAigsbcH0]
オブジェクト内の要素カウントするのはコストかかるんで、
ループ前にローカル変数増やして対処するのが常套手段だけど、
AHKはどうかなぁ



424 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 04:48:58.02 ID:qibQGH8z0]
i := array.Maxindex() + 1
while --i
 MsgBox, % array[i]

とか

i := array.Maxindex()
Loop {
 MsgBox, % array[i]
} until !--i

とかは?

425 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 20:53:51.90 ID:k+hq/v/Y0]
>>423-424
ありがd
知らなかったこと色々勉強した・・・
レスが長くなるとアレなんで簡単に書くと
先ずは、「--i」は(記述されたその行で?)演算後の値になること。(「i--」は次に「i」が使われる時点で演算後の値になる)
上段・・・「while 式」は、式「--i」の評価結果が 0 の時点でループ終了すること。
下段・・・「until 式」は、式「!--i」の評価結果が真(true、つまり 0 以外)になるまでループが続行されること。(この場合、「!」が肝)

今回は、後々のメンテナンスで分かりやすい「while」ループを使うことにしました。

426 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 20:55:45.08 ID:k+hq/v/Y0]
連続だけど、質問。

今まさにWindowsがシャットダウンされようとしてるのは以下の方法で検知できるんだけど、
If A_ExitReason = ShutDown

サスペンドやハイバネートを検知するにはどうしたらいいんでしょうか?

AHKからサスペンドやハイバネートさせれば、検知など不要なんだけど、
方法如何に関わらず、検知させたいんです。

427 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 20:59:22.22 ID:k+hq/v/Y0]
あ、windowsXP 32bitでAHK_L(1.1.13.01)です。

428 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 21:31:05.63 ID:hAigsbcH0]
>>426
WM_POWERBROADCAST

AutoHotkey スレッド part6
pc11.2ch.net/test/read.cgi/software/1219130051/971
AutoHotkey スレッド part7
pc12.2ch.net/test/read.cgi/software/1230694774/817,822,898,899,902-904

429 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 22:07:16.10 ID:k+hq/v/Y0]
>>428
ありがd
よく読んで活用します。

しかし、過去スレのpart6と7に有ったのか・・・
一応過去スレ読んどかないと、と思ってpart16・15・・・と遡りながら時間かけて読んできたけど、まだpart11の途中だったよ。

430 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 05:43:22.73 ID:VqxOnmgt0]
専ブラのJaneStyleで動画が見つからなかった時に
ダイアログを自動で閉じるようにしたいんだけど無反応でうまくいきません
どこか間違ってますか?

SetTitleMatchMode,2
#Persistent
SetTimer AutoClose,500
return

AutoClose:
IfWinExist, StreamingPlayer3 ahk_class #32770
{
ControlClick OK, StreamingPlayer3 ahk_class #32770
}
return

431 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 15:08:07.41 ID:aYUiPLva0]
AutohotkeyL x64 unicode版で動くeucへのURIエンコードスクリプトってありますでしょうか。
UTFへの変換やShiftJIS版でのものなら見つかるのですが、上記の条件だと見当たりません。

432 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 15:36:30.37 ID:oaSK6Z880]
マウスカーソルがリンク、入力モード、矢印のどれかであるかを判断する方法はあるでしょうか?

433 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 16:00:45.35 ID:KTV70fcA0]
>>432
MouseGestureLの関数丸パクリでこんなのは?

Loop
{
If MG_GetCursor() = 65567
Tooltip, リンク
Else If MG_GetCursor() = 65541
Tooltip, 入力モード
Else If MG_GetCursor() = 65539
Tooltip, 矢印
Else
Tooltip, その他
Sleep,500
}
Return

MG_GetCursor()
{
VarSetCapacity(infCur, 16+A_PtrSize, 0)
NumPut(16+A_PtrSize, infCur, 0, "UInt")
DllCall("GetCursorInfo", "Ptr",&infCur)
hCursor := NumGet(infCur, 8, "Ptr")
return hCursor
}



434 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 18:45:16.66 ID:MOe0YTzR0]
リマップ/ホットキー用スクリプト書くとき、
キー毎にまとめて書くのとアプリ毎にまとめて書くのと
どっちの方が見やすく、管理しやすいでしょうか。

…というか、どっちがオススメですか。ご意見お聞かせ下さい。

435 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 18:54:25.99 ID:OEZwiZLo0]
>>430
問題が起きたなら単純に機能をばらして確認すればいい、この場合、監視 + ダイアログをクリック
ダイアログをクリックするスクリプトを先に完成させよう。

>>432
A_Cursor
Wiki等情報サイトでまずは検索 ttp://ahkwiki.net/Variables#A_Cursor

436 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 19:49:21.45 ID:sJJjom+00]
うーん、地味に組み込み変数に今押してる修飾キーを除いた物理キーってのがないんだのう

A_thishotkeyだと#とか^とか*とか downとか upとか余計なのついてくるし、トリムコマンドで整形するしかないのん?

437 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 20:51:49.47 ID:W82wCj4o0]
かなキーに変換キーを割り当てたいだけなのに、
うまいこと設定できない。
日本語キー周りはレジストリ書き換えするしかないのか。

438 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 21:02:49.49 ID:5mH6o05+0]
やったことないが、Wikiでは半角/全角・CapsLock・かなは動作不定となっている以上、
AHKで弄るのはよろしくないんじゃね

439 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 21:32:37.32 ID:+JdT8cDl0]
>>434
俺はアプリ毎
アプリを使わなくなった時にまとめて消せるのが楽

>>437
vkF2sc070::
Send, {vk1Csc079}
return
で動かね?

440 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 21:45:03.49 ID:OEZwiZLo0]
>>434
こんな感じで管理するといいかも。

;---共通設定----
F1::
ToolTip 通常
Return

;--アプリ別設定--
#If WinActive("電卓")
F1::
ToolTip 電卓
Return
#If

#If WinActive("無題 - メモ帳")
F1::
ToolTip メモ帳
Return
#If

441 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 22:57:09.64 ID:MOe0YTzR0]
>>439-440
なるほどーアプリ毎にまとめた方が良いみたいですね。
自分もその方向で行きたいと思います。
ありがとうございました、。

442 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 22:58:28.83 ID:kPbnp8kO0]
もし良いアイディアがあれば教えてもらいたいのですが、
Windows8のタッチキーボードをトリガーに、AHKを使えたりしますか?

最近DELL Venue8を購入、Win8使ったことある人ならわかるだろうけど、タッチキーボードに左側にテンキー右側に日本語フリックのキーボードがあって、
それをテンキーよろしく8,2,4,6を上下左右のカーソル化や、「あ」をタッチしたら○○する というアクションを起こさせたいんです。
(イメージはゲームボーイのように縦に持って、両手親指で操作)






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<157KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef