2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

AutoHotkey スレッド part17

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

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

■日本語解説等
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製、クロスプラットフォーム)
http://www.ironahk.net/
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
http://www.autohotkey.com/board/topic/39588-autohotkeydll/

テンプレ>>2-10

2 :名無しさん@お腹いっぱい。:2013/11/02(土) 18:35:15.19 ID:h5sjW8CN0.net
■重要事項
オリジナルである、本家 "AutoHotKey" の開発は終了している。
現在は、そこからフォークした "AutoHotkey_L" が主流。
スクリプトについては、それが本家AHKで動くものであるか、Lであるのかに注意。

AutoHotkey_L (内部Unicode、64bitバイナリ、オブジェクト指向、COM対応など)
http://www.autohotkey.net/~Lexikos/AutoHotkey_L/

オリジナルのAHKとの変更点多数。新しい仕様や互換性についてはドキュメントを良く読むこと。
 →http://www.autohotkey.net/~Lexikos/AutoHotkey_L/docs/
 →http://sites.google.com/site/autohotkeyjp/reference/AutoHotkey_L/index

※ 新規利用者にはAHKLを推奨するが、移行に際してすくなからずの改修が必要となる。
特に、旧流行らせるページの配布物(MouseGesture等)の多くはそのままでは動作しない。
安定利用できている環境を崩して移行するかどうかは各人の判断による。
MouseGestureについては有志の方がAHKL対応版を配布しているのでそれを利用するのもありです。
http://hp.vector.co.jp/authors/VA018351/mglahk.html
http://code.google.com/p/mousegesturel/

※ACC.ahkとCOM.ahkはフォーラムのリンク先にファイルが存在しません。
 >>1のAutohotkey専用うpろだにうpされています。

■質問に際して
OSの種類(XP/Vista/7)や32/64ビット版の違い、利用するAutoHotkeyのバージョンを明記すること。
また、操作したいソフト・やりたい処理などは具体的に書いた方がレスが付きやすい傾向にある。

2chの仕様の関係で、このスレではインデントに全角スペースを使ってコードを貼り付ける事があるので、
レスをコピペして利用する場合は行頭の全角スペースをタブ等に置換してから利用すること。

3 :名無しさん@お腹いっぱい。:2013/11/02(土) 18:35:56.32 ID:h5sjW8CN0.net
■過去スレ
@http://pc7.2ch.net/test/read.cgi/software/1098531338/ Attp://pc7.2ch.net/test/read.cgi/software/1129836713/
Bttp://pc11.2ch.net/test/read.cgi/software/1157043396/ Cttp://pc11.2ch.net/test/read.cgi/software/1184556627/
Dttp://pc11.2ch.net/test/read.cgi/software/1201502896/ Ettp://pc11.2ch.net/test/read.cgi/software/1219130051/
Fttp://pc12.2ch.net/test/read.cgi/software/1230694774/ Gttp://pc12.2ch.net/test/read.cgi/software/1243005818/
Http://pc12.2ch.net/test/read.cgi/software/1253888736/ Ittp://pc12.2ch.net/test/read.cgi/software/1265518996/
Jttp://hibari.2ch.net/test/read.cgi/software/1280482227/ Kttp://hibari.2ch.net/test/read.cgi/software/1296446228/
Lttp://anago.2ch.net/test/read.cgi/software/1317156599/ Mhttp://anago.2ch.net/test/read.cgi/software/1333372506/
Nhttp://anago.2ch.net/test/read.cgi/software/1349735581/ Ohttp://anago.2ch.net/test/read.cgi/software/1367725658/

以下FAQ等

■実行環境
Q1:スクリプトに書いた日本語が文字化けしちゃうんだけど...
A1:スクリプトファイルを「UTF-8」の「BOM」付きで保存する。(AHKLの場合)

Q2:初めて使うけどどれを使えばいいの?
A2:AHKLのユニコード版を推奨。
  旧流行らせるページの配布物をそのまま使う場合は本家をそのまま利用する事。
  64ビットOSでAHKL32ビット版の使用は制約が多いので、64ビット版を強く推奨。

4 :名無しさん@お腹いっぱい。:2013/11/02(土) 18:37:03.49 ID:h5sjW8CN0.net
■ リマップ・ホットキー割り当て

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

Q2:「^1::Esc」とリマップ定義したけど [Ctrl]+[1] を押したらスタートメニューが出ちゃうけどどうすればいいの?
A2:リマップは修飾キー(Ctrl,Shift,Alt,Win)の押下状態を引き継いでキー発行するので、[Ctrl]+[Esc] がキー送信されるため。
  これを避けるには、「Send」コマンドを利用して明示的に修飾キーなしのキーを発行をすればよい。
   ^1::Send, {Esc}

Q3:[Shift], [Ctrl], [Alt], [Win]以外を修飾キーとしてキー割り当てしたいよ
A3:コンビネーションキーの機能で実現ができる。
 例) 無変換 + IKJLキーをそれぞれ「↑↓←→」に割り当てたい場合は以下のように記述する。
   sc07B & I::Send, {Blind}{Up}
   sc07B & K::Send, {Blind}{Down}
   sc07B & J::Send, {Blind}{Left}
   sc07B & L::Send, {Blind}{Right}

5 :名無しさん@お腹いっぱい。:2013/11/02(土) 18:37:50.27 ID:h5sjW8CN0.net
Q4:「XX hotkeys have been received in the last XXXXms.」って怒られるんだけど、、、(XXは環境による)
A4:多分自分自身のキーを送って無限ループになっている。 例) 「a::Send, a 」
  先頭に $ を付ければ回避できる(NT系のみ)。 例) 「$a::Send, a」

  #UseHookで全部にキーボードフックを適応する方法でも可。

Q5:キーリマップを使うとキー押下中に連打するけど、マウスボタンの場合は連打しない…
A5:マウスはキーリピートしないので、Loopなどを使って自前でリピートさせてください。

Q6:ジョイスティックのリマップがうまくいきません!!助けて
A6:ジョイスティックではリマップできない。「Send」コマンドでキー発行する必要がある。
   × Joy1::Esc
   ○ Joy1::Send, {Esc}

Q7:ジョイスティックの上下左右に割り当てたいけど、JoyLeft,JoyUpってホットキーは無いの?
A7:無い。AHKのジョイスティックサポートはかなり貧弱なのでプログラマブルにやる必要がある。

Q8:ジョイスティックのボタン1とボタン2の入れ替えなどはどうやってやるの?
A8:AutoHotkeyではできない。

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

■ IME関連

Q1:IMEのOn/Offの切り替えや、状態を得るにはどうすればいいの?
A1:http://www6.atwiki.jp/eamat/pages/17.html の「IME.ahk」を使いましょう。

7 :名無しさん@お腹いっぱい。:2013/11/02(土) 18:38:58.31 ID:h5sjW8CN0.net
Q2:IMEが現在文字を入力している、または変換中であるかどうかを得ることはできる?
A2:↑のIME.ahkで一部可能(IEやFirefox,MS-Wordのようにインライン化しているアプリでは無理)

■ その他
Q1:「a=abc」と「a:="abc"」って違いがある? / 「If a=1」と「If (a=1)」って違いがある?
A1:意味としては違いは無い。単体では、コマンド形式(共に前者)の方が「式」形式(同後者)より*少し*速い。
  複数条件の場合、IfのネストよりはAND(&&)条件で「式」を並べた方が速い。
  が、バッチでかなりの回数(数万↑〜)回したりする場合以外は、体感出来るほどの差はない。

Q2:テキストエディタでキーワードの色づけなどをしたいんだけど。
A2:「{AutoHotkeyのフォルダ}\Extras\Editor」に各種エディタの定義ファイル及びキーワード一覧あり

Q3:GUI作るのめんどくせ〜〜
A3:公式( ttp://www.autohotkey.com/download/ )から SmartGUI Creator をDLして使うと楽。

Q4:AHKってマルチスレッドじゃないの?
  タイマーやMsgBox, WinWait, KeyWaitを使ってるけど思った通りに動かない。
A4:「擬似マルチスレッド」です。最後に割り込んだスレッドが終わるまで元スレッドは動きません。
 MsgBox、WinWait、KeyWait、Process,WaitClose などをタイマーで複数動かす時は注意。
  > 要は処理系統が複数同時に走らないってこと。図にするとこんな感じ。
  > → 実行中、 …:割り込み終了待ち
  > 元スレッド   →→→→→→……………………………………→→→→
  >                  ★割込                ↑再開
  > 割り込みスレ          →→→→…………→→→→→→END
  >                        ◆割込 ↑再開
  > 更に割り込み                →→→END
 ※ AutoHotkey_H(AutoHotkey.dll)を利用すると真のマルチスレッドが利用可。

8 :名無しさん@お腹いっぱい。:2013/11/02(土) 18:39:51.27 ID:h5sjW8CN0.net
Q5:AHK、AHKLx86、AHKLx64の共存は出来る?
A5:それぞれを違うフォルダ(ディレクトリ)にインストールすれば共存できます。
  但し、インストーラーを使って最後にインストールしたAutohotkey(Normal or x86 or x64)
  に対してahkファイルの関連付けが行われますので、レジストリエディタ(Regedit.exe)や
  FileTypesMan等のツールを使って関連付を変更してください。
  ahkファイルをAHK Normal、ahlファイルをAHKLx86、ah6ファイルをAHKLx64といったように
  別々の拡張子に関連付けが可能です。
  それぞれに関連付けしたファイルに対してドラッグアンドドロップを有効にするにはレジストリの
  [HKEY_CLASSES_ROOT\ファイルタイプの名前\ShellEx\DropHandler]
  の (規定) のデータを {86C86720-42A0-1069-A2E8-08002B30309D} にする。

9 :名無しさん@お腹いっぱい。:2013/11/02(土) 21:13:02.87 ID:LgZDMlJy0.net
前スレが終了しそうなのと、別の話題で盛り上がってるようなので新スレに質問を書きます。
別に急ぎませんので、前スレが終わってからお願いします。

ダイアログウインドウのボタンにMouseMoveしたいと思ってます。
条件として、デフォルトボタンかフォーカスがあるボタンへです。

そこで「ControlGetFocus」や「ControlGetPos」を使おうと思ったのですが、
「ControlGetFocus」はボタンにフォーカスがあればclass名は取得できますが、
ボタンの位置は取得できませんし、ボタンにフォーカスがなければ何も取得できません。
「ControlGetPos」はボタンのclass名が分からないとボタンの位置が取得できません。

何か良い方法無いでしょうか?
そもそもデフォルトボタンって取得できマスかね?

10 :名無しさん@お腹いっぱい。:2013/11/02(土) 23:36:23.30 ID:LgZDMlJy0.net
>>1
スレ立て乙でした。
ごめんなさい、言い忘れてました。

11 :名無しさん@お腹いっぱい。:2013/11/03(日) 09:58:21.06 ID:r/31SuUG0.net
ダイアログの確認ボタンてフォーカス当たってる場合が殆どかと思ってたけど違うのもあるんか
デフォルトボタンの取得方法はわからんが

・「OK」「はい」「再試行」「続行」あたりで適当にあたりつけて取得してみる
 (Control指定はClassNNの代わりにラベルテキスト文字も使える)
・WinGet ControlListでZオーダーの一番若いButtonコントロールを探しだす
・特殊なダイアログは諦めて個別に決め打ちで対応させる

あたりかな

12 :名無しさん@お腹いっぱい。:2013/11/03(日) 16:30:12.75 ID:5F74xtIW0.net
>>11
レスありがとうございます。
それと、前スレまだ終わってないのに答えていただき恐縮です。

なるほどー、色々とやり方有るんですね、勉強になります。
リファレンス改めてよく読むと、タイトルなどの除外指定も有るようで、
autohotkeyってかなーり奥が深いんですね。
逆にその分自分にとっては複雑&難解になってしまう訳ですが・・・

13 :名無しさん@お腹いっぱい。:2013/11/04(月) 10:48:38.05 ID:WpkoLKWY0.net
あのー、pert16終了寸前に質問したものです。
そこでお断りしたようにもう一度質問書かせていただきます。(コピペします)

AutoHotkey スレッド part16
http://anago.2ch.net/test/read.cgi/software/1367725658/999-1000
>999 :名無しさん@お腹いっぱい。[sage]:2013/11/04(月) 10:35:59.65 ID:WpkoLKWY0
> MGL使ってるんだけど、pluginのscript内で「menu, tray, icon, 〜」したiconを
> MGL本体のtray iconとは別に独立したtray iconとして表示させる事出来ます?
> (プロセスがMGLの一つに対し、tray iconを二つにする、という意味)

> 今の状態だと、MGL本体のtray iconがpluginのscriptで
> 記述したiconに変わってしまうので宜しくないんですよ。

これ↑お願いします。

14 :名無しさん@お腹いっぱい。:2013/11/04(月) 10:53:08.52 ID:zPNC5Eqx0.net
アイコン2つは多分できないんじゃないかな
プラグイン側のアイコン変更を切るんじゃ駄目なの?

15 :名無しさん@お腹いっぱい。:2013/11/04(月) 11:16:08.93 ID:WpkoLKWY0.net
>>14
ありがと、そーかー無理みたいですか。

実は、icon二つ表示したい理由言い忘れたんで書こうとしたら
レスついてたので情報後出しっぽくてあれだけど、
それぞれのiconをindicator代わりにしたかったんですよ。

無理してpluginにするより、独立して起動させるのが無難…と言うより、それしかないか。

16 :名無しさん@お腹いっぱい。:2013/11/04(月) 13:15:20.52 ID:yGBFVwB30.net
やりかたとしては

ahkを2つ走らせる、お互いのプロセスを監視する、監視でどちらかが消えたら自分も終わらせる

とする感じくらいしか思い浮かばない

17 :名無しさん@お腹いっぱい。:2013/11/04(月) 14:06:10.94 ID:XXUXbFXe0.net
↓ここにある タスクトレイに最小化でahk機能に頼らないタスクトレイアイコン作成のサンプルがある
ただし古いソースなのでANSI版のみ、unicde & x64版でそのままでは動かない
http://ahk.xrea.jp/myscripts/index.html

18 :名無しさん@お腹いっぱい。:2013/11/04(月) 16:02:15.53 ID:WpkoLKWY0.net
>>16-17
レスありがと。
色んなツール(機能)をMGL一本に集中出来れば最高だったんですけど、そう簡単には行きませんね。

19 :名無しさん@お腹いっぱい。:2013/11/04(月) 17:13:01.04 ID:eIOqTGVv0.net
>>18
プラグインから別の場所にあるahkをRunすれば起動は同期できる
pluginsフォルダにサブフォルダ作って入れとくとかね

20 :名無しさん@お腹いっぱい。:2013/11/04(月) 18:57:43.59 ID:WpkoLKWY0.net
>>19
ありがとう。

>>19含め>>16-17
あの…とても言いにくいので黙ってたんですけど、
自分がやりたかったのは、ただ単に、"複数ツールの常駐をMGL一本の常駐で賄うこと"だったんです。
でも、>>13での質問と>>15での理由説明、更に>>18でいい加減なレスと、皆様に誤解を生ませてしまいました。
大変申し訳ありませんでした。

あと各々の貴重なレスは今後の参考にさせていただきます。

21 :名無しさん@お腹いっぱい。:2013/11/04(月) 21:32:20.79 ID:XXUXbFXe0.net
要はinclude でまとめたいってことだろうがMGLが組み込み対応になってるかとか知らんし面倒な予感しかしないね

MGLで質問です
  ↓
住民が詳しすぎるレス
  ↓
すいませんわかんないんで諦めます

ここんとここんなんが多い気がする
ahk全般の汎用解答してもMGLでの応用方法がわからんので結局解決に至れないし
MGL使用者同士で噛み砕いてのレスの応酬されるのも正直ね
スレ消費早くないからいいじゃんてのも違うと思う

で提案なんだが重複スレのほうをMGL専用として活用してはどうか
AutoHotkey スレッド part17
http://anago.2ch.net/test/read.cgi/software/1383489925/

前スレには詳しいMGL使いもいたから解答はつくだろうし
質問者も変にこっちで難解レスもらうよりいいでしょ

22 :名無しさん@お腹いっぱい。:2013/11/04(月) 21:37:50.81 ID:QszsJMvd0.net
あっちこっち視るのが増えるだけで面倒だし、こっちだけでいいよ
何故そんなに分けたがるのかわからん
フォーラム形式なら分けたほうがいいってのは分かるけど

23 :名無しさん@お腹いっぱい。:2013/11/05(火) 00:07:56.81 ID:aAuEnmE40.net
MGLのプラグインいじり回すのはAHKの勉強にもなるんでこっちでいいとおもうな
俺は現にMGLにincludeで機能増やしていってるタイプで、そのほうが機能のコンフリクトとか気にしなくていいもの

ただそのためにMGLをAHKファイルとして理解していく必要はあるけど、わかってくるとなかなか楽しいもんよ

24 :名無しさん@お腹いっぱい。:2013/11/05(火) 01:10:26.70 ID:MjDHj0bL0.net
んまあ、確かにAHKのスレで、MGL専門の話を繰り広げるってのは、perlのスレでperlで書かれた
特定のソフトウェアの設定・改良について話が行われているような違和感を覚えるのは確か。

本筋としては、MGLの話題はAHKのスレではスレチだからよそのスレにどうぞ。ってことになるんだろう
けど、よそのスレでMGLのAHKスクリプトの話をしてもろくに理解もしてもらえないだろう。
それならこのスレでMGLの話をしてもいいんじゃないかな。

AHKを使ってる人もわざわざここ以外のスレを覗きに行くのは面倒だと思うしね。


って、長文書いたけどさ、自治なんて面倒だし適当でいいんでない?

25 :名無しさん@お腹いっぱい。:2013/11/05(火) 01:18:05.29 ID:UyI0Jkoe0.net
>23みたいにMGLは入口でahkに興味出た、スプリクト覚えたいて姿勢の人ならいいと思うけど
殆どの人間はカスタマイズがちょっと難解なマウスユーティリティてな認識で使ってるっぽくない?

ここはahkで作ったツールの使い方を聞くスレではないと思うし、このままズルズルサポート拠点にされるのは嫌だな
あっちこっち見るの大変ていうけど、MGL使ってない人間からしたらそもそもが見る必要ないレスなわけだし

26 :名無しさん@お腹いっぱい。:2013/11/05(火) 14:43:49.77 ID:wJKxtgjw0.net
autohotkeyのスクリプトがかなり長くなってしまったので適度に分割しようと思うのですが、
そうするとこれまで一つのスクリプトでやっていたことを複数のスクリプト間で行わなくてはなりません
そこで
a.ahkからb.ahkにデータを渡して
データを処理したb.ahkがa.ahkに処理済のデータを返す
こういうことを考えたのですがFileAppendでテキストに書き出してやりとりをする以外に何かいい手はありますか?

27 :名無しさん@お腹いっぱい。:2013/11/05(火) 14:47:32.14 ID:1WSJIIB30.net
管理するだけならそれこそincludeでいいんじゃないだろうか

28 :名無しさん@お腹いっぱい。:2013/11/05(火) 15:26:01.71 ID:vtjmO1MN0.net
「AutoHotkeyを流行らせるページ」でDLした、「システムモニタ用関数群」
http://ahk.xrea.jp/myscripts/SystemMonitor.zip の「sample.ahk」
というスクリプトを元に進行状況を表すプログレスバー作ってるのですが、
プログレスバーに反映しないデータがあり、ここで行き詰まっています。
どうしたら反映するんでしょうか?

また、できればこれを関数化したいとも思ってるのですが、
頭が混乱して右往左往しています。

とりあえず、次レスにtestスクリプト晒しますので、
ご協力お願いいたします。

29 :26:2013/11/05(火) 15:27:23.88 ID:wJKxtgjw0.net
説明不足ですみません
はい#includeは使ってきました
ですがそれを多用するよりもできるだけincludeを使わない方法で保守管理しやすくする方法はないかと思ったのです

30 :名無しさん@お腹いっぱい。:2013/11/05(火) 15:29:07.87 ID:vtjmO1MN0.net
col=200 ;barの表示場所左位置
Color=0000ff ;texstとbarの色
BG=000000 ;背景色(透明色)
Gui,Color,%BG%,%Color%
Gui,Font,C%Color% S36,ms gothic
Gui,Margin,2,2
Gui,+LastFound +0x02000000 -0x0CC00000 -Border +ToolWindow +AlwaysOnTop

Gui,Add,Text,x0 y200,進行 %count%`%
Gui,Add,Progress,x%col% yp+0 BackGround%BG% C%Color% vMyProgress w900 h48

Control,ExStyle,0x00000000,msctls_progress321

WinSet,TransColor,%BG% 180 ;透明度

Gui,Show

SetTimer,DrawPerf,1000

DrawPerf:
if count > 100
count := 0
count += 10
GuiControl,,MyProgress,%count% ;barの変化を反映させる(?)
return

フォントが巨大だったり、色が気味悪いとか色々とありますが、test中なのでご勘弁を・・・

31 :名無しさん@お腹いっぱい。:2013/11/05(火) 15:32:51.85 ID:vtjmO1MN0.net
肝心なこと書き忘れました。
>Gui,Add,Text,x0 y200,進行 %count%`%
の%count%が空っぽで何も表示されません。

「MyProgress」は反映してるのに私には理解できませんでした。

32 :名無しさん@お腹いっぱい。:2013/11/05(火) 17:21:07.60 ID:XisEoPDs0.net
>>31
%count% が空で表示されないのは Gui,Add,Text の時点では
count に値が設定されていないから。

count を変更してもテキストに反映されないのは DrawPerf:
の中でテキストを更新する処理を行っていないから。


後者を修正するには例えば次のようにすればよい
・Gui,Add,Text において v オプションで変数を割り当てる(例:vProgressText)
・GuiControl,,MyProgress,%count% の行の直前か直後に次の行を入れる
GuiControl,,ProgressText,%count%`%

33 :名無しさん@お腹いっぱい。:2013/11/05(火) 18:38:03.85 ID:TUF3n1lj0.net
WinSet,Top,,ahk_id %w%

これが動作しません・・・(Bottomのほうは動作するのですが)

ヘルプには「システムの設定によっては動作しない。」と書いてありますが
動作するように出来るのでしょうか?
Win7 x64
AHKL 最新

34 :名無しさん@お腹いっぱい。:2013/11/05(火) 18:42:13.58 ID:vtjmO1MN0.net
>>32
ありがとうございます。

Gui,Add,Text,x0 y200,進行 %count%`% の行を
      ↓
Gui,Add,Text,x0 y200 w200 vProgressText

GuiControl,,MyProgress,%count% の行を
      ↓
GuiControl,,ProgressText,進行 %count%`%

と変更して希望どうり、進行状況の%表示がされるようになりました。

これで関数化に向けて落ち着いて考えられそうです。

35 :名無しさん@お腹いっぱい。:2013/11/05(火) 18:47:53.60 ID:vtjmO1MN0.net
>>34 の訂正です。(ああ、未だ頭が混乱してるかも)
中段の
GuiControl,,MyProgress,%count% の行を
      ↓
GuiControl,,ProgressText,進行 %count%`%

これは、
GuiControl,,MyProgress,%count% 行の下に
GuiControl,,ProgressText,進行 %count%`% 行を追加
が正しいです。

お騒がせしました。

36 :名無しさん@お腹いっぱい。:2013/11/05(火) 18:52:49.57 ID:A12X5On40.net
>>33
AlwaysOnTop ON/OFFすればいい
困ったときは公式ドキュメントも確認しよう。
ttp://l.autohotkey.net/docs/commands/WinSet.htm

37 :名無しさん@お腹いっぱい。:2013/11/05(火) 20:59:21.34 ID:Ad7w0w9P0.net
テンキー0の横の . ←点を変えたくてwindow spyで見て
vk6Esc053にしてみたんですが変わらないみたいで間違ってますか?

38 :名無しさん@お腹いっぱい。:2013/11/05(火) 21:02:19.78 ID:aAuEnmE40.net
Numpaddot::

を使えばいい。てかAHKのキー一覧がググれば出てくるんでそれを参考にするといい

39 :名無しさん@お腹いっぱい。:2013/11/05(火) 21:04:17.15 ID:Ad7w0w9P0.net
>>38
ありがとう一覧探してみます

40 :名無しさん@お腹いっぱい。:2013/11/05(火) 21:14:23.69 ID:TUF3n1lj0.net
>>36
ありがとうございます!
AHK凄い36さん凄い

41 :名無しさん@お腹いっぱい。:2013/11/06(水) 08:14:11.61 ID:luw6m4wR0.net
>>29
関数でどうよ
関数ライブラリ機能使えば楽よー

42 :名無しさん@お腹いっぱい。:2013/11/06(水) 12:13:21.65 ID:RSrnMLVy0.net
素朴な疑問。
MouseGestureL使ってる人、これexe化してる?ahkそのまま?

それと、exe化して使う場合のメリット/デメリット
ahkそのままでのメリット/デメリット
どんなのがある?

43 :名無しさん@お腹いっぱい。:2013/11/06(水) 12:16:36.07 ID:eG5fQhI30.net
ahkのままでつかってる。
ahkのままだとahk本体が必要
exeにすると本体不要

でもメンテとかだとahkファイルのままのほうがいいし、ahk本体も持ち運べるからそんなに重要じゃない。引数わたしとか関連付けて走らせなきゃいけないけれど

exeは関連付けとか引数渡しとかそういう手間がない。全く拡張せず、完全にツールとしてしまうならexeのほうがお手軽

44 :名無しさん@お腹いっぱい。:2013/11/07(木) 08:21:35.59 ID:49NZfEsm0.net
exe化しても、設定変えるごとに再exe化が必要になるから
実質使い物にならんよ

45 :名無しさん@お腹いっぱい。:2013/11/07(木) 08:28:24.18 ID:XVY/Bs2E0.net
ahkを知らない他人が使う場合にexe化して渡してる
自分が自分のPCでしか使わない場合はahkのまま使ってる

46 :名無しさん@お腹いっぱい。:2013/11/07(木) 11:07:39.26 ID:EvraCXzB0.net
>>44
iniファイルの読み書きできるし、パラメーター的な設定変更なら再EXE化の必要はないよ

47 :名無しさん@お腹いっぱい。:2013/11/07(木) 12:02:55.09 ID:fZozRp2a0.net
exeで渡したらahkに出コンパイル可能?

48 :名無しさん@お腹いっぱい。:2013/11/07(木) 12:15:07.05 ID:VCo37QmK0.net
デコンパイル不可のオプションつけてなければ戻せる。
コメントやインデントルールまで再現してくれたかは覚えてないが

自分で使う場合も常駐ahkに組み込むもの以外はわりとexe化してるな、設定はini読み
コマンドラインで動かすものはahkのままだとパラメータの受け渡しが面倒だし
GUI作ったものは普通のツールアプリと変わらんのでexe化したほうがランチャー起動も楽

49 :名無しさん@お腹いっぱい。:2013/11/07(木) 12:19:40.73 ID:MheHlEV90.net
ようは人によるってことよね

AHKをランチャにして使ってる場合AHK上から子AHKファイルを読み出すときはRun,%A_AhkPath%とか使えばいいわけで、他のランチャからならexe化してたほうが楽

50 :名無しさん@お腹いっぱい。:2013/11/07(木) 13:17:49.37 ID:yJQH34AN0.net
ループ中にキーを押されたらスレッドから即座に抜けるようにしたいんですけど可能でしょうか?

スレッド内に判定を書くとそこまで待たなければならないため
別のスレッドを割り込ませてExitやExitAppをやってみたんですけど
Exitは元のスレッドに戻るだけ、ExitAppはスクリプトの常駐自体も解除されてしまうためうまくいきませんでした

51 :名無しさん@お腹いっぱい。:2013/11/07(木) 13:35:05.71 ID:TY9PY+/s0.net
Continuetu 使ったら?

52 :名無しさん@お腹いっぱい。:2013/11/07(木) 14:12:39.84 ID:yJQH34AN0.net
>>51
今やってみましたがContinuetuを別のスレッドで単独で記述するとコンパイルエラーで弾かれるみたいです

53 :名無しさん@お腹いっぱい。:2013/11/07(木) 14:14:04.78 ID:o/nlozLH0.net
Whileで書いて、Getkeystateが1でない間にするとか

54 :名無しさん@お腹いっぱい。:2013/11/07(木) 14:39:51.46 ID:yJQH34AN0.net
>>53
whileも判定は即座にやるわけではないので変わらないと思います
ちなみに現在のコードは
#1::
Loop{
処理1
GetKeyState, state, Esc
if state = D
break
処理2
}
return
で、処理1,2が長いためifで判定するまでキーを押したまま待つ状況です

55 :名無しさん@お腹いっぱい。:2013/11/07(木) 14:56:49.64 ID:MheHlEV90.net
If (Getkeystate("Esc","P")) = 1
break

56 :名無しさん@お腹いっぱい。:2013/11/07(木) 15:16:18.72 ID:dXbI1xB40.net
知らないから適当なこと書くけど、AutoHotkey.dllならフレッドを途中で終了させるのも可能なんじゃないかな?

57 :名無しさん@お腹いっぱい。:2013/11/07(木) 15:24:23.75 ID:yJQH34AN0.net
>>55
記述を変更してみましたが表面上の動作は同じみたいです

>>56
これからバイトなので帰ってきたら調べてみます

58 :名無しさん@お腹いっぱい。:2013/11/07(木) 15:24:25.64 ID:gc30trcW0.net
フレッド君は志半ばにしてこの世を去るか……

59 :名無しさん@お腹いっぱい。:2013/11/07(木) 15:28:45.08 ID:dXbI1xB40.net
なんというタイポ、これは恥ずかしい

60 :名無しさん@お腹いっぱい。:2013/11/07(木) 17:23:34.91 ID:VCo37QmK0.net
処理1、2の内容が分からんので何とも言えんが
WinWait,WinTitle, WinText, 10 とかやってるなら

Loop 10
{
 if GetKeyState("ESC") {
   アボート処理
   Break
 }
 WinWait,WinTitle, WinText, 0.1
}
Until ErrorLevel=0

みたいに数行にばらして処理時間を細切れにするとか

61 :名無しさん@お腹いっぱい。:2013/11/08(金) 19:34:43.04 ID:8yijMNAQ0.net
>>46
仕組みを理解してないようだな
設定は全てMG_Config.ahkに書き出されてそれをincludeする方法だから
設定変えたら再exe化が必要になるのだよ

62 :名無しさん@お腹いっぱい。:2013/11/08(金) 21:28:16.46 ID:UWFJxr4P0.net
そんな頻繁に内容書き換えるんならわざわざコンパイルせんでも。
MouseGesture.ahkの導入ページに書いてある、
AutoHotKey.exeをリネームして、同名、同ディレクトリのahkファイルを読み込むようにする方法じゃあかんの?

63 :名無しさん@お腹いっぱい。:2013/11/08(金) 22:03:29.05 ID:pMVDeGc+0.net
>>42 のexe化の話ってMouseGestureL.ahk"だけ"exe化する話じゃなかったのか?
全てのahkファイルをexe化するなんて発想はなかったよ、>>61 みたいに。

64 :名無しさん@お腹いっぱい。:2013/11/08(金) 22:11:06.66 ID:pMVDeGc+0.net
>>63
あ、俺勘違いしてた。
>>61 ホントすまんかった、適当なこと言って。

65 :名無しさん@お腹いっぱい。:2013/11/09(土) 10:54:54.01 ID:r70LfzOH0.net
ttp://l.autohotkey.net/docs/misc/Threads.htm

ここを読むとGUIイベント(GUIのサブルーチンラベル)でも新しいスレッドが発生するらしいけど
そのスレッドの割り込み優先度を設定する方法ってある?

それともGUIを呼び出したスレッドの優先度が引き継がれるのかね

66 :名無しさん@お腹いっぱい。:2013/11/09(土) 16:15:40.19 ID:JduWIw5T0.net
menu, tray, add, menu&1, menu_1
menu, tray, add, menu&2, menu_2

menu1とmenu2を一つのサブメニュー(submenu)内に入れようと
あれこれやってやっとエラー無く起動したコードがこれなんだけど
やりたいこととは違う。

Menu, &submenu, add, menu_1
Menu, tray, add, &menu1, :&submenu
Menu, &submenu, add, menu_2
Menu, tray, add, menu&2, :&submenu

何がおかしい?どこを直せば良い?

67 :名無しさん@お腹いっぱい。:2013/11/09(土) 16:23:33.45 ID:Dskn8qlD0.net
もしAが起動したらBを閉じて、起動していなければBを開く
Process,Exist,A.exe
If ErrorLevel<>0
Process,Close,B.exe
else
Run,..\..\B.exe

じゃダメなの?難しい

68 :名無しさん@お腹いっぱい。:2013/11/09(土) 17:01:13.15 ID:JduWIw5T0.net
>>67
こういうことしたい?
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

69 :名無しさん@お腹いっぱい。:2013/11/09(土) 17:09:52.81 ID:JduWIw5T0.net
>>68
ちなみに
Process,Exist,notepad.exe
If ErrorLevel<>0
Process,Exist,wordpad.exe
If ErrorLevel<>0
Process,Close,wordpad.exe
else
Process,Exist,wordpad.exe
if ErrorLevel=0
Run,wordpad.exe


だと
notepad.exe が起動中にも関わらずwordpad.exe が起動してしまうね、何故か。

70 :名無しさん@お腹いっぱい。:2013/11/09(土) 17:41:23.45 ID:PcXU61XN0.net
>>66
やりたいことがよくわからんがこういうこと?
Menu, &submenu, add, menu_1
Menu, &submenu, add, menu_2
Menu, tray, add, &submenu, :&submenu
あと>68-69
慣れないうちはif〜else使う時は全部 { }で囲ったほうがいいよ

>>67
IfとElseどっちが上手く行ってないんだかわからんが、後者だとすると相対パスが怪しい
>Run,..\..\B.exe
A_WorkingDirはどうなってる? 条件分岐なしで起動してちゃんと開けるか確認してみ

71 :名無しさん@お腹いっぱい。:2013/11/09(土) 18:42:45.05 ID:JduWIw5T0.net
>>70
どうもありがとう。

>>66でも書いてるけど、単純に
>menu1とmenu2を一つのサブメニュー(submenu)内に入れようと
なので、
Menu, &submenu, add, menu&1, menu_1
Menu, &submenu, add, menu&2, menu_2
Menu, tray, add, &submenu, :&submenu

これでサブメニュー化成功したよ。
それから、質問分かり難くてすまぬ。

>>68-69 の件、{}で括り忘れてた。
ご指摘ありがとう。

72 :名無しさん@お腹いっぱい。:2013/11/09(土) 19:13:31.67 ID:VKMWxPBd0.net
>>65
Thread を書けばいい
ttp://ahkwiki.net/Thread

73 :名無しさん@お腹いっぱい。:2013/11/09(土) 19:15:14.32 ID:Dskn8qlD0.net
>>68-70
ありがとう 初めてで何もわからない状態だったから助かった
#Persistent
SetTimer,OnTimer,2000
return

OnTimer:
Process,Exist,A.exe
If ErrorLevel=0
Process,Exist,B.exe
if ErrorLevel=0
Run,..\..\B.exe
else
Process,Exist,A.exe
If ErrorLevel<>0
Process,Exist,B.exe
If ErrorLevel<>0
Process,Close,B.exe
return
で思い通りに動作した 勝手に定期的に実行してくれるわけじゃないのね
色々自動化出来る気がしてきたから頑張ってみる

74 :名無しさん@お腹いっぱい。:2013/11/09(土) 19:31:54.21 ID:JduWIw5T0.net
>>73
>>71
>慣れないうちはif〜else使う時は全部 { }で囲ったほうがいいよ
と指摘されてるように(自分が^^)

If 〜
{
 処理1
 処理2
}
else
{
 処理3
}

な感じにしないと思うような結果が得られない場合があるから注意した方が良いよ

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



If 〜 {
 処理
}

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

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

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

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

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

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

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

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

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

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

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

84 :名無しさん@お腹いっぱい。:2013/11/09(土) 23:58:17.17 ID:JduWIw5T0.net
>>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 :名無しさん@お腹いっぱい。:2013/11/10(日) 09:14:56.06 ID:uDdR3jCo0.net
いやそれはわかってる
スペース一個じゃインデントしてても見づらいよって話
自分は4タブ(タブ押しでスペース4個分インデント)だが
2タブ、4タブあたりの人が多いんじゃないかね

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>98
振り回しすぎ

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

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

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

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

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

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

If(ahk){
 xxx
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




おやすみ(´・ω・`)

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

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

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

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

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

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

132 :名無しさん@お腹いっぱい。:2013/11/13(水) 12:39:11.95 ID:b8f6krUA0.net
うーん、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 :名無しさん@お腹いっぱい。:2013/11/13(水) 12:39:30.36 ID:GKnPy8OAi.net
MouseGestureL.ahk の専用スレ立てたので、一応お知らせ。

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

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

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

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

137 :名無しさん@お腹いっぱい。:2013/11/14(木) 14:46:14.34 ID:70uZZmDc0.net
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 :名無しさん@お腹いっぱい。:2013/11/14(木) 19:17:27.10 ID:fSUAmxD/0.net
>>137
後もう少しで完成する、問題点は以下の通りがんばれ〜。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

176 :名無しさん@お腹いっぱい。:2013/11/18(月) 12:29:29.97 ID:Lu28XJXP0.net
>>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 :名無しさん@お腹いっぱい。:2013/11/18(月) 15:05:38.93 ID:44Zvdgh/0.net
意外と躓いてる人いるのかな?簡単にメモ書いとく

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 :名無しさん@お腹いっぱい。:2013/11/18(月) 19:37:08.56 ID:m/oJB8p00.net
ポータブル環境でやる場合はいくつか方法がある。
どれが最適なのかは各自の環境で判断してほしい。

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

これでも駄目ってこと?

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

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

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

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

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

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

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

184 :名無しさん@お腹いっぱい。:2013/11/18(月) 22:14:01.45 ID:hRoSj7CU0.net
Lib

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

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

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

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

で相対指定できてるが

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

かな

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

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

TickCount =
Return

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

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

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

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

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

みたいな

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

236 :名無しさん@お腹いっぱい。:2013/11/30(土) 01:48:29.15 ID:nKfwT6LB0.net
質問です
押す度に順に違うキーを送信したいのですが
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 :名無しさん@お腹いっぱい。:2013/11/30(土) 02:02:37.90 ID:/CTVHw590.net

if (var > 2)
 var = 0
return

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

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

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

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

242 :名無しさん@お腹いっぱい。:2013/11/30(土) 10:09:13.26 ID:JlLJ9omk0.net
質問です。拡張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 :名無しさん@お腹いっぱい。:2013/11/30(土) 13:45:05.00 ID:kIvii5lj0.net
おそらくどっかからの丸コピコードで全然理解してないんだろうけど
vk1Dsc07B で検索して引っかかる箇所は一行だけなんだから、修正箇所は分かるでしょ

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

無変換キー送信したい → Sendの特殊キーの項目を確認
http://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 :名無しさん@お腹いっぱい。:2013/11/30(土) 21:38:09.30 ID:+aAc1ReT0.net
MsgBoxダイアログを指定した座標に作ることはできないでしょうか?
MsgBox作成後に移動しようと思いましたがウィンドウじゃないからなのかWinMoveで移動できませんでした・・・

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

F1::
SetTimer,Move
MsgBox
Return

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

263 :名無しさん@お腹いっぱい。:2013/12/05(木) 18:40:18.50 ID:92FJxjTK0.net
>>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 :名無しさん@お腹いっぱい。:2013/12/05(木) 19:06:11.77 ID:hVYR+JZI0.net
>>263
ありがとうございますm(_ _ )m
なるほどAuto-executeセクションに書けばいいんですね

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

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

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

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

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

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

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

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

Gui,Add,Button,,Pause
Gui,show

Label1:
 処理A
 Gosub,Label1
return

ButtonPause:
 Pause,,Label1
return

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

272 :名無しさん@お腹いっぱい。:2013/12/13(金) 06:07:46.79 ID:HWNZLtYL0.net
>>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 :名無しさん@お腹いっぱい。:2013/12/13(金) 07:20:03.85 ID:8uCBpJDm0.net
なるほど!いろいろと勘違いしてたようです。ありがとう

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

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

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

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

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

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

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

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

;プログラム起動処理関数
;存在するならウィンドウアクティブ
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 :名無しさん@お腹いっぱい。:2013/12/17(火) 13:12:16.51 ID:kP0TsYoU0.net
>>279
RegExReplace() ttp://ahkwiki.net/RegExReplace
正規表現で出来るが、これでいいんじゃない?

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

281 :名無しさん@お腹いっぱい。:2013/12/18(水) 11:18:48.94 ID:s1lQxVjC0.net
#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 :名無しさん@お腹いっぱい。:2013/12/18(水) 12:28:18.59 ID:PbPhfpuw0.net
論理和は式のどれかが真になった段階で真が確定する
→どれかが真になった段階で式の評価をやめるから

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

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

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

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

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

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

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

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

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

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

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

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

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

295 :名無しさん@お腹いっぱい。:2013/12/20(金) 11:47:26.18 ID:mlxG5Hkg0.net
>>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 :名無しさん@お腹いっぱい。:2013/12/21(土) 07:25:07.10 ID:58vBPubX0.net
windowの表示を並べたり重ねたりするショートカットが欲しいんですが、
どうすれば良いでしょうか??

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

307 :名無しさん@お腹いっぱい。:2013/12/27(金) 19:54:53.43 ID:jkW/sj760.net
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 :名無しさん@お腹いっぱい。:2013/12/27(金) 22:32:25.31 ID:Tm3zwQ4c0.net
detecthiddenwindows,ONを関数の外に出したらどうなる?

309 :名無しさん@お腹いっぱい。:2013/12/28(土) 00:05:07.06 ID:07ed4QJF0.net
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 :名無しさん@お腹いっぱい。:2013/12/28(土) 00:47:08.71 ID:W6cSodtT0.net
>>309
>動かないでも4回に一回ぐらい動く
どっちなんだよ・・・。

#InstallKeybdHook
sc07B & H::MsgBox

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

311 :307:2013/12/28(土) 01:13:27.92 ID:0Y0bNe0b0.net
>>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 :名無しさん@お腹いっぱい。:2013/12/28(土) 02:50:53.27 ID:AUGVJyBJ0.net
>>311
APIのPostMessageをDllCallで呼んでみては?

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

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

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

314 :名無しさん@お腹いっぱい。:2013/12/28(土) 04:12:42.21 ID:W6cSodtT0.net
>>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.net
面倒だけど、DOWNとUPの両方をフックして
別々にキー発行した方が確実だよ

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

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

317 :名無しさん@お腹いっぱい。:2013/12/28(土) 13:53:08.02 ID:AUGVJyBJ0.net
簡単だよ、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 :名無しさん@お腹いっぱい。:2013/12/28(土) 15:04:01.24 ID:0Y0bNe0b0.net
>>317
分かりやすい説明をありがとう。
具体例を挙げてくれたお陰で、これとwikiの説明も合わせて読むことで
限定的ではありますが、何となく分かったような気がします。
(PostMessage + WM_COMMANDが使えれば満足なので)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

329 :名無しさん@お腹いっぱい。:2014/01/01(水) 00:34:04.55 ID:BejZgA1u0.net
SciTE4AutoHotkey

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AutoHotKeys_L unicode 64bit

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

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

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

362 :名無しさん@お腹いっぱい。:2014/01/07(火) 14:57:06.16 ID:HnLr3QxO0.net
文字列「{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 :名無しさん@お腹いっぱい。:2014/01/07(火) 15:08:35.62 ID:LQVBB70R0.net
Pattern := "}$"

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

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

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

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

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

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

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

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

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

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

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

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

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

372 :名無しさん@お腹いっぱい。:2014/01/09(木) 19:18:49.36 ID:5Gf14WnP0.net
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 :名無しさん@お腹いっぱい。:2014/01/09(木) 19:25:24.39 ID:5Gf14WnP0.net
>>371
http://ux.getuploader.com/autohotkeyl/download/33/AltKGM12.zip
これは枠を強調表示するみたい・・・試してないので詳細不明なんです。

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

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

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

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

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

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

376 :名無しさん@お腹いっぱい。:2014/01/09(木) 21:16:51.01 ID:5Gf14WnP0.net
>>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 :名無しさん@お腹いっぱい。:2014/01/09(木) 21:19:34.41 ID:1hwoDp2F0.net
>>373-374
本当にありがとうございます
試してみます

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

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

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

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

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

380 :名無しさん@お腹いっぱい。:2014/01/10(金) 21:29:28.71 ID:5Jklg+MO0.net
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 :名無しさん@お腹いっぱい。:2014/01/11(土) 11:06:35.83 ID:0NPVogb40.net
これホントだとしたら日本ってつくづくガラパコスだよね

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

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

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

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

次レスへ...

383 :380:2014/01/11(土) 12:15:03.39 ID:L93ysrB90.net
>>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 :名無しさん@お腹いっぱい。:2014/01/11(土) 13:11:55.87 ID:L93ysrB90.net
>>381
オレの場合、実用scriptの数で言うと

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

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

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

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

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

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

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

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

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

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

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

392 :名無しさん@お腹いっぱい。:2014/01/11(土) 21:20:41.28 ID:ZCvYVkOb0.net
+^{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 :名無しさん@お腹いっぱい。:2014/01/11(土) 21:47:05.49 ID:ElkyttuT0.net
つまりautoitの日本語訳作れば大逆転なの

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


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

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

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

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

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

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

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

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

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

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

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

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

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

403 :名無しさん@お腹いっぱい。:2014/01/12(日) 21:44:58.99 ID:eJUQGLfo0.net
Execute string in AHK - Support - AutoHotkey Community
http://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 :名無しさん@お腹いっぱい。:2014/01/12(日) 21:45:38.86 ID:eJUQGLfo0.net
>>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 :名無しさん@お腹いっぱい。:2014/01/12(日) 21:54:15.08 ID:eJUQGLfo0.net
>>403
Exec_Strings()関数内の「cmd_strings := 〜」の行は不要ですた

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

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

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

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

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

409 :名無しさん@お腹いっぱい。:2014/01/13(月) 16:03:58.58 ID:ExwEl34b0.net
やるとしたらこんな感じかな
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 :名無しさん@お腹いっぱい。:2014/01/13(月) 19:57:19.56 ID:oE7uW8Qb0.net
>>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 :名無しさん@お腹いっぱい。:2014/01/13(月) 19:59:10.16 ID:oE7uW8Qb0.net
>>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 :名無しさん@お腹いっぱい。:2014/01/13(月) 20:15:02.55 ID:oE7uW8Qb0.net
突っ込まれる前に一つ分かってることを言っとくと、

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

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

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

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

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

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

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

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

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

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

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

おかしくね?

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

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

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

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

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 :名無しさん@お腹いっぱい。:2014/01/19(日) 13:19:11.21 ID:dvav9W940.net
>>419
訂正です。
実際はforループでValueの値も使いたいので、こっちので良い(スマートな)方法有ったら教えて下さい。

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

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

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

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

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

とか

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

とかは?

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

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

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

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

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

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

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

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

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

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

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

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

SetTitleMatchMode,2
#Persistent
SetTimer AutoClose,500
return

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

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

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

433 :名無しさん@お腹いっぱい。:2014/01/21(火) 16:00:45.35 ID:KTV70fcA0.net
>>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 :名無しさん@お腹いっぱい。:2014/01/21(火) 18:45:16.66 ID:MOe0YTzR0.net
リマップ/ホットキー用スクリプト書くとき、
キー毎にまとめて書くのとアプリ毎にまとめて書くのと
どっちの方が見やすく、管理しやすいでしょうか。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

443 :名無しさん@お腹いっぱい。:2014/01/22(水) 03:31:43.94 ID:wq2B81sk0.net
>>442
要はAutoHotkeyがタッチキーボードで動くのかって事だろ?
すぐに出来るんだし自分で試せばいいじゃん。
動かない、満足しないならGUIでコントローラーでも作ればいい。

444 :名無しさん@お腹いっぱい。:2014/01/22(水) 17:48:33.27 ID:PiZmpAue0.net
いろんなソフトのツールチップの内容をクリップボードにコピーしたいのですが、
スパイでウィンドウクラスを取得しようとしても、ツールチップが途中で消えてしまうので確認できません。

ツールチップの内容をクリップボードにコピーする方法を教えていただけないでしょうか?

445 :名無しさん@お腹いっぱい。:2014/01/22(水) 23:00:13.41 ID:qLNZOlPI0.net
>>442
んで普通のホットキーラベルじゃダメだったの??

446 :名無しさん@お腹いっぱい。:2014/01/23(木) 10:48:40.76 ID:lisqLFvS0.net
7 64bit
タスクバーをalt+Tなどで表示のトグルはできるのですが非表示時にタスクバーがあった範囲が
空白になって最大化などで隙間ができてしまいます
これを解決する記述はありますでしょうか?

447 :名無しさん@お腹いっぱい。:2014/01/23(木) 10:53:27.58 ID:lisqLFvS0.net
タスクバーを自動的に隠すにチェックで一応解決しました

448 :名無しさん@お腹いっぱい。:2014/01/23(木) 14:25:32.26 ID:QMuyJVfa0.net
AutoHotkey.ahkとは別のA.ahkとかを#NoTrayIconで起動してた時に
AAA.ahkを指定して終了させることはできませんか?
タスクマネージャをみても全てAutoHotkey.ahkで見分けがつかず
今は一旦全部終了させてから再度AutoHotkey.ahkだけ起動させてるんですが
A.ahkだけとかB.ahkだけを個別に終了させる方法があれば教えてください

449 :名無しさん@お腹いっぱい。:2014/01/23(木) 14:31:13.16 ID:SizjDSf40.net
>>448
https://sites.google.com/site/agkh6mze/scripts#TOC-AhkTaskMan
俺はこれ使わせてもらってる

450 :名無しさん@お腹いっぱい。:2014/01/23(木) 15:14:48.51 ID:QMuyJVfa0.net
>>449
これは便利そうですありがとうございます

451 :名無しさん@お腹いっぱい。:2014/01/23(木) 16:19:20.30 ID:zAon4KPw0.net
>>450
1.それぞれのahkで WinSetTitle でユニーク度の高いタイトルを設定する。
2.該当ahk終了専用のahkで、WinClose にそのタイトルを指定
3.該当ahkを終了させたい時に、2で作ったahkを起動する。

で、出来ないかな?(実験してない、すまないニダ)

452 :名無しさん@お腹いっぱい。:2014/01/23(木) 16:37:18.06 ID:zAon4KPw0.net
ごめん…適当なこと言ってました。

AHKは、GUI作る以外に自スクリプトにタイトル設定できないみたいだ…

453 :名無しさん@お腹いっぱい。:2014/01/23(木) 17:59:29.95 ID:zAon4KPw0.net
連続で投稿してすまないニダ。

もうちょっと詳しく調べてみて試したらいけた。
;-----------------------------
;AAA.ahk
#Persistent
#NoTrayIcon
ToolTip, テスト表示
;-----------------------------
;terminate.ahk
DetectHiddenWindows, on
WinClose,E:\AutoHotkey\AAA.ahk - AutoHotkey v1.1.14.01 ahk_class AutoHotkey
;-----------------------------
WinCloseに指定するタイトルやクラスは、AHKインストーラ付属のAU3_Spy.exeで調べられる。
AU3_Spy.exeを起動し、調べたいAHKのトレイアイコンを表示して、そのアイコンを右クリックするだけ。

何かアホみたいに簡単だったニダ。

454 :名無しさん@お腹いっぱい。:2014/01/24(金) 14:17:15.78 ID:B/zqX9Ah0.net
最大化時のウィンドウの座標調べたらx:-8 y:-8だった
普通(0、0)じゃないかと思うんだけどなんか画面設定ミスってんのかな

455 :名無しさん@お腹いっぱい。:2014/01/24(金) 15:20:44.11 ID:vgMSApIn0.net


456 :名無しさん@お腹いっぱい。:2014/01/24(金) 15:56:07.01 ID:B/zqX9Ah0.net
枠分は最初からはみ出てるってことですか?
でもあるウィンドウの最大化時にwigetposで得た座標、幅、高さを
最大化してないそのウィンドウに対してWinMoveで指定してやると
最大化した時と違って画面外にはみ出まくった経験があるから
その数値って外枠を反映してないと思ってたけど

457 :名無しさん@お腹いっぱい。:2014/01/24(金) 18:48:06.38 ID:Lzwg6SyD0.net
>>444
ツールヒントウィンドウのテキストの内容を取得
ttp://www.autohotkey.com/board/topic/53672-get-the-text-content-of-a-tool-tip-window/

>>456
過去の質問の続きなら最初のスレ番を名前に書いほしい見にくい。
最大化時は枠分だけ画面外にはみ出すOS仕様、枠サイズ知りたい場合はAPI関数で分かる。

458 :名無しさん@お腹いっぱい。:2014/01/24(金) 19:06:22.92 ID:B/zqX9Ah0.net
>>457
どうもです。まぁきっとこの座標の8ってのが枠の幅だろうと思います。
最大化時には枠分を画面外にはみ出させて、その枠を操作不能、不可視な感じにしてるんですね。
デュアル画面から見えないので枠自体を消してるんだと思ってましたが、これで座標の数字の謎が解けました

459 :名無しさん@お腹いっぱい。:2014/01/24(金) 21:02:37.13 ID:u2ayCEFt0.net
Windows8の64bit版を使っていて、AutoHotkey111401をインストールしました

ttp://bombermine.com/#/play/

↑このページのタイトルのときにキーボードのアプリケーションキーを無効にしようというつもりで
下のように書いたahkファイルをダブルクリックし、通知領域にアイコンは表示されているんですが
上手く出来ません、ご指導ください
あと、ページのタイトルじゃなくてURLを指定することは出来るんでしょうか?

SetTitleMatchMode 2
#IfWinActive Bombermine ? Massively Bomberman Online with up to 1000 players on the single map
AppsKey::return

460 :名無しさん@お腹いっぱい。:2014/01/24(金) 21:57:13.73 ID:ZnuXo7qt0.net
ファイルパス長が知りたくてテキストエディタにコピペして桁数を確認する作業をしてるんですが
AHKで手っ取り早くできないでしょうか

461 :名無しさん@お腹いっぱい。:2014/01/24(金) 23:03:18.69 ID:Lzwg6SyD0.net
>>459
WinTitle指定間違ってるだけ、長いタイトルの場合ブラウザによっては途中で切られるので
誤認識が起きない程度の長さで十分

Bombermine ? Massively Multiplayer Online Retro Arcade with up to 1000 players on the single map - Mozilla Firefox
Bombermine ? Massively Multiplayer Online Retro Arcade with up to 1000 players on the single ma - Internet Explorer

#IfWinActive Bombermine ? Massively Multiplayer Online

462 :名無しさん@お腹いっぱい。:2014/01/24(金) 23:14:16.76 ID:Lzwg6SyD0.net
>>460
Str....
ttp://ahkwiki.net/Commands_Category#str

463 :名無しさん@お腹いっぱい。:2014/01/25(土) 00:24:33.74 ID:PKAQZmlc0.net
>>460
「桁長」って何を指すかによる。 文字数?バイト長(半角NN文字)?

前者なら文字数カウントするだけ。
後者なら内部UTF8なんでちょっと面倒( ア で3バイト)なんで↓の関数使うといい。

/*
* 文字列のバイト長を返す
*/
StrLenB(str) {
 Return (A_IsUnicode) ? StrPut(str, "CP0")-1 : StrLen(str)
}


パス文字列をどう貰って、どう結果を使いたいかが無いので、計算部分だけの回答。

464 :名無しさん@お腹いっぱい。:2014/01/25(土) 10:55:43.53 ID:DuQB+Pwn0.net
v1.1.14.01 - January 15, 2014

本家のHPがいつのまにかリニューアルしてて、あと名前から"L"が取れたらしい
一方で無印のHPも健在
どういうことだってばよ?

465 :名無しさん@お腹いっぱい。:2014/01/25(土) 16:46:10.11 ID:R5KhJJBU0.net
新しいのはインストーラーのみか
zip版希望

466 :名無しさん@お腹いっぱい。:2014/01/25(土) 16:47:07.97 ID:k83nQKoL0.net
zip 版あるよ
ttp://ahkscript.org/download/

467 :名無しさん@お腹いっぱい。:2014/01/25(土) 18:51:23.33 ID:R5KhJJBU0.net
ありがとう

468 :名無しさん@お腹いっぱい。:2014/01/26(日) 18:50:57.66 ID:C4Oh8nOV0.net
v1.1.14.01
Unicode 32-bit

コマンドラインを指定(0〜255の数字)して開くとアクティブウインドウの透明度を変えられるahk作ってるんですけど、
%0%ってコマンドラインの個数入ると思ってましたが違いました?
何故かコマンドラインそのものが入るんですけど、仕様変更になったんでしょか?
だとすると、コマンドラインの個数はどうやって調べるんですか?

CmdLine_num := %0%

if (CmdLine_num > 2) {
MsgBox, 16, , 引数の数 %CmdLine_num%
ExitApp
}

Sleep, 5000

if (CmdLine_num = 1) {
MsgBox, 引数の数 %CmdLine_num%
WinSet, Transparent , OFF, A
}else if (CmdLine_num = 2) {
CmdLine := %1%
MsgBox, 引数の数 %CmdLine_num% 引数 %CmdLine%
if ((CmdLine >= 0) && (CmdLine <= 255)) {
WinSet, Transparent , % CmdLine, A
}
}

469 :名無しさん@お腹いっぱい。:2014/01/26(日) 18:57:15.85 ID:UWuG7v320.net
>>468
CmdLine_num = %0%

470 :名無しさん@お腹いっぱい。:2014/01/26(日) 19:23:28.77 ID:C4Oh8nOV0.net
>>469
ありがとうございました。

この場合、「:=」は使えないんですね。
個人的に変数への代入は、なるべく「:=」に統一したいので
CmdLine_num := 0
CmdLine := 1
とやってみましたが無理でした。コマンドラインの場合はこういうもんだと諦めるしか無さそうですね。

あとどうでもいいんですが、上のスクリプト、if 文に間違いがありました。
if (CmdLine_num > 2) { → if (CmdLine_num > 1) {
if (CmdLine_num = 1) { → if (CmdLine_num = 0) {
}else if (CmdLine_num = 2) { → }else if (CmdLine_num = 1) {

471 :名無しさん@お腹いっぱい。:2014/01/26(日) 20:24:21.08 ID:47p4XgnW0.net
俺も諦めた口だな

472 :名無しさん@お腹いっぱい。:2014/01/26(日) 23:01:56.54 ID:U0PUYvo40.net
どうしても = を使いたくないなら

n := 0
CmdLine_num := %n%

とか

CmdLine := object()
loop,%0%
&nbsp;&nbsp;CmdLine[a_index] := %a_index%
msgbox % "引数の数: " . CmdLine.maxindex()

とか。
%0%もなんだか気持ち悪ければ

loop {
&nbsp;&nbsp;if %a_index% is not space
&nbsp;&nbsp;&nbsp;&nbsp;CmdLine[a_index] := %a_index%
&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;break
}

とか?

473 :名無しさん@お腹いっぱい。:2014/01/26(日) 23:03:46.58 ID:U0PUYvo40.net
&nbsp;使えないのね。
エディタに貼り付けたらすぺーすに変換してちょ。

474 :名無しさん@お腹いっぱい。:2014/01/26(日) 23:57:54.51 ID:C4Oh8nOV0.net
>>472
ありがとうございます。
参考になります。

475 :名無しさん@お腹いっぱい。:2014/01/27(月) 00:52:17.40 ID:WmgrOHKw0.net
>>468
v1.1.14.01Unicode 32-bitと64-bitの両方で試してみたけれど
%0%はやっぱりコマンドラインの個数そのものが入るよ?
それと、どうせなら>>472のものを関数化してしまえばいいかと
getCmdLine(){
global
CmdLine := []
loop,%0%
CmdLine[a_index] := %a_index%
return CmdLine
}

rslt := getCmdLine()
MsgBox,% rslt.maxindex()

実は:=を使わなくてもいいので
getCmdLine()
MsgBox,% CmdLine.maxindex()
こう書くこともできる

476 :468:2014/01/27(月) 21:37:24.30 ID:r+/i0w0R0.net
468です。
>>475
以下のスクリプトを適当なコマンドラインオプション付けて実行すれば分かって貰えるかと。
違いは、「:=」になってるか、「=」になってるかだけです。(ブラウザの表示フォントによって見づらいかもしれません)
あと>>475のスクリプトは参考にさせていただきます。ありがとうございました。

CmdLine := %0%
MsgBox, 引数の数 : %CmdLine%

CmdLine = %0%
MsgBox, 引数の数 : %CmdLine%

477 :名無しさん@お腹いっぱい。:2014/01/27(月) 23:21:49.05 ID:OcLv5Pvb0.net
%0%には間違いなくコマンドライン引数の数が入ってるけど、
CmdLine := %0% だと %0% の中身がでてきて、それがさらに変数名だと解釈される。
つまり引数が1つなら CmdLine = %1% だし、2つなら = %2% と同じ意味になって、
渡した引数の最後が出てくる。

foo := "bar"
bar := "ばあ!"
msg := %foo%
msgbox % msg

478 :名無しさん@お腹いっぱい。:2014/01/27(月) 23:27:24.86 ID:FZRoLMho0.net
指定フォルダ以下を正規表現でリネームするのください
RegularRenamer使って組んでみたけど
しょっちゅう失敗するダメプログラムしか出来ませんでした……

479 :名無しさん@お腹いっぱい。:2014/01/28(火) 00:03:08.59 ID:ymDXoIqa0.net
いっそ外部プログラムに任して起動とコマンドラインだけ送る
そのあと常駐しないように閉じるとかな

たしかに出来ないことはないんだけど何もかんもAHKでやらんでもいい気もしなくもない

480 :名無しさん@お腹いっぱい。:2014/01/28(火) 00:41:53.37 ID:991f2vxH0.net
>>478
「リネームソフト 正規表現」 でまず検索

ここはスクリプをトクレクレする場ではないので要求するだけムダ
気軽に「こんなソフトありませんか?」スレなら要望に答えて適当なツールを作ってくれることもある
かもしれないのでそっち池

481 :478:2014/01/28(火) 00:55:27.33 ID:lj6Jkt+40.net
2行目を読んでほしかった……
まぁここで頼んでも無駄ですよね

482 :名無しさん@お腹いっぱい。:2014/01/28(火) 01:15:18.91 ID:sopsM8OQ0.net
うん無駄だからもう来んなよ

483 :名無しさん@お腹いっぱい。:2014/01/28(火) 10:23:43.87 ID:POwa9hmO0.net
クレクレは嫌いだけど、>>468みたいなどこがもちがってますか的なのは歓迎
というかloopのファイル検索とFileExist使えば猿でもできるんじゃね

484 :名無しさん@お腹いっぱい。:2014/01/28(火) 10:51:10.82 ID:991f2vxH0.net
添削は勿論いいんだよ、ネットに転がってるの丸ごとコピペして改造頼むはダメだけどな
自分で組んだならそれを貼れば良かったのに、丸ごとなしにして一から作ってくださいじゃ結局ただのクレクレじゃん

485 :名無しさん@お腹いっぱい。:2014/01/28(火) 13:17:54.45 ID:c00SqAlK0.net
クレクレは置いといて
明らかに1行目しか読んでないってひとたまにいるけど
速読術かなんかなの?誤解したらむしろ効率下がってないか

486 :名無しさん@お腹いっぱい。:2014/01/28(火) 17:01:11.39 ID:C7Pgt1zP0.net
>>485

487 :名無しさん@お腹いっぱい。:2014/01/29(水) 07:29:05.00 ID:h8Ym46Jd0.net
>>464のあたりでも話題になってるけどなんで_L取れたの?
紛らわしい

488 :名無しさん@お腹いっぱい。:2014/01/29(水) 08:34:47.01 ID:tb2o5kH60.net
>>487
Lが付いてると派生版という印象が残るからだろ
Autohotkey_Lはもう随分前にAutohotkeyのメインストリームに
なってるし、Lが取れたのは今回からじゃない
正式名称がAutohotkey 1.1で、通称がAutohotkey_Lになってた

489 :名無しさん@お腹いっぱい。:2014/01/31(金) 23:27:30.84 ID:N3v2cjm20.net
AHKのせいでLinuxに移行できない

490 :名無しさん@お腹いっぱい。:2014/01/31(金) 23:27:39.03 ID:GnyFvLrG0.net
AHKでWindows7の音声デバイス出力を切り替えるにはどうすればいいですか?
WaveDevice.ahkという名前のものを参考にいろいろやってみてるのですが、おそらくwindows7では使えないみたいです

491 :名無しさん@お腹いっぱい。:2014/02/01(土) 00:02:11.81 ID:phGKBjm80.net
VA.ahkで出来るんじゃね?

492 :名無しさん@お腹いっぱい。:2014/02/01(土) 00:26:54.01 ID:TtsDpLi60.net
Linuxになんで移植されないか不思議なレベル

493 :名無しさん@お腹いっぱい。:2014/02/01(土) 00:33:12.57 ID:oWsUFP5K0.net
Linuxは普通にシェルスクリプトで操縦できるからじゃね?

494 :名無しさん@お腹いっぱい。:2014/02/01(土) 00:37:09.51 ID:9AJzyKTi0.net
Linux版の名前は Autohotkey_L で決まりだな!・・・あれ?

495 :名無しさん@お腹いっぱい。:2014/02/01(土) 00:42:28.44 ID:4BbEZYZ50.net
煽りじゃなくて、LinuxでAHKを使って何をしたいのかがイマイチわかんない。
(windowsでもAHKを使う積極的な理由がよくわからないけど・・・)

496 :名無しさん@お腹いっぱい。:2014/02/01(土) 01:20:35.40 ID:TtsDpLi60.net
キーリマップ
ていうかスペースキーを修飾キーにして使うスクリプトが案外便利なんだよ
アップローダの関数を自分で書き換えたやつだけど

497 :名無しさん@お腹いっぱい。:2014/02/01(土) 06:08:55.80 ID:dnPz412rP.net
かざぐるマウスが解散したから代わりに使いたいんだけど、
マウスジェスチャーはどうやればいいの??

498 :名無しさん@お腹いっぱい。:2014/02/01(土) 06:25:25.90 ID:9ddSvEfU0.net
マウスジェスチャーなら、MouseGestureL.ahkを使うのがいいかと

499 :名無しさん@お腹いっぱい。:2014/02/01(土) 09:51:14.83 ID:aOTtPXC60.net
>>497
>>220

500 :名無しさん@お腹いっぱい。:2014/02/01(土) 11:11:16.77 ID:DQQR/POM0.net
linuxならironがと思ったら404だ

501 :名無しさん@お腹いっぱい。:2014/02/01(土) 13:34:40.26 ID:PQCzOCbO0.net
カーソルの動きを監視する上で一番賢いやり方教えてください

カーソルが2秒動かなかったら画面端に移動、を考えたときに
常にカーソルを監視させると結構な負荷になるのでは?なんて思うんですが

502 :名無しさん@お腹いっぱい。:2014/02/01(土) 16:29:17.90 ID:cwTp10TA0.net
SetTimerでMouseGetposしてポーリングチェックしたらいいんでね
PCの処理速度からしたら2秒ごとなんて屁みたいなもんだし
OnMessage()でMouseMoveイベント拾うより簡単で負荷も少ないと思う

503 :名無しさん@お腹いっぱい。:2014/02/01(土) 19:00:58.26 ID:9AJzyKTi0.net
>>501
SetTimer(監視最小10ms〜) + MouseGetPos
Loop + MouseGetPos + Sleep(無し/10〜)

タスクマネージャで負荷見てもらえば分かるが
待機時間0(Sleep 0)で全力で処理しない限り
CPU負荷は1%も増えない程度の負荷しかない
あとは実際に自分で確かめてほしい。

F1::
Var = 0
Loop,1000 {
ToolTip % Var++
Sleep 0
; Sleep 10
; Sleep 100
}
Return

504 :名無しさん@お腹いっぱい。:2014/02/01(土) 19:19:56.14 ID:Xtn7ZK6j0.net
SetTimerしかない、と言うよりSetTimerで十分、というわけですね
ありがとうございました

505 :名無しさん@お腹いっぱい。:2014/02/02(日) 01:44:50.98 ID:et661Edd0.net
AutoHotkeyを使えばEmacsやviにも劣らない全く新しい強力なキーバインド体系を作れると思うのですが、
それについて意見を持っている方、もしくはそういった方々が集まるところを知っている方がおられましたら御一報を

506 :名無しさん@お腹いっぱい。:2014/02/02(日) 03:41:22.12 ID:otYK2/Je0.net
Gui, Add, ListViewでリストビューの余白(一番最後に追加した項目の下)をクリックしても
gオプションで指定したラベルが実行されます
余白のクリック時には無効にするにはどうすればいいのでしょうか。
もしくは余白クリック時には項目選択のフォーカスが外れるようになる方法はありますか

507 :名無しさん@お腹いっぱい。:2014/02/02(日) 03:42:24.46 ID:otYK2/Je0.net
訂正
>Gui, Add, ListViewでリストビューの余白(一番最後に追加した項目の下)をクリックしても
Gui, Add, ListViewで追加したリストビューの余白(一番最後に追加した項目の下)をクリックしても

508 :名無しさん@お腹いっぱい。:2014/02/02(日) 04:57:19.46 ID:GZAZhxNe0.net
>>507
解説読み飛ばしていないか?・・・。

選択状態(青くなる)、キーボードフォーカス(枠線)
どっちのこと言ってるかわからんがやることは同じ。
GUI関連は項目操作の専用関数が多いのでよく読もう。
ttp://ahkwiki.net/Gui,Add,ListView

リストビューをクリック等(AltSubmitで拡張)操作するとGラベルのサブルーチン実行。

押した項目番号取得 イベント A_EventInfo
テキスト取得 LV_GetText
押した箇所が余白か判断(全ての空白なら) If

分岐→ 小文字有り 別の処理

空白 選択解除 LV_Modify

509 :名無しさん@お腹いっぱい。:2014/02/02(日) 05:47:32.05 ID:otYK2/Je0.net
試してもらえば分かると思いますが、空白クリック時に得られるA_EventInfoが
空白クリック前にフォーカスのあった項目のRawNumberになってしまうから詰まってるわけです
だから>>506
>もしくは余白クリック時には項目選択のフォーカスが外れるようになる方法はありますか
と聞いたのです。

510 :名無しさん@お腹いっぱい。:2014/02/02(日) 08:40:44.56 ID:GZAZhxNe0.net
>>509
何言ってるのか追加の説明でようやく理解した。

GuiControlGet,*2*,Focus または ListViewのHwnd*1*
ControlGet,OutputVar,List,Selected,*1*,*2*

どちらか使ってコントロール指定すれば 「選択中の項目」 内容が分かる。

511 :名無しさん@お腹いっぱい。:2014/02/02(日) 09:30:53.69 ID:khPdHqUR0.net
項目番号取得の際に A_EventInfo の代わりに LV_GetNext() を使う方法もあるよ

[solved] A_EventInfo in ListViews - Support - AutoHotkey Community
ttp://www.autohotkey.com/board/topic/82268-solved-a-eventinfo-in-listviews/

512 :名無しさん@お腹いっぱい。:2014/02/02(日) 18:02:24.06 ID:otYK2/Je0.net
>>510
>>511
亀レスすみません。
できました!ありがとうございました。

513 :名無しさん@お腹いっぱい。:2014/02/02(日) 18:07:05.65 ID:otYK2/Je0.net
誰得追記
LV_GetNext()の第一引数を省略するのが重要だったみたいです。0指定とかだと駄目
>StartingRowNumberが省略された場合は、一番上の選択されている項目を返す。

514 :名無しさん@お腹いっぱい。:2014/02/02(日) 18:23:06.79 ID:otYK2/Je0.net
LV_GetNext( ,"F")でも>>506状態になってしまい、LV_GetNext("F")としないと駄目っぽいです
一応書いておきます。何度もすみません。

515 :名無しさん@お腹いっぱい。:2014/02/02(日) 18:47:40.76 ID:QTNRNSb60.net
>>514
自分も試してみたが罠仕様だなw

○ LV_GetNext(0) LV_GetNext("0") LV_GetNext("F")
× LV_GetNext( ,"F") LV_GetNext("","F") LV_GetNext("0","F") LV_GetNext(0,"F")

516 :名無しさん@お腹いっぱい。:2014/02/03(月) 17:09:54.47 ID:hp6TH6aw0.net
AHKで作成したGuiであらゆるイベント毎に指定サブルーチンを実行することはできないでしょうか?
フォーカスコントロールの移動、どこどこがクリック、ダブルクリックされた等を
A_GuiEvent A_GuiControlEvent A_EventInfo等を使って監視したいのですが

色々構想はあるのですが、とりあえず今やりたいことは
ある1つのEditにフォーカスがある時のみ入力内容を反映したサジェスト候補リストを表示、
フォーカスが外れたら非表示という動作がしたいです。
EditコントロールのGオプションで指定したラベルは文字入力時にしか実行されないようです。

今のところsettimerとGuiControlGet, , Focusで代用しているのですが
ちょっと煩雑だし、汎用性がないので…
知ってる方がいればよろしくお願いします

517 :名無しさん@お腹いっぱい。:2014/02/03(月) 18:19:31.92 ID:qFane3Cx0.net
>>516
SetTimer + GuiControlGet, , Focus でフーカス監視するのが正解。
慣れれば簡単で好きなように出来るので汎用性は非常に高いと思うが・・・。

518 :名無しさん@お腹いっぱい。:2014/02/03(月) 19:22:09.82 ID:VMweUeRP0.net
イベントドリブンでやりたいならOnMessage()使うとかかな

519 :名無しさん@お腹いっぱい。:2014/02/03(月) 19:25:32.58 ID:hp6TH6aw0.net
特定コントロールフォーカス時のマウスボタン、キー押下等の監視もする場合があるので
色々なコントロールやGui自体でListViiewのイベントの項目(http://ahkwiki.net/Gui,Add,ListView#.E3.82.A4.E3.83.99.E3.83.B3.E3.83.88)
みたいな感じの動作ができたら楽だなと思ったもので
とりあえずSetTimerのゴリ押しで行きます
ありがとうございました

520 :名無しさん@お腹いっぱい。:2014/02/03(月) 19:29:25.67 ID:hp6TH6aw0.net
>>518
OnMessage()かー
前に一度やって自分のあまりの知識の無さに挫折したんですよね
自分がやるとメッセージリストの検索でまた時間取られそうなw
まぁぼちぼち試してみます
ありがとうございます

521 :名無しさん@お腹いっぱい。:2014/02/04(火) 05:40:02.95 ID:of3pvWzN0.net
質問者ではないが使ったことなかったので練習がてらに書いてみた。

Gui,Add,Edit,ReadOnly vEdit
Gui,Add,Text,HwndTEXT1,########テスト1########
Gui,Add,Text,HwndTEXT2,########テスト2########
Gui,Show
OnMessage(0x0200,"MouseMove") ;WM_MOUSEMOVE
Return

MouseMove() {
global TEXT1,TEXT2
MouseGetPos,,,,OutputVarControl,2
If OutputVarControl in %TEXT1%,%TEXT2%
{
ControlGetText,OutputVar,,ahk_id %OutputVarControl%
GuiControl,,Edit,%OutputVar%
}Else
GuiControl,,Edit
Sleep 100
}

522 :名無しさん@お腹いっぱい。:2014/02/06(木) 02:19:31.64 ID:wV6viU6T0.net
active windowsになっているプログラムの実行パスを取得するにはどうすればよいですか?
WinGetかなとは思ったのですが、WinGetだけではできませんでした

523 :名無しさん@お腹いっぱい。:2014/02/06(木) 03:11:52.51 ID:Bg9Ms6BJ0.net
>>522
WinGetだけで出来ます、説明をよく読みましょう。
ttp://ahkwiki.net/WinGet

524 :名無しさん@お腹いっぱい。:2014/02/06(木) 03:23:15.80 ID:Bg9Ms6BJ0.net
変だと思って調べてみた所、更新の止まっている
流行らせるページ、AutoHotkeyJpには載っていないようですね。

525 :名無しさん@お腹いっぱい。:2014/02/08(土) 00:19:17.81 ID:AqHfAhBgP.net
.ahkファイルを複数のPCで共有&同期したいんだけど、.ahkファイルをDropboxに突っ込んで、そこから読み込むようにしたいんだけど、それって可能?

もしくは別の方法で共有&同期する方法ある?

526 :名無しさん@お腹いっぱい。:2014/02/08(土) 00:31:44.43 ID:mMEmM45C0.net
可能

527 :名無しさん@お腹いっぱい。:2014/02/08(土) 00:47:15.44 ID:UUNC6mIK0.net
・フォルダ共有
・NASに置く

528 :名無しさん@お腹いっぱい。:2014/02/08(土) 00:49:51.99 ID:NQ9B7dwp0.net
・Dropbox

あ、重要なデータはおいちゃだーめよ

529 :名無しさん@お腹いっぱい。:2014/02/08(土) 01:02:33.11 ID:P7x1FtRR0.net
>>523-524
ありがとうございます。助かりました

530 :名無しさん@お腹いっぱい。:2014/02/08(土) 11:33:03.68 ID:AqHfAhBgP.net
>>527
>>528
どうやってahkの読み込み先を変更すればよいの?

531 :名無しさん@お腹いっぱい。:2014/02/08(土) 14:23:17.79 ID:cQ3kvOdz0.net
Installer.ahkをもっかい実行しろ

532 :名無しさん@お腹いっぱい。:2014/02/08(土) 18:50:40.66 ID:0IE70OTc0.net
無変換キーを押した場合
無変換キー+エンター+スペースという動作にしたかったのですが
(例えば、かな入力時あいうえおと打って無変換キーを押すと"aiueo "にしたい)
と思い見よう見まねで
vk1Dsc07B::Send,{vk1Dsc07B}{enter}{space} *{f9}のほうが良かったかも
としたらキーが無茶苦茶になって操作不能になりセーフモードで直しました
次に
vk1Dsc07B::Send,{vk1Dsc07B}{enter down}{enter up}{space down}{space up}
これも無茶苦茶になりました
mousegesturelも使っているのですがまったく記述の仕方が違うのでしょうか?
どなたか希望のような記述を教えていただけないでしょうか?

533 :名無しさん@お腹いっぱい。:2014/02/08(土) 18:59:18.55 ID:UUNC6mIK0.net
文の意味が分からん

常時フックモードで使うぐらいしら思いつかんな

534 :名無しさん@お腹いっぱい。:2014/02/08(土) 19:12:58.05 ID:AqHfAhBgP.net
>>532
要するにMac風にしたいわけだね。
autohotkeyではなく、普通にIMEのキーバインド変えた方が楽だよ。IMEのキーバインドの中に、半角英数変換、かな変換共にあるよ。

535 :名無しさん@お腹いっぱい。:2014/02/08(土) 19:16:12.63 ID:qzQ9Di4b0.net
F10じゃダメなの?

536 :名無しさん@お腹いっぱい。:2014/02/08(土) 19:26:33.36 ID:h8PUD/iW0.net
試行錯誤が楽しい時期と見た

537 :名無しさん@お腹いっぱい。:2014/02/08(土) 19:39:33.89 ID:0IE70OTc0.net
{f10}の間違いでした
例えば"aiueo kakikukeko"と打ちたい時
あいうえおの後{f10}押してもその後に" "の部分はエンター押してスペース押さないとじゃないですか

538 :名無しさん@お腹いっぱい。:2014/02/08(土) 19:53:40.27 ID:0IE70OTc0.net
根底にあるのは常にIMEオンで使いたいんです
いちいち切り替えや状態確認がめんどいんです
で、英語となるといちいち単語ごとにF10押して確定してスペースの作業がめんどいんです
I LOVE NY にしたい時
いぉヴぇnyの後F10押して確定してILOVENY,その後Iの後とLOVE後の後スペース
または
い打ってF10打って確定押してスペース押して"I ",ぉヴぇ打ってF10押して確定してスペース売って"LOVE "
この一連の作業をF10打ったらもうエンター+スペースまで打たせたいんです

539 :名無しさん@お腹いっぱい。:2014/02/08(土) 20:10:01.54 ID:1LMkP+lW0.net
>>538
無変換キーにIMEオフを、変換キーにIMEオンを割り当てる。(IME.ahkを使うと簡単)
日本語打ちたいときは、常に変換キーを押してから入力する。
アルファベットのときは、常に無変換キーを押してから入力する。

540 :名無しさん@お腹いっぱい。:2014/02/08(土) 20:12:55.36 ID:h8PUD/iW0.net
たとえばI Love My Angelって打ちたかったらShift押してi打てばそのままずっと英字で打てるけど。半角空白も入力できる
全部小文字/大文字にしたいってならその時はF10を押せばいい

541 :名無しさん@お腹いっぱい。:2014/02/08(土) 20:23:20.27 ID:0IE70OTc0.net
まあそれはわかってるんですがそういうの細かいところを自分の好きな仕様にするためのもんでしょこれ・・・

542 :名無しさん@お腹いっぱい。:2014/02/08(土) 20:23:51.90 ID:0Of2OTj70.net
sc07B::
Hotkey, sc07B, Off
Send, {sc07B}{enter}{Space}
Hotkey, sc07B, On
Return

どうだろう

543 :名無しさん@お腹いっぱい。:2014/02/08(土) 20:28:45.16 ID:0IE70OTc0.net
完璧です!
ありがとうございました

544 :名無しさん@お腹いっぱい。:2014/02/08(土) 20:31:48.37 ID:GOHyt04Q0.net
確定前の文字列が 「いぉヴぇny」 だと何入力してるのか確認できないのでミスタイプが多くなる。
>>539-540 の様な動作を覚えて変な癖直すべきだと思うが・・・。

545 :名無しさん@お腹いっぱい。:2014/02/08(土) 20:52:25.30 ID:0IE70OTc0.net
Google IMEだと英語でも変換対象になるから無理

546 :名無しさん@お腹いっぱい。:2014/02/08(土) 20:53:41.18 ID:0Of2OTj70.net
sc07B::Send, {%A_ThisHotkey%}{enter}{Space}
これだけでよかったぽ

547 :名無しさん@お腹いっぱい。:2014/02/08(土) 20:55:27.38 ID:0Of2OTj70.net
あれ、やっぱだめかな?w

548 :名無しさん@お腹いっぱい。:2014/02/08(土) 21:02:21.75 ID:h8PUD/iW0.net
先達として忠告しておく。まぁ聞かんでもいいが

キーバインドはなるべく長いものにまかれたほうが良い
ショートカットキー足したりマクロ的に使ったりするのは良いけど根本を変えると何年か後に大変面倒な思いをする
頭硬くなって戻せなくなっても後の祭り

549 :名無しさん@お腹いっぱい。:2014/02/08(土) 21:03:45.25 ID:XS2T1aFQ0.net
好きにさせろって言ってるんだからほっとけばいいw

550 :名無しさん@お腹いっぱい。:2014/02/08(土) 21:30:01.41 ID:x3T5hSk00.net
>>548
その意見に関しては心から同意する。
少しくらい入力が遅くなっても、業界標準キーバインドで安定して高速でPCを扱えるほうがいい。

文筆家みたいな特殊な人は別だろうけど。

551 :名無しさん@お腹いっぱい。:2014/02/08(土) 22:51:30.56 ID:NQ9B7dwp0.net
ていうかそれこそポータブルahkに対して引数指定でahkファイルを指定してやればええんですよ
batでいうとこーんなかんじで

start AutoHotkey_LPortable.exe MouseGestureL.ahk

まぁbatじゃなくてもなんでもいいけど

552 :名無しさん@お腹いっぱい。:2014/02/09(日) 18:00:54.47 ID:jF2iORRVP.net
>>525ですが自己解決しました。
今までautohotkey.exeをスタートアップに入れてましたが、任意の場所(例えばDropbox)に保存したautohotkey.ahkをスタートアップに登録すれば、WAN経由同期いけました。

すごい単純なことですみません。

553 :名無しさん@お腹いっぱい。:2014/02/11(火) 16:21:25.11 ID:6h8k1ts80.net
テキストエディタでVimのヴィジュアルモードを再現するにはどうすればいいんでしょ
次にカーソル以外のキー押すまでShift押しっぱなしにするって感じでしょうか

554 :名無しさん@お腹いっぱい。:2014/02/11(火) 17:44:32.64 ID:Y3d70uuu0.net
まぁ、そんな感じじゃないのかね

使ってるエディタ晒したほうが幸せになれたかもしれないな
エディタの機能であるかもしれないし

555 :名無しさん@お腹いっぱい。:2014/02/12(水) 11:08:44.47 ID:wSTfR33s0.net
Guiでゲーム画面の前面にOn-Screen Display風の表示を作りたいんだけど
OSDの付近をクリックするとそっちがアクティブになってしまいゲームの操作が止まるので困っています
Guiで出したウィンドウを前面に保ちつつマウスに反応させないようにするにはどうすればいいですか

OSDのコードは下のサンプル#4の表示内容を変えたモノです
https://sites.google.com/site/autohotkeyjp/reference/commands/Gui#TOC-Example-4:-On-screen-display-OSD-

一応WinSet, Disable試してみたけどコレジャナイぽい?

556 :名無しさん@お腹いっぱい。:2014/02/12(水) 11:55:21.19 ID:Ar1FApj60.net
>>555
WinSet, TransColor, %CustomColor% 150
の下あたりにでも
WinSet, ExStyle, +0x00080020
を追加はどう?

557 :名無しさん@お腹いっぱい。:2014/02/12(水) 13:08:36.61 ID:wSTfR33s0.net
>>556
できました!ありがとうございます

558 :名無しさん@お腹いっぱい。:2014/02/12(水) 16:12:26.07 ID:NRRZ672s0.net
トレイアイコンの右クリックメニューが出てるアプリの、ウインドウタイトルとウインドウクラスはどうやって調べるんでしょうか?

Loop
{
MouseGetPos, OutputVarX, OutputVarY, OutputVarWin, OutputVarControl
WinGetTitle, win_Title, ahk_id %OutputVarWin%
WinGetClass, win_class, ahk_id %OutputVarWin%
ToolTip, % win_Title "`n" win_class "`n" OutputVarWin "`n" OutputVarControl, 300, 300
Sleep, 500
}

これで、メニューの上にマウスを持っていっても取得できませんでした。
WinGetTitle, win_Title, A とかはもちろん(?)だめでした。

559 :名無しさん@お腹いっぱい。:2014/02/12(水) 18:05:09.08 ID:YaFqeY8f0.net
>>558
タスクトレイアイコン操作 by流行らせるページ管理人
ttp://ahk.xrea.jp/myscripts/index.html

560 :名無しさん@お腹いっぱい。:2014/02/12(水) 18:37:41.93 ID:kL37wBOJ0.net
ツールチップ(ホバー?)のCLASSを取得する方法ってあります?

AU3_Spy.exeで見ようにも、フォーカスを合わせられなくって

561 :名無しさん@お腹いっぱい。:2014/02/12(水) 18:44:37.65 ID:YaFqeY8f0.net
>>560
ToolTipで表示させたら?

>>457
> >>444
> ツールヒントウィンドウのテキストの内容を取得
> ttp://www.autohotkey.com/board/topic/53672-get-the-text-content-of-a-tool-tip-window/

562 :名無しさん@お腹いっぱい。:2014/02/13(木) 12:16:09.88 ID:1i3mbw+A0.net
>>559
返事遅くなりすいません。
レスありがとうございます。

教えていただいたスクリプト試してみました。
これ、トレイアイコンの情報を取得できるのは出来るのですが、
アイコンの番号(A_Index)を指定する必要があり、
>>558で質問したような特定(不定)アイコンの情報が取得できません。

どうにかしてマウス位置(マウス右クリック位置)のアイコンの番号取得できればいいんですが…
良い方法がないかもうちょっと捜してみます。

cnt:=Tray_GetCount()
DetectHiddenWindows,On
Loop,%cnt%{
Tray_GetInfo(A_Index,hwnd,uid,msg,hicon)
WinGetTitle, win_Title, ahk_id %hwnd%
WinGetClass, win_class, ahk_id %hwnd%
ToolTip,% A_Index " of " cnt "`n" msg "`n" uid "`n" hwnd "`n" hicon "`n" win_Title "`n" win_class, 500, 300
Sleep, 1000
}

563 :名無しさん@お腹いっぱい。:2014/02/13(木) 19:06:43.83 ID:86uKXPm70.net
右クリックしてコンテキストメニューを表示させているなら
ifwinexist, ahk_class #32768
で取得してそっからアプリのProcessを取得して
processから本体側のタイトルとクラスを取得していける。

564 :名無しさん@お腹いっぱい。:2014/02/14(金) 10:17:52.13 ID:D/PNCwNX0.net
今日インストールしてみて、わからないことがあったので質問させてください。


Process,Exist,notepad.exe ;メモ帳が起動しているかどうかを調べる
If ErrorLevel<>0 ;起動していた場合(ErrorLevel変数にプロセスIDが格納される)
WinActivate,ahk_pid %ErrorLevel% ;そのプロセスのウィンドウをアクティブにする
else ;起動していなかった場合
Run,notepad.exe ;メモ帳を起動する

wikiにあるこちらの例はスクリプトに貼り付けて、スクリプトをリロードするだけでは使えないのでしょうか?

565 :名無しさん@お腹いっぱい。:2014/02/14(金) 11:09:43.20 ID:EDED/A400.net
使えるよ

566 :名無しさん@お腹いっぱい。:2014/02/14(金) 11:50:23.74 ID:aOjHick40.net
>>564
おそらく貼り付ける位置に問題がある

スクリプトをロードした時に実行されるのは、スクリプトの最初のほうの
Auto-execute セクションと呼ばれる部分のみ
具体的には、最初に Return, Exit あるいはホットキーラベルが現れるまで
ttp://ahkwiki.net/Scripts

567 :名無しさん@お腹いっぱい。:2014/02/14(金) 12:20:26.58 ID:D/PNCwNX0.net
>>566
ありがとうございます。使えました。
ということは、いくつものスクリプトを同じファイルで使うということは出来ないんですね。
常駐させる奴はタスクバーに表示させない、と言ったやり方で対処したいと思います。ありがとうございました

568 :名無しさん@お腹いっぱい。:2014/02/14(金) 12:26:31.14 ID:D/PNCwNX0.net
すいません、ということは、起動時に複数のスクリプトを実行させたい場合は全てのスクリプトををスタートアップに入れておくということでしょうか?

569 :名無しさん@お腹いっぱい。:2014/02/14(金) 12:45:12.53 ID:amEmyV0AP.net
>>567
いやいや、普通に複数スクリプト使えるって。
先ずは落ち着いてWikiを読め。

570 :名無しさん@お腹いっぱい。:2014/02/14(金) 12:52:12.39 ID:amEmyV0AP.net
単独でALTを押した時にメニューにフォーカスが行くのを止めたい(かつ、Alt%2b何かのキーによるショートカットは止めない)と思ってるんだけど、なかなかうまくいかない。

~LAlt::Return

じゃダメなのかしら?
ちなみに

~!::Return

だと通常の文字入力のときに感嘆符が打てなくなる。

571 :名無しさん@お腹いっぱい。:2014/02/14(金) 12:53:19.37 ID:amEmyV0AP.net
バグった。
Alt%2b何かのキー

Alt + 何かのキー

572 :名無しさん@お腹いっぱい。:2014/02/14(金) 13:14:36.20 ID:7n69BZy10.net
~Alt up::Return ?

573 :名無しさん@お腹いっぱい。:2014/02/14(金) 13:30:41.98 ID:D/PNCwNX0.net
>>569
一応概要からイントロダクション、使用例、使用方法まで読んだんですけどどこに載ってますか?

574 :名無しさん@お腹いっぱい。:2014/02/14(金) 13:35:39.25 ID:D/PNCwNX0.net
>>569
すいません、わかりました。どこに書いてある、というより初歩的すぎて書いてないって感じですね、ありがとうございました、

575 :名無しさん@お腹いっぱい。:2014/02/14(金) 13:42:37.69 ID:D/PNCwNX0.net
何度もすいませんわかってなかったです。

;AutoReload
#IfWinActive, ahk_class SciTEWindow

~^s::
ScriptName := "AutoHotkey.ahk"
IfWinActive, %ScriptName%
{
Reload
}
Return

;無変換キーを使って集結
vk1Dsc07B & I::Send,{Blind}{Up}
vk1Dsc07B & J::Send,{Blind}{Left}
vk1Dsc07B & K::Send,{Blind}{Down}
vk1Dsc07B & L::Send,{Blind}{Right}
vk1Dsc07B & Space::Send,{Blind}{Enter}
vk1Dsc07B & vk1Csc079::Send,{Blind}{BS}
vk1Dsc07B & vkF2sc070::Send,{Blind}{Del}

これで、下の無変換キーを使って集結のほうが動作しないんですが、どこが問題なんでしょうか?別々だと動作するんですが

576 :名無しさん@お腹いっぱい。:2014/02/14(金) 14:08:11.19 ID:SwuloIgJ0.net
だから>>1の解説サイトよく読んでから質問しろって
読んだけど書いてないとかどこに書いてる?とか言うなよ

577 :名無しさん@お腹いっぱい。:2014/02/14(金) 16:51:58.83 ID:EDED/A400.net
SciTEWindow でだけ効かせたいならそれであってるハズ
無変換以降は全域で効かせたいなら Returnの後に

#IfWinActive

を入れる

578 :名無しさん@お腹いっぱい。:2014/02/14(金) 16:56:49.09 ID:VK8WbLx20.net
>>575
書いてあるんだからよく読めって言われても仕方が無いな・・・。

#IfWinActive - 本ディレクティブが記述された部分より後で定義されるホットキーは、記述された条件に一致しているときのみ有効になる。
http://ahkwiki.net/-IfWinActive

579 :558=562:2014/02/14(金) 18:01:13.52 ID:7rme8u8l0.net
>>563
レスありがとうございます。
また返事遅くなりすいません。

下のようにやってみたんですが、win_Titleは常に空でwin_classは常に#32768になってしまいます。
何が悪いんでしょうか?

DetectHiddenWindows,On
Loop {
ifwinexist, ahk_class #32768
{
hwnd := WinExist(ahk_class #32768)

;プロセスID(1)
WinGet, process_id, Pid, ahk_id %hwnd%
WinGetTitle, win_Title, ahk_pid %process_id%
WinGetClass, win_class, ahk_pid %process_id%
ToolTip, % "1) " process_id "`n" win_Title "`n" win_class, 500, 300
Sleep, 500

;ProcessName
WinGet, name, ProcessName, ahk_id %hwnd%
WinGetTitle, win_Title, ahk_exe %name%
WinGetClass, win_class, ahk_exe %name%
ToolTip, % "2) " name "`n" win_Title "`n" win_class, 500, 300
Sleep, 500

次レスへ続きます。

580 :名無しさん@お腹いっぱい。:2014/02/14(金) 18:02:02.50 ID:7rme8u8l0.net
前レスからの続きです。

;プロセスID(2) ErrorLevel にプロセスIDが入る
Process, Exist, %name%
WinGetTitle, win_Title, ahk_pid %ErrorLevel%
WinGetClass, win_class, ahk_pid %ErrorLevel%
ToolTip, % "3) " ErrorLevel "`n" win_Title "`n" win_class, 500, 300
Sleep, 500

;ProcessPath
WinGet, path, ProcessPath, ahk_id %hwnd%
WinGetTitle, win_Title, ahk_exe %path%
WinGetClass, win_class, ahk_exe %path%
ToolTip, % "4) " path "`n" win_Title "`n" win_class, 500, 300
Sleep, 500
}
}

581 :名無しさん@お腹いっぱい。:2014/02/14(金) 18:50:35.88 ID:ibidV+Wz0.net
>>579-580

f12:: ;タスクトレイのアイコン上でF12を押す
send, {rbutton}
sleep, 200
gosub, test1
return

test1:
ifwinexist, ahk_class #32768
{
hwnd := WinExist(ahk_class #32768)
WinGet, process_name, ProcessName, ahk_id %hwnd%
send, {alt} ;alt または esc 等でコンテキストメニューを消す。
sleep, 200
;消さずに以下を実行するとコンテキストメニューのタイトル(空)とクラス(#32768)を取得してしまう。
DetectHiddenWindows,On
process, exist, %process_name%
WinGetTitle, win_Title, ahk_pid %errorlevel%
WinGetClass, win_class, ahk_pid %errorlevel%
msgbox, %process_name%`n%win_Title%`n%win_class%
}
return

582 :名無しさん@お腹いっぱい。:2014/02/15(土) 00:48:50.69 ID:f4DnLuvh0.net
$LButton::
{
if (hoge)
{
;特殊処理
}
else
{
;AHKでなにもせずに通常の処理に戻す
}
}

のように行いたいと考えています
” ;AHKでなにもせずに通常の処理に戻す”
の部分はどう記述すればいいのでしょうか?

583 :名無しさん@お腹いっぱい。:2014/02/15(土) 02:29:12.35 ID:f4DnLuvh0.net
初歩的な質問ですみません
A::
if (GetKeyState("A", P) = 1)
ってのは不可能なのでしょうか
A::
if (GetKeyState("B", P) = 1)
なら問題なく動作します

Aを押している間動作ってことをやりたいのですが上手く動作しません

584 :名無しさん@お腹いっぱい。:2014/02/15(土) 05:05:39.60 ID:sfhBVkfx0.net
>>582-583
ID:D/PNCwNX0
リファレンス/コマンド全部読み直し
適当に読み飛ばしすると余計時間かかるぞ。

585 :名無しさん@お腹いっぱい。:2014/02/15(土) 07:52:03.27 ID:cZMauSUs0.net
鯖復活

586 :名無しさん@お腹いっぱい。:2014/02/15(土) 09:13:00.90 ID:kF8klSJH0.net
ATOK2014にしたらime.ahkの制御が何かうまくいかないときが出てきました
imeが本当は無効になっているのをime.ahkが認識してくれないことがあります
ATOKの新規機能にそれらしき原因が見当たらないのでどうもできない状況です
どうすればいいでしょうか

587 :名無しさん@お腹いっぱい。:2014/02/15(土) 10:45:10.14 ID:cZMauSUs0.net
IME.ahkのバージョンが古いんじゃなきゃTSF関連かな?
IME.ahkはIMM32のAPIしか見れないから新しいIMEでは今後難しくなってくる傾向にはある
MS IMEとかのTSF系のIMEでもON/OFFくらいの基本部分はIMM32互換なので使えてたが
ATOK2014は互換性なくなったんだろうか

IME.ahk 最新版
http://www6.atwiki.jp/eamat/pages/17.html

588 :名無しさん@お腹いっぱい。:2014/02/15(土) 11:41:58.42 ID:hK3msH1X0.net
変換キーでIMEの ON/OFF を切り替えるのに IME.ahk を使ってるけど、
ATOK2014で正常に機能するよ
OS は Windows 7 (32bit)、AutoHotkey は最新版の v1.1.14.2、
IME.ahk も最新版(2011.11.10)

589 :579-580:2014/02/15(土) 11:58:18.82 ID:bb5kaDsJ0.net
>>581
レスありがとうございます。
またまた返事遅くなりすいません。

情報取得できました。
・・・のですが、取得した情報が何か変だなと思って「AU3_Spy」で取得した情報と比べてみました。

1)Process Explorer
 a)AU3_Spy
 タイトル:Process Explorer - Sysinternals: www.sysinternals.com [****]
 クラス:ahk_class PROCEXPL

 b)ahk
 タイトル:空
 クラス:tooltips_class32

2)MouseGestureL.ahk
 a)AU3_Spy
 タイトル:(フォルダパス)\MouseGestureL.ahk - AutoHotkey v1.1.14.02
 クラス:AutoHotkey

 b)ahk
 タイトル:MouseGestureL.ahk
 クラス:AutoHotkeyGUI

「AU3_Spy」ってどういう仕組みで取得してるんですかね。
それにしても、トレイアイコン操作するのって大変なんですね、自分が甘かった。

590 :588:2014/02/15(土) 12:04:24.75 ID:hK3msH1X0.net
588
書き間違えた
×IME.ahk も最新版(2011.11.10)
○IME.ahk も最新版(2012.11.10)

591 :名無しさん@お腹いっぱい。:2014/02/15(土) 17:22:46.47 ID:t/wn55/mP.net
>>572

あー押し上げだけ無効化すればいのか。
あっさり出来たね。。。アリガトウ

スレ汚しスンマセン。。。

592 :名無しさん@お腹いっぱい。:2014/02/15(土) 21:39:18.59 ID:znAAlT/C0.net
ホイールの加速をAutohotkeyで設定するとMousegesrelの右クリ+ホイールなどが
効かないのですが解決方法はありあすか?

593 :名無しさん@お腹いっぱい。:2014/02/15(土) 21:46:21.64 ID:kNNpR11H0.net
>>592
WheelAccelを加工(MGLのプラグイン化)して
ホイール回転を全面的に乗っ取るのではなく
MGLのアクションとして加速したホイール回転を指定できるようにする

594 :名無しさん@お腹いっぱい。:2014/02/15(土) 21:49:15.29 ID:8CeIzisp0.net
>>592
競合しないように書けばいい。

595 :名無しさん@お腹いっぱい。:2014/02/15(土) 21:50:46.87 ID:znAAlT/C0.net
Pluginのフォルダに.ahkをいれてMousegesturelを再起動させると必ず固まるのですが
何かやり方がおかしいのでしょうか?
そのままではダメで何か書き足したりするのですか?

596 :名無しさん@お腹いっぱい。:2014/02/15(土) 21:51:52.57 ID:8CeIzisp0.net
>>595
MouseGestureL.ahkの話題は専用スレでよろしく。

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

597 :名無しさん@お腹いっぱい。:2014/02/16(日) 02:58:52.48 ID:g46+e72J0.net
>>595
593で加工するように言われているのだから、そのままではダメだろw きちんと読まないと追加のアドバイスもらえないよ
固まるというのはよく分からんが、おそらくそのまま入れたらMGLが消えるような形になるはず
アイコンを右クリしても日本語メニューが出てこなかったらそういう状態
Gotoを使う等で対処するんだが、他のMGL用に編集されたスクリプトを見た方が早いだろう。それでも分からなければ専スレへ

598 :名無しさん@お腹いっぱい。:2014/02/17(月) 01:16:25.65 ID:axBtvd5v0.net
1.1.14.00 - 2014/01/15

変更: Changed behaviour of ~ prefix with custom combos to be more intuitive.
はどういうことでしょうか?

599 :名無しさん@お腹いっぱい。:2014/02/17(月) 01:36:35.83 ID:geKyk3Mm0.net
>>598
http://ahkscript.org/docs/Hotkeys.htm#Tilde
↓でRButtonを放したら1行目が発動だったのが、押した瞬間発動に変わったってことじゃない?
~RButton::MsgBox You clicked the right mouse button.
~RButton & C::MsgBox You pressed C while holding down the right mouse button.

600 :名無しさん@お腹いっぱい。:2014/02/17(月) 01:50:47.87 ID:SIQsorMfP.net
macみたいに
変換キー=IMEオン
無変換キー=IMEオフ
変換キー2連打=英数をひらがなに再変換
無変換キー2連打=ひらがなを英数に変換

ってやりたいんだけど、どうもうまくいかんなー。IMEのオンオフはできたけど、連打した時の挙動がどうしてもうまくいかない。

601 :名無しさん@お腹いっぱい。:2014/02/17(月) 02:00:43.91 ID:rDZlX/Ea0.net
>>600
IME.ahk

1つのキーに3種類以上の動作割り当て
ttp://ahkwiki.net/SampleCodes

602 :名無しさん@お腹いっぱい。:2014/02/17(月) 03:54:12.26 ID:5hCzFiwr0.net
>>601
「キーボードでマウス操作」のコードに見覚えがあるなぁと思ったら
part15スレで俺が書いたやつだ、ホットキーとSleepの位置が違うけど

まさか普段お世話になっているサイトに間接的に貢献してるとは思わなかったw

603 :名無しさん@お腹いっぱい。:2014/02/17(月) 17:22:23.79 ID:REThUpEP0.net
IME.ahkのIME_GetConvertingなんだけど、LINEってソフトの入力窓だと文字入力中も戻り値が0になってしまう。
変換候補窓が出てるときはちゃんと2が返ってくる。

状態と戻り値がこんな感じ
入力窓がアクティブで文字入力してない(|が点滅):0(仕様どおり)
文字入力中(文字の下に下線)の時:0(仕様では1のはず)
変換候補窓が出てる:2(仕様どおり)

#IfWinActive ahk_class wxWindow ;LINE
AppsKey::
res := IME_GetConverting("A","wxWindow","imejpstcand81")
Msgbox %res%
return

入力中かどうかが知りたかったんだけど、LINEでは無理なんでしょうか?(インライン化されてるってのがこれ?)
それとも関数に渡す引数に誤りがあるのでしょうか

604 :名無しさん@お腹いっぱい。:2014/02/17(月) 22:53:20.43 ID:axBtvd5v0.net
【#モリトーク】第36話:Windows 8にまつわるIMEの裏事情 - 窓の杜
http://www.forest.impress.co.jp/docs/serial/moritalk/20121204_577108.html
TSFの問題?IME.ahkはTSFに対応していなかった気がする

605 :名無しさん@お腹いっぱい。:2014/02/17(月) 22:53:51.95 ID:axBtvd5v0.net
>>599
なるほどそういうことですか
ありがとうございます

606 :名無しさん@お腹いっぱい。:2014/02/20(木) 06:15:11.48 ID:aIC9iezu0.net
ほす

607 :名無しさん@お腹いっぱい。:2014/02/20(木) 21:38:10.96 ID:jz0NW5d+0.net
>>ID:0IE70OTc0
遅レスも遅レスなんだけど、アンタ俺と同じでタッチタイプが苦手らしいな。(違ってたらゴメン)
IMEがオフになってるの気付かずに日本語打ったつもりが入力されてるのがアルファベットで(T_T)
って経験何度もしてるんだろう?分かるよ俺はその気持ちが。

だからと言って、あんな変態仕様にしちゃダメだよ。
悪いことは言わないから、>>539のようなIMEオンオフ切替を徹底するよう心がけ、
もし、IMEがオフのまま日本語打ったときには以下で言うスクリプトを活用するといいよ。

AutoHotkey スレッド part16
>>164-165にある、
>IMEの状態を間違えて打った時に、入力文字の削除、IMEの切り替え、再入力をキー一発で行う
というスクリプトなんだけど、おそらく修正しないとまともに使えないと思う。
(今、俺もこのスクリプトをMGLのプラグインにして使ってるけど、まともに動かす迄修正に時間掛かったよ。)

608 :名無しさん@お腹いっぱい。:2014/02/20(木) 22:16:57.13 ID:D+yxo4pp0.net
howime := IME_CHECK("A")
if (%howime% = 0)
{
Send,+{home}
Backup := ClipboardAll
Clipboard =
Send,^x
IME_ON("A")
ClipWait,1
Send,%Clipboard%
Clipboard := Backup
return
}
else
{
howimemode := IME_GetConvMode("A")
if (%howimemode% = 25)
{
return
}
else
{
IME_SetConvMode("A",25)
return
}
}
return

これのこと?shift+ctrl+leftだと-を単語として認識しないからいっその事+{home}にしちゃえばいいんだよ。

609 :名無しさん@お腹いっぱい。:2014/02/20(木) 23:34:37.54 ID:jz0NW5d+0.net
>>607です。
>>608
ちょっと紛らわしい書き方だったので、修正。
>>607で言ってる、
>>>164-165にある、
は、このスレのではなく、【AutoHotkey スレッド part16】のね。
あと、IMEオンオフの状態を返す関数は「IME.ahk」の方を推奨。

610 :名無しさん@お腹いっぱい。:2014/02/20(木) 23:48:53.29 ID:jz0NW5d+0.net
あーもうっ、言い忘れた。
「Input」コマンドって(半角)スペースやエンターを記憶しないんだよな。
これ分からなくて結構長い時間ハマったよ。
みんなもあのスクリプト使うとき注意してね。

611 :名無しさん@お腹いっぱい。:2014/02/21(金) 10:21:51.55 ID:FcqIJXA5P.net
>>607
時々ソフト側で勝手にIMEをオンにしたりするのが気に食わないのです。そのときのためのキー連打変換が欲しかったのです。Macも使ってるから操作系を揃えたかったってのもあります。

色々試行錯誤して、一応これで動くようになりました。プログラムはド素人で、糞みたいなスクリプトなので、ここに書き込むのはとても気が引けるのだけど…

;変換キーでIME ON
;変換キー連打でIMEをONにして入力し直す
;無変換キーで半角に変換してIMEをオフにする

vk1Csc079 Up:: ;変換キー
;キー連打検出0.3秒
If(A_PriorHotkey = A_ThisHotkey) And (A_TimeSincePriorHotkey < 300){
Send,^%2b{Left};クリップボードに格納してIMEon後に打ち直す
Backup := ClipboardAll
Clipboard =
Send,^x
IME_SET(1)
ClipWait,1
Send,%Clipboard%
Clipboard := Backup
Return
}Else{
;連打してないとき
IME_SET(1)
}
Return

612 :名無しさん@お腹いっぱい。:2014/02/21(金) 10:23:37.42 ID:FcqIJXA5P.net
つづき

vk1Dsc07B up:: ;無変換キー
getIMEMode := IME_Get() ;IMEの状態を取得
if (%getIMEMode% = 0) ;IMEがオフのとき
{
IME_SET(0)
;IMEをOFFにする(念のため
}
Else ;IMEがONの時
{
Send,^%2by
;Ctrl%2bShift%2byを送信(F10が何故か使えないので、IME側のキーバインドをいじった)
sleep,10 ;0.01秒待つ
IME_SET(0) ;IMEをOFFにする
}
Return

613 :名無しさん@お腹いっぱい。:2014/02/21(金) 10:25:17.95 ID:FcqIJXA5P.net
ぐおお、バグった。
%2b は + です。。。

614 :名無しさん@お腹いっぱい。:2014/02/21(金) 12:51:18.68 ID:wjinpp3O0.net
>>611
>時々ソフト側で勝手にIMEをオンにしたりするのが気に食わないのです。

ん〜・・・・・
>>539を徹底的に体に覚え込ませれば、ソフトがIMEをオンにしようが、オフにしようが全く関係ないんだがなぁ・・・・・
ま、あんまり強要するのは良くないから、これ以降この話題に突っ込むの止めるわ。

615 :名無しさん@お腹いっぱい。:2014/02/21(金) 13:25:44.64 ID:jyRtSfaV0.net
うむ、ツッコミ承知でカスタム仕様にしてるんだから我が道突き進ませてやれ
遅レスで説教系ツッコミはヤボってもんだ

616 :名無しさん@お腹いっぱい。:2014/02/21(金) 13:27:28.14 ID:A+hQuf1z0.net
>>614
ahkでごちゃごちゃ弄ってる間は何を言っても通じないわ
実務であちこちのPC(とかキーボード)を弄るようになったら嫌でも矯正される。
ソフトを自由にインストールや実行のできる環境なんて自分の私有PCくらいだぜw

そういうこというと、このスレどころかAHK自体の存在意義が危ぶまれるか。

617 :名無しさん@お腹いっぱい。:2014/02/21(金) 14:12:17.72 ID:lXG58+st0.net
友達の家でもネカフェでもポータブル化して持ち込めばええんや
AHKは自分のやりたいようにすればええ

もうスペースキー修飾がないとかキーボードでカーソル移動ができない環境が考えられない

618 :名無しさん@お腹いっぱい。:2014/02/21(金) 14:50:17.87 ID:/0FpRnMh0.net
>>616
DELLとかHPに付属のクソキーボードをなんとも思わず使える人が上司だと
まったく取り合えってもらえないしね・・・
みんなそのまま使ってるんだからお前も合わせろくらいの勢いっていう

AHKのないPCで文字なんか打てるか状態だわ
そして無駄に長いスペースキーに憤りを感じる!


>>603分かる人いたらお願いしますー

619 :名無しさん@お腹いっぱい。:2014/02/21(金) 14:57:18.90 ID:OKVxz4wN0.net
上司「君が望む環境で仕事した時の能率を具体的に数値化して提出しなさい」

620 :名無しさん@お腹いっぱい。:2014/02/21(金) 18:28:26.96 ID:dRaN94p/0.net
>>618
>>603-604
既に回答もらってんのになに言ってんだ?

621 :名無しさん@お腹いっぱい。:2014/02/21(金) 19:27:35.34 ID:jyRtSfaV0.net
催促する前にレスもらえない原因を考えよう

LINE以外の環境環境がまるで書いてない
質問するなら最低限
OS / AHK / IME.ahk / 使用してるIME / LINE の各バージョンは必要


>それとも関数に渡す引数に誤りがあるのでしょうか
他のアプリでは拾えるのか試してみたの?
アプリのせいなのか記述間違いかの切り分けしたかどうかはわりと重要
特定アプリでは使用者以外はスルーだが
メモ帳とかの皆が追試しやすいものならアドバイスも受けやすい

>res := IME_GetConverting("A","wxWindow","imejpstcand81")

使ってるIMEがなんだか書いてないからよーわからんが、パラメータ2,3あたりが怪しい
まずパラメータ全省略でやってみて、もし動かないなら
_ImeTestClassCheck()でそれぞれ調べて値を入れる

622 :名無しさん@お腹いっぱい。:2014/02/22(土) 02:37:15.96 ID:RX4AMueR0.net
>>620
>>604は回答だったんですか。>>603宛と理解できませんでした。サーセン

>>621
ぐうの音も出ないレスありがとうございます。

OS:WindowsXP 32bit
AHK:1.0.48.5
IME.ahk:2012.11.10
LINE:3.2.0.76

>res := IME_GetConverting("A","wxWindow","imejpstcand81")
引数2,3は_ImeTestClassCheck()で調べた値です。
メモ帳では仕様どおりの値が返ってきます(各数値)

パラメータ省略でも変化なしでした。

623 :名無しさん@お腹いっぱい。:2014/02/22(土) 03:33:42.66 ID:p2C4PusD0.net
If文を使わずにコード書いてると関数が多くなりませんか?

624 :名無しさん@お腹いっぱい。:2014/02/22(土) 13:16:29.81 ID:DgYxgOca0.net
Guiのひとつのエディット内で、入力された文字の一部分だけ色を変えることはできるでしょうか?

625 :名無しさん@お腹いっぱい。:2014/02/22(土) 14:03:00.76 ID:2GncQ2eS0.net
Numlockの状態とかタスクトレイに出したい

だしたい!!

626 :名無しさん@お腹いっぱい。:2014/02/22(土) 14:11:49.53 ID:hShcqZxb0.net
>>623
書き方次第

>>624
無理

>>625
どうぞ、どうぞ

627 :名無しさん@お腹いっぱい。:2014/02/22(土) 14:46:58.58 ID:dz7B/ukl0.net
>>622
メモ帳で正常値が取れるならアプリの問題なのでIME.ahk側でどうにかすることはできない
あとはLINE側の設定見直してトゥルーインライン解除できないか確認するくらい
>231参照

628 :名無しさん@お腹いっぱい。:2014/02/22(土) 15:30:59.27 ID:RX4AMueR0.net
>>627
なるほど・・・ありがとうございます。
>>231のリンク先なくなってたけど、まさにそのトゥルーインライン入力です。
文字が重ならなくて見やすい反面こんな悪影響が・・・もどかしいですね

629 :名無しさん@お腹いっぱい。:2014/02/23(日) 14:33:16.97 ID:YJOn+f8k0.net
このスレの>>403です
色んな人からアドバイス貰ったお陰で何とか形になりますた
以前のようにメイン関数内をいじる必要が無くなってます(>>413改めてありがとう)

評価よろしくです(スクリプトサイズが大きいので↓におきますた)
http://ux.getuploader.com/autohotkeyl/download/39/Exec_Strings%28TEST%E7%89%88%29.zip

今の時点で知り得た知識内で書いてるので、まだまだ突っ込み所有ると思われ・・・
複数行の文字列が解釈できない・・・いや、1行しか解釈しないのは仕様ってことで逃げときます
とりあえず手直し必要なところが有れば指摘してちょ
でも、余程致命的欠陥がない限り時間掛けて手直しなんてする気力もない(言ってることが矛盾するけど)

テスト実行を経て、今までキーリマップの常駐スクリプトに組み込んでるけど
あまりにも使う機会が少なすぎてガッカリ気味・・・

ところで、こういうのってどんな時に一番活用出来るのかなぁ?

630 :名無しさん@お腹いっぱい。:2014/02/23(日) 17:34:31.39 ID:eZg5KXIP0.net
おそらく、Autohotkey.dll 使って、動的にスクリプト読ませて実行させるのが
一番近い使い方になると思うよ

631 :名無しさん@お腹いっぱい。:2014/02/24(月) 00:02:38.74 ID:Rqdfd5Wo0.net
Win7 pro 64bitでAHK_L 1.1.14.03のUnicode 64-bitをインストール時に
「Separate taskbar buttons」
「causes each script which has visible windows to be treated as a separate program, but prevents AutoHotkey.exe from being pinned to the taskbar」
というチェック項目が出るけど、どういう意味でしょうか?

翻訳サイトでは
「個別のプログラムとして扱われる可視ウィンドウを持っているが、AutoHotkey.exeがタスクバーに押さえ付けられるのを防ぐ各スクリプトを引き起こします」
となったけど、意味分からん

632 :名無しさん@お腹いっぱい。:2014/02/24(月) 00:18:16.22 ID:zuYGCqgJ0.net
http://ux.getuploader.com/autohotkeyl/download/40/NewOSM.ahk
スペースキーを修飾キーにするっていうのに感動したので便乗改造してみる

633 :名無しさん@お腹いっぱい。:2014/02/24(月) 11:43:04.27 ID:0sMAOQNt0.net
>>632
スペース連打がスムーズになった感。変換しやすいかも

634 :名無しさん@お腹いっぱい。:2014/02/24(月) 12:24:21.44 ID:0sMAOQNt0.net
ていうかAHKがAndroid端末にもほしいよぅ

635 :名無しさん@お腹いっぱい。:2014/02/24(月) 17:17:34.71 ID:tzqmQI/N0.net
AndroidはTaskerが出来る事多くて面白い

636 :名無しさん@お腹いっぱい。:2014/02/24(月) 18:30:58.01 ID:pZ7DfwhZ0.net
>>631
GUIを持つスクリプトを実行するとタスクバーに表示される、それを右クリックすると「ピン止め」できるが
「AutoHotkey.exe」が固定され、「スクリプトのファイル」ではない。

そのオプションはGUIを持つAutoHotkeyスクリプトの「ピン止め」を非表示にする。

637 :名無しさん@お腹いっぱい。:2014/02/24(月) 21:29:40.01 ID:WxGM2RdZ0.net
>>629です
>>630
レスありがとう
>Autohotkey.dll 〜
これ使ったことないのでアレだけど、マルチスレッドで動かす時威力を発揮するってことなのかな?

でもなんだね、"文字列を実行する"みたいな関数というか処理は、
デフォルトで実装してないくらいだから、あまり需要はないみたいだね

自分は、リマップ系スクリプトで記述を見やすくしたいということだけが目的で
作り始めたくらいだから、本来の使い方(作り方)と違うかも・・・

638 :名無しさん@お腹いっぱい。:2014/02/25(火) 01:06:14.93 ID:UiGCHC1u0.net
>>636
なるほど。
GUI系のスクリプトは使ったことないけど、今度使う時に確かめてみます。
ありがとう

639 :名無しさん@お腹いっぱい。:2014/02/25(火) 10:47:47.64 ID:ImN/2+rk0.net
任意のウィンドウタイトルの色を変えることなんてできるでしょうか?

エクスプローラである文字がパスにあった場合、わかりやすくし合いと思って、
ウィンドウタイトルが変えられれば便利だと思った次第です。

640 :名無しさん@お腹いっぱい。:2014/02/25(火) 13:16:59.03 ID:EXLwJ3580.net
たぶん無理
GUIでそのウィンドウタイトルと同サイズの半透明ウィンドウ作ってオーバーラップさせれば
見た目それっぽくはできるかもしれないが、ウインドウ移動時の追従や
ドラッグ時にマウス操作情報を下層のタイトルバーに伝えてやる処理などが必要になる
あとたぶん色かぶりしてタイトルバーの文字の視認性はかえって落ちると思われ

641 :名無しさん@お腹いっぱい。:2014/02/25(火) 13:34:03.00 ID:yVY5YR6t0.net
>>639
定期的(1秒ごととか、0.5秒ごととか)に全ウィンドーのタイトルを取得してきて
該当するwindowにSendMessage(WM_SETTEXT) すれば行けるんじゃない?

・・・色変更か・・・色なぁ・・・どうすんだろw

642 :名無しさん@お腹いっぱい。:2014/02/25(火) 15:43:17.04 ID:maHSnSG/0.net
その目的ならキーワードに合致したウィンドウのタイトルバーにツールチップでも重ねるとか
邪魔にならない右端あたりに

643 :名無しさん@お腹いっぱい。:2014/02/26(水) 09:45:31.97 ID:be4jw4Ev0.net
(はるか昔になんかで見たブログを参考にはるか昔に作ったIMEの状態をタイトルバーに表示するやつを今でも使ってるけどAHK見つけたばっかりの頃にがんばって作った記憶があるから改善の余地はいくらでもありそうなものの)
よかったら参考にしてくれ。

WinGet, title0 ,PID, A
if ("%title0%" = "%title1%")
{
WinGet, title1 ,PID, A
return
}else{
ShowIME()
WinGet, title1 ,PID, A
return
}

ShowIME(){
getIMEMode := IME_GET()
WinGetActiveStats, title, W, H, X, Y
WinGet, title0 ,PID, A
W -= 6
X += 3
Y += 6 ;そのままだと表示がちょっと位置が悪いから微調整

if (%getIMEMode% = 0)
{
Progress,B x%X% y%Y% h2 w%W% zh0 CTaqua CW00FFFF,
return
}else{
Progress,B x%X% y%Y% h2 w%W% zh0 CTlime CWFF00FF,
return
}
return
}

644 :名無しさん@お腹いっぱい。:2014/02/26(水) 09:47:30.98 ID:be4jw4Ev0.net
でまぁ他に細々したやついるけど全体をSetTimer, ShowIME, 500でぶん回しとくと
そのウィンドウのIMEの状態を取得してオンなら赤オフなら青でタイトルバー一番上のちょい下ぐらいに
ほそーくウィンドウの幅でプログレスバー表示される。(元々はマックの機能だったような微かな記憶が。)

必要なかったりうっとおしいやつは
IfWinActive, ahk_group hihyouji{Progress, Off}
みたいな感じでいくつかグループ追加して非表示にできるから
IMEの状態の代わりにタイトル取得して幅とか色とか場所とかちょっと改変すれば
タイトルにC:\で薄く緑被せてD:\で赤被せてとかでそれっぽいことできると思う。

やってることはタイトルのみ常に取得して変わってたらサイズに合わせて色替えてるだけだから負荷も大したことないよー。
タイトルバーの色が変わってるわけじゃないけど例えばエディタなら書き始める前に視界に入ってくるから個人的にはかなり楽でわかりやすいと思っております。

645 :名無しさん@お腹いっぱい。:2014/02/26(水) 11:08:32.27 ID:HVU1k3cRP.net
すごい初歩的な質問ですが、今アクティブなウィンドウで開いているファイルのファイル名を取得するにはどうしたらいいんでしょう? タイトルバーにファイル名が出てこないタイプのアプリなので、WinGetTitleだとうまくいかないのです。

646 :名無しさん@お腹いっぱい。:2014/02/26(水) 12:39:36.19 ID:VhkI528H0.net
ヘルプファイルのようにコマンドラインでパスを渡してから起動するビュアーの場合は
コマンドライン文字列からパスが取れるかも

GetCommandLine(pid){
 ;COM Objects使用 (AHK_L 53+)
 For process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process where ProcessId = " . pid)
 Return process.CommandLine
}

ただし起動してからファイルオープンするタイプの編集ソフトでは無理
具体的なアプリがなんだかわからんから追試できないが
WIndow Spy眺めてみてパスを格納してある(隠し)テキストがないか調べてみたら?

647 :名無しさん@お腹いっぱい。:2014/02/26(水) 14:57:47.22 ID:bNFNBbOX0.net
くるくるスクロールの要領でマウスカーソルを動かすだけでSendしたいのですが
左右左右や上下上下みたいな動きにさせたいのですが何か参考になるものはありますか?

648 :名無しさん@お腹いっぱい。:2014/02/26(水) 15:40:22.99 ID:AH2NogyE0.net
RegExReplaceで行をまたいだ検索や置換はできないのでしょうか?

649 :名無しさん@お腹いっぱい。:2014/02/26(水) 17:53:20.88 ID:qaOjVbYH0.net
#t::
Run,"C:\Program Files (x86)\Evernote\Evernote\Evernote Templates\evernotediary.bat"
Process,Exist,Evernote.exe ;check evernote
If ErrorLevel<>0 ;if active
WinActivate,ahk_pid %ErrorLevel% ;activate
else ;else
Run,"C:\Program Files (x86)\Evernote\Evernote\Evernote.exe" ;activate
MouseClick,Right, 133, 396
Sleep,500 ;wait bat
MouseClick,Right, 439, 200
WinWait, Lifelog, date
MouseClick,Right, 653, 278
Send,^:
MouseClick,Right, 802,237
Sleep, 100 ;wait click
Send,{BackSpace}
MouseClick,Right, 653, 278
return


evernoteの日記のテンプレートを作って、日付も自動で入力するようにしたいんだけど、マウスクリックで移動しまくるっていうかなり力技なものになってしまった。
もっとスマートな方法はないだろうか?

650 :名無しさん@お腹いっぱい。:2014/02/26(水) 18:09:05.73 ID:1RCEKiwc0.net
>>648
改行コードをマッチさせればいいのでは

651 :名無しさん@お腹いっぱい。:2014/02/26(水) 19:37:16.02 ID:Hhp3hYA10.net
>>647
MouseGestureL.ahk

>>649
テキストボックスのClassNN調べてControlSendで送る

652 :名無しさん@お腹いっぱい。:2014/02/27(木) 02:28:50.08 ID:YveQ6GMZP.net
特定のフォルダ(例えば%A_scriptdir%%26#165;hoge)に出来るファイルに必ず日付け等を付けたいなと思った時に、そのフォルダに新しくファイルが出来たことを検出するにはどうしたらいいんでしょう?

hogeフォルダにimage.jpgを入れると、自動的にimage_0227.jpgになるみたいな。今は適当なキーストロークで一発リネームできるところまでは組んであるんだけど、新しいファイルの検出って部分がさっぱりわからんのです。

653 :名無しさん@お腹いっぱい。:2014/02/27(木) 04:33:13.75 ID:cJV3KEpM0.net
>>652
必要な情報保存してからタイマーで変化を監視すればいい。
いきなりLoop処理させるとパフォーマンス的によろしくないので
先にFileGetTimeで変化判定させる。

FileGetTime.... ;タイムスタンプ保存
Loop (ファイル検索).... ;リスト保存
SetTimer,Rename,....
Return

Rename:
FileGetTime.... でフォルダの変化監視
If ....
 Loop (ファイル検索)....
 ...略...
Return

654 :名無しさん@お腹いっぱい。:2014/02/27(木) 08:16:18.83 ID:Y+L/AtZn0.net
>>651
ありがとうございます

#t::
Run,"C:\Program Files (x86)\Evernote\Evernote\Evernote Templates\evernotediary.bat"
Process,Exist,Evernote.exe ;check evernote
If ErrorLevel<>0 ;if active
WinActivate,ahk_pid %ErrorLevel% ;activate
else ;else
Run,"C:\Program Files (x86)\Evernote\Evernote\Evernote.exe" ;activate
MouseClick,Right, 133, 396
Sleep,500 ;wait bat
MouseClick,Right, 439, 200
WinWait, Lifelog, date
ControlSend, WebViewHost1,^: , Evernote
      ControlSend, ENAutoCompleteEditCtrl3, {BS}, Evernote
return

こういうふうに変更してみたんですが、ClassNNを取得できていないのかControlSendから先が動かない状態です。
どこが間違ってるんでしょうか

655 :名無しさん@お腹いっぱい。:2014/02/27(木) 16:53:04.04 ID:cJV3KEpM0.net
>>654
アプリによって挙動は違うので自分で確かめてくれ。
これでダメなら無理。

SetKeyDelay 遅くする
^: → {Ctrl down}:{Ctrl up}
対象のコントロールを選択してから送る
ahk_parent有/無 /コントロールを指定
/ウィンドウハンドルの直接指定
別のControl系で操作

ttp://ahkwiki.net/ControlSend
ttp://ahkwiki.net/ControlClick
ttp://ahkwiki.net/Window 2.3

656 :名無しさん@お腹いっぱい。:2014/02/27(木) 17:39:52.65 ID:baEetnSz0.net
GUIのテキストボックスにオートコンプリートをつけることなんて無理ですか?

657 :名無しさん@お腹いっぱい。:2014/02/27(木) 18:01:51.98 ID:+4HT/Phr0.net
自前で実装すればできないこともないと思うけど簡単ではないと思うよ

658 :名無しさん@お腹いっぱい。:2014/02/27(木) 19:35:31.20 ID:UdmCNGrb0.net
ちょうどちょっと前に作ったわ
editのgオプションで
オートコンプリート候補を格納した変数に対してLoop, parseで入力内容をマッチング、
マッチしたものを別途作ったguiのlistviewにひとつずつaddしていく
listviewの選択の移動と、選択項目のテキストをeditに入力するホットキーを設定
入力内容を確定したら入力内容とloop, parseで使う区切り文字を専用変数に追加
ソートの奴で(名前忘れた)変数内の重複をなくす
スクリプト終了時にその変数をiniファイル等に書き出す(スクリプト頭でincludeする)
こんな感じ

659 :名無しさん@お腹いっぱい。:2014/02/27(木) 19:52:03.25 ID:cJV3KEpM0.net
変換確定前のテキスト取るのが難題だな。

660 :名無しさん@お腹いっぱい。:2014/02/27(木) 21:31:29.04 ID:UdmCNGrb0.net
変換か。ファイル整理のためにファイル名にローマ字キーワードしこむのにしか使ってなかったからな
ちょっと前に貼られてたIME状態を切替て再入力するスクリプトのキーロガー部分を拝借して
入力内容のIMEオフ[入力内容のIMEオン]
例) hogehoge[ホゲホゲ]

みたいにオートコンプリート候補用変数に格納して、そっからeditに引っ張ってくるときには[]内のみにすればいけそうかな?

661 :名無しさん@お腹いっぱい。:2014/02/28(金) 01:58:07.40 ID:ySVROzr+0.net
IEコンポ使って、HTML5で組んだほうが早い

662 :名無しさん@お腹いっぱい。:2014/02/28(金) 18:48:32.86 ID:oBsJEjC80.net
だいなファイラーにて拡張子ごとに別のソフトを起動するように試し書きしたら動作が変なんですが見てもらえますか?


;だいなファイラー
#ifWinActive, ahk_class CDynaApp

^1::
  ClipBack = %Clipboard%
  Clipboard =
  Send,^+c  ;#ファイルパスを取得するコマンド
  ClipWait
  Extension := RegExReplace(Clipboard, "^.+(\..{2,4})$", "$1")  ;#ファイルパスから拡張子を抜き出し
  if Extension = .zip
   Run, C:\Apps\MassiGra\MassiGra.exe "%Clipboard%"
  else if Extension = .mp3
   Run, C:\Apps\Mp3Tag\Mp3tag.exe "%Clipboard%"
  Clipboard = %ClipBack%

return


と書いたらCtrl+1を押すとキン!と言うだけで、次にCtrl+Shift+Cを押してみたらなぜか実行されました
Ctrl+1→Ctrl+Shift+Cとなっている現状ですがCtrl+1だけで使えないものでしょうか?

663 :名無しさん@お腹いっぱい。:2014/02/28(金) 19:17:56.26 ID:oBsJEjC80.net
すみませんできました
だいなの設定をこの前少し変えたの忘れてて先頭文字ジャンプが密かに動いてました

664 :名無しさん@お腹いっぱい。:2014/03/01(土) 01:00:17.07 ID:M9MEW3mb0.net
Loop, Parse, %Clipboard%, `;
とした時%Clipboard%内に半角空白が入ってるとillegal characterってエラーが出るのはどうすればいい?
ファイルパスが;区切りで列挙されてる文字列を扱いたい

665 :名無しさん@お腹いっぱい。:2014/03/01(土) 01:33:09.62 ID:z/ta9LDl0.net
クリップボード内の文字列を変数として使いたいなら%Clipboard%でいいけど
そうじゃなけりゃClipboard

666 :名無しさん@お腹いっぱい。:2014/03/01(土) 02:53:17.15 ID:E5SVg39R0.net
過去ログ漁りつつググりつつですが、
どうしても解決しないので質問です。

Fnキーを一定間隔以内で2連押ししたら
押し下げ状態を保持して、もう1度押したら解除
と言ったスクリプトを組みたいのですが、
参考に出来るスクリプトがあったらご教示お願いします。

667 :名無しさん@お腹いっぱい。:2014/03/01(土) 02:56:46.52 ID:ERfkz+X40.net
Fnキーは使えないのだ

668 :名無しさん@お腹いっぱい。:2014/03/01(土) 02:57:47.21 ID:E5SVg39R0.net
え、、、マジでか。。。orz...

669 :名無しさん@お腹いっぱい。:2014/03/01(土) 06:58:45.74 ID:iZ2zJbC4P.net
>>668
FnキーはBIOSと結びついた特殊なキーなのだ。電源ボタンなんかと役割が近い。

どうしてもFnキーを使いたいならBIOSでFnキーのマッピングを変えられる場合もある。

670 :名無しさん@お腹いっぱい。:2014/03/01(土) 12:14:26.69 ID:3Sve3FEn0.net
Fnキーじゃなくて他のキーで代用するのがいいと思う

無変換キーをダブルクリックしたらフラグが立って、フラグが立ってる間は押したキーが変化する、くらいでいいんじゃね?
具体的にはこう

~vk1Dsc07B up::
if(Fnflag==1){
Fnflag=0
}else if(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 300){
Fnflag=1
}
return

#if Fnflag=1
up::pgup
down::pgdn
left::home
right::end
del::Numlock
#if


どっかに今どういう状態なのか通知する何かを挟んだほうが使いやすいと思うけどね

671 :666:2014/03/01(土) 12:46:32.32 ID:E5SVg39R0.net
>>670
サンクス!!
超参考になります!!

672 :名無しさん@お腹いっぱい。:2014/03/01(土) 13:26:56.77 ID:M9MEW3mb0.net
MenuとGosub使えるようになったらとっても便利になった! ajinoyaさんありがとう!

>>665
そこの違いがよくわかってなくて……仰るとおりで出来ました
テキストに書き出してLoop, Readよりこの方が良いんですよね?

673 :名無しさん@お腹いっぱい。:2014/03/01(土) 13:29:56.68 ID:3Sve3FEn0.net
変数っていう入れ物か変数の中身を指定するかの違いなんだけど、まぁココらへんはトライ&エラーやってりゃそのうち分かるんじゃないのん?

674 :名無しさん@お腹いっぱい。:2014/03/01(土) 18:08:03.25 ID:TcVP9yu50.net
>>672
変数内で処理した方が圧倒的に早い。
既存のファイル読み込み以外にはLoop, Read使う必要は無い。

Clipboard → 変数を読み込む
(メモリ)      (メモリ)

Clipboard → テキストに書き出す → テキストを読み込む
(メモリ)      (HDD)            (HDD)

675 :名無しさん@お腹いっぱい。:2014/03/01(土) 18:21:07.55 ID:M9MEW3mb0.net
>>673
すみません、すでに前科1,2犯だったかと……

>>674
ですよね

676 :558:2014/03/02(日) 02:22:19.22 ID:K/Tiq/qo0.net
このスレの558です。
>>562
>どうにかしてマウス位置(マウス右クリック位置)のアイコンの番号取得できればいいんですが…
と言ってたんですが、過去スレにそのものズバリの関数が貼られていました。
これで、任意のトレイアイコンの正確なタイトルとウインドウクラスが取得できるようになりました。

「AutoHotkey スレッド part9」のレス番791です。

677 :名無しさん@お腹いっぱい。:2014/03/02(日) 11:11:16.91 ID:c09PULgx0.net
>>675
aho := "baka"
clipboard := "aho"
だとして
Loop, parse, clipboard → Loop, parse, "aho"
Loop, Parse, %Clipboard% → Loop, parse, aho → Loop, parse, "baka"
こんな風に違う
とっちが使えるかはコマンドによって違うから、ほんと慣れだよね

678 :名無しさん@お腹いっぱい。:2014/03/02(日) 12:49:51.06 ID:WD1j75oX0.net
式とInputVarとOutputVarは確実
問題は%を省略して式が使える所だな

679 :名無しさん@お腹いっぱい。:2014/03/02(日) 13:22:14.39 ID:JPBfEsY60.net
キーボードで音量調整するコードを書いています。
以下のコードで音量調整とGUI表示まではできたのですが、
ボタン連打するとsleep, 500 で0.5秒待たされてしまい、
連続してスムーズに音量を上げることができません。

処理を止めずにguiの非表示まで待つような方法はないでしょうか?

680 :名無しさん@お腹いっぱい。:2014/03/02(日) 13:24:37.06 ID:JPBfEsY60.net
679です。

; 音量UP
#k::
SoundSet, +10
showSoundNum()
Return

; 音量DOWN
#j::
SoundSet, -10
showSoundNum()
Return

; 音量調整gui表示
showSoundNum() {
SoundGet, master_volume
master_volume := Round(master_volume, 0)
;MsgBox, vol: %master_volume%
Gui, Font, s30 bold
Gui, Margin, 40, 4
Gui, +AlwaysOnTop -Caption +E0x00000080 +Disabled
Gui, Show,W220 H50 Xcenter Ycenter NA
Gui, Color, 444444
Gui, Add, Text, cWhite, oto: %master_volume%
sleep, 500
Gui, Destroy
}

681 :名無しさん@お腹いっぱい。:2014/03/02(日) 13:40:27.45 ID:3jFCJf320.net
ん?なんでsleepする必要あるの?

682 :名無しさん@お腹いっぱい。:2014/03/02(日) 14:13:04.76 ID:JPBfEsY60.net
>>681
音量変更後、0.5秒だけ「音量: 30%」などと画面に表示するためです。
gui表示後、sleep以外で待ってから非表示にする方法があればいいのですが。。

683 :名無しさん@お腹いっぱい。:2014/03/02(日) 14:49:35.83 ID:OJsx/VPs0.net
>>680
こんな感じでどうかな?

showSoundNum() {
SoundGet, master_volume
master_volume := Round(master_volume, 0)
;MsgBox, vol: %master_volume%
Gui, Destroy
Gui, Font, s30 bold
Gui, Margin, 40, 4
Gui, +AlwaysOnTop -Caption +E0x00000080 +Disabled
Gui, Show,W220 H50 Xcenter Ycenter NA
Gui, Color, 444444
Gui, Add, Text, cWhite, oto: %master_volume%
SetTimer, OnTimerGuiDestroy, 500
}

OnTimerGuiDestroy:
Gui, Destroy
Return

684 :名無しさん@お腹いっぱい。:2014/03/02(日) 14:53:30.91 ID:OJsx/VPs0.net
↑ごめん、タイマー止めるの忘れてた

OnTimerGuiDestroy:
SetTimer, OnTimerGuiDestroy, OFF
Gui, Destroy
Return

685 :名無しさん@お腹いっぱい。:2014/03/02(日) 14:55:54.42 ID:K/Tiq/qo0.net
>>679-680
これ使ってみては?
基本タスクバー状でホイール回転/ボタンで音量のアップ/ダウン/ミュート行うやつだけど、音量調整gui表示も付いてますよ。
#k::TV_Change("+" . TV_VolumeStep) ;音量アップ
#j::TV_Change("-" . TV_VolumeStep) ;音量ダウン
#m::TV_Mute() ;音量ミュート
って追加すればキーボードでも操作できるようになりますし。
http://ux.getuploader.com/autohotkeyl/download/29/TaskVol12.zip

せっかく自分でスクリプト作ってるのに余計なお世話かもしれませんけど、一応こんなスクリプト有りますよってことで・・・・・

686 :名無しさん@お腹いっぱい。:2014/03/02(日) 14:58:53.04 ID:K/Tiq/qo0.net
>>685
訂正。
タスクバー状 → タスクバー上

687 :名無しさん@お腹いっぱい。:2014/03/02(日) 16:13:37.48 ID:JPBfEsY60.net
>>683
ありがとうございます!
思っていた通りに動くようになりました。
Timerってこういう時に使うものなんですね。


>>685
参考になります!ありがとうございます。
>>683 と同じようにSetTimerが使われていました。
SetTimer, TV_HideTimer, -%TV_VolDispTime%
こちらを参考にしてかっこいいGUI作ってみようと思います。

688 :名無しさん@お腹いっぱい。:2014/03/02(日) 16:27:28.09 ID:lKTOH0Du0.net
>>684
タイマー止める、っつーか一回だけ動かしたいなら タイマーで負数を指定

>SetTimer, OnTimerGuiDestroy, -500

689 :名無しさん@お腹いっぱい。:2014/03/03(月) 17:22:16.17 ID:8rsKmJcl0.net
お尋ねします。
GUIのボタンに指定したキーを割り当てているのですが
マウスでボタンを押し込んでいる状態だとキー入力が発生せず、マウスを放すとキー入力が発生します。
これをボタンを押し込み状態でキー押しっ放しには出来ませんでしょうか?。
よろしくお願いします。

690 :名無しさん@お腹いっぱい。:2014/03/03(月) 18:55:46.26 ID:NoPcm5H60.net
ソフトAが起動しているときは^+sを、ソフトAが起動してないときにソフトBが起動してるときは!sを送りたいんですが
その場合↓のどちらの案がスマートなんでしょうか。Aの存在確認した方がいい?しない方がいい?
^+sはAの、!sはBのグローバルホットキーです

; プラン1
#ifWinExist, ahk_class %A%
NumLock::Send,^+s

#ifWinExist ahk_class %B%
Numlock::Send,!s


; プラン2
#ifWinExist, ahk_class %A%
NumLock::Send,^+s

#if WinExist("ahk_class %A%")=0 and WinExist("ahk_class %B%")<>0
Numlock::Send,!s

691 :名無しさん@お腹いっぱい。:2014/03/03(月) 19:24:28.35 ID:1OisUOTx0.net
>>690
sendの送り先が不明なのだが、ソフトAに限定して^+s送りたいなら#IfWinActiveの方が良いんじゃないの?

692 :名無しさん@お腹いっぱい。:2014/03/03(月) 19:29:06.83 ID:1OisUOTx0.net
>>691
何か分かり難かったかも。
ソフトAのウインドウに^+s送りたいなら、また、ソフトBのウインドウに!s送りたいなら、#IfWinActiveの方が良いんじゃないの?
に訂正。

693 :名無しさん@お腹いっぱい。:2014/03/03(月) 19:31:53.44 ID:1OisUOTx0.net
度々すいません。
ちゃんとレス読んでなかった…>>690-691は無かったことにして頂戴。

694 :名無しさん@お腹いっぱい。:2014/03/03(月) 19:46:28.77 ID:1OisUOTx0.net
>>690
やりたいことがよく分からないけど、
>ソフトAが起動しているときは^+sを、ソフトAが起動してないときにソフトBが起動してるときは!sを送りたいんですが
↑なんだから、その通りにコード書けば良いような気がする。

ちなみに、
>#if WinExist("ahk_class %A%")=0 and WinExist("ahk_class %B%")<>0
#if (! WinExist(ソフトA)) && WinExist(ソフトB)
という書き方もある。(他にもっとスマートな書き方あると思うけど)

695 :名無しさん@お腹いっぱい。:2014/03/03(月) 20:27:35.86 ID:NoPcm5H60.net
頭回ってなかったみたいです。検証したら納得できました
プラン1だとAをBより上の方に書かなければいけないが、プラン2ならAとBが前後してもOK、ということですね

やはりプラン2よりプラン1の方が処理は早いですよね
Bを常に読まないで済みますし

>>694
メディアプレーヤーAとBがあってAにStart/Stopのグローバルホットキーの優先権を与える、という内容です
お騒がせ失礼

696 :名無しさん@お腹いっぱい。:2014/03/03(月) 21:36:15.52 ID:1OisUOTx0.net
>>695
; プラン1の
#ifWinExist ahk_class %B%
Numlock::Send,!s
と、
; プラン2の
#if WinExist("ahk_class %A%")=0 and WinExist("ahk_class %B%")<>0
Numlock::Send,!s
では、動きが違うよ。

あなたがやりたい、
>ソフトAが起動しているときは^+sを、ソフトAが起動してないときにソフトBが起動してるときは!sを送りたいんですが
なら、プラン2の方だと思うんだが…

また、処理の速さなんて何万回ループでもしない限り人間には感じないから気にする必要ないと思うけどな。

697 :名無しさん@お腹いっぱい。:2014/03/03(月) 21:42:35.27 ID:1OisUOTx0.net
また連投すいません。
それぞれ#IFで閉じてないけど、動き的にどうなんだろ?
うーん…個人的には、それぞれ#IFで閉じた方が良いような気がする。

698 :名無しさん@お腹いっぱい。:2014/03/03(月) 21:52:44.20 ID:kqCGJtV10.net
閉じなきゃいけないってもまぁあるけど、優先させたい処理を上に書くってのも割と重要
これだけでうごかなかった動作が動くこともある

699 :名無しさん@お腹いっぱい。:2014/03/03(月) 22:06:21.78 ID:9kbg4yV80.net
>>696
連投しすぎ・・・間違ってるし・・・。

プラン1、プラン2 の動作は同じ、
割り当てが同じなら上の物だけ実行される。
#IFで割り当てを解除しておけば追記した際のミスがなくなる。

>>695
プラン1は前後関係があるので可読性が悪い間違えやすい、負荷の違いはほぼ無い。

700 :名無しさん@お腹いっぱい。:2014/03/03(月) 22:16:33.57 ID:1OisUOTx0.net
>>698-699
なるほど…このスレはとても勉強になるよ。
連投の件は申し訳なく思ってる(´・ω・`) ショボーン

701 :名無しさん@お腹いっぱい。:2014/03/03(月) 23:10:02.47 ID:9kbg4yV80.net
>>689
定期的にある質問なのでサンプルを書いてみた。

;;;;;GUIのボタン押し込み時の実行タイミングの違い
Gui,Add,Button,w125 gTEST1,---- 通常ボタン ----
Gui,Add,Text,w125 h25 gTEST2 +0x01 Border Center,-- テキスト/画像 --
Gui,Add,Button,w125 vTEST3 Hwndハンドル,-- メッセージイベント --
OnMessage(0x201, "WM_LBUTTONDOWN") ;WM_LBUTTONDOWN
Gui,Show
Return

TEST1: ;通常ボタン
ToolTip テスト1
Sleep 200
ToolTip
Return

TEST2: ;任意ボタン
ToolTip テスト2
KeyWait,LButton
ToolTip
Return

WM_LBUTTONDOWN(wParam,lParam,msg,hwnd){ ;メッセージイベント
global ハンドル
MouseGetPos,,,,VarC,2
If (VarC = ハンドル){
ToolTip テスト3
KeyWait,LButton
ToolTip
}
}

702 :名無しさん@お腹いっぱい。:2014/03/03(月) 23:19:58.36 ID:NoPcm5H60.net
>>700
失礼ながら、
ご自身の考えもまとまらないうちに発言するのは避けた方がよろしいかと

703 :名無しさん@お腹いっぱい。:2014/03/04(火) 00:04:34.04 ID:Zaag+9BP0.net
>>701
このコードをベースに試行錯誤してみます。
有難うございました。

704 :名無しさん@お腹いっぱい。:2014/03/04(火) 01:05:36.18 ID:DQK4PiPE0.net
>>703
KeyWaitが関数内にあると他箇所の左クリックが一回無効になってしまうようなので修正

Gui,Add,Text,w125 h25 gTEST2 +0x01 Border Center,-- テキスト/画像 --
Gui,Add,Button,w125 gTEST3 Hwndハンドル,-- メッセージイベント --
OnMessage(0x201, "WM_LBUTTONDOWN") ;WM_LBUTTONDOWN
Gui,Show
Return

TEST2: ;任意ボタン
ToolTip テスト2
KeyWait,LButton
ToolTip
Return

TEST3: ;任意ボタン
KeyWait,LButton
ToolTip
Return

WM_LBUTTONDOWN(wParam,lParam,msg,hwnd){ ;メッセージイベント
global ハンドル
MouseGetPos,,,,VarC,2
If (VarC = ハンドル)
ToolTip テスト3
}

705 :名無しさん@お腹いっぱい。:2014/03/04(火) 02:26:09.30 ID:Zaag+9BP0.net
>>704
素晴らしい!
ほぼ思い通りの事が出来ました。
有難うございました。

706 :名無しさん@お腹いっぱい。:2014/03/04(火) 03:00:46.42 ID:xsiZayJx0.net
入力した数字の桁数に関わらず、条件を満たす文字列として取得したい。
条件1:3桁の文字列として取得する(入力した数字が3桁未満なら、3桁になるよう頭に「0」を付ける)
条件2:入力した数字が4桁以上なら、右から(下位)3桁を取得する

一応、(1)と(2)の方法を思いついたんだけど、もっと賢い方法あります?

;InputVar := 1
;InputVar := 50
;InputVar := 999
InputVar := 1234

;(1)
InputVar := 1000 + InputVar
StringRight, OutputVar, InputVar, 3
MsgBox, %OutputVar%
;(2)
SetFormat, float, 03
InputVar += 0.1
StringRight, OutputVar, InputVar, 3
MsgBox, %OutputVar%

707 :名無しさん@お腹いっぱい。:2014/03/04(火) 03:07:35.43 ID:xsiZayJx0.net
スンマセン。訂正前のを貼り付けてしまった。(特に重要な事じゃないけど一応訂正)
;(1)
InputVar := 1000 + InputVar
   ↓
InputVar += 1000

708 :名無しさん@お腹いっぱい。:2014/03/04(火) 03:43:43.47 ID:xsiZayJx0.net
自己レスです。
関数って無いのかなあ・・・とよくよく捜したら有った。
行数が少なく、変数の無駄遣いも無いので(1)よりは良いのかなあ・・・

InputVar += 1000
InputVar := SubStr(InputVar, StrLen(InputVar)-2)
MsgBox, %InputVar%

709 :名無しさん@お腹いっぱい。:2014/03/04(火) 04:04:29.29 ID:DQK4PiPE0.net
>>708
やめた方がいい事が少々ある(動作は問題ない)。

未割り当ての変数に代入すると#WarnがONだと怒られる。
×InputVar += 1000
○InputVar := 1000

SetFormatで変換する際は0を代入
×0.1
○0.0

;;;全部まとめ
InputVar := 1
; InputVar := 1.11
; InputVar := 11.55
; InputVar := 1234
SetFormat,Float,003.0
MsgBox % SubStr(InputVar += 0.0, -2)
Return

710 :名無しさん@お腹いっぱい。:2014/03/04(火) 05:14:08.77 ID:xsiZayJx0.net
>>709
すごい、凄いです。
いただきました、ありがとうございまづ。

スイマセン。
SetFormat,Float,003.0
の「003」と自分が書いた「03」の違いがよく分からないのですが何が違うのでしょうか?
「003.0」の「.0」部分は入力の小数部を考慮してというのは何となく分かったのですが。

711 :名無しさん@お腹いっぱい。:2014/03/04(火) 05:25:54.08 ID:DQK4PiPE0.net
>>710
すみません00はミスですね、そのまま動いていたので見逃しました。
03.0 頭0詰め、3桁、小数点無し四捨五入

712 :名無しさん@お腹いっぱい。:2014/03/04(火) 05:42:03.78 ID:xsiZayJx0.net
>>711
理解できました。
こんな朝方まで付き合っていただき、ありがとうございました。

713 :名無しさん@お腹いっぱい。:2014/03/04(火) 09:10:28.00 ID:UHpLHDrI0.net
Chromeで文字入力状態でないときに、sキーが押されると以下のキーを発行したいのですが、
どのようにすればいいでしょうか?

s:: Send, ^l^v{Enter}

714 :名無しさん@お腹いっぱい。:2014/03/04(火) 14:47:04.67 ID:h7tVz7Y30.net
マウスカーソルじゃなくて、テキストボックスクリックして点滅しているフォーカス(?)の状態を知ることはできないでしょうか?

715 :名無しさん@お腹いっぱい。:2014/03/04(火) 18:23:18.99 ID:DQK4PiPE0.net
>>713
>>714
IME.ahk
キャレット
でwiki検索。

716 :名無しさん@お腹いっぱい。:2014/03/04(火) 19:30:53.28 ID:qpMowDMO0.net
質問です。
ボタンにショートカット(例えばAlt+sとか)割り当てられてないマウス前提のソフトをキーボードだけで操作したいと思ってます。
そういうことを補間してくれるソフトを探していたらこちらに誘導されたのですが、AHKLを使うとそういうことできますでしょうか?
スクリプト組むとか自分にはハードル高いのですがもし出来そうならこれを機会に覚えようと思うのですが。

717 :名無しさん@お腹いっぱい。:2014/03/04(火) 19:54:17.57 ID:DQK4PiPE0.net
>>716
>ボタンにショートカット(例えばAlt+sとか)割り当てられてないマウス前提のソフトを...
ボタン?なんの?質問の意味が分からない、箇条書きにして書き直してほしい。

718 :名無しさん@お腹いっぱい。:2014/03/04(火) 20:17:33.83 ID:wegUrf/G0.net
>>716
ボタンが [次へ(N)] みたいになっていれば Alt+N を押してこのボタンを直でキーボード操作できるけど
[次へ] みたいな感じでショートカットキーが設定されていないので出来ない、でもしたいって感じかな?
Windows標準のボタンが使われているなら、クラス名を取得してお望みの処理を実現できるよ。

719 :名無しさん@お腹いっぱい。:2014/03/04(火) 20:18:14.50 ID:8Q1b1K9g0.net
>>716
スクリプトでマウスカーソルを移動させたり、
各種クリックさせたりできるから大抵の操作はできるよ。
ただ、そのソフトのウィンドウサイズやボタンの位置が変わったりしたときに
確実に動くように作るのは割とハードル高いと思う。
スクリプト書けると他にもいろいろ使えるから覚えて損はない。

720 :名無しさん@お腹いっぱい。:2014/03/04(火) 20:21:53.88 ID:otKsr2OS0.net
>>716
Ctrl+Sで[保存]ボタン、Ctrl+Wで[閉じる]ボタンを押させたい
とかってことなら、まあ大抵の場合は出来るんじゃないかな

各ボタンのコントロールが取れるならControlClick
取れないけど、Window上でのボタンの座標が常に固定なら直接座標指定してMouseClick
座標も一定じゃなければImageSearchでボタンを探してMouseClick
みたいな感じ

721 :名無しさん@お腹いっぱい。:2014/03/04(火) 20:22:24.03 ID:otKsr2OS0.net
はいめっさかぶりました

722 :名無しさん@お腹いっぱい。:2014/03/04(火) 20:48:38.38 ID:DQK4PiPE0.net
>>716
失礼、読み直して理解した。
マウスサイドボタン割り当て変更していない前提の話で
対象ソフトでのマウスサイドボタン操作をキーボードでしたいって事か。

割り当て変更程度の基本動作は比較的簡単なので
リファレンスしっかり読めば迷わないと思う。

723 :名無しさん@お腹いっぱい。:2014/03/04(火) 21:24:12.85 ID:qpMowDMO0.net
>>717
わかりにくい説明ですみません。やりたいことは>>718な感じです。
>>718、720
やりたいことはそれです。
できるんですね。やり方もいろいろあるようですすごいですね。
ちょっとがんばって挑戦してみたいと思います。

ありがとうございました。

724 :名無しさん@お腹いっぱい。:2014/03/05(水) 11:30:11.68 ID:i7J6n+CU0.net
>>715
>>713ですが、ありがとうございます。

キャレット座標の変数(A_CaretX、A_CaretY)があったのですが、うまく機能していないようでした。
IME.ahkのIME_GetSentenceMode関数が、

文字入力状態:無変換モードで0を返す
文字入力状態でない:0を返す

だったので、自分は無変換モードにしないので、これを利用しました。

725 :名無しさん@お腹いっぱい。:2014/03/05(水) 11:58:10.27 ID:FF/7iv100.net
以下の説明があるのですが、「このラベルは、スクリプトが開始された直後にも実行される。」の「にも」ってどうゆうことですか?

二度呼ばれるってこと?

OnClipboardChangeサブルーチン
「OnClipboardChange」という名前のラベルを作成しておくと、何らかのアプリケーションによってWindowsのクリップボードが変更されたときにそのラベルが実行されるようになる。
このラベルは、スクリプトが開始された直後にも実行される。

726 :名無しさん@お腹いっぱい。:2014/03/05(水) 12:13:20.64 ID:qCMYSbxb0.net
スクリプト起動j直後に必ず一回呼ばれ
その後クリップボードが変更されるたびに何度でも呼ばれる

727 :名無しさん@お腹いっぱい。:2014/03/05(水) 13:08:28.71 ID:FF/7iv100.net
>>726
なるほど、ありがとうございます。

マニュアルではOnClipboardChange中のクリップボード読み書きでは再呼び出しがかからないと書いてあるのですが、
どうも呼ばれるような気がします。

それが毎回じゃないのですが…

728 :名無しさん@お腹いっぱい。:2014/03/05(水) 13:54:18.68 ID:FH0bPo7T0.net
処理にもよるかもだけど、30〜程度のsleepを入れるといいよ

729 :名無しさん@お腹いっぱい。:2014/03/05(水) 17:00:44.67 ID:FF/7iv100.net
clipped変数に複数のファイルをコピーした状態を作れないでしょうか?

テキストファイルからパスリストを読み込み、それを全てコピーした状態にしたいのですが…

730 :名無しさん@お腹いっぱい。:2014/03/05(水) 17:01:22.35 ID:FF/7iv100.net
>>728
助言ありがとうございます。

sleepを入れたらちゃんと動くようになりました。

731 :名無しさん@お腹いっぱい。:2014/03/05(水) 17:40:42.54 ID:sldfG/s40.net
特定のプロセスがCPU使用率50%以上になったら強制終了させるっていうのを書こうとしたんだけど

プロセスの存在を確認するコマンドはあるけど
CPU使用率を取得するっていうのはもしかしてないのかな。
過去ログ見てるけどこのあたりを昔いじってるひとがいたような。

732 :名無しさん@お腹いっぱい。:2014/03/05(水) 18:00:48.68 ID:BuF8L69L0.net
>>729
単純に Loop,READ と FileCopy あたりで
リストにあるファイルを目的の場所にコピーすることはできるけど
そうじゃなくて、Explorer等でペーストできる状態で
クリップボードに格納したいってことなら↓この辺じゃないかな

http://www.autohotkey.com/board/topic/23162-how-to-copy-a-file-to-the-clipboard/page-4#entry463462

733 :名無しさん@お腹いっぱい。:2014/03/05(水) 18:53:42.46 ID:1rqdE70w0.net
>>731
AutoHotkeyでコマンドが用意されていないならDllCallで該当するAPI呼び出そう。

システムモニタ用関数群
ttp://ahk.xrea.jp/myscripts/index.html

734 :名無しさん@お腹いっぱい。:2014/03/05(水) 20:23:12.17 ID:sldfG/s40.net
>>733
おおw
ちょっと理解するのに時間かかりそうだけど 簡単かな?

軽量な実行ファイル作りたいぞ〜

735 :名無しさん@お腹いっぱい。:2014/03/05(水) 20:48:57.58 ID:1rqdE70w0.net
>>734
関数を利用するならリファレンス読むだけで十分に理解できる。

DllCallでAPIを使うのは難易度高いがググれば何とかなる。
対象を使用したスクリプトが何かしらヒットする。
検索ワード:Autohotkey API関数名

736 :名無しさん@お腹いっぱい。:2014/03/06(木) 10:57:30.33 ID:vZd8Y1LG0.net
AU3_Spy.exeで表示される「Visible Window Text」を取得する方法はあるでしょうか?

737 :名無しさん@お腹いっぱい。:2014/03/06(木) 18:11:04.41 ID:hV6d/X8j0.net
>>736
AU3_Spy.exe の情報はすべてAutoHotkeyのコマンドで所得している。
後は自分で探そう。

738 :名無しさん@お腹いっぱい。:2014/03/06(木) 18:16:25.76 ID:hV6d/X8j0.net
ミス所得、取得

739 :名無しさん@お腹いっぱい。:2014/03/07(金) 01:42:47.35 ID:1Zg4SA4j0.net
IEでHit-a-Hintというか、キーボードで自在にリンクを開くってAHKで何とかできないですかね?
リンクの色とかでは判別しきれませんし、特定のキーにカーソル移動を割り当てるくらいしか思いつかないんですが
それだとあまりスマートでないというか……

740 :名無しさん@お腹いっぱい。:2014/03/08(土) 18:31:18.75 ID:HwFTgxlJ0.net
普通のAHKのスクリプトじゃ操作は無理
IEオブジェクト使えばなんとかなるだろうけど、ほぼAHKよりIEとかDOMとかJSの知識のほうが必須

741 :名無しさん@お腹いっぱい。:2014/03/08(土) 21:21:51.81 ID:ztVAcItD0.net
下例に於いて、上のパターンと下のパターンとでは処理速度はそれ程変わらないと思うのですが、
決まった回数ループさせる場合はどっちのパターンでループさせるのが賢いと言えますか?

Loop,100{
 Loop, 5{
  何かの処理(条件により途中でループを抜ける場合がある)
 }
}

Loop, 5{
 Loop,100{
  何かの処理(条件により途中でループを抜ける場合がある)
 }
}

742 :名無しさん@お腹いっぱい。:2014/03/08(土) 21:35:12.29 ID:8BgYcHG70.net
処理速度よりやりたい内容ベースで考えるべきじゃね

100回行いたい処理+500回行いたい処理があるなら前者
5回行いたい処理+500回行いたい処理があるなら後者
500回行いたい処理しかないなら入れ子にする意味なし、 Loop,500{}でおk

743 :名無しさん@お腹いっぱい。:2014/03/08(土) 21:42:55.20 ID:EAQeMNhs0.net
腹筋5回を1日に100セット
腹筋100回を1日に5セット

どちらがいいですか?

744 :名無しさん@お腹いっぱい。:2014/03/08(土) 22:01:55.03 ID:ztVAcItD0.net
>>742-743
決まったパターンに拘らず、その場その場に合った(書きやすい)方で書けばいいってことですね。
即レスありがとうございました。

745 :名無しさん@お腹いっぱい。:2014/03/08(土) 22:33:49.01 ID:5+xRngcW0.net
テンプレにある
sc07B & I::Send, {Blind}{Up}
sc07B & K::Send, {Blind}{Down}
sc07B & J::Send, {Blind}{Left}
sc07B & L::Send, {Blind}{Right}
これで、sc07Bを押した時にポップアップで操作説明を出したいのですが
タイマーで監視するしかないでしょうか?

746 :名無しさん@お腹いっぱい。:2014/03/08(土) 23:28:14.38 ID:/iqDNbmz0.net
>>745
;押し上げた時に表示
sc07B::
ToolTip 説明
Sleep 1000
ToolTip
Return

sc07B & a::MsgBox 実行
-------------------------
;押し下げた間表示
sc07B::
ToolTip 説明
KeyWait sc07B
ToolTip
Return

#If GetKeyState("sc07B","P")
a::MsgBox 実行
#If

747 :名無しさん@お腹いっぱい。:2014/03/09(日) 07:23:29.03 ID:OZn5E6us0.net
Chrome上のFlashがアクティブの時に
Flashにコントロールが取られてしまい
^W でタブを閉じるが効きません(AHK関係なく効かない)

以下のコードで一応閉じることができたのですが、
フルFlashサイトでは動かないのと
一瞬コンテキストメニューが見えてダサいです。
何か良い方法はないでしょうか?

^w::
WinGetPos, win_x, win_y, win_w, win_h, Google Chrome
MouseGetPos, before_x, before_y ;初期位置set
MouseClick, right, 10, win_h - 10, , 0
send {ALT}
send ^w
MouseMove, before_x, before_y, 0 ;カーソルを元の位置に戻す
return

748 :名無しさん@お腹いっぱい。:2014/03/09(日) 07:54:36.94 ID:W0n11bZx0.net
自分はChrome使ってないけど、URL入力欄を決め打ちで左クリックしてフォーカス移せばいいんじゃない?
同じ力技だけど、メニュー出ないだけまだマシ…かな。

力技じゃない方法がもし有るのなら自分も知りたいです。

749 :名無しさん@お腹いっぱい。:2014/03/09(日) 08:43:11.39 ID:OZn5E6us0.net
>>747
ありがとうございます。
URL入力欄に変更した所、思っていたとおりの動きになりました。
一応コード貼っておきます。

^w::
MouseGetPos, before_x, before_y ;初期位置set
MouseClick, left, 170, 60, , 0
closeCtrlW()
MouseMove, before_x, before_y, 0 ;カーソルを元の位置に戻す
return

750 :名無しさん@お腹いっぱい。:2014/03/09(日) 08:44:44.46 ID:OZn5E6us0.net
>>749 のコード間違えました。
closeCtrlW()

send ^w

751 :名無しさん@お腹いっぱい。:2014/03/09(日) 09:17:23.18 ID:H8+q5xQv0.net
>>746
押し下げた間表示のやり方で思っていたようにできました
自分だと sc07B & の形にこだわってしまっていたので
#If でくくるのを見てとてもすっきりしました
どうもありがとうございました

752 :名無しさん@お腹いっぱい。:2014/03/09(日) 22:01:00.65 ID:QqUxyrkb0.net
FileDeleteについてお尋ねします。
読み取り専用属性のファイルの削除が出来ずに困っています。
何か良い手はありませんでしょうか?よろしくお願いします。

753 :名無しさん@お腹いっぱい。:2014/03/09(日) 22:09:44.37 ID:qfuhPqKN0.net
FileSetAttrib, -R

754 :名無しさん@お腹いっぱい。:2014/03/09(日) 22:13:05.14 ID:QqUxyrkb0.net
おおなるほど、一度属性を解除するのですね。
FileDeleteで一発削除って訳にはいかないようですね。
有難うございました。

755 :名無しさん@お腹いっぱい。:2014/03/10(月) 18:29:24.52 ID:YxyZr49z0.net
#IfWinActiveでahk_classとウィンドウタイトルの両方でフックしたいのですが、そんなことはできるでしょうか?

#IfWinActive以降のホットキー定義で右クリックをフックしていますが、そこでWinGetActiveStatsのウィンドウタイトルで条件分けしてしまいますが、
マウ筋と併用すると、右クリック次ジェスチャーが動いてくれません。

~で渡せばいいのですが、アプリによって右クリックを渡したくないので、うまくできません。

やりたいのが、ファイル保存ダイアログ系で右クリックを無視させてとある処理、
タスク マネージャではAutoHotKeyでは何もせず、マウ筋のマウスジェスチャーを効かせたいですが、下ではうまく行きません。
なにかよい方法はないでしょうか?

#IfWinActive, ahk_class #32770
RButton::
WinGetActiveStats, t, Width, Height, X, Y
if( RegExMatch(t, ".*(インポート|ファイル|アップロード|保存|参照).*") ) {
任意の処理
} else {
Send, {RButton} ;タスクマネージャーなどは無視
}
return

756 :名無しさん@お腹いっぱい。:2014/03/10(月) 19:19:08.25 ID:EFDyLp+G0.net
>>755
ウィンドウ指定を複数指定する場合は #If または If を使って式として処理すればいい。
WinExist() WinActive() 等を or || and && で繋げばいくらでも増やせる。

757 :名無しさん@お腹いっぱい。:2014/03/10(月) 20:15:27.76 ID:VVzJPnIq0.net
#IfWin

758 :名無しさん@お腹いっぱい。:2014/03/10(月) 20:16:47.54 ID:VVzJPnIq0.net
#IfWinActive, ウインドウタイトルたぶahk_class
ってだけの話じゃないの?

759 :名無しさん@お腹いっぱい。:2014/03/10(月) 21:17:35.16 ID:CZcJCat40.net
>>755
試してないけど、

SetTitleMatchMode, RegEx
#IfWinActive, タイトル1|タイトル2|タイトル3 ahk_class #32770
RButton::
任意の処理
return

とか?

760 :名無しさん@お腹いっぱい。:2014/03/10(月) 21:39:19.13 ID:1VcRPfJ30.net
どれも正解だけど >>759 が最もシンプル
ただし、AutoExecセクションに SetTitleMatchMode を入れること、と
SetTitleMatchMode の影響をよく考慮することが前提な

761 :名無しさん@お腹いっぱい。:2014/03/10(月) 22:09:01.27 ID:6IxJkOPT0.net
便乗して聞きたいんですけど
#ifWinActive, (タイトル1 ahk_class A|タイトル2 ahk_class B)
こういう指定ができないんですが何故でしょう……
タイトルもahk_classもそれぞれほかに被るのがあるので

#if WinActive(1 A) && WinActive(2 B)
でできるとは思うんですが解せません

762 :名無しさん@お腹いっぱい。:2014/03/10(月) 23:05:41.09 ID:1VcRPfJ30.net
#IfWinActive [WinTitleの合致パターン] ahk_class [WinClassの合致パターン]
であって、それぞれの [合致パターン] を正規表現であらわしていて、
単なる OR ではないため(正規表現じゃ | は ORの意味)

これは文法のお約束であって、解せる解せないっていうもんじゃない


ってか、その書き方だと | が何と何をつないで OR にしているかが明確になって無くないかい?

763 :名無しさん@お腹いっぱい。:2014/03/10(月) 23:13:19.24 ID:6IxJkOPT0.net
うーむめんどくさいですね
Meryの正規表現ならこれでいいのに

あと&&じゃなくて||ですね。混乱した方いたらすみません

764 :名無しさん@お腹いっぱい。:2014/03/10(月) 23:26:35.88 ID:EFDyLp+G0.net
>>758-763
正規表現だとClassの複数指定が出来ないなど制限が有り、
#If系で使う場合Auto-executeセクションで全体の設定が変わってしまうので
シンプルではなくいろいろ考慮しなければいけないので正規表現は全くオススメできない。

765 :名無しさん@お腹いっぱい。:2014/03/10(月) 23:38:03.11 ID:VVzJPnIq0.net
常にRegExにしておけばいい

766 :名無しさん@お腹いっぱい。:2014/03/10(月) 23:44:14.44 ID:CZcJCat40.net
GroupAdd、ahk_groupでは駄目ですかね?
自分は何をグループ化したか見通しが悪くなるので使わないですけど。
(GroupAddはautoexecセクションに書かないと駄目なんですよね?)

767 :名無しさん@お腹いっぱい。:2014/03/10(月) 23:51:05.50 ID:EFDyLp+G0.net
>>764 言いたいことが書けていないので訂正します。

>>761のように指定が決まったいる場合は
正規表現でのパターンマッチは使わない方がいい
ということです。

768 :名無しさん@お腹いっぱい。:2014/03/10(月) 23:53:12.23 ID:1VcRPfJ30.net
GroupAdd だと論理和になるから本件に関しては合致しない

769 :名無しさん@お腹いっぱい。:2014/03/11(火) 12:10:33.43 ID:upMMzD180.net
>>758
みなさま、いろいろありがとうございます。

ahk_class #32770をフックするんだけど、このウィンドウタイトルだけは除外としたいので、
#IfWinActive, タイトル1|タイトル2 ahk_class #32770 だとちょっと違ってきます。

さらにマウ筋と共存させたく、ホットキーの定義内で条件ではなく、除外ウィンドウは#IfWinActiveのところで弾きたいです。

ホットキーに「~」とか入れても、AutoHotKeyキーで送ったキーからだと他のマウスジェスチャーアプリと相性が良くないようで…

#IfWinActive, ahk_class #32770 && #IfWinNotActive, Windows タスク マネージャーとやってもできなかったです

770 :名無しさん@お腹いっぱい。:2014/03/11(火) 15:42:15.24 ID:qDngZmO80.net
#IfWinActive, ^(?!Windows タスク マネージャー$)【TAB】ahk_class #32770

#If !WinActive()

771 :名無しさん@お腹いっぱい。:2014/03/11(火) 16:06:51.90 ID:upMMzD180.net
>>770
正規表現の否定を組み合わせればいいのですね!
知らなかった

ありがとうございました。

772 :名無しさん@お腹いっぱい。:2014/03/11(火) 18:40:39.17 ID:e+UzNNlW0.net
>>771
>#IfWinActive, ahk_class #32770 && #IfWinNotActive, Windows タスク マネージャーとやってもできなかったです
#If WinActive("ahk_class #32770") && !WinActive("Windows タスク マネージャー")

指定する物が変化しないなら自分も正規表現使うべきじゃないと思うがめんどくさいし。
変なところにTAB文字使うのは真似しない方がいいぞ、普通はインデントやコメント部分に使う。

773 :名無しさん@お腹いっぱい。:2014/03/11(火) 18:56:53.17 ID:hwYTIaFd0.net
そんな個人の好き嫌いでしかない話はどうでもいいよ

774 :名無しさん@お腹いっぱい。:2014/03/12(水) 00:21:33.18 ID:BrwEGDwb0.net
Send,の中に半角空白入れるのにIME.ahk使った場合動作重くなったりしませんか?
と聞こうとしてまずIME.ahkを見ようとしたらatwikiだった……
一瞬だけど開いちゃった……

775 :名無しさん@お腹いっぱい。:2014/03/12(水) 02:16:20.33 ID:i3u0Hrsx0.net
半角空白なら、Send,{ASC 32} でいけないかな

IME.ahkのある www6.atwiki.jpは流出サーバーには含まれておらず
今のとこウィルスや改ざんの事実も確認されてはいないようです
しばらくはアクセスは控えたほうがいいとは思いますが
一瞬開いたくらいなら大丈夫かと

776 :名無しさん@お腹いっぱい。:2014/03/12(水) 02:29:28.47 ID:BrwEGDwb0.net
>>775
ありがとうございます
半角空白じゃなくてSpaceキー扱いされてwikipeがうぃきぺに変換されました……
暫く待ちたいと思いますm(_ _)m

777 :名無しさん@お腹いっぱい。:2014/03/12(水) 04:06:08.34 ID:BrwEGDwb0.net
IMEのショートカットキーも使ってこれで何とかなりそうです
Send, {Home}amazon^o^n+{Space}{Enter}
^oが半角英数変換、^nが最初の文節のみを確定、+Spaceが半角空白を入力です

778 :名無しさん@お腹いっぱい。:2014/03/12(水) 06:18:33.53 ID:doX+1Mnv0.net
>>777
文字入力したいなら Clipboard に文字列入れて Send,^v
でいつもやってるがそれじゃダメかな?

779 :名無しさん@お腹いっぱい。:2014/03/12(水) 08:33:07.40 ID:i3u0Hrsx0.net
失礼、他の文字と一緒に送る前提だと変換扱いされちゃうのね
一応 IME.ahkも @wikiの外に上げときます。

IME.ahk最新版
http://www1.axfc.net/u/3192355.zip

動作は一文字打つごとに毎回IME制御だと効率は良くないかもしれないけど
頻度によりますがSendの前後でON/OFFするくらいならそう重くはないかと

780 :名無しさん@お腹いっぱい。:2014/03/12(水) 11:47:01.87 ID:toVXpcZD0.net
拡張子に対応する起動アプリケーションの設定をAutoHotKeyで変更する方法があれば教えていただけないでしょうか?

やはりレジストリ変更バッチツールとを起動する方法しかないのでしょうか?

781 :名無しさん@お腹いっぱい。:2014/03/12(水) 19:24:01.53 ID:doX+1Mnv0.net
>>780
レジストリ系のコマンドで直接書き換えればいいがレジストリの変更は自己責任でよろしく。
安全の為に動作確認するときは仮想OSなどでやったほうがいい。
自信が無いなら任意の専用ツール呼び出した方が確実。
ttp://ahkwiki.net/Commands_Category#reg

782 :名無しさん@お腹いっぱい。:2014/03/12(水) 19:26:36.11 ID:rDtngsqh0.net
>>781
その人他スレに移動して質問してるからスルーでいいよw

783 :名無しさん@お腹いっぱい。:2014/03/12(水) 19:33:09.77 ID:F8tU4hJY0.net
放り込んだファイルを拡張子に応じたアプリに渡すAHKスクリプト作っとくと便利
俺は拡張子じゃなくパスによって振り分けるのを使ってる

784 :名無しさん@お腹いっぱい。:2014/03/13(木) 22:57:51.01 ID:oAUicqkd0.net
GUI表示についてお尋ねします。
GuiをHIDE状態で起動する場合

Gui,Show
Gui,Hide

だと一瞬GUIが表示された後にHIDEされるのですが
これを完全に非表示状態で起動する事は出来ますでしょうか?
よろしくお願いします。

785 :名無しさん@お腹いっぱい。:2014/03/13(木) 23:10:25.79 ID:Ek89d3v70.net
Gui,Showのオプションにお望みのものがあるよ
wiki参照

786 :名無しさん@お腹いっぱい。:2014/03/13(木) 23:21:41.47 ID:oAUicqkd0.net
>>785
早速の返信有難うございます。
NoActivateオプションを追加していると
Gui, Show, Hide NoActivate
Hideオプションが効かないみたいです。

787 :名無しさん@お腹いっぱい。:2014/03/14(金) 00:22:26.56 ID:SYwSN8150.net
必要になったときに、Show するだけなんじゃ。。。

788 :名無しさん@お腹いっぱい。:2014/03/14(金) 00:25:13.03 ID:vdddUyAJ0.net
情報小出しの末路はこんなもんだ

789 :名無しさん@お腹いっぱい。:2014/03/14(金) 00:38:58.89 ID:Xz1ylAyu0.net
まあ、条件後出しの上にまだ情報出し惜しみしてるしスルーされるわな

790 :名無しさん@お腹いっぱい。:2014/03/14(金) 00:39:58.87 ID:0edS7YVs0.net
Gui, show, hide
だけでいいじゃん。そもそもが何のためなのか分からんからなんともいえんけど。
これでGui非表示のままそのGuiの座標やら大きさやらを得ることはできるよ

791 :名無しさん@お腹いっぱい。:2014/03/14(金) 00:43:48.57 ID:jn6cumi80.net
Gui, Show, Hideだけで解決しました。
どうもお騒がせしました。

792 :名無しさん@お腹いっぱい。:2014/03/14(金) 01:05:19.19 ID:0edS7YVs0.net
いやいやいいっすよ
別にそんなボロクソに言われるほど情報後出しでも、大して小出しでもなかったし

793 :名無しさん@お腹いっぱい。:2014/03/14(金) 08:19:55.64 ID:x9Y2zCn60.net
まあhide起動が望みならフォーカス奪いたくないと思うのは当然だろうし
これを条件後出しって責めるのはさすがにな

794 :名無しさん@お腹いっぱい。:2014/03/14(金) 19:57:15.10 ID:NvmuZg0/0.net
このスレというかこの板だいたいそうみたいだけど
普通に質問してる人いてもポツポツしかレス付かないのに
ちょっと叩きどころがあると見ると答える気もない奴が一斉にワラワラ涌いてくるのな

795 :名無しさん@お腹いっぱい。:2014/03/14(金) 20:06:36.99 ID:SaliyrgR0.net
別に質問スレじゃないんだから回答があって当然とか、答える気がないならレスすんなみたいなのはナンセンス
まともな質問ならまともなレスがつく

796 :名無しさん@お腹いっぱい。:2014/03/14(金) 20:13:51.13 ID:NvmuZg0/0.net
煽る気しかない奴はレスしなくていい
何スレだろうと同じ

797 :名無しさん@お腹いっぱい。:2014/03/14(金) 21:37:11.16 ID:x9Y2zCn60.net
教えて君が湧きやすいスレは教育的指導も必要だとは思うよ
複数の人間に叩かれることで己の言動に問題があったことに気がつかせるのはありだ

煽りや指摘が1、2レスついたくらいじゃまっとうな返しなのか理不尽に叩かれてるのか
当人にはわからなかったりするからね

798 :名無しさん@お腹いっぱい。:2014/03/14(金) 21:50:40.99 ID:riUceAwV0.net
なんかおっさん臭くて笑ってしまった

799 :名無しさん@お腹いっぱい。:2014/03/14(金) 22:34:26.63 ID:c6xp/OtK0.net
>>795=厨2
>>796=高2
>>797=大2

800 :名無しさん@お腹いっぱい。:2014/03/14(金) 23:14:21.56 ID:kTAAiJ0x0.net
>>794=796
お前のレス煽りにしか見えないんだけど

801 :名無しさん@お腹いっぱい。:2014/03/15(土) 02:55:51.35 ID:le3CkoW10.net
>>785=>>790だけど、
質問者に後出し要素なんて皆無だったんだけど文句言ってる奴は何が気に食わなかったんだろ
流れ的には
>>785の回答見てオプションの存在を知る
>>786でそのオプション試したけどうまくいかないという旨の質問
なんだが。
情報小出しも何もやりたいことは最初に全部言ってるし。
何のためにそれがやりたいのかは書いてなかったけど

802 :名無しさん@お腹いっぱい。:2014/03/15(土) 08:55:40.71 ID:PUW2yV160.net
今回の質問者に関しては煽ってる側がアホでFA

794以降はそっから離れてスレ自治的な話
答えらんないやつは黙ってろな流れはさすがにちょっとね

803 :名無しさん@お腹いっぱい。:2014/03/15(土) 11:54:57.50 ID:E3SkijsT0.net
私の発言が原因で荒れる事になってしまい、申し訳なく思っております。
以後気を付けます。

804 :名無しさん@お腹いっぱい。:2014/03/15(土) 15:38:12.12 ID:F5y++smt0.net
AutoHotKeyでAlt+Tabを別のキーにって変更できますか?
例えばCtrl+TABに変更とか

805 :名無しさん@お腹いっぱい。:2014/03/15(土) 19:58:51.12 ID:U3/Q1Xyd0.net
Windows 8.1 Pro x64 + Java 7 u51 x64 で Minecraft を動かしています。
遊びすぎてしまうので、常駐 AutohotKey スクリプトでタイマーかけて Minecraft を
閉じたいと思っています。

常駐 AHK スクリプトは管理者権限で走らせています。
あらかじめ javaw.exe の ahk_pid を取得しておき
時間がきたら WinClose, ahk_pid %PID% で閉じようとしています。
しかしこれがうまくいきません。次に何をしらべるべきか、
ご指南いただけないでしょうか。

806 :名無しさん@お腹いっぱい。:2014/03/15(土) 21:40:16.23 ID:+gBxsOQH0.net
>>804
その辺のことは大抵のことはできる。

>>805
複数起動しないならタイトル、ahk_class、ahk_exeで指定。
対象のウインドウをWindow Spyでahk_class調べる。

順に試して終了できるか試す。
WinClose
PostMessage, 0x112, 0xF060,,, WinTitle
WinKill

文法自体間違っている場合もあるので
先にメモ帳や電卓あたりを終了できるか試そう。

807 :名無しさん@お腹いっぱい。:2014/03/17(月) 08:48:40.18 ID:P+5isYZV0.net
矢印キーでその方向にマウスカーソルを移動し(移動速度は変数で指定)、ESCキーで止めるには
どのようにすればいいでしょうか?

808 :名無しさん@お腹いっぱい。:2014/03/17(月) 09:16:39.86 ID:wPCtjVlf0.net
>>807
パッと思いついたのはこんな感じかな
#if !hoge
right::
hoge:=1
mousegetpos,x,y
while hoge
{
x+=5
mousemove,%x%,%y%
}
return
#if hoge
esc::
hoge:=
return
#if

809 :名無しさん@お腹いっぱい。:2014/03/17(月) 09:46:07.66 ID:P+5isYZV0.net
>>808
ありがとうございます。
うまく動作しました。

810 :名無しさん@お腹いっぱい。:2014/03/17(月) 13:30:41.43 ID:u61/ObhI0.net
LINEとかのアプリケーションで半透明が効かないんですけど、このウィンドウには適用できないのでしょうか?

811 :名無しさん@お腹いっぱい。:2014/03/17(月) 13:49:05.60 ID:fgUle1iS0.net
動作確認系の質問は環境書かないと答え得られんよ

LINEとかのアプリケーション使ってないんで知らんけど
LINEとかじゃないアプリケーションでの透過確認はしたの?

812 :名無しさん@お腹いっぱい。:2014/03/17(月) 14:20:48.42 ID:DQnBqE4+0.net
FileMoveDirコマンドを使って
「D:\hoge」フォルダを「D:\hoge\hoge」フォルダに移動させたい
(任意のフォルダを同名フォルダの1階層下に送りたい)のですが

FileMoveDir, D:\hoge, D:\hoge\hoge

としても移動されません
うまく移動させるにはどうすればよいでしょうか?

813 :名無しさん@お腹いっぱい。:2014/03/17(月) 14:28:59.44 ID:lWLFiiXl0.net
エクスプローラ上でやるのと同じようにやればいい

814 :名無しさん@お腹いっぱい。:2014/03/17(月) 15:21:34.72 ID:DC9QZ1hS0.net
MoveじゃなくてCopyだろ

815 :名無しさん@お腹いっぱい。:2014/03/17(月) 16:13:21.06 ID:46Af9U4L0.net
元フォルダ(「D:\hoge」)配下にファイルだのフォルダなどが有る場合、
単純なcopyだと余計なファイルやフォルダの削除処理が必要なので・・・

※大袈裟で効率悪いかもしれないが・・・・・
1-別名フォルダ「(例)D:\hoge1」を作る
2-そのフォルダに元フォルダ「D:\hoge」をコピーする(→「D:\hoge1\hoge」)
3-フォルダ名「hoge1」を「hoge」に変更する
4-元フォルダ「D:\hoge」をゴミ箱に入れる(保険として)

単純に複製したいなら、>>814で良いと思う

816 :815:2014/03/17(月) 16:18:07.26 ID:46Af9U4L0.net
>>815を訂正
3と4の順番が逆で、正しくは
3-元フォルダ「D:\hoge」をゴミ箱に入れる(保険として)
4-フォルダ名「hoge1」を「hoge」に変更する

817 :名無しさん@お腹いっぱい。:2014/03/17(月) 17:11:02.56 ID:fgUle1iS0.net
同一ドライブの移動とコピーじゃ速度全然違う、わざわざコピーする必要なくね?

;親子関係だとFileMoveDirでの単純移動はできないみたいなのでファイル移動にする
FileMove,F:\hoge\*, F:\hoge\hoge

;サブフォルダがある場合はfile-loopで回して移動
loop,F:\hoge\*,2
{
  if (A_LoopFileFullPath <> "hoge")
    FileMoveDir, %A_LoopFileFullPath%, F:\hoge\hoge,1
}

818 :名無しさん@お腹いっぱい。:2014/03/17(月) 17:12:39.80 ID:fgUle1iS0.net
あ、テストパスそのまま貼っちゃった。F:\はD:\に読み換えて
あと全角インデントは半角に直してよろしく

819 :名無しさん@お腹いっぱい。:2014/03/18(火) 13:51:10.53 ID:Li6xUWAB0.net
マウス下が非アクティブのウィンドウでも、マウススクロールでウィンドウをアクティブにしてスクロールさせたいのですが、
コントロール別に対象のサブウィンドウにも対応させるため、ControlClickとWheelUpを使っています。

うまく動いているのですが、Spyでみてもコントロールが表示されないソフトだと上手く動かないので何とかしたいです。

今はしようがないので、Send {LButton}してSend {WheelUp}してます。
この方法以外でなにか手はないでしょうか?

820 :名無しさん@お腹いっぱい。:2014/03/18(火) 15:23:45.31 ID:Mmti5WeV0.net
その方法だとなにか支障がでたりするの?

非アクティブのままスクロールしたいならホイールリダイレクト系のスクリプト組む必要あるけど
アクティブ後スクロールでいいんだよね?
ならMouseClick後にホイールするだけだし特に問題なさそうに見えるけど

821 :名無しさん@お腹いっぱい。:2014/03/18(火) 16:46:42.40 ID:I74zEsZK0.net
>>819
非アクティブで操作なら話が分かるのだか、まあ間違えかもしれないから一応書いておく。
取得できないならControl系での直接指定はあきらめるしかない。

822 :名無しさん@お腹いっぱい。:2014/03/18(火) 16:47:12.00 ID:Li6xUWAB0.net
>>820
すみません。
細かく詳しくないのでホイールリダイレクト系だと思いますが、winActiveしても、マウス下のコントロールにスクロールを送れないので
そのままWheelUpすると、カースルがあるコントロールのウィンドウがスクロールされます。

これだとマウス下のコントロールがスクロールしないので困ってます。

823 :名無しさん@お腹いっぱい。:2014/03/18(火) 18:24:22.51 ID:Mmti5WeV0.net
いや、Send {LButton}してSend {WheelUp}では問題ないんだよね?
MouseClick相当でマウス下コントロールにフォーカス当てる方法が嫌な理由がわからなかったので

ホイールリダイレクトやろうとすると色々考慮せにゃならんことが出てくるのでコード長くなるよ
一応参考になりそうなとこ置いとくけど、2行で済むなら今のやり方のほうが簡単だと思う

WheelAccel
http://mobitan.org/ahk/WheelAccel.ahk
WheelScroll U64版
http://www1.axfc.net/u/3197627.zip
TrackWheel
https://sites.google.com/site/agkh6mze/trackwheel

824 :名無しさん@お腹いっぱい。:2014/03/21(金) 23:25:32.86 ID:Hqv8j2uU0.net
autohotkeyでパイプ処理のようなことはできないのでしょうか
文字列を他のソフトで加工してから再度autohotkeyで処理するみたいなことをしたいです

825 :名無しさん@お腹いっぱい。:2014/03/22(土) 20:45:41.82 ID:hALgY1kQ0.net
>>824
ahkで文字列をテンポラリファイルに書き出して、それを他のソフトに処理させて
他のソフトの出力をテンポラリに書き出してもらって、他のソフトが終了したら、ahkでテンポラリから
その出力を読みだせばいいんでないの?

windows(MSDOS?)のパイプ処理をそのまま書いただけだけど、他のソフトってのが対応してるなら
問題なく動くでしょ。

〜できますか?ってのは「できます」って答えるだけでいいんじゃないかって気もしてきたよ

826 :名無しさん@お腹いっぱい。:2014/03/22(土) 20:53:24.61 ID:ROOJcSon0.net
できますでいいんだよ
それすら答える気起きなかったけど

827 :名無しさん@お腹いっぱい。:2014/03/22(土) 22:21:17.50 ID:0xVv1pUF0.net
824です
他のソフトウェアの受け渡しをどうすればいいのか分かりませんでしたが
ソフトウェアを監視するようにすればできますね
ありがとうございます失礼しました

828 :名無しさん@お腹いっぱい。:2014/03/23(日) 16:20:30.36 ID:u57hUf+20.net
Spyツールのもうちょっと使いやすいの無いですか
Shift-Alt-Tabしてもfreeze display出来ない…

ウィンドウ一覧から絞り込んでtitle&classをパパっとコピーできる外部ツールあったら教えて下さい

829 :名無しさん@お腹いっぱい。:2014/03/23(日) 17:59:09.93 ID:xFId55lr0.net
ちょっと探してみたけど、WinSpy++が要望に近い気がする

#c::WinGetText, Clipboard, ahk_class AU3Reveal
とかでAHKからWindow Spyの内容をホットキーでコピーするもの手軽でいいんじゃないかな

まぁ、AHKで自作するのが一番(ry

830 :名無しさん@お腹いっぱい。:2014/03/23(日) 18:45:26.85 ID:PIf4CkH60.net
>>828
AU3_Spy.exeのバージョンアップ版(?)が欲しいなら、以下のページからAutoIt v3の旧バージョンに同梱されてる。
AutoIt のバージョンによって微妙に違ってたりするから自分で好きなの使ったらいい。(最近のはかなり違ってるが)

AutoIt Previous Versions
http://www.autoitscript.com/autoit3/files/archive/autoit/

「title&classをパパっとコピー」に限定するなら>>829の言うとおりAHKで自作するのが一番(融通が利くからね)

831 :名無しさん@お腹いっぱい。:2014/03/24(月) 08:12:08.21 ID:ncYuyyvY0.net
右クリックやアプリケーションキーを押すとメニューがポップアップしますが、これが出ているか
どうかを知る方法はありますでしょうか?

#If WinActive( "ahk_class hoge" ) and (ポップアップメニューが出ていない)
s::Send, hoge
#if

832 :名無しさん@お腹いっぱい。:2014/03/24(月) 12:50:49.09 ID:/OFHkf1r0.net
>>831
ポップアップメニューが出ていない > if ! WinExist("ahk_class #32768")
ですかね?

833 :名無しさん@お腹いっぱい。:2014/03/24(月) 16:13:39.66 ID:Q5mOH6qd0.net
>>831
MouseGetPosでメニューのウィンドウハンドル調べられる。
Window Spyだとなぜか無理・・・。

834 :名無しさん@お腹いっぱい。:2014/03/25(火) 09:18:13.53 ID:QMnWLJjx0.net
>>832
>>833

>>832さんの方法でうまくいっているようです。
唯一Chromeでは、>>832さんの方法ではうまく動作していないようです。

>>833さんの方法でウィンドウハンドルを取得すると、ウィンドウハンドルがやる度に変化していました。
とりあえず、Chromeは仕方がないとします。

835 :名無しさん@お腹いっぱい。:2014/03/25(火) 10:33:19.43 ID:sZ7dmSnp0.net
ハンドルは固定じゃないよ
ハンドルからWinGetClassでクラス名取得して調べたらって意味かと

Chromeメニューのクラス名もわかれば例外処理対策できるでしょ

836 :名無しさん@お腹いっぱい。:2014/03/25(火) 11:13:33.85 ID:QMnWLJjx0.net
>>835
なるほど、私の理解不足でした。
試した結果、Chromeではクラス名が、Chrome_WidgetWin_2 でした。
そして、思い通りの動作ができました。

>>832さん、>>833さん、>>835さん、ありがとうございました。

837 :名無しさん@お腹いっぱい。:2014/03/25(火) 16:42:29.57 ID:+N64w4Gv0.net
WinMoveでサイズ変更できないウィンドウがあるのですが
WinMove以外の方法でサイズ変更って出来ますか?

838 :名無しさん@お腹いっぱい。:2014/03/25(火) 20:58:41.90 ID:S65PfreQ0.net
>>836
一応、Firefoxとかも違うから。
何にせよ調べる手間惜しまなきゃ同じ要領でいける

839 :名無しさん@お腹いっぱい。:2014/03/25(火) 21:02:17.15 ID:S65PfreQ0.net
>>837

・ 管理者特権(UAC管理下)のウィンドウは操作できない。
 同じく管理者で起動したスクリプトからは操作できる

・ そのアプリの処理で常にウィンドウサイズ指定してたら手がつけられないのであきらめ。
  WinSet, Region で矩形切り出しっ手方法も無くはないがお勧めしない

840 :名無しさん@お腹いっぱい。:2014/03/25(火) 23:17:18.51 ID:KRW55RQT0.net
ウインドウ監視などでウインドウを特定する方法として
ウインドウタイトル
ウインドウクラス
ウインドウ内のテキスト
などあると思うんですが、その中で「ウインドウクラス」を持たないウインドウって存在するのでしょうか?
存在するのかしないのか分からないので質問してもました。

841 :名無しさん@お腹いっぱい。:2014/03/25(火) 23:38:59.79 ID:KRW55RQT0.net
すいません。
よく考えてみたらスレ違いの質問でした。 >>840

842 :名無しさん@お腹いっぱい。:2014/03/25(火) 23:53:37.18 ID:sZ7dmSnp0.net
クラスがないというのはないと思うが
controlのクラス名が動的に変動するソフトは見たことあるな

843 :名無しさん@お腹いっぱい。:2014/03/25(火) 23:58:59.66 ID:KRW55RQT0.net
>>842
スレ違いの質問なのに答えていただき、ありがとうございました。

844 :名無しさん@お腹いっぱい。:2014/03/26(水) 00:13:22.81 ID:8GdYwriA0.net
ファイル名で指定ディレクトリ以下を検索してパスを取得するってどのコマンド使えばいいんでしょ
Loop(files)ですか?

845 :名無しさん@お腹いっぱい。:2014/03/26(水) 00:20:29.00 ID:liA0CQ200.net
>>839
Winsetでスタイル変えた後にWinmoveしたりもしてみましたが、結局出来ませんでした
返信有難うございました

846 :名無しさん@お腹いっぱい。:2014/03/26(水) 00:35:23.14 ID:8GdYwriA0.net
>>844補足ですが、指定ディレクトリ以下と言うのは何階層か下までが対象です
Loop, C:\TargetDir\*\hogehoge.txt,, 1としてもC:\TargetDir\Sub\hogehoge.txtすらヒットしませんでした

847 :名無しさん@お腹いっぱい。:2014/03/26(水) 00:55:38.65 ID:ICU6Xvet0.net
Loop(files)とA_LoopFileNameとA_LoopFileFullPathとIfInStringあたり

848 :名無しさん@お腹いっぱい。:2014/03/26(水) 01:08:19.89 ID:X7/VzHeJ0.net
>>846
ワイルドカードの指定が間違っている。
後は自分でいろいろ試して解決してほしい。

849 :名無しさん@お腹いっぱい。:2014/03/26(水) 02:16:09.16 ID:8GdYwriA0.net
>>848
間違えてるのは\*\の部分ですよね。\を減らしたりずらしたりしましたがなんとも
ワイルドカードについてググってもfor使って下まで何回も繰り返せ、とかunixのfindとxargsの合わせ技とかしか見つかりませんでした……
>>847
A_LoopFileNaneとIfInStringはどこで使うのですか?

一応Everythingに任せることで代用できたんですが醜いです。ワイルドカードの正しい使い方教えてもらえるとありがたいです

850 :名無しさん@お腹いっぱい。:2014/03/26(水) 02:31:34.99 ID:Pjy8TS1E0.net
>>849
Loop (ファイル検索) - AutoHotkey Wiki
http://ahkwiki.net/LoopFile
の、「Parameters」をもう一度読み返せば何が間違いかハッキリするよ。
がんばれ。

851 :名無しさん@お腹いっぱい。:2014/03/26(水) 07:58:08.13 ID:RdIJ8x5m0.net
>>838
なるほど、勉強になりました。

852 :名無しさん@お腹いっぱい。:2014/03/26(水) 13:56:31.21 ID:4KL9EwDj0.net
プロセスグループを作りたいと思ったのですが、Wiki見てもそれらしい事が記載されていません。
AHKではプロセスグループはサポートされていますか?。

853 :名無しさん@お腹いっぱい。:2014/03/26(水) 14:10:57.29 ID:X7/VzHeJ0.net
>>852
これのことかな?
ttp://ahkwiki.net/GroupAdd

854 :名無しさん@お腹いっぱい。:2014/03/26(水) 15:08:38.33 ID:4KL9EwDj0.net
>>853
ありがとうございます
これはウインドウグループなのでプロセスグループではないのです。

855 :名無しさん@お腹いっぱい。:2014/03/26(水) 15:20:47.09 ID:miXxPB9L0.net
>>854
ahk_exeではいかんの?

856 :名無しさん@お腹いっぱい。:2014/03/26(水) 15:47:31.82 ID:miXxPB9L0.net
>>855は下みたいにGroupAddでahk_exeを使ってプロセス名で指定するって意味ね

GroupAdd, note, ahk_exe notepad.exe

857 :名無しさん@お腹いっぱい。:2014/03/26(水) 16:16:20.27 ID:4KL9EwDj0.net
>>856
おっ!これは!
ちょっと今試してみます!

858 :名無しさん@お腹いっぱい。:2014/03/26(水) 16:33:21.72 ID:4KL9EwDj0.net
すみません、サンプル作成したのですが、プロセスが終了しません。
ヘルプお願いします。

GroupAdd, process, ahk_exe hage.exe
GroupAdd, process, ahk_exe hoge.exe
GroupAdd, process, ahk_exe homo.exe
GroupAdd, process, ahk_exe home.exe

c::Process, Close, ahk_group process

859 :名無しさん@お腹いっぱい。:2014/03/26(水) 16:36:49.65 ID:lxaMOTGc0.net
試行錯誤って言葉

860 :名無しさん@お腹いっぱい。:2014/03/26(水) 16:45:26.64 ID:4KL9EwDj0.net
>>859
何とか試行錯誤した結果ですが
これが正解でよろしいでしょうか?
よろしくお願いします

c::WinClose, ahk_group process

861 :名無しさん@お腹いっぱい。:2014/03/26(水) 16:51:19.66 ID:4KL9EwDj0.net
すみません>>860は忘れてください。
Winloseだと、対象プロセスがビジー状態だと、ホットキーを押しても直ぐに終了しないです。
Proess,Closeでもう少しがんばってみます。

862 :名無しさん@お腹いっぱい。:2014/03/26(水) 16:51:33.54 ID:20FfVUZQ0.net
>>860
AhkTaskMan 導入した方が早いんじゃね
ttps://sites.google.com/site/agkh6mze/scripts#TOC-AhkTaskMan

863 :名無しさん@お腹いっぱい。:2014/03/26(水) 16:52:54.75 ID:miXxPB9L0.net
>>861
Processコマンドにはウインドウ指定は使えない
Loopで回すしかない

ProcessList = notepad.exe,wordpad.exe,cmd.exe
Loop, Parse, ProcessList, `,
{
Process, Close, %A_LoopField%
}

864 :名無しさん@お腹いっぱい。:2014/03/26(水) 17:01:09.55 ID:X7/VzHeJ0.net
>>861
WinKill...
もう少し解説やどんなコマンドがあるかよく見たら?

865 :名無しさん@お腹いっぱい。:2014/03/26(水) 17:11:27.40 ID:4KL9EwDj0.net
>>862>>863
ありがとうございます。試してみます

>>864
ありがとうございます。
Winkillでも試してみましたが、対象プロセスがビジー状態だと、直ぐに終了しないようです。
もう少しWikiを見てみます。

866 :名無しさん@お腹いっぱい。:2014/03/26(水) 17:59:22.66 ID:4KL9EwDj0.net
>>863
今確認してみましたが、自分の望んだ動作を実現できました。
有難うございました。

867 :名無しさん@お腹いっぱい。:2014/03/28(金) 23:14:00.23 ID:bnkv553u0.net
1キーを押した後に2キーを押して、更に1キーを押すと1の処理に戻りません
ご教示願います

スクリプトかこんな感じです
1::
Loop
{
処理
}
return

2::
Loop
{
処理
}
return

868 :名無しさん@お腹いっぱい。:2014/03/28(金) 23:29:36.10 ID:ir4KBC9d0.net
>>867
breakしたらどう?一応マルチスレッドもどきなんだからへんなとこでひっかかってるんじゃね

869 :名無しさん@お腹いっぱい。:2014/03/29(土) 00:22:29.50 ID:hgIJ64vY0.net
2の部分コメントアウトして 1だけ2回押してどうなるか試してみ
2キーの記述及び操作は関係なくて1の中で抜けてこられず永久ループになってると予想

870 :名無しさん@お腹いっぱい。:2014/03/29(土) 03:18:25.40 ID:OTHQqLaL0.net
>>868
>>869
返信有難うございます。
色々試してみます。

871 :名無しさん@お腹いっぱい。:2014/03/30(日) 16:03:25.31 ID:bsItNznR0.net
小遣い帳をtxtで付けてたけど表計算ソフト使ってみたくてCalc試したら糞重いし関数覚えるのめんどい
簡単な足し算ならAHKで事足りるかな

872 :名無しさん@お腹いっぱい。:2014/03/30(日) 16:17:22.47 ID:kbIc6WHE0.net
やっぱ適材適所ってことは考えたほうがいいと思うよ・・・
googleのとかどこか微妙なoffice2010とか。

873 :名無しさん@お腹いっぱい。:2014/03/30(日) 16:44:11.39 ID:+eWxJdbK0.net
表計算ソフトが重くて嫌なら、CSVエディタ使えばいいんじゃね

874 :名無しさん@お腹いっぱい。:2014/03/30(日) 17:03:49.74 ID:bsItNznR0.net
テキストから次の行を検索し(\d+)を合計してMsgBox,%SUM%するだけなんだけども
^02月 \d\d日 ↓ (\d+)円\t酒\t.+?\tやまや$

875 :名無しさん@お腹いっぱい。:2014/03/30(日) 17:17:36.42 ID:kbIc6WHE0.net
それこそ、awkとかperlとかその辺のフィルター言語の仕事だと思うんだけど。
(窓だと何を使うんだろ。なんかあるのかな)

今あるテキストデータをもとに何かしようってのなら、表計算系は不便だね。
AHKで作れるだろうけど、ハンマーの柄で布団叩きしてるような違和感が残るw

876 :名無しさん@お腹いっぱい。:2014/03/30(日) 18:46:25.58 ID:bsItNznR0.net
すみません、添削お願いします
↓のようにしてみたらマッチしない行を無視せずSUMに月の値を足してしまうんですが……例えば8月なら8を

SUM =
Loop, Read, C:\Apps\Dropbox\小遣い帳\2013年.txt
 {
 VAL := RegExReplace(A_LoopReadLine, "^06月 30日 ↓ (\d+?)円\t酒\t.+?$", "$1")
 SUM += VAL
 MsgBox, %SUM%円
 }

877 :名無しさん@お腹いっぱい。:2014/03/30(日) 19:13:26.53 ID:kbIc6WHE0.net
>>876
マッチしない時のVALを表示させればわかると思うよ
$1の寿命どこまでなんだろ。

878 :名無しさん@お腹いっぱい。:2014/03/30(日) 19:28:50.09 ID:bsItNznR0.net
>>877
FileAppend, %VAL%`n, C:\〜〜〜\a.txt
をSUM += VALの下に挿れたら
マッチする行は意図通りの値(金額)なんですが
マッチしない行は読み込んだ行がそのままVALになってました
それでいてマッチしない行から月の値、すなわち^\d\dにあたる値がSUMに足されてるのは若輩の身には全く訳がわかりませんorz

879 :名無しさん@お腹いっぱい。:2014/03/30(日) 20:19:43.79 ID:gLZ4VHmz0.net
小遣い帳の書式がどんなのかわからんけど
1行に\d+円が2つ以上存在しないならこれでどう?
\d+円の前後に条件追加しないと誤爆発生するなら適宜修正を

SUM =
Loop, Read, C:\Apps\Dropbox\小遣い帳\2013年.txt
{
 If RegExMatch(A_LoopReadLine,"(\d+)円",VAL)
 {
  SUM += VAL1
  MsgBox, %SUM%円
 }
}

880 :名無しさん@お腹いっぱい。:2014/03/30(日) 20:23:58.86 ID:77TDN++00.net
>>878
RegExReplaceの説明をじっくり読んで欲しいとしか・・・。

マッチした場合には読み込んだ一行の"^06月 30日 ↓ (\d+?)円\t酒\t.+?$"の部分が
(\d+?)←$1に代入される文字列 に置換され、置換された一行が返される。

マッチしない場合は(置換されるわけもないので)そのままの文字列が返される。

のです。
で、マッチしなかった場合には
8月1日... みたいな感じなんだろうけど、文字列の先頭が数字だから数字の部分だけ数字と
して認識しているのでしょう。多分、C言語のatof辺りを参考にしてるのだと思います。

881 :名無しさん@お腹いっぱい。:2014/03/30(日) 20:27:18.56 ID:IEJuq2t60.net
RegExReplaceの返り値はマッチしようがしまいが文字列
文字列を数値として演算しようとすると、先頭から数値として扱える部分だけ使われる
なんでかは知らん

882 :名無しさん@お腹いっぱい。:2014/03/30(日) 20:28:04.76 ID:IEJuq2t60.net
ド被り

883 :名無しさん@お腹いっぱい。:2014/03/30(日) 20:33:21.35 ID:77TDN++00.net
>>880
> (\d+?)←$1に代入される文字列 に置換され、置換された一行が返される。
の置換された一行ってのは、具体的には(\d+?)、金額の所ね。

atofじゃなくて、atoi()を例に出したかったのです。

修正はここまでくれば簡単だと思いますが、RegExReplaceへの引数で、置換した数
を返り値として受け取ることができます。それを使えば置換したかどうかをチェックするこ
ともできます。

884 :名無しさん@お腹いっぱい。:2014/03/30(日) 20:52:46.55 ID:bsItNznR0.net
>>879
あっさり解決しました、多謝
Matchの方だったんですね。かなり前からマッチした位置しか返さないと思って見てませんでした……
>>881
簡潔にまとめていただきありがとうございます
未だに流行らせるページを参照してるんですがJpとかWikiとか見たほうがいいんですかね
>>882
すみません、私には何ステップか早い話のようです>atoi

885 :名無しさん@お腹いっぱい。:2014/03/31(月) 03:17:57.57 ID:t/5tUObD0.net
GUI上のテキストを任意のキーを押下する毎にリフレッシュしたいのですが
この場合はGuiControlでRedrawすれば良いのですか?
試してみたものの、どうも上手くいきません。
お知恵を貸して下さい、よろしくおねがいです。

886 :名無しさん@お腹いっぱい。:2014/03/31(月) 03:34:57.34 ID:xf/g5nWk0.net
>>885
リフレッシュというのが何を意味しているのか分からないが適当に答えてみる。

再描写 WinSet
コントロール内容変更 GuiControl,, ControlID, 任意のテキスト(空にしたいならなにも書かない)

887 :名無しさん@お腹いっぱい。:2014/04/01(火) 23:52:14.74 ID:V1eWKUOg0.net
>>886
返信遅れてごめんなさい。
数日間試行錯誤の結果、たった今GuiControlで出来ました。
有難うございました。
でも僕にはautohotkeyは難しいです。

888 :名無しさん@お腹いっぱい。:2014/04/01(火) 23:53:47.71 ID:V1eWKUOg0.net
あ、数日も経過していませんでした。
随分と長く感じたんですけど・・・

889 :名無しさん@お腹いっぱい。:2014/04/02(水) 22:46:39.75 ID:3byjayr60.net
Synaptics のタッチパッドを制御している人いる?

Controlling Synaptics Touchpad using COM APIでググると出てくるページの
の最後の方に書かれてるスクリプトを参考にやってみたけど、タッチパッドからの反応(パケット)が
最初の2〜3回は来るけど、そのあとだんまり。
AHK_L 32, 64 両方試してみたんだけど。ちなみにThumbRemapは問題なく動いてるし、c# で試しにCOMをたたいてみると

890 :名無しさん@お腹いっぱい。:2014/04/02(水) 22:57:26.39 ID:7jbGRWP+0.net
>>889
たまたま以前から気になってた内容なので伺うんだけど、
ThumbRemap、AHK_L x64 では動かないですよね?

891 :名無しさん@お腹いっぱい。:2014/04/02(水) 23:00:29.58 ID:G5RNP3J40.net
NewOSM.ahkダウンロードしたんですがこれってマウス移動設定の仕方どうするんでしょう……

892 :名無しさん@お腹いっぱい。:2014/04/02(水) 23:30:04.98 ID:UVxu5c0Y0.net
こんな感じで処理をしたいのですが、ホットキーを押しても処理が終了しません
どうすれば良いでしょうか?
よろしくお願いします

1::
IfWinExist, hoge
{
exitapp
}

Gui, Add, Text, center x4 y4, hoge
Gui, Show, w500 y500, hoge

Loop
{
msgbox, 処理
}
return

893 :名無しさん@お腹いっぱい。:2014/04/02(水) 23:34:52.24 ID:MMMInf070.net
>>891
OSMって、ワンショットモディファイヤ のことですよ
使ってないけど、見た感じマウスキーのような動かし方(を求めていると勝手に想像)はできないんじゃない
エディタの上下左右の移動のようなのはできると思うけど
マウスキー的なスクリプトは、Wikiにサンプルコードがある。「キーボードでマウス操作」ってやつ

894 :名無しさん@お腹いっぱい。:2014/04/03(木) 00:28:00.59 ID:T1vsTnQw0.net
>>892
処理終了前に同一スレッドは実行されない。
SetTimerで別スレッドとして処理すればいい。

895 :名無しさん@お腹いっぱい。:2014/04/03(木) 09:40:36.72 ID:TIvMHg+c0.net
>>889
最後ちょっと文書が切れちゃったけど、c# でCOMたたく分には問題なく
タッチパッドの反応が来るんだけど、AHK_Lだと反応が途切れちゃうんだよなぁ。

>>890
ThumbRemap 相変わらず AHK_L x64 だめですね。

896 :名無しさん@お腹いっぱい。:2014/04/03(木) 12:12:03.93 ID:vn88tn3N0.net
元管理人さんのソースはアドレス直値叩きまくってるから修正しづらいんだよな
ThumbRemapはコード量は短いからバッファの構造がわかれば直しの手間は少なさそうだが

897 :名無しさん@お腹いっぱい。:2014/04/03(木) 12:18:07.32 ID:lSbykYRi0.net
>>891
アップローダーにあるMousemove+ってファイル落としてラベル書いて指定すれば行ける

898 :名無しさん@お腹いっぱい。:2014/04/04(金) 12:03:29.49 ID:rKzqYgrS0.net
以下のスクリプトで青空文庫のテキストを対象に Google 検索を行っているのですが、変数の前後に半角の二重引用符(")を挿入するにはどうしたらよいのでしょうか。
----------------ここから------------------
InputBox, query, Google 検索, , , 300, 110
If ErrorLevel <> 0
{
WinClose
} Else {
url := "https://www.google.com/search?q=" query " site:aozora.gr.jp"
Run, % url
}
Return
----------------ここまで------------------
Google 検索では、検索したいキーワードの前後に二重引用符(")をつけると、入力したキーワードの順番で完全一致するフレーズがヒットするので検索結果を絞り込むことができます。
そこで変数 query の前後に二重引用符(")をつけたいのですが、試行錯誤してもうまくいきません。
まず、以下のように単純に " を加えると当然のことながら query が変数ではなく文字列になってしまい駄目でした。
----------------ここから------------------
url := "https://www.google.com/search?q=" "query" " site:aozora.gr.jp"
----------------ここまで------------------
次に、エスケープが必要なのかと思い、以下のようにしてみましたが、実行するとやはり「query」という文字列が検索されてしまいます。
----------------ここから------------------
url := "https://www.google.com/search?q=`"" query "`" site:aozora.gr.jp"
----------------ここまで------------------
そこで、Clipboard を使って、次のようにしてみました。
----------------ここから------------------
Clipboard = https://www.google.com/search?q="query"
url := Clipboard
Run, %url%
----------------ここまで------------------
これを実行するとやはり「query」という文字列が検索されてしまいます。
どなたかお知恵を拝借できれば幸いです。

899 :名無しさん@お腹いっぱい。:2014/04/04(金) 13:08:21.19 ID:FSzlsoQq0.net
スクリプトの記述に問題があるわけじゃないというか、
変数urlの中身を見てみたり(MsgBox, %url%)
ファイル名を指定して実行で http://www.google.co.jp/search?q="hoge"
とかやってみるとどこで意図しないことが起きてるのかわかるよ

結論は、%22

900 :名無しさん@お腹いっぱい。:2014/04/04(金) 14:25:49.92 ID:rKzqYgrS0.net
>899
できました!
引用符はエスケープ・シーケンス(%22)で指定すればよいのですね。下のように書き換えたところ望み通りに動きました。
----------------ここから------------------
url := "https://www.google.com/search?q=%22" query "%22 site:aozora.gr.jp"
----------------ここまで------------------
これで作業がぐんとはかどります。素早い回答をどうもありがとう!

901 :名無しさん@お腹いっぱい。:2014/04/04(金) 16:29:58.72 ID:dlSR4JbP0.net
ダブルクォーテーション中でダブルクォーテーションを使う場合は「""」とすればいい
分かりにくいが
var := """hoge"""
とすればvarには "hoge" が格納される

902 :名無しさん@お腹いっぱい。:2014/04/04(金) 17:03:05.96 ID:HjPRtq700.net
http://www.autohotkey.com/board/topic/75390-ahk-l-unicode-uri-encode-url-encode-function/#entry492181

必要か分からないけど、URLエンコード・デコード関数を置いておきますね

903 :名無しさん@お腹いっぱい。:2014/04/04(金) 18:18:50.24 ID:rKzqYgrS0.net
>901
とても勉強になります。ご説明ありがとう。
さっそくスクリプトを以下のように修正して MsgBox で確認したところ正しく引用符が表示されました。
----------------ここから------------------
url := "https://www.google.com/search?q=""" query """ site:aozora.gr.jp"
----------------ここまで------------------
ただしこのスクリプトを Run コマンドでブラウザに渡すと、Google の検索欄には引用符が表示されず、変数(query)がそのまま表示されます。
ともあれ、>900 の方法で解決できたので一件落着しました。

904 :名無しさん@お腹いっぱい。:2014/04/04(金) 18:20:52.60 ID:GIAtBM/E0.net
艦これやってるひとでおすすめないですか?
いまマウスでカチカチやってますけど、キーにMouseClick割り当ててよく押すボタンを楽に押せるようにしようかなぁとか考えてるんですが

905 :名無しさん@お腹いっぱい。:2014/04/04(金) 18:25:26.58 ID:EmtUIrig0.net
Quote := """"
var := Quote . "hoge" . Quote

引用符の扱いはこんな感じでやってる
URLデコードエンコード関数はかなり便利だよな

906 :名無しさん@お腹いっぱい。:2014/04/04(金) 19:02:21.71 ID:rKzqYgrS0.net
>>902
ありがとうございます
紹介されているスクリプトを上から順番にそれぞれコピーして実行してみましたが何の反応もありませんでした
たぶん私が使い方をよく理解していないせいだと思います
ともあれお気遣いに感謝します

907 :名無しさん@お腹いっぱい。:2014/04/04(金) 20:37:31.43 ID:o2dDirXT0.net
>>902
これだとUTF-8でしかエンコードできない気が

908 :名無しさん@お腹いっぱい。:2014/04/05(土) 18:44:15.65 ID:bCR6YnOo0.net
inireadで指定したini全てのデータを、一行のコマンドで読み込む事って出来ますか?

909 :名無しさん@お腹いっぱい。:2014/04/05(土) 18:58:24.99 ID:B/Skt4qQ0.net
>>908
日本語でおk

910 :名無しさん@お腹いっぱい。:2014/04/05(土) 21:43:36.15 ID:MjKdgbLx0.net
>>908
FileReadのこと?

911 :名無しさん@お腹いっぱい。:2014/04/05(土) 23:05:30.75 ID:xWupTc810.net
IniReadは特定の一行 (の=以降)しか読まない
ファイルまるごと読みたいならFileRead

912 :名無しさん@お腹いっぱい。:2014/04/06(日) 00:00:05.80 ID:OGA1QN5b0.net
正確には
IniRead, OutputVar, Filename
だと、全セクション名を取得でき、
IniRead, OutputVar, Filename, Section
で、特定のセクションを指定すれば、そのセクションの全キー名&値が取得できる

913 :名無しさん@お腹いっぱい。:2014/04/06(日) 07:20:13.24 ID:ILwq+zeU0.net
>>912
いつのまにこんな機能が

RegExと格闘しながらセクション一覧やセクション内容抽出関数作ってたが
もういらなかったんだな、libから外すか

914 :名無しさん@お腹いっぱい。:2014/04/06(日) 13:43:13.91 ID:qxiLhQkS0.net
Guiのコンボボックスで、下の2つを区別する方法があれば教えて下さい
(1)リスト項目選択中に、他のリスト項目を選択した場合
(2)同じく、ボックス内のテキストを書き換えた場合

GuiControlGetで調べようと思いましたが、テキストと項目番号のいずれを取得するにしても、
(2)で既存項目と同じテキスト又は項目番号を入力すると、その項目を選択した場合と区別がつきません

915 :名無しさん@お腹いっぱい。:2014/04/06(日) 14:21:32.25 ID:VrNJQHrq0.net
InputにおいてMatchLlistにhe,he1,he2を同時に列挙できませんか
If ErrorLevel = Timeoutを入れてもheが押された時点で実行されてしまいhe1やhe2が押せません

916 :名無しさん@お腹いっぱい。:2014/04/06(日) 16:43:24.22 ID:Cg54QrdL0.net
難しく考えてることが多々あるので、処理方法の前に「何がしたいのか」書いてほしい。

>>914
Gオプションやテキストを書き換えたときに変数に判別用のフラグを立てておけばいい。

>>915
できません。

917 :名無しさん@お腹いっぱい。:2014/04/06(日) 17:22:11.84 ID:qxiLhQkS0.net
>>916
具体的にやりたいのは、リスト項目を選択するとそれぞれに設定された情報が表示され、
項目名を編集してボタンを押すと項目名がリネームされるという処理です

しかし、たとえば、次のようなリストを設定したコンボボックスがあるとして、
a
b
c
aを選択した後「b」と書き換えた場合、bを選んだのか新しく「b」と書いたのか分かりません
AltSubmitを指定しても、「2」と入力した場合、bを選んだのか新しく「2」と書いたのか分かりません
1アクションで同じ内容になる場合にはフラグを立てておくことができない気がするんです

918 :名無しさん@お腹いっぱい。:2014/04/06(日) 19:19:34.78 ID:Cg54QrdL0.net
>>917
※インデント全角スペース

;ComboBox項目変更
F1::
CBText = a||b|c
Gui,Add,ComboBox,vCB AltSubmit,%CBText%
Gui,Add,Edit,vEdit
Gui,Add,Button,g変更,変更
Gui,Show,w200
Return

変更:
Index = 0
NewText =
GuiControlGet,EditVar,,Edit
GuiControlGet,CBVar,,CB
Loop,Parse,CBText,|
{
 If (A_LoopField != "")
 {
  If (++Index = CBVar)
   NewText .= "|" EditVar
  Else
   NewText .= "|" A_LoopField
  }
 }
CBText := NewText
GuiControl,,CB,%CBText%
GuiControl,Choose,CB,%CBVar%
Return

919 :名無しさん@お腹いっぱい。:2014/04/06(日) 19:54:24.83 ID:qxiLhQkS0.net
>>918
やはり別途Edit欄を用意するしかないですか…
コンボボックスで実現するのは諦めることにします
ありがとうございました

920 :名無しさん@お腹いっぱい。:2014/04/07(月) 19:56:21.06 ID:0yHk/zhA0.net
>>904ですけど、マルチストロークショートカットキー設定したら覚えにくくてSearchImageとかPixelGetだかなんだか使ったら反応しにくくて

何行も書いてみたけど結局dに左クリック割り当ての一行になった(´・ω・`)ショボーン

921 :名無しさん@お腹いっぱい。:2014/04/08(火) 00:21:58.63 ID:eVNlwMbi0.net
初心者+浦島太郎な俺にちと教えて欲しい
旧Autohotkey(_Lじゃない方)で下記のスクリプトを組んだ

Joy1::
CoordMode,Mouse,Relative
MouseMove,845,400 [0,100]
return

ジョイパッドのボタン1を押したらマウスカーソルが指定の位置に行くってスクリプトのはずなんだけど
マウスカーソルが微動だにしないのは何故なんだぜ?

ジョイパッドのボタン1が反応する事は確認した
Send,{LButton}みたいなのを追加してマウスクリックができる事も確認した
PCを更新する前は問題なく動いていたんだが、OSやマウスの種類によってはキーが効かなくなることってあるの?

922 :名無しさん@お腹いっぱい。:2014/04/08(火) 01:00:26.85 ID:/N6pTFDQ0.net
[0,100]

923 :名無しさん@お腹いっぱい。:2014/04/08(火) 19:39:01.79 ID:VKIlhDfD0.net
タスクバーのミドルクリックでそのウインドウ閉じる、って奴をやりたいけど、
簡単そうで地味に面倒そうだ。

タスクバー自体にウインドウ名みたいなのは割り当てられてるんかな?

924 :名無しさん@お腹いっぱい。:2014/04/08(火) 19:49:18.87 ID:Vr0mszTC0.net
>>923
右クリ、上、Enter でいいんじゃね?

925 :名無しさん@お腹いっぱい。:2014/04/08(火) 19:58:26.42 ID:VKIlhDfD0.net
もちろん動作はそれでいいんだけどね。
タスクバーの上でだけその動作になって、
他のウインドウ上では普通のミドルボタンの動作になって欲しいわけよ。

926 :名無しさん@お腹いっぱい。:2014/04/08(火) 20:15:19.58 ID:BdufEY550.net
>>924
Alt + F4

>>925
GetSystemMetrics でタスクバーの高さ取得して相対座標で判断

927 :名無しさん@お腹いっぱい。:2014/04/08(火) 20:17:12.38 ID:VKIlhDfD0.net
>>926
おおう、そんなんができるのか。さんくすやってみる!

928 :名無しさん@お腹いっぱい。:2014/04/08(火) 20:49:47.87 ID:eVNlwMbi0.net
>>922
んー…?
スマン、マジで分からん。色々値を変えてみたがダメだった。

そもそも指定の仕方が違うってことなのか?

929 :名無しさん@お腹いっぱい。:2014/04/08(火) 21:01:05.45 ID:BdufEY550.net
>>928
ttp://ahkwiki.net/MouseMove#Example.28s.29

930 :名無しさん@お腹いっぱい。:2014/04/08(火) 21:04:43.17 ID:p80Do45i0.net
うん、まぁおれも一番最初の頃は[]付けてたな
すぐ気付いたけど

931 :名無しさん@お腹いっぱい。:2014/04/08(火) 21:12:27.61 ID:xoVhLnIm0.net
いやいやいやいやwwww

932 :名無しさん@お腹いっぱい。:2014/04/08(火) 21:18:36.84 ID:IzM/cNPM0.net
[]内は省略可能な引数だよっていう意味で[]が使われているだけで、
コマンドの一部なんて今まで一度も思ったこと無いな、おれ素人だけど。

933 :名無しさん@お腹いっぱい。:2014/04/08(火) 21:45:41.74 ID:eVNlwMbi0.net
ああ、[]ってそういう意味だったのか…
でも、だとしたら何で今まで使えてたんだろう?

934 :名無しさん@お腹いっぱい。:2014/04/09(水) 01:10:53.52 ID:eRs7Ptfd0.net
[]はしょうがないとしても、第四パラメータの前にカンマがないとか、
第五パラメータは数値指定じゃないだろとか
なんでこれでエラーになんないんだよマジで

935 :名無しさん@お腹いっぱい。:2014/04/09(水) 01:18:23.05 ID:CXrEjWw30.net
カンマは省略できるよね
無効なパラメータで無くても動くものは無視するんじゃない?
知らんけど

936 :名無しさん@お腹いっぱい。:2014/04/09(水) 08:15:46.19 ID:E9yRzho+0.net
Windows8.1Updateでチャームの表示が遅くなったらしいので作ってみた
管理者で実行しないと、反応しない場合がある。

;無変換+スペースでタスクバー・・・無変換で問題が出る
;sc07B & space::Send,#t

;Win+スペースでタスクバー
#space::#t

;マウス中ダブルクリックでチャーム
MButton::
If(A_PriorHotkey = A_ThisHotkey) And (A_TimeSincePriorHotkey < 500){
Send,#c
}Else{
Send,{Blind}{MButton}
}
Return

;マウス右ダブルクリックでタスクバー
;メニューが出るとバーが表に出ないので、ESC でキャンセルしてから表示
RButton::
If(A_PriorHotkey = A_ThisHotkey) And (A_TimeSincePriorHotkey < 350){
Send,{esc}#t
}Else{
Send,{Blind}{RButton}
}
Return

937 :名無しさん@お腹いっぱい。:2014/04/14(月) 04:51:55.07 ID:wnm9jFyY0.net
既に起動中のスクリプトに、別のスクリプトからコマンドを送信して
既に起動中のスクリプトの指定ラベルに飛ぶ事何て出来るものでしょうか?

938 :名無しさん@お腹いっぱい。:2014/04/14(月) 06:08:38.33 ID:Jz/r1Yxa0.net
>>938より続き

#Persistent
;#If WinActive("ahk_class OperaWindowClass") || WinActive("ahk_class ウインドウクラス") ;複数指定する場合
#IfWinActive, ahk_class OperaWindowClass
$^+c::
ClipSaved := ClipboardAll ;クリップボードのバックアップが不要なら削除
Send, ^c
ClipWait, 2
WinGetTitle, wintitle, A
wintitle := RegExReplace(wintitle, "\\|/|:|;|,|\*|\?|\""|<|>|\|", "_")
Filename := A_ScriptDir . "\" . wintitle . "\" . wintitle . A_Year . A_Mon . A_MDay . ".log"
if (! FileExist(A_ScriptDir . "\" . wintitle . "\")) {
FileCreateDir, %A_ScriptDir%\%wintitle%
}
file := FileOpen(Filename, "a")
file.WriteLine("----- 以下に追加 -----") ;不要なら削除
file.WriteLine(Clipboard)
file.Close
Clipboard := ClipSaved ;クリップボードのバックアップが不要なら削除
ClipSaved = ;クリップボードのバックアップが不要なら削除
return
#If

これを拡張子「ahk」で保存。

939 :名無しさん@お腹いっぱい。:2014/04/14(月) 06:10:36.37 ID:drcNOM2n0.net
>>937
適当な変数で条件付けといて、別スクリプトでその値を書き換えればいいんじゃないの

940 :名無しさん@お腹いっぱい。:2014/04/14(月) 08:05:08.99 ID:ZRJ9og6e0.net
>>937
OnMessage()

941 :名無しさん@お腹いっぱい。:2014/04/14(月) 19:06:52.82 ID:OHQeYfCc0.net
>>939
どうやって書き換えるんだよ・・・。

942 :名無しさん@お腹いっぱい。:2014/04/16(水) 01:57:33.14 ID:bOan4vEL0.net
WinGetPosでウインドウ枠内の実寸法を取得って出来る?

943 :名無しさん@お腹いっぱい。:2014/04/16(水) 02:07:30.30 ID:AhZ74/+10.net
>>942
SysGetとの合わせ技

944 :名無しさん@お腹いっぱい。:2014/04/16(水) 03:35:36.74 ID:bOan4vEL0.net
ほほう、ちょっと試してみる

945 :名無しさん@お腹いっぱい。:2014/04/16(水) 17:20:44.78 ID:/LRkn3Vh0.net
FileGetVersionでファイルのバージョンなどを取得できますが、他の属性を取得することはできるでしょうか?

946 :名無しさん@お腹いっぱい。:2014/04/16(水) 17:39:21.93 ID:6fXmzYiD0.net
>>945
読み取り専用や隠しファイルなどの属性なら、FileExist()かな?

947 :名無しさん@お腹いっぱい。:2014/04/16(水) 17:43:05.72 ID:6fXmzYiD0.net
ダイアログなどのボタン(OKとかキャンセルとか)でデフォルトボタンのコントロール名はどうやって取得できますかね?
フォーカスされてるボタンならControlGetFocusで取得できるんだけど…

948 :名無しさん@お腹いっぱい。:2014/04/16(水) 18:11:19.80 ID:6fXmzYiD0.net
>>945
FileGetAttribの方が一般的なのかも?
まぁコマンドか関数かの違いだけで状況により使い分け、または気分によって使い分けすればいいんじゃないかな?

949 :名無しさん@お腹いっぱい。:2014/04/16(水) 18:19:35.68 ID:TYaYj8jB0.net
ググったら今スレの>9-12が引っかかった

とりあえずめくら打ちでEnter送ればボタンは押せると思うけど
(そのためのデフォルトボタンだから)
その他の制御するために取得したいとなると面倒かもね

950 :名無しさん@お腹いっぱい。:2014/04/16(水) 18:52:01.95 ID:6fXmzYiD0.net
>>949
素早い回答ありがとす
デフォルトボタンの取得は諦めますわ…

まさか現スレに殆ど同じ質問があったとは
wikiばっかり見てても駄目っすね^^;

951 :名無しさん@お腹いっぱい。:2014/04/16(水) 21:48:01.13 ID:8b//njEB0.net
これよくRR.exeが残留してCPU食いまくるんですけどなんでProcess, Closeが効かないんでしょう?
%Search%と%Replace%はもうすこし上の方にあるGUI,Add,Editから来ます

Loop, %TargetDir%*, 1 ;#*.*でもできてる
{
Run, C:\Application\RegularRenamer\RR.exe /rn /sl "%A_LoopFileFullPath%" "s/"%Search%"/"%Replace%"/k",,, RR
}
GUI, Destroy
Sleep, 10000
Process, Close, RR
return

GUIEscape:
GUI, Destroy
Process, Close, RR
return

952 :名無しさん@お腹いっぱい。:2014/04/16(水) 22:42:22.98 ID:JvCS0BRo0.net
拡張子付けろ

953 :名無しさん@お腹いっぱい。:2014/04/16(水) 23:10:58.48 ID:8b//njEB0.net
>>952
Process, Close, RR.exeにしました
これでしばらく様子見ます。どもです

954 :名無しさん@お腹いっぱい。:2014/04/16(水) 23:35:04.20 ID:6fXmzYiD0.net
>>951
「RR」が、Run,コマンドライン,,, RRのPIDの意味のRRだとしたら
Process, Close, %RR%
じゃないかと

また、RR.exeのことよく知らないけど、もし複数起動してたら、
Process, Closeの単発では全部閉じないような…

的外れなレスなら無視してチョ

955 :名無しさん@お腹いっぱい。:2014/04/16(水) 23:43:18.37 ID:6fXmzYiD0.net
>>954
書き忘れっす
もし、RR.exeに処理後自動終了のオプション有れば、
Process, Closeせず、RunWait使うという手もあるけど、
そういうオプションが無いって事かな?

956 :名無しさん@お腹いっぱい。:2014/04/16(水) 23:46:15.87 ID:JvCS0BRo0.net
あー、Runコマンドで変数RRにPID入れてるのか
なら>>954が正解だわ

957 :名無しさん@お腹いっぱい。:2014/04/25(金) 18:57:45.54 ID:tSXjSI/C0.net
なんかうpだてきてるで

958 :名無しさん@お腹いっぱい。:2014/04/26(土) 01:31:02.11 ID:Wf/5kC5g0.net
>>923
俺の場合閉じるじゃないけど似たようなことやりたいんで
ついでに作ってみたよ。
でたらめだけどなんかしらんけど俺の環境では動くよ。

MButton::
var:= "MSTaskListWClass1"
MouseGetPos, , ,id,control,,
if var = %control%
send,{RButton}{UP}{ENTER}
else
send,{MButton}
return

959 :名無しさん@お腹いっぱい。:2014/04/26(土) 01:49:52.17 ID:Wf/5kC5g0.net
ごめん、どうでもいいけどこっちのがスマートかも。
ほんとならahk classも指定したほうがいいかも知んないけど、
別に今んとこ支障はないので。

MButton::
MouseGetPos, , ,id,control,,
if (control = "MSTaskListWClass1")
send,{RButton}{UP}{ENTER}
else
send,{MButton}
return
return

960 :名無しさん@お腹いっぱい。:2014/04/26(土) 05:33:53.27 ID:vyyvOYUe0.net
return
return

961 :名無しさん@お腹いっぱい。:2014/04/26(土) 06:59:47.52 ID:WBd1IaLX0.net
return
return ; 念のためもう一度

962 :名無しさん@お腹いっぱい。:2014/04/26(土) 07:10:53.81 ID:yCEJoibM0.net
汎用関数にして、#IF使った方が良いんじゃないか

963 :名無しさん@お腹いっぱい。:2014/04/26(土) 09:39:00.76 ID:5nnLMgI00.net
大事なことなのでry

964 :名無しさん@お腹いっぱい。:2014/04/26(土) 18:09:44.87 ID:Wf/5kC5g0.net
#IF Mouseisover
を使うってことかな
その方がスマートそうだけど、Mouseisoverの解説とかリファレンスってほとんどないよね。
便利そうなのになんでだろ

965 :名無しさん@お腹いっぱい。:2014/04/26(土) 18:13:55.71 ID:Wf/5kC5g0.net
もしかしてとんでもない勘違いしてるのかな
return
return

966 :名無しさん@お腹いっぱい。:2014/04/26(土) 22:33:26.95 ID:QJ1YV1nn0.net
>>968
OpenGL ES 3.0?
シェーダーコードの自動生成がしたいならsmartguiでGUI作って"Run"でC++プログラムを起動するといいよ

967 :名無しさん@お腹いっぱい。:2014/04/27(日) 12:12:22.12 ID:VU4V0uJu0.net
Numlock::Send,^+sとしてるんですが、
しばらくPCほっといてからいきなりNumlock押すと^+sではなくNumlockが送られてしまいます
多分糞スペだからだと思いますが、どうにかなりませんか?

968 :名無しさん@お腹いっぱい。:2014/04/27(日) 14:47:16.01 ID:1dg9Lt/V0.net
XPが終了したのでWin7に買い換えました。GhostTracerを使ってたのですがうまく動かないのでAutoIt、AutoHotKeyを今回初めて試してみました
AutoHotKeyは最新版、v1.1.14.04 - April 25, 2014です

やりたいことは、マウスの移動とクリックです。これだけ出来ればいいのです
ところが、今まで使ってたあるアプリのウインドウをアクティブにしたときだけマウス関連が全く利かなくなるという現象が起きました。AutoHotKeyでは最も単純に
#space::MouseClick, LEFT
とだけやってみました
IEやChrome、秀丸、Excelその他ほとんどのアプリではそれをアクティブにした状態でちゃんと動作します
ところが、この特定のアプリだけそのウインドウをアクティブにするとこの機能がまったく動きません。MouseMoveも動きません
また、この特定アプリを非アクティブ状態にして、このウインドウ上で上記のWin+スペースをやってもこのアプリがアクティブになることはありません

ちなみに、このアプリをアクティブ状態にして、Win+スペースとやると画面上のすべてのウインドウが枠のみが残って中身は全部消えてしまい、スペースを離すと元に戻ります

調べてみたら、AutoHotKeyだけでなくAutoIt、GhostTracerが動かなかったのもこのアプリウインドウをアクティブにしたときのみでした
XPではこんなことはなかったのですが、誰か理由、対処等わかる方いますか

ちなみにこのアプリは有名会社から正規に購入している間違いのないものです

969 :名無しさん@お腹いっぱい。:2014/04/27(日) 14:49:29.99 ID:7jyGmvOq0.net
管理者権限

970 :名無しさん@お腹いっぱい。:2014/04/27(日) 17:09:20.40 ID:iN1XRJSw0.net
>>968
原因は>>969の通り
標準ユーザーとして実行したアプリから管理者権限で実行したアプリは操作できない
対処法は、AutoHotkey.exeを管理者権限で実行する(プロパティ>互換性>特権レベル)
今後もマウス操作にしか使わないならそれで特に問題ない

971 :名無しさん@お腹いっぱい。:2014/04/27(日) 17:12:26.29 ID:1dg9Lt/V0.net
コンパネのアクションセンターのユーザーアカウント制御設定の変更で
通知しない
にして再起動したら、問題なく出来るようになりました
AutoHotKey、AutoIt、GhostTracerともに動きました

自動化ツールがどういう仕組みになってるのか知りませんが、XPのときはキーボードやマウスの入力をかなり上流でインターセプトしていたため、ウイルスに制御が乗っ取られるとかセキュリティを考えてWin7では厳しくしたのでしょうかね

でもこのアプリだけで他は全く問題なく使えているというのは、アプリ側でブロックできるように設定が出来るということなのでしょうか

でも、ユーザーアカウント制御設定の変更で通知しないというのは一番セキュリティが弱いのでさすがにこのまま使うのは気が引けます
一番いい設定ってどうすればいいのでしょうね。このアプリだけを制御除外とか出来ないものでしょうか

972 :名無しさん@お腹いっぱい。:2014/04/27(日) 17:16:46.39 ID:1dg9Lt/V0.net
>>970
ありがとうございます。パソコンにログインするときはAsministrator権限つきのアカウントで入っているのですが、それでも駄目なのですか
XPのときみたいに、Adminstratorでログイン出来るのかって探しているのですが、今入っているのがAdministrator付きのせいなのか特にそういうのが見当たりません

973 :名無しさん@お腹いっぱい。:2014/04/27(日) 17:19:39.53 ID:1dg9Lt/V0.net
>>970
ああ、わかりました。ahkファイルのプロパティでセキュリティのところですね
今はSYSTEMになってますよ。これをAdministratorに変えろってことですね

今からさきの
ユーザーアカウント制御設定の変更で通知しない
ってとこをもとに戻してやり直してみます

974 :名無しさん@お腹いっぱい。:2014/04/27(日) 17:31:21.94 ID:1dg9Lt/V0.net
>>970
たびたびごめんなさい。AutoHotKey.exeのプロパティの互換性のところで
特権レベルで実行っていうチェックがあるのがわかりましたが、これを使わなくても
ahkファイルを右クリックしてその中に管理者として実行っていうのがあるのを見つけました

これでやれば、問題なく動きました
これで、AutoHotKeyについては解決しました。ありがとうございました
でも、もともと作ってあったGhostTracerが動けば一番楽なんですけどね
これは先ほどのユーザーアカウント制御設定の変更で通知しないっていう変更で動いたのですよ

975 :名無しさん@お腹いっぱい。:2014/04/27(日) 17:35:58.82 ID:1dg9Lt/V0.net
GhostTracerも、ショートカットの上で右クリックして出てくる管理者として実行というのを選べば
問題なく動くことを確認しました
これですべて解決しました。ありがとうございました

976 :名無しさん@お腹いっぱい。:2014/04/27(日) 22:57:30.90 ID:F6W53U5z0.net
2台のPCで、かたやXeonE3-1225メモリ8GB、かたやi7-3930Kメモリ16GB。SSDとHDDの性能はどちらも同じ。で、性能のいいはずのi7マシンの方のレスポンスが明らかに悪いんだ。走らせてるAHKスクリプトは全く同じ。

これは何が原因なんだろう?

977 :名無しさん@お腹いっぱい。:2014/04/28(月) 00:06:24.65 ID:rN8ZLQ1V0.net
>>976
情報不足

978 :名無しさん@お腹いっぱい。:2014/04/28(月) 05:12:19.05 ID:aAcgtpYm0.net
Win7 64bitを使ってます、
Autohotkey? L?のどれを入れればいいのか?よくわかりません、
よろしくお願いします

とりあえず ↓このソフトが使えるようにしたいのですが

MouseGestureL.ahk
ttp://hp.vector.co.jp/authors/VA018351/mglahk.html

979 :名無しさん@お腹いっぱい。:2014/04/28(月) 07:04:08.80 ID:lZlKorGt0.net
>>978
そのURLに導入方法が書いてあるんだから、きちんと読むこと
最低でも読んだ上で、どこまで理解できてどこから理解できないかが分かるように伝えないと
もしかしてジェスチャー総合スレでも聞いてるかざぐるユーザー?
かざぐる使いは、あれが当たり前だと思わずに、自分で読んで調べて動かして試行錯誤する習慣をつけよう

980 :名無しさん@お腹いっぱい。:2014/04/28(月) 07:29:11.37 ID:6EDYlutQ0.net
今の最新は、これでしょう
v1.1.14.04 - April 25, 2014
http://ahkscript.org/download/

次スレのトップに入れておいてください

981 :名無しさん@お腹いっぱい。:2014/04/28(月) 10:39:25.49 ID:R81d4/3l0.net
>>978
そのページ見てわからないんならやめた方がいいんじゃないかな

982 :名無しさん@お腹いっぱい。:2014/04/28(月) 12:17:38.06 ID:ZU+n1lM80.net
スレ立ててくる

983 :名無しさん@お腹いっぱい。:2014/04/28(月) 12:30:09.51 ID:ZU+n1lM80.net
次スレ
AutoHotkey スレッド part18
http://anago.2ch.net/test/read.cgi/software/1398655195/

984 :名無しさん@お腹いっぱい。:2014/04/28(月) 13:43:27.24 ID:aX3LSWGr0.net
>>983


985 :名無しさん@お腹いっぱい。:2014/04/28(月) 23:28:23.20 ID:fCDtHC4t0.net
次スレにもう書き込んでるやつら馬鹿なのか?
落ちないように1000まで埋めるんだろうが

986 :名無しさん@お腹いっぱい。:2014/04/28(月) 23:35:30.62 ID:+oB0cDGi0.net
1000行く前に落ちたらなんか不都合あんの?

987 :名無しさん@お腹いっぱい。:2014/04/28(月) 23:36:38.47 ID:ZU+n1lM80.net
何をわけのわからないことを言ってるんだ。
1000まで埋めたらその時点でdat落ちするし
980超えてから24時間レスがなければdat落ちする。

988 :名無しさん@お腹いっぱい。:2014/04/28(月) 23:41:01.32 ID:ZU+n1lM80.net
ちなみに2年くらい前までは1000まで埋めないとdat落ちしなかったからわざわざ埋めてた

989 :名無しさん@お腹いっぱい。:2014/04/28(月) 23:55:26.28 ID:rN8ZLQ1V0.net
埋め

2カ所で話題が進行すると面倒だから。

990 :名無しさん@お腹いっぱい。:2014/04/29(火) 00:07:05.05 ID:CXK/L+JJ0.net
埋め
1000までいけば1000まで残るが
1000いかないとどこまで残るかわからん
昔は知らんが今はそう

991 :名無しさん@お腹いっぱい。:2014/04/29(火) 00:10:22.92 ID:6i1yHp3O0.net
埋め
次のテンプレに現行スレ埋めてから次スレに質問書けって追加だな

992 :名無しさん@お腹いっぱい。:2014/04/29(火) 00:11:02.33 ID:WQ7Ao3bq0.net
落ちたところまで残るよ

993 :名無しさん@お腹いっぱい。:2014/04/29(火) 00:11:46.18 ID:Ui11OcXU0.net
こんなレス残らなくていいのに

994 :名無しさん@お腹いっぱい。:2014/04/29(火) 00:36:43.63 ID:I9Dcz2730.net
埋めとこう

995 :名無しさん@お腹いっぱい。:2014/04/29(火) 00:43:57.63 ID:WQ7Ao3bq0.net
>>990
どこまで残るかわからんという不確かな残り方はしないよ
落ちたところまでのレスは全て残って●があればいつでも見れる。
最近は●なくても2chログを保存しているところなんていくらでもあるけど。

996 :名無しさん@お腹いっぱい。:2014/04/29(火) 00:46:10.21 ID:CXK/L+JJ0.net
埋め

997 :名無しさん@お腹いっぱい。:2014/04/29(火) 01:19:51.96 ID:bDch3Abf0.net
うめ

998 :名無しさん@お腹いっぱい。:2014/04/29(火) 01:29:13.72 ID:HIbUIj7G0.net
999

999 :名無しさん@お腹いっぱい。:2014/04/29(火) 01:39:24.84 ID:vaLr8K740.net
1000

1000 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1000
347 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★