13/11/02 18:27:44.86 h5sjW8CN0
■配布元
URLリンク(www.autohotkey.com)
本家Autohotkeyは事実上開発停止で、派生のAutoHotkey_L(AHKL)が主流。
新規利用者には日本語の扱いで不具合の無いAHKLのユニコード版の利用を推奨。
■前スレ
AutoHotkey スレッド part16
スレリンク(software板)
■日本語解説等
AutoHotkey Wik
URLリンク(ahkwiki.net)<) (不調時は URLリンク(hdd.s300.xrea.com) )
AutoHotkeyJp(過去ログdatあり)
URLリンク(sites.google.com)
Autohotkey日本語ヘルプ(chmファイル)
URLリンク(www6.atwiki.jp)
Autohotkey専用うpろだ
URLリンク(ux.getuploader.com)
簡易スクリプト掲示板
URLリンク(pastebin.com)
■派生版
IronAhk (.NET製、クロスプラットフォーム)
URLリンク(www.ironahk.net)
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
URLリンク(www.autohotkey.com)
テンプレ>>2-10
2:名無しさん@お腹いっぱい。
13/11/02 18:35:15.19 h5sjW8CN0
■重要事項
オリジナルである、本家 "AutoHotKey" の開発は終了している。
現在は、そこからフォークした "AutoHotkey_L" が主流。
スクリプトについては、それが本家AHKで動くものであるか、Lであるのかに注意。
AutoHotkey_L (内部Unicode、64bitバイナリ、オブジェクト指向、COM対応など)
URLリンク(www.autohotkey.net)
オリジナルのAHKとの変更点多数。新しい仕様や互換性についてはドキュメントを良く読むこと。
→URLリンク(www.autohotkey.net)
→URLリンク(sites.google.com)
※ 新規利用者にはAHKLを推奨するが、移行に際してすくなからずの改修が必要となる。
特に、旧流行らせるページの配布物(MouseGesture等)の多くはそのままでは動作しない。
安定利用できている環境を崩して移行するかどうかは各人の判断による。
MouseGestureについては有志の方がAHKL対応版を配布しているのでそれを利用するのもありです。
URLリンク(hp.vector.co.jp)
URLリンク(code.google.com)
※ACC.ahkとCOM.ahkはフォーラムのリンク先にファイルが存在しません。
>>1のAutohotkey専用うpろだにうpされています。
■質問に際して
OSの種類(XP/Vista/7)や32/64ビット版の違い、利用するAutoHotkeyのバージョンを明記すること。
また、操作したいソフト・やりたい処理などは具体的に書いた方がレスが付きやすい傾向にある。
2chの仕様の関係で、このスレではインデントに全角スペースを使ってコードを貼り付ける事があるので、
レスをコピペして利用する場合は行頭の全角スペースをタブ等に置換してから利用すること。
3:名無しさん@お腹いっぱい。
13/11/02 18:35:56.32 h5sjW8CN0
■過去スレ
①スレリンク(software板) ②スレリンク(software板)
③スレリンク(software板) ④スレリンク(software板)
⑤スレリンク(software板) ⑥スレリンク(software板)
⑦スレリンク(software板) ⑧スレリンク(software板)
⑨スレリンク(software板) ⑩スレリンク(software板)
⑪スレリンク(software板) ⑫スレリンク(software板)
⑬スレリンク(software板) ⑭スレリンク(software板)
⑮スレリンク(software板) ⑯スレリンク(software板)
以下FAQ等
■実行環境
Q1:スクリプトに書いた日本語が文字化けしちゃうんだけど...
A1:スクリプトファイルを「UTF-8」の「BOM」付きで保存する。(AHKLの場合)
Q2:初めて使うけどどれを使えばいいの?
A2:AHKLのユニコード版を推奨。
旧流行らせるページの配布物をそのまま使う場合は本家をそのまま利用する事。
64ビットOSでAHKL32ビット版の使用は制約が多いので、64ビット版を強く推奨。
4:名無しさん@お腹いっぱい。
13/11/02 18:37:03.49 h5sjW8CN0
■ リマップ・ホットキー割り当て
Q1:[CapsLock(英数)][ひらがな][全角/半角]キーの割り当てがうまくいかないよ
A1:OSのローカライズ段階で発生してる問題なので日本語環境だとLock系キーの動作は不定。
OS側がキーUp/Down情報を正しく返してこないのでAHKのみで対処は無理です。
レジストリ変更等で別キーへ再配置を行い、AHKで割り当てを行うという二段構えが必要。
例) ChangeKeyを使って[ひらがな]を[F13]にする
AutoHotkeyで任意のキーをF13にリマップする(例えばF12をF13にリマップし、スクリプトを実行)。
F12::F13
Changekeyを起動する。( URLリンク(www.forest.impress.co.jp) )
「調査」→「どのキーなのか?またはスキャンコードでキーを変更します」を選択。
F12を押すとスキャンコード(0x0064はF13)が表示されるので覚えておき「終了」をクリック。
「ひらがな」キーをクリックすると「【ひらがな】キーをどのキーに変更しますか?」という
ウィンドウが表示されるので右上の「Scan code」をクリック。
覚えておいたスキャンコード(0064)を入力し、「OK」ボタンをクリック。
「登録」をクリックし、Windowsを再起動する。
Q2:「^1::Esc」とリマップ定義したけど [Ctrl]+[1] を押したらスタートメニューが出ちゃうけどどうすればいいの?
A2:リマップは修飾キー(Ctrl,Shift,Alt,Win)の押下状態を引き継いでキー発行するので、[Ctrl]+[Esc] がキー送信されるため。
これを避けるには、「Send」コマンドを利用して明示的に修飾キーなしのキーを発行をすればよい。
^1::Send, {Esc}
Q3:[Shift], [Ctrl], [Alt], [Win]以外を修飾キーとしてキー割り当てしたいよ
A3:コンビネーションキーの機能で実現ができる。
例) 無変換 + IKJLキーをそれぞれ「↑↓←→」に割り当てたい場合は以下のように記述する。
sc07B & I::Send, {Blind}{Up}
sc07B & K::Send, {Blind}{Down}
sc07B & J::Send, {Blind}{Left}
sc07B & L::Send, {Blind}{Right}
5:名無しさん@お腹いっぱい。
13/11/02 18:37:50.27 h5sjW8CN0
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:名無しさん@お腹いっぱい。
13/11/02 18:38:23.76 h5sjW8CN0
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:URLリンク(www6.atwiki.jp) の「IME.ahk」を使いましょう。
7:名無しさん@お腹いっぱい。
13/11/02 18:38:58.31 h5sjW8CN0
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:公式( URLリンク(www.autohotkey.com) )から SmartGUI Creator をDLして使うと楽。
Q4:AHKってマルチスレッドじゃないの?
タイマーやMsgBox, WinWait, KeyWaitを使ってるけど思った通りに動かない。
A4:「擬似マルチスレッド」です。最後に割り込んだスレッドが終わるまで元スレッドは動きません。
MsgBox、WinWait、KeyWait、Process,WaitClose などをタイマーで複数動かす時は注意。
> 要は処理系統が複数同時に走らないってこと。図にするとこんな感じ。
> → 実行中、 …:割り込み終了待ち
> 元スレッド →→→→→→……………………………………→→→→
> ★割込 ↑再開
> 割り込みスレ →→→→…………→→→→→→END
> ◆割込 ↑再開
> 更に割り込み →→→END
※ AutoHotkey_H(AutoHotkey.dll)を利用すると真のマルチスレッドが利用可。
8:名無しさん@お腹いっぱい。
13/11/02 18:39:51.27 h5sjW8CN0
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:名無しさん@お腹いっぱい。
13/11/02 21:13:02.87 LgZDMlJy0
前スレが終了しそうなのと、別の話題で盛り上がってるようなので新スレに質問を書きます。
別に急ぎませんので、前スレが終わってからお願いします。
ダイアログウインドウのボタンにMouseMoveしたいと思ってます。
条件として、デフォルトボタンかフォーカスがあるボタンへです。
そこで「ControlGetFocus」や「ControlGetPos」を使おうと思ったのですが、
「ControlGetFocus」はボタンにフォーカスがあればclass名は取得できますが、
ボタンの位置は取得できませんし、ボタンにフォーカスがなければ何も取得できません。
「ControlGetPos」はボタンのclass名が分からないとボタンの位置が取得できません。
何か良い方法無いでしょうか?
そもそもデフォルトボタンって取得できマスかね?
10:名無しさん@お腹いっぱい。
13/11/02 23:36:23.30 LgZDMlJy0
>>1
スレ立て乙でした。
ごめんなさい、言い忘れてました。
11:名無しさん@お腹いっぱい。
13/11/03 09:58:21.06 r/31SuUG0
ダイアログの確認ボタンてフォーカス当たってる場合が殆どかと思ってたけど違うのもあるんか
デフォルトボタンの取得方法はわからんが
・「OK」「はい」「再試行」「続行」あたりで適当にあたりつけて取得してみる
(Control指定はClassNNの代わりにラベルテキスト文字も使える)
・WinGet ControlListでZオーダーの一番若いButtonコントロールを探しだす
・特殊なダイアログは諦めて個別に決め打ちで対応させる
あたりかな
12:名無しさん@お腹いっぱい。
13/11/03 16:30:12.75 5F74xtIW0
>>11
レスありがとうございます。
それと、前スレまだ終わってないのに答えていただき恐縮です。
なるほどー、色々とやり方有るんですね、勉強になります。
リファレンス改めてよく読むと、タイトルなどの除外指定も有るようで、
autohotkeyってかなーり奥が深いんですね。
逆にその分自分にとっては複雑&難解になってしまう訳ですが・・・
13:名無しさん@お腹いっぱい。
13/11/04 10:48:38.05 WpkoLKWY0
あのー、pert16終了寸前に質問したものです。
そこでお断りしたようにもう一度質問書かせていただきます。(コピペします)
AutoHotkey スレッド part16
スレリンク(software板: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:名無しさん@お腹いっぱい。
13/11/04 10:53:08.52 zPNC5Eqx0
アイコン2つは多分できないんじゃないかな
プラグイン側のアイコン変更を切るんじゃ駄目なの?
15:名無しさん@お腹いっぱい。
13/11/04 11:16:08.93 WpkoLKWY0
>>14
ありがと、そーかー無理みたいですか。
実は、icon二つ表示したい理由言い忘れたんで書こうとしたら
レスついてたので情報後出しっぽくてあれだけど、
それぞれのiconをindicator代わりにしたかったんですよ。
無理してpluginにするより、独立して起動させるのが無難…と言うより、それしかないか。
16:名無しさん@お腹いっぱい。
13/11/04 13:15:20.52 yGBFVwB30
やりかたとしては
ahkを2つ走らせる、お互いのプロセスを監視する、監視でどちらかが消えたら自分も終わらせる
とする感じくらいしか思い浮かばない
17:名無しさん@お腹いっぱい。
13/11/04 14:06:10.94 XXUXbFXe0
↓ここにある タスクトレイに最小化でahk機能に頼らないタスクトレイアイコン作成のサンプルがある
ただし古いソースなのでANSI版のみ、unicde & x64版でそのままでは動かない
URLリンク(ahk.xrea.jp)
18:名無しさん@お腹いっぱい。
13/11/04 16:02:15.53 WpkoLKWY0
>>16-17
レスありがと。
色んなツール(機能)をMGL一本に集中出来れば最高だったんですけど、そう簡単には行きませんね。
19:名無しさん@お腹いっぱい。
13/11/04 17:13:01.04 eIOqTGVv0
>>18
プラグインから別の場所にあるahkをRunすれば起動は同期できる
pluginsフォルダにサブフォルダ作って入れとくとかね
20:名無しさん@お腹いっぱい。
13/11/04 18:57:43.59 WpkoLKWY0
>>19
ありがとう。
>>19含め>>16-17
あの…とても言いにくいので黙ってたんですけど、
自分がやりたかったのは、ただ単に、"複数ツールの常駐をMGL一本の常駐で賄うこと"だったんです。
でも、>>13での質問と>>15での理由説明、更に>>18でいい加減なレスと、皆様に誤解を生ませてしまいました。
大変申し訳ありませんでした。
あと各々の貴重なレスは今後の参考にさせていただきます。
21:名無しさん@お腹いっぱい。
13/11/04 21:32:20.79 XXUXbFXe0
要はinclude でまとめたいってことだろうがMGLが組み込み対応になってるかとか知らんし面倒な予感しかしないね
MGLで質問です
↓
住民が詳しすぎるレス
↓
すいませんわかんないんで諦めます
ここんとここんなんが多い気がする
ahk全般の汎用解答してもMGLでの応用方法がわからんので結局解決に至れないし
MGL使用者同士で噛み砕いてのレスの応酬されるのも正直ね
スレ消費早くないからいいじゃんてのも違うと思う
で提案なんだが重複スレのほうをMGL専用として活用してはどうか
AutoHotkey スレッド part17
スレリンク(software板)
前スレには詳しいMGL使いもいたから解答はつくだろうし
質問者も変にこっちで難解レスもらうよりいいでしょ
22:名無しさん@お腹いっぱい。
13/11/04 21:37:50.81 QszsJMvd0
あっちこっち視るのが増えるだけで面倒だし、こっちだけでいいよ
何故そんなに分けたがるのかわからん
フォーラム形式なら分けたほうがいいってのは分かるけど
23:名無しさん@お腹いっぱい。
13/11/05 00:07:56.81 aAuEnmE40
MGLのプラグインいじり回すのはAHKの勉強にもなるんでこっちでいいとおもうな
俺は現にMGLにincludeで機能増やしていってるタイプで、そのほうが機能のコンフリクトとか気にしなくていいもの
ただそのためにMGLをAHKファイルとして理解していく必要はあるけど、わかってくるとなかなか楽しいもんよ
24:名無しさん@お腹いっぱい。
13/11/05 01:10:26.70 MjDHj0bL0
んまあ、確かにAHKのスレで、MGL専門の話を繰り広げるってのは、perlのスレでperlで書かれた
特定のソフトウェアの設定・改良について話が行われているような違和感を覚えるのは確か。
本筋としては、MGLの話題はAHKのスレではスレチだからよそのスレにどうぞ。ってことになるんだろう
けど、よそのスレでMGLのAHKスクリプトの話をしてもろくに理解もしてもらえないだろう。
それならこのスレでMGLの話をしてもいいんじゃないかな。
AHKを使ってる人もわざわざここ以外のスレを覗きに行くのは面倒だと思うしね。
って、長文書いたけどさ、自治なんて面倒だし適当でいいんでない?
25:名無しさん@お腹いっぱい。
13/11/05 01:18:05.29 UyI0Jkoe0
>23みたいにMGLは入口でahkに興味出た、スプリクト覚えたいて姿勢の人ならいいと思うけど
殆どの人間はカスタマイズがちょっと難解なマウスユーティリティてな認識で使ってるっぽくない?
ここはahkで作ったツールの使い方を聞くスレではないと思うし、このままズルズルサポート拠点にされるのは嫌だな
あっちこっち見るの大変ていうけど、MGL使ってない人間からしたらそもそもが見る必要ないレスなわけだし
26:名無しさん@お腹いっぱい。
13/11/05 14:43:49.77 wJKxtgjw0
autohotkeyのスクリプトがかなり長くなってしまったので適度に分割しようと思うのですが、
そうするとこれまで一つのスクリプトでやっていたことを複数のスクリプト間で行わなくてはなりません
そこで
a.ahkからb.ahkにデータを渡して
データを処理したb.ahkがa.ahkに処理済のデータを返す
こういうことを考えたのですがFileAppendでテキストに書き出してやりとりをする以外に何かいい手はありますか?
27:名無しさん@お腹いっぱい。
13/11/05 14:47:32.14 1WSJIIB30
管理するだけならそれこそincludeでいいんじゃないだろうか
28:名無しさん@お腹いっぱい。
13/11/05 15:26:01.71 vtjmO1MN0
「AutoHotkeyを流行らせるページ」でDLした、「システムモニタ用関数群」
URLリンク(ahk.xrea.jp) の「sample.ahk」
というスクリプトを元に進行状況を表すプログレスバー作ってるのですが、
プログレスバーに反映しないデータがあり、ここで行き詰まっています。
どうしたら反映するんでしょうか?
また、できればこれを関数化したいとも思ってるのですが、
頭が混乱して右往左往しています。
とりあえず、次レスにtestスクリプト晒しますので、
ご協力お願いいたします。
29:26
13/11/05 15:27:23.88 wJKxtgjw0
説明不足ですみません
はい#includeは使ってきました
ですがそれを多用するよりもできるだけincludeを使わない方法で保守管理しやすくする方法はないかと思ったのです
30:名無しさん@お腹いっぱい。
13/11/05 15:29:07.87 vtjmO1MN0
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:名無しさん@お腹いっぱい。
13/11/05 15:32:51.85 vtjmO1MN0
肝心なこと書き忘れました。
>Gui,Add,Text,x0 y200,進行 %count%`%
の%count%が空っぽで何も表示されません。
「MyProgress」は反映してるのに私には理解できませんでした。
32:名無しさん@お腹いっぱい。
13/11/05 17:21:07.60 XisEoPDs0
>>31
%count% が空で表示されないのは Gui,Add,Text の時点では
count に値が設定されていないから。
count を変更してもテキストに反映されないのは DrawPerf:
の中でテキストを更新する処理を行っていないから。
後者を修正するには例えば次のようにすればよい
・Gui,Add,Text において v オプションで変数を割り当てる(例:vProgressText)
・GuiControl,,MyProgress,%count% の行の直前か直後に次の行を入れる
GuiControl,,ProgressText,%count%`%
33:名無しさん@お腹いっぱい。
13/11/05 18:38:03.85 TUF3n1lj0
WinSet,Top,,ahk_id %w%
これが動作しません・・・(Bottomのほうは動作するのですが)
ヘルプには「システムの設定によっては動作しない。」と書いてありますが
動作するように出来るのでしょうか?
Win7 x64
AHKL 最新
34:名無しさん@お腹いっぱい。
13/11/05 18:42:13.58 vtjmO1MN0
>>32
ありがとうございます。
Gui,Add,Text,x0 y200,進行 %count%`% の行を
↓
Gui,Add,Text,x0 y200 w200 vProgressText
GuiControl,,MyProgress,%count% の行を
↓
GuiControl,,ProgressText,進行 %count%`%
と変更して希望どうり、進行状況の%表示がされるようになりました。
これで関数化に向けて落ち着いて考えられそうです。
35:名無しさん@お腹いっぱい。
13/11/05 18:47:53.60 vtjmO1MN0
>>34 の訂正です。(ああ、未だ頭が混乱してるかも)
中段の
GuiControl,,MyProgress,%count% の行を
↓
GuiControl,,ProgressText,進行 %count%`%
これは、
GuiControl,,MyProgress,%count% 行の下に
GuiControl,,ProgressText,進行 %count%`% 行を追加
が正しいです。
お騒がせしました。
36:名無しさん@お腹いっぱい。
13/11/05 18:52:49.57 A12X5On40
>>33
AlwaysOnTop ON/OFFすればいい
困ったときは公式ドキュメントも確認しよう。
URLリンク(l.autohotkey.net)
37:名無しさん@お腹いっぱい。
13/11/05 20:59:21.34 Ad7w0w9P0
テンキー0の横の . ←点を変えたくてwindow spyで見て
vk6Esc053にしてみたんですが変わらないみたいで間違ってますか?
38:名無しさん@お腹いっぱい。
13/11/05 21:02:19.78 aAuEnmE40
Numpaddot::
を使えばいい。てかAHKのキー一覧がググれば出てくるんでそれを参考にするといい
39:名無しさん@お腹いっぱい。
13/11/05 21:04:17.15 Ad7w0w9P0
>>38
ありがとう一覧探してみます
40:名無しさん@お腹いっぱい。
13/11/05 21:14:23.69 TUF3n1lj0
>>36
ありがとうございます!
AHK凄い36さん凄い
41:名無しさん@お腹いっぱい。
13/11/06 08:14:11.61 luw6m4wR0
>>29
関数でどうよ
関数ライブラリ機能使えば楽よー
42:名無しさん@お腹いっぱい。
13/11/06 12:13:21.65 RSrnMLVy0
素朴な疑問。
MouseGestureL使ってる人、これexe化してる?ahkそのまま?
それと、exe化して使う場合のメリット/デメリット
ahkそのままでのメリット/デメリット
どんなのがある?
43:名無しさん@お腹いっぱい。
13/11/06 12:16:36.07 eG5fQhI30
ahkのままでつかってる。
ahkのままだとahk本体が必要
exeにすると本体不要
でもメンテとかだとahkファイルのままのほうがいいし、ahk本体も持ち運べるからそんなに重要じゃない。引数わたしとか関連付けて走らせなきゃいけないけれど
exeは関連付けとか引数渡しとかそういう手間がない。全く拡張せず、完全にツールとしてしまうならexeのほうがお手軽
44:名無しさん@お腹いっぱい。
13/11/07 08:21:35.59 49NZfEsm0
exe化しても、設定変えるごとに再exe化が必要になるから
実質使い物にならんよ
45:名無しさん@お腹いっぱい。
13/11/07 08:28:24.18 XVY/Bs2E0
ahkを知らない他人が使う場合にexe化して渡してる
自分が自分のPCでしか使わない場合はahkのまま使ってる
46:名無しさん@お腹いっぱい。
13/11/07 11:07:39.26 EvraCXzB0
>>44
iniファイルの読み書きできるし、パラメーター的な設定変更なら再EXE化の必要はないよ
47:名無しさん@お腹いっぱい。
13/11/07 12:02:55.09 fZozRp2a0
exeで渡したらahkに出コンパイル可能?
48:名無しさん@お腹いっぱい。
13/11/07 12:15:07.05 VCo37QmK0
デコンパイル不可のオプションつけてなければ戻せる。
コメントやインデントルールまで再現してくれたかは覚えてないが
自分で使う場合も常駐ahkに組み込むもの以外はわりとexe化してるな、設定はini読み
コマンドラインで動かすものはahkのままだとパラメータの受け渡しが面倒だし
GUI作ったものは普通のツールアプリと変わらんのでexe化したほうがランチャー起動も楽
49:名無しさん@お腹いっぱい。
13/11/07 12:19:40.73 MheHlEV90
ようは人によるってことよね
AHKをランチャにして使ってる場合AHK上から子AHKファイルを読み出すときはRun,%A_AhkPath%とか使えばいいわけで、他のランチャからならexe化してたほうが楽
50:名無しさん@お腹いっぱい。
13/11/07 13:17:49.37 yJQH34AN0
ループ中にキーを押されたらスレッドから即座に抜けるようにしたいんですけど可能でしょうか?
スレッド内に判定を書くとそこまで待たなければならないため
別のスレッドを割り込ませてExitやExitAppをやってみたんですけど
Exitは元のスレッドに戻るだけ、ExitAppはスクリプトの常駐自体も解除されてしまうためうまくいきませんでした
51:名無しさん@お腹いっぱい。
13/11/07 13:35:05.71 TY9PY+/s0
Continuetu 使ったら?
52:名無しさん@お腹いっぱい。
13/11/07 14:12:39.84 yJQH34AN0
>>51
今やってみましたがContinuetuを別のスレッドで単独で記述するとコンパイルエラーで弾かれるみたいです
53:名無しさん@お腹いっぱい。
13/11/07 14:14:04.78 o/nlozLH0
Whileで書いて、Getkeystateが1でない間にするとか
54:名無しさん@お腹いっぱい。
13/11/07 14:39:51.46 yJQH34AN0
>>53
whileも判定は即座にやるわけではないので変わらないと思います
ちなみに現在のコードは
#1::
Loop{
処理1
GetKeyState, state, Esc
if state = D
break
処理2
}
return
で、処理1,2が長いためifで判定するまでキーを押したまま待つ状況です
55:名無しさん@お腹いっぱい。
13/11/07 14:56:49.64 MheHlEV90
If (Getkeystate("Esc","P")) = 1
break
56:名無しさん@お腹いっぱい。
13/11/07 15:16:18.72 dXbI1xB40
知らないから適当なこと書くけど、AutoHotkey.dllならフレッドを途中で終了させるのも可能なんじゃないかな?
57:名無しさん@お腹いっぱい。
13/11/07 15:24:23.75 yJQH34AN0
>>55
記述を変更してみましたが表面上の動作は同じみたいです
>>56
これからバイトなので帰ってきたら調べてみます
58:名無しさん@お腹いっぱい。
13/11/07 15:24:25.64 gc30trcW0
フレッド君は志半ばにしてこの世を去るか……
59:名無しさん@お腹いっぱい。
13/11/07 15:28:45.08 dXbI1xB40
なんというタイポ、これは恥ずかしい
60:名無しさん@お腹いっぱい。
13/11/07 17:23:34.91 VCo37QmK0
処理1、2の内容が分からんので何とも言えんが
WinWait,WinTitle, WinText, 10 とかやってるなら
Loop 10
{
if GetKeyState("ESC") {
アボート処理
Break
}
WinWait,WinTitle, WinText, 0.1
}
Until ErrorLevel=0
みたいに数行にばらして処理時間を細切れにするとか
61:名無しさん@お腹いっぱい。
13/11/08 19:34:43.04 8yijMNAQ0
>>46
仕組みを理解してないようだな
設定は全てMG_Config.ahkに書き出されてそれをincludeする方法だから
設定変えたら再exe化が必要になるのだよ
62:名無しさん@お腹いっぱい。
13/11/08 21:28:16.46 UWFJxr4P0
そんな頻繁に内容書き換えるんならわざわざコンパイルせんでも。
MouseGesture.ahkの導入ページに書いてある、
AutoHotKey.exeをリネームして、同名、同ディレクトリのahkファイルを読み込むようにする方法じゃあかんの?
63:名無しさん@お腹いっぱい。
13/11/08 22:03:29.05 pMVDeGc+0
>>42 のexe化の話ってMouseGestureL.ahk"だけ"exe化する話じゃなかったのか?
全てのahkファイルをexe化するなんて発想はなかったよ、>>61 みたいに。
64:名無しさん@お腹いっぱい。
13/11/08 22:11:06.66 pMVDeGc+0
>>63
あ、俺勘違いしてた。
>>61 ホントすまんかった、適当なこと言って。
65:名無しさん@お腹いっぱい。
13/11/09 10:54:54.01 r70LfzOH0
URLリンク(l.autohotkey.net)
ここを読むとGUIイベント(GUIのサブルーチンラベル)でも新しいスレッドが発生するらしいけど
そのスレッドの割り込み優先度を設定する方法ってある?
それともGUIを呼び出したスレッドの優先度が引き継がれるのかね
66:名無しさん@お腹いっぱい。
13/11/09 16:15:40.19 JduWIw5T0
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:名無しさん@お腹いっぱい。
13/11/09 16:23:33.45 Dskn8qlD0
もしAが起動したらBを閉じて、起動していなければBを開く
Process,Exist,A.exe
If ErrorLevel<>0
Process,Close,B.exe
else
Run,..\..\B.exe
じゃダメなの?難しい
68:名無しさん@お腹いっぱい。
13/11/09 17:01:13.15 JduWIw5T0
>>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:名無しさん@お腹いっぱい。
13/11/09 17:09:52.81 JduWIw5T0
>>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:名無しさん@お腹いっぱい。
13/11/09 17:41:23.45 PcXU61XN0
>>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:名無しさん@お腹いっぱい。
13/11/09 18:42:45.05 JduWIw5T0
>>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:名無しさん@お腹いっぱい。
13/11/09 19:13:31.67 VKMWxPBd0
>>65
Thread を書けばいい
URLリンク(ahkwiki.net)
73:名無しさん@お腹いっぱい。
13/11/09 19:15:14.32 Dskn8qlD0
>>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:名無しさん@お腹いっぱい。
13/11/09 19:31:54.21 JduWIw5T0
>>73
>>71で
>慣れないうちはif~else使う時は全部 { }で囲ったほうがいいよ
と指摘されてるように(自分が^^)
If ~
{
処理1
処理2
}
else
{
処理3
}
な感じにしないと思うような結果が得られない場合があるから注意した方が良いよ
75:名無しさん@お腹いっぱい。
13/11/09 20:21:05.43 JAsitH9B0
If ~
{
処理
}
と
If ~ {
処理
}
だと行数が減る分
下の方がわずかに読み込みが早かったりするのかな
76:名無しさん@お腹いっぱい。
13/11/09 21:09:58.17 JduWIw5T0
>>75
ご指摘ありがとう。
今までは、そういう風にするとエラー出るんで長ったらしく記述してたよ。
んで、改めて他作者スクリプトを良く見てみると、( )付いてるか否かの違いに気付いた。
ということで、
If ( ~ ){
処理1
}else if ( ~ ){
処理2
}else{
処理3
}
こう記述すと効率が良いってことかな?
77:名無しさん@お腹いっぱい。
13/11/09 21:12:38.72 VKMWxPBd0
____
/ \
/ ⌒ ⌒ \ 何言ってんだこいつ
/ (●) (●) \
| 、" ゙)(__人__)" ) ___________
\ 。` ⌒゚:j´ ,/ j゙~~| | | |
__/ \ |__| | | |
| | / , \n|| | | |
| | / / r. ( こ) | | |
| | | ⌒ ーnnn |\ (⊆ソ .|_|___________|
 ̄ \__、("二) ̄ ̄ ̄ ̄ ̄l二二l二二 _|_|__|_
78:名無しさん@お腹いっぱい。
13/11/09 22:11:16.50 2JOYU1ck0
変数名もできるだけ短くした方がいいぞ
79:名無しさん@お腹いっぱい。
13/11/09 22:25:51.34 PcXU61XN0
AHKは昔 if (式) が使えなかった
進化の仮定で (式)が加わり、)で明示的に式の終わりを指定できるようになったため
改行前の{ も有効になった。
今でも()なしifやLoopなんかは改行しないとエラーになるものもある
改行するしないはプログラム上はCRLFの2バイト挿入されるだけで速度にはほとんど影響ない
むしろ↓のようにスペースやコメント文字を入れするほうがバイト数的には増えてることもある
if (Expression) { ; ○○の時は△△する
単純に自分が視認しやすい方でよいと思う
80:名無しさん@お腹いっぱい。
13/11/09 22:45:52.08 JAsitH9B0
>>79
わざわざ直す必要はないみたいだね
ありがとう
81:名無しさん@お腹いっぱい。
13/11/09 22:45:53.05 /kjb4T9e0
そんなことより>>68とか、最初のifがfalseだったとき次どこいくと思ってんのかな
82:名無しさん@お腹いっぱい。
13/11/09 23:14:04.13 E6QyIEbp0
式は{}使えっていつも言ってんだろー!!
83:名無しさん@お腹いっぱい。
13/11/09 23:29:53.31 s8rJVbwc0
>>81
インデントがスペース一個で、しかも専ブラで見ると、インデント不明すぎるなw
せめて2スペでないと流し読みするから構文ミス見逃すわ
よく気付いたな…
84:名無しさん@お腹いっぱい。
13/11/09 23:58:17.17 JduWIw5T0
>>68 なんだけど、弁解じゃないけど一応
>>68は元々以下の感じでインデントしてたのを貼り付けた。
(下のは全角スペースで疑似インデント)
Process,Exist,notepad.exe
If ErrorLevel=0
Process,Exist,wordpad.exe
if ErrorLevel=0
Run,wordpad.exe
else
Process,Exist,wordpad.exe
If ErrorLevel<>0
Process,Close,wordpad.exe
で、これは>>70で指摘された通り、{ }で括り忘れてるので間違ってることは認識してる。(>>69についても同じ)
いい加減うざいよね、スマン。
85:名無しさん@お腹いっぱい。
13/11/10 09:14:56.06 uDdR3jCo0
いやそれはわかってる
スペース一個じゃインデントしてても見づらいよって話
自分は4タブ(タブ押しでスペース4個分インデント)だが
2タブ、4タブあたりの人が多いんじゃないかね
86:名無しさん@お腹いっぱい。
13/11/10 09:15:50.43 OuL0Jpyr0
AHKで設定したホットキーが、Window7では正常に動作したのにWindows8では
機能しないことがあります。たとえば、タスクマネージャーがアクティブなとき、
Win+F1を押すと、AHKで設定したものではなく、「Windows ヘルプとサポート」
が立ち上がり、Win+zなどの設定もまったく機能しません。どうしてなんでしょう?
87:名無しさん@お腹いっぱい。
13/11/10 09:47:44.93 OuL0Jpyr0
スクリプトを管理者として実行する必要があるんですね。分かりました。
88:名無しさん@お腹いっぱい。
13/11/10 10:33:04.15 iru0aH2t0
>>72
サブルーチンに入ってからThread, Priority,n指定しても割り込まれるだけじゃないかと思ってた
Thread, Interrupt, Duration [, LineCount]と併用するのね。ありがとー
>>87
Windows8だとそんなめんどくさいことになってるのか・・・
89:名無しさん@お腹いっぱい。
13/11/10 13:21:21.09 ahi6Vsgq0
ブロックでくくるのは1行だろうとやってるな
どういう式なのか視認しやすいから
90:名無しさん@お腹いっぱい。
13/11/10 14:01:05.86 CJr4mQyO0
このスレは行頭に半角空白とタブ付いてると、
それが削除されるからコード見ずらくなるよな。
書き込むだけなら全角使っても良いけど
コピペして使う方は一手間いるから、そこがなあ。
全板、全スレそうなのかな?
91:名無しさん@お腹いっぱい。
13/11/10 14:19:25.55 QQRdwQ7U0
スレというかhtmlの表示ルールがそうなんでないかと
AAもそれ前提に作られてるから専ブラの表示も合わせてあるのが多い
92:名無しさん@お腹いっぱい。
13/11/10 17:04:51.43 /7GhoBz90
> 変数名もできるだけ短くした方がいいぞ
て本当? 処理がわずかでも早くなる?
今まで気ままに付けてた
日曜プログラマーにマジレスお願いします
93:名無しさん@お腹いっぱい。
13/11/10 17:07:11.02 CJr4mQyO0
ところで、AutoHotkeyに付属してるSciTE4AutoHotkeyで
TABキー1回押しで半角空白4個挿入するにはどうすんの?
それこそスクリプト書けって言われるのが落ち?
94:名無しさん@お腹いっぱい。
13/11/10 17:20:58.92 Wsob4QVh0
簡単やから書いちまえ
IME関数でIME状態記録して半角にしてからsend,でスペース4回、その後IMEの状態をもとの書式形態に戻せばいいだけだから
95:名無しさん@お腹いっぱい。
13/11/10 17:22:41.51 tboc7JFs0
janedoe view使いだけど、別にTABだろうとスペースだろうと
ポップアップ表示させればインデント正確に表示されるから気にしてないな
96:名無しさん@お腹いっぱい。
13/11/10 17:27:13.63 Q7AykSK80
>>94
確かにそれは>>93の希望の動作だけど、>>93の求める動作はきっとそれとは違うw
97:名無しさん@お腹いっぱい。
13/11/10 20:25:57.27 CJr4mQyO0
>>94
どうもです。ヒントまで書いてくれて。
エディタ側に設定する所ないなら、そういうスクリプト書くしか無さそうだね。
>>96
エディタ側の設定で出来ればベストなんだけどね。
98:名無しさん@お腹いっぱい。
13/11/10 21:08:11.30 SvuwF5o10
>>92
コメントも極力書かないようにな
99:名無しさん@お腹いっぱい。
13/11/10 21:28:11.23 SKyuhMaS0
>>97
そのエディタを使ったことは無いけど、ソースコード編集用エディタでタブをスペースに
置き換える機能がないということは考え難いので、探せば設定項目があると思う
軽く調べた感じでは use.tabs が怪しい
100:名無しさん@お腹いっぱい。
13/11/10 21:48:36.67 OuL0Jpyr0
>>87
Windows8では、あるプログラムを「管理者が起動する」のと、
「管理者が管理者として起動する」のでは違うんだそうです。
101:名無しさん@お腹いっぱい。
13/11/10 21:51:26.75 OuL0Jpyr0
Windows7でもこの違いはあったようですが、
デフォールトの設定で問題が生じなかったので、
気に留めたことがありませんでした。
102:名無しさん@お腹いっぱい。
13/11/10 22:54:35.79 CJr4mQyO0
>>99
わざわざ調べてくれてありがとう。
webサイトの方に細かいこと書かれてたので、それ参考にいじってみるよ。
なんか、『質問する前に調べろよ、ドアホ』ってみんなから言われそうだけど、勘弁してくれ。
103:名無しさん@お腹いっぱい。
13/11/10 23:00:18.49 rKrXT9cD0
次から気をつけるならいいよ
104:名無しさん@お腹いっぱい。
13/11/11 01:17:57.60 igGN+y/w0
>>92
振り回されすぎ
>>98
振り回しすぎ
105:名無しさん@お腹いっぱい。
13/11/11 01:53:19.76 j8vopFcs0
大昔のリソースが潤沢じゃなかった時代は、実際にそういうことやってメモリ稼いだりとかはあったが
今は見やすさ重視で書くヨロシ
見難いコード書いたせいでバグ誘発したり、メンテナンスに掛かる時間のほうがよほど無駄
カッコのつけ方は一貫性あればいいと思うが
一行で省略できる場合でも、個人的には常につけるべきだと思っている
あとで処理を付け足したりしたくなった場合の変更に臨機応変に対応できるのと
変更した時にカッコの付け忘れでのバグ防止、ブロックを明確にするなど
メリットのほうが大きいと考える
106:名無しさん@お腹いっぱい。
13/11/11 01:57:09.28 rT6KkNEF0
てーかきれいなGUIとか昨日過多とか裏でわけわかんないもの走らせない限りは他のexeに比べて圧倒的に軽いんだからあんま気にすることでもないと思う
107:名無しさん@お腹いっぱい。
13/11/11 01:58:48.44 j8vopFcs0
あと、今更ってカンジだけどよく言われるのが、
コメントがなくても分かるコードを書け。とか
コメントを信じるな。とか
コメントに書いてあることが仕様変更に追従してない場合もあるからな
綺麗なコードはコメントなくても文章のように読める・・・はず
108:名無しさん@お腹いっぱい。
13/11/11 15:28:26.33 0W7UPHuM0
一行で省略できる場合でもカッコ使ったほうがいいんですね
真似してみます
If(ahk){
xxx
}
と
If(ahk)
{
xxx
}
はどちらがメジャー?
109:名無しさん@お腹いっぱい。
13/11/11 15:35:26.31 uNURXBw20
俺上使ってる
まぁ、そんなことよりsakuraエディタにAHK色変えプロファイルをインストールすべき
110:名無しさん@お腹いっぱい。
13/11/11 16:15:54.62 aO9uH+Y50
>>109
んなの、[AutoHotkeyフォルダ]\Extras\Editors\[各種エディタ]
内のキーワードファイルからキーワード移植すれば良いだろ?
...\Extras\Editors\EmEditor\ahk.esy
辺りが移植しやすいんじゃないか?
正規表現使いたい場合は自分で作成するしかないかもしれないけどね。
111:名無しさん@お腹いっぱい。
13/11/11 16:31:40.73 aO9uH+Y50
例えば、If WinExist( … )とかじゃなく
IfWinExist, … の場合は、{ } はどうしたらいい?
112:名無しさん@お腹いっぱい。
13/11/11 16:44:46.44 2yW1lBYX0
>>110
情報古すぎ、AutoHotkey_Lにはキーワードファイルは付いていません。
そんなことよりいつまで括弧の話題引っ張る気だよ
書き方なんて個人の好みでやればいいだけだろ。
113:名無しさん@お腹いっぱい。
13/11/11 18:31:12.20 aO9uH+Y50
>>109 >>112
捜したら有ったぞ。
直リンはしないからね。
URLリンク(ahkwiki.net)
114:名無しさん@お腹いっぱい。
13/11/11 18:43:42.47 2yW1lBYX0
>>113
付属していませんと指摘したんだが。
同一人物だと思うが国語が残念な人、もう少し文章よく読んだら?
115:名無しさん@お腹いっぱい。
13/11/11 19:07:56.38 5hyh3Jpc0
wikiにこういうのあったのか
Mery用に使わせてもらうわさんきゅー
116:名無しさん@お腹いっぱい。
13/11/11 19:21:58.62 9keEvpOM0
会話噛み合ってないなぁwとは思ったがそんなキレんでも
あとIDというものをご存知か
117:名無しさん@お腹いっぱい。
13/11/11 19:32:49.20 2yW1lBYX0
>>116
時々スレに書き込んでる人で会話にならないのがいる。
少し上にも特徴的なのが・・・。
118:名無しさん@お腹いっぱい。
13/11/11 19:40:59.11 9keEvpOM0
!?オレもキレられるんだw
同ID相手にわざわざ
>同一人物だと思うが
とか言うからもしかしたら知らないのかなぁと思ったんだけど
もし「仮に」、
>会話噛み合ってないなぁw
の方に突っかかってオコなんだったら、それこそ国語が……
119:名無しさん@お腹いっぱい。
13/11/11 19:46:35.21 o5+fta200
どっちもどっちにしか見えないけどな
付属してないって言われて、今ある場所を見つけてきたんだから
間違いを指摘するだけよりもよっぽど有意義だと思うよ
120:名無しさん@お腹いっぱい。
13/11/11 19:57:23.09 2yW1lBYX0
>>118
ああ誤解させちゃったごめんなさいww ID:JduWIw5T0です。
名指しするのもアレだから曖昧に書いたのが失敗だった。
スレ汚し失礼しました。
121:名無しさん@お腹いっぱい。
13/11/11 20:25:48.06 64SiAhDR0
アンカーミスが混乱をうんでる
122:名無しさん@お腹いっぱい。
13/11/11 20:29:25.85 3Ouxq7Pu0
誰も彼も混乱してら
123:名無しさん@お腹いっぱい。
13/11/11 20:41:04.23 u9ftSiTp0
蛇足が多すぎ
括弧の話題の方がまだ建設的だ
124:名無しさん@お腹いっぱい。
13/11/11 22:24:17.09 2eN3Ej5Z0
>>125
ホラ
力抜けばそれだけ楽になるでしょ?
125:名無しさん@お腹いっぱい。
13/11/11 22:27:29.02 /X1j4cqa0
>>111
普通はこう
IfWinExist, , , ,
{
}
邪道だけどこういう書き方ができなくもない(最後の , はIfWinExistとは関係ない)
IfWinExist, , , , , {
}
126:名無しさん@お腹いっぱい。
13/11/11 22:46:17.24 aO9uH+Y50
>>125
なるほどサンキュー、勉強になるよ。
おやすみ(´・ω・`)
127:名無しさん@お腹いっぱい。
13/11/12 18:46:02.31 UAyBMDZq0
マウス(カーソル)の位置じゃなくて
カーソルの位置(?)を取得するにはどうすればいいんでしょうか?
たとえばブラウザのアドレスバーに何かタイプしてENTERするとき
カーソルがアドレスバーの位置にあればALT+ENTERにしたいです
128:名無しさん@お腹いっぱい。
13/11/12 21:11:11.93 Yc1HB9nl0
>>127
A_CaretX と A_CaretY かな
ただし、Wiki に
>一部のウィンドウではキャレット座標が実際の位置と異なるものを返す場合がある。
>FireFoxなど独自描画を行っているものはキャレット位置を取得できない事がある。
とあるので、使っているブラウザによってはダメかもしれない
URLリンク(ahkwiki.net)
129:名無しさん@お腹いっぱい。
13/11/12 21:58:10.41 UAyBMDZq0
ありがとうございます<(_ _)>
確かにFirefoxでは無理でした Chromeでも正確な値は取得できないみたいです
130:名無しさん@お腹いっぱい。
13/11/13 10:15:27.62 f+Nw+fu90
カーソル(キャレット)の位置より
アクティブな(≒その位置にカーソルがある)コントロールのクラス名で判断するのがいいんじゃないかね
やったことないけど
131:名無しさん@お腹いっぱい。
13/11/13 11:01:15.53 Kqgc6YmM0
そのアイデアだと
日本語入力→変換→ENTER でもALT付きになるじゃないか
132:名無しさん@お腹いっぱい。
13/11/13 12:39:11.95 b8f6krUA0
うーん、firefoxを一度RAMディスクに書き出してから起動したいんですが書き出し処理の終了を待たずにfirefoxが起動してしまいます
run,RAMdisk.ffs_batch ;DropboxからRAMに書き出し。外部アプリケーション
SetTitleMatchMode 2
DetectHiddenWindows On
Process,WaitClose,FreeFileSync_x64.exe ←どうもこれをすっ飛ばして起動処理に入るようなんです
Run,firefox起動処理
Process, Priority, %NewPID%, AboveNormal
なにか間違ってますでしょうか
133:名無しさん@お腹いっぱい。
13/11/13 12:39:30.36 GKnPy8OAi
MouseGestureL.ahk の専用スレ立てたので、一応お知らせ。
【AHK】MouseGestureL.ahkを語るスレ【ジェスチャ】
スレリンク(software板)
134:名無しさん@お腹いっぱい。
13/11/13 14:29:55.78 wCIurgL70
>>132
1行目でRunした後、2-4行目は一瞬だからFreeFileSync_x64.exeが起動する前に4行目が実行されてるんじゃない?
4行目の前に適当にSleep入れるか↓追加でどう?
Process,Wait, FreeFileSync_x64.exe
135:名無しさん@お腹いっぱい。
13/11/13 16:00:59.94 b8f6krUA0
>>134
お、うまくいきましたありがとうございます
136:名無しさん@お腹いっぱい。
13/11/13 16:49:13.23 wCIurgL70
>>135
書き忘れてたけど、RunWaitでうまく処理終了が待てるならそっちの方がいいかも
137:名無しさん@お腹いっぱい。
13/11/14 14:46:14.34 70uZZmDc0
upボタンを連続して押して特定のアイテムを上に持って行こうとしましたができませんでした
ボタンを1回押したらlistviewのアイテムをクリックしないとupボタンが動作しましせん
ボタンを押したあと選択箇所が移動しないのもその原因だと思うのですがよくわかりません
どこを修正すればいいのでしょうか
Gui, Add, ListView, r10, index|number
loop, 10
{
Random, rand, 1, 10
LV_Add(, A_Index, rand)
}
Gui, Add, Button, gUp, Up!
Gui, Show
return
Up:
Gui, Submit, NoHide
below:=LV_GetNext(, "F"), above:=below- 1
LV_GetText(t1,below,2), LV_GetText(t2,above,2)
LV_Modify(below,-Select, ,t2), LV_Modify(above,Select, ,t1)
return
138:名無しさん@お腹いっぱい。
13/11/14 19:17:27.10 fSUAmxD/0
>>137
後もう少しで完成する、問題点は以下の通りがんばれ~。
*関数なのでオプション名を "" で文字列にしないと変数参照になっている
*オプション Focus が足りない
*一番上になった場合何もしない処理が足りない
LV_Modify(below,"-Select -Focus", ,t2), LV_Modify(above,"Select Focus", ,t1)
139:名無しさん@お腹いっぱい。
13/11/15 13:15:09.73 HLAQQ9P90
環境が変わってもIEを起動したいんですけど
%ProgramFiles%だとファイルが見つからないと言われます
おとなしく絶対パス指定しないとダメなんでしょうか?
140:名無しさん@お腹いっぱい。
13/11/15 13:51:00.01 PErdqdg50
>>139
Run, iexplore.exe
これだけでOKだと思うけど
141:名無しさん@お腹いっぱい。
13/11/15 15:03:29.90 HLAQQ9P90
>>140
マジデスカ
142:名無しさん@お腹いっぱい。
13/11/15 15:06:25.52 HLAQQ9P90
マジデスタ
ありがとうございます助かりました
143:名無しさん@お腹いっぱい。
13/11/15 15:53:10.45 ar/doy2G0
>>138
できました!感謝です!
144:名無しさん@お腹いっぱい。
13/11/15 16:44:40.43 ZpjJqT760
64bitOSに変えた?
俺も同じ状態になったからとりあえず
%A_ProgramFiles% (x86) で代用してるわ
"C:\Program Files (x86)"を直で指定する組み込み環境変数ってあるんかな
145:名無しさん@お腹いっぱい。
13/11/15 17:45:23.62 ZlJjRCAZ0
ifexist,%systemroot%\syswow64
{
64bitOSで走らせる処理
}
else
{
32bitOSで走らせる処理
}
で分岐はできるぞ。
要するにsyswow64が存在するかどうかをチェックしてやればいいわけで
これで64bit、32bitそれぞれに分かれてるプログラムの自動起動もできるようになる
146:名無しさん@お腹いっぱい。
13/11/15 18:14:46.33 z0tVrYIF0
>>145
組み込み変数追加されてるぞ
A_Is64bitOS (OSが64-bitなら「1」、32-bitなら「0」)
URLリンク(ahkwiki.net)
147:名無しさん@お腹いっぱい。
13/11/15 18:20:23.78 ZlJjRCAZ0
なん、だと・・・
ありがたく使わせてもらいます。ありがとう!
148:名無しさん@お腹いっぱい。
13/11/15 20:57:10.67 AqO+XN+s0
なんかのアプリで編集しようとしてnotepad.exeで開こうとしたら
サクラエディタに変更させるようなことはできないですか?
149:名無しさん@お腹いっぱい。
13/11/15 21:01:25.11 ZlJjRCAZ0
URLリンク(www.crystal-creation.com)
このへんどぞー
困らないならahkファイルをそのまま関連付けて、Runコマンドでahkpassを指定して引数でahkファイル選択して云々とかでもいいとは思う
150:名無しさん@お腹いっぱい。
13/11/15 21:08:11.85 fT/a9cih0
これはTerapadの方法だけど、こういうことをやりたいってことでしょ?
URLリンク(okwave.jp)
リンク先に書かれている tp.ini の中身を他のエディタ(サクラエディタ)のパスに書き換えれば
サクラエディタが起動するようにも出来るんだけどね。
話はそれたけど、ahkで同じようなラッパーを作ってnotepad.exeと入れ替えれば出来るよ
151:名無しさん@お腹いっぱい。
13/11/15 21:16:40.99 z0tVrYIF0
>>148
サクラエディタの関連付け変更すればいい
152:名無しさん@お腹いっぱい。
13/11/15 23:37:40.72 QdLf00QQ0
今日から使い始めてまだ全然使いこなせてないが、
これしゅっごいね
世界が変わったわ
153:名無しさん@お腹いっぱい。
13/11/16 04:09:07.76 XVNmzA0x0
Windows 8.1にしたら
Send,!{Tab}
とか
Send,{Alt Down}{Tab}{Alt Up}
なんかが効かなくなったんだけど使えてる人いる?
管理者権限で実行してもダメなんだけど
154:名無しさん@お腹いっぱい。
13/11/16 04:15:11.74 /DSb0fi40
>>153
解決したいなら環境ぐらい全部書こうや
155:名無しさん@お腹いっぱい。
13/11/16 07:52:21.20 XVNmzA0x0
>>154
いや8.1で使えてる人がいるかどうかだけ聞きたいんだ
他の人が使えてるならこっちの問題だからあれこれ試してみるけど、
8.1で非対応になっちゃったのなら時間の無駄だからね
ちなみに他のキーストロークのSnedは正常動作している
Alt絡みでもね
156:名無しさん@お腹いっぱい。
13/11/16 08:55:12.96 SGeYgS4w0
いやあのね、そうあからさまに自分だけ良ければいいって言われても…
これから8.1にしようとしてる人もいるだろうし他の人の参考にもなるんだから
ちゃんと情報だそうや
せめてAHKのバージョンくらい書くのが礼儀でしょ
157:名無しさん@お腹いっぱい。
13/11/16 11:12:33.29 XVNmzA0x0
もう面倒だから自分で調べたわ
8.1 というかWin8だとAlt+Tabは効かないらしい
解決策としてAutoHotkey_L作者が作った↓のスクリプトで
AutoHotkey.exe自体にパッチを当てると使えるようになる
URLリンク(www.autohotkey.com)
ってことで試したら確かに直ったよ
他にも管理者権限のウィンドウも操作出来たり、SendPlayが
使えるようになったりするらしい
ただしAutoHotkey.exeはProgram FilesとかのOSが信頼する
場所に置かないと効果が出ない
158:名無しさん@お腹いっぱい。
13/11/16 19:17:21.97 /DSb0fi40
UACをOFFにすればいいだけじゃないか?
159:名無しさん@お腹いっぱい。
13/11/16 21:36:52.37 9zWik5h40
UACオフとかないわー
ひくわー
160:名無しさん@お腹いっぱい。
13/11/17 08:49:13.81 O37TPfeO0
そりゃUAC OFFにすりゃAHK以外でも色んな問題が解決するわなw
自分がそれで良いと思うならそうすりゃ良いよ
だが人には勧めんな
161:名無しさん@お腹いっぱい。
13/11/17 10:08:04.14 37z1dVEm0
firewallとhipsで管理すりゃ
UACとかいらなくね
162:名無しさん@お腹いっぱい。
13/11/17 10:53:15.63 spOsTE5/0
Windows8の問題っていうより、Vista以降の仕様じゃね
163:名無しさん@お腹いっぱい。
13/11/17 13:19:12.84 nP8Zxfpa0
え?みんなUACとかどういう設定にしてる?
当たり前のようにオフにしてたわ
164:名無しさん@お腹いっぱい。
13/11/17 13:25:18.19 6vjG/kgD0
AHK使う上でどうにもならなくてUACは切ることにした
>>157のパッチは初めて知ったけど、バージョン上がるごとにパッチあてるんじゃめんどいし
このままOFFでいいかな
165:名無しさん@お腹いっぱい。
13/11/17 14:53:11.38 kQ6OtSac0
NortonUACェ……
166:名無しさん@お腹いっぱい。
13/11/17 17:53:58.67 dM2lh/9X0
UACって肝心のセキュリティー性能が低い上に弊害を多発させるからそのまま使う奴の気が知れない。
他のセキュリティーソフトの方が性能良い、弊害無いから普通はそっち使うよなw
自分はCOMODO(Firewall+HIPS フリーソフト)使用。
167:名無しさん@お腹いっぱい。
13/11/17 18:09:39.38 k7PszIJ60
そもそも自分だけのPCの場合は邪魔だしな
でも家族で使うとか会社で使うなら切るべきものじゃない
168:名無しさん@お腹いっぱい。
13/11/17 19:09:25.72 u1WcORIm0
まあ脱初心者したくらいでみんな通る道かもね>UAC OFF
169:名無しさん@お腹いっぱい。
13/11/17 19:56:40.55 sFdMuGQe0
AHKに関連して語るならまだしも、On/Offに伴うセキュリティ的な話題とかならよそでやれ
170:名無しさん@お腹いっぱい。
13/11/17 21:33:44.99 fhX8uY3m0
firewall と UAC は同列に話すようなもんじゃないが
171:名無しさん@お腹いっぱい。
13/11/17 21:38:08.02 KDQ403jh0
そういえばUACを回避するパッチをlexikosがフォーラムに出していなかった?
172:名無しさん@お腹いっぱい。
13/11/17 21:39:24.65 una8jQOX0
話を元に戻そう
ポータブルユーザー向けに「相対パス起動バッチ」を作れるAHKを作ろうと思うが、需要あるかな?
まぁ、まだ考えてる途中なんだけども
173:名無しさん@お腹いっぱい。
13/11/17 21:55:44.22 k7PszIJ60
>>172
ニーズ狭いなオイ
174:名無しさん@お腹いっぱい。
13/11/17 22:27:31.40 OKOOTUfZ0
狭いニッチを埋めるのこそAHKが適してると思うけどね
175:名無しさん@お腹いっぱい。
13/11/18 01:15:03.95 q7SDJwhc0
ホットキー追加したら何時の間にか古いホットキーが動かなくなってたりするのは仕様なんだろうか
どっかで奪ってるのかなぁ
176:名無しさん@お腹いっぱい。
13/11/18 12:29:29.97 Lu28XJXP0
>>172
自分も色々トラブった。例えばMouseGestureL.ahkでahk関連付けなしだと
1MouseGestureL.ahk をコンパイルしたMouseGesureL.exe ⇒ 当然駄目
2Autohotkey.exe 直下のAutohotkey.ini に#include MGL.ahk ⇒ 駄目
3Run "%A_ScriptDir%\MGL.ahk" ⇒ (行けると思ったけど)駄目
4結局、MGL.ahkのアイコンをAutohotkey.exe に食わせてしのいでる。
>>172 需要あるからインスコ・関連付けなしにどうにかできるやつ作ってくれ
177:名無しさん@お腹いっぱい。
13/11/18 15:05:38.93 44Zvdgh/0
意外と躓いてる人いるのかな?簡単にメモ書いとく
MouseGesture.bat
↓書いてること
start ..\AutoHotkey_LPortable.exe MouseGestureL.ahk
実際のところこういう行を書いたbatがあれば使える
batがあるフォルダの一つ上の階層のAutoHotkey_LPortable.exeにbatがあるトコと一緒のフォルダに入ってるMouseGestureL.ahkを送って起動する
ポータブルAppsにAutoHotkey_LPortable.exeはある
アップデートはApp\AutoHotKey_Lの中にAutoHotkey.exe、AutoHotkey64.exeがあって、バージョンアップは本家サイトからDLしたものを直に上書きすればok
64はリネームでおk
これでbatを起動すれば関連付けもドライブレターも関係なしでahkがうごかせる
178:名無しさん@お腹いっぱい。
13/11/18 19:37:08.56 m/oJB8p00
ポータブル環境でやる場合はいくつか方法がある。
どれが最適なのかは各自の環境で判断してほしい。
--exeから起動--
使用したいスクリプトと同じフォルダ内にAutoHotkey.exeを同名にリネーム(MouseGestureL.ahkの場合)
AutoHotkey.exe → MouseGestureL.exe(.ahkと同じ場所に保存)
--RunでAutoHotkey.exe指定--
Run,"C:\~省略~\AutoHotkey.exe" "C:\~省略~\MouseGestureL\MouseGestureL.ahk"
--バッチファイル(.bat)から起動--
テキストファイル(.txt)に以下のコマンドを書いて拡張子を変更(.bat)
start "C:\~省略~\AutoHotkey.exe" "C:\~省略~\MouseGestureL\MouseGestureL.ahk"
179:名無しさん@お腹いっぱい。
13/11/18 19:45:23.43 Xr6kemFF0
>>176-177
横からだけど、怒らず聞いて欲しい初心者っぽい疑問だけど、
MouseGestureL.ahkのフォルダにAutoHotkey.exeをコピーして、
そのexeを「MouseGestureL.exe」にリネームし、それを起動する。
これでも駄目ってこと?
180:名無しさん@お腹いっぱい。
13/11/18 19:47:13.21 Xr6kemFF0
先に書かれてしまった…(´・ω・`)ショボーン
181:名無しさん@お腹いっぱい。
13/11/18 20:10:59.26 m/oJB8p00
追加、おそらくこれで全部
--スクリプトの実行ファイル化--
**.ahk を ahk2exe.exeを使いスクリプトを実行ファイル化
--AutoHotkey.exeにドラッグ&ドロップ--
**.ahk を AutoHotkey.exeにドラッグ&ドロップ
182:名無しさん@お腹いっぱい。
13/11/18 20:12:35.00 fX+rdGjS0
>>178
exeからの起動の例ってもしかして
autohotkey.exeがリネームされていたらその名前.ahkを実行できるってこと?
かなり便利な機能なのに知らなかった
183:名無しさん@お腹いっぱい。
13/11/18 22:02:23.25 Xr6kemFF0
相対パスで思い出したけど、AutoHotkey.exeフォルダ配下に
名前を「include」にしたフォルダを配置すると
そこに置いた(関数などの)ahkファイルをインクルードする時に
#Include を相対パス指定できるとかの特権はないの?
やるとしたら、
#Include %A_AhkPath%\include\kansu.ahk
これしかない?まあ、これでも文句はないけど。
184:名無しさん@お腹いっぱい。
13/11/18 22:14:01.45 hRoSj7CU0
Lib
185:名無しさん@お腹いっぱい。
13/11/18 22:49:31.47 Xr6kemFF0
>>184
おう「Lib」とな。
しかも#Includeの記述さえ不要とは…
教えてくれてありがとう。
186:名無しさん@お腹いっぱい。
13/11/19 08:25:04.45 7L3k8gzn0
#Includeなしでいけるのは関数だけじゃなかったっけ?
なんにしろLibフォルダからの相対パス指定で#Includeはいけたハズ
187:名無しさん@お腹いっぱい。
13/11/19 10:29:37.07 Lh9KvNx10
知りたいことがあったらまずwikiで該当項目見なさいよ
こんなに情報が充実しているフリーソフトなんて珍しいというのに
188:名無しさん@お腹いっぱい。
13/11/19 12:30:41.05 fM0m1mZj0
#include %A_ScriptDir%
#include ..\MyScript\hogehoge.ahk
で相対指定できてるが
189:名無しさん@お腹いっぱい。
13/11/19 12:45:15.59 Rhk1Izc70
とりあえず魔法の言葉SetWorkingDir,%A_ScriptDir%をおぼえればいい
Menu,Tray,icon,%A_ScriptDir%..\..\..\Icon\Icon_169.ico
あとこれはアイコンの場所指定なんだけども、この行を見てもらえれば相対パスはイケることがおわかりいただけると思う
190:名無しさん@お腹いっぱい。
13/11/19 19:53:02.46 wNIYddS70
気になってたんだが
>>172の相対パス云々っていったい何をするためのパッチなん?
191:名無しさん@お腹いっぱい。
13/11/19 20:51:04.25 isr4byqx0
もしかしてスレ違いになるかもだけど、「..\」とか「\..」(の意味や書き方)がよく分かんない。
192:名無しさん@お腹いっぱい。
13/11/19 20:57:04.18 61RbzuhO0
>>191
PCのパス指定の基本なのでググって勉強してらっしゃい。
検索ワード:絶対パス 相対パス フルパス
193:176
13/11/20 23:07:21.26 IViM/TQQ0
>>172
私のせいで変な方向に話がそれたとしたらごめんなさい。
>>177-182
解決しました.ありがとう
194:名無しさん@お腹いっぱい。
13/11/20 23:19:56.96 xBePS8Uv0
SHIFTキーを押されるまで処理を待つ方法なんてありますか?
大量のローカルログをOperaで表示させようとしています。
今まではローカルログをOperaで事前に一つづつ表示させておくスクリプトを
AHKで書いていて、多機能マウスの戻るボタンで戻って表示させていたのですが、
ページ数が多すぎてだんだんと遅くなってくるようになってしまいました。
そこでスクリプトを開始した後は、SHIFTキーとCtrlキーが同時に押されている間は
ログページを順番に表示させ、押されていない間は待つなんてことができるのでしたら、
やり方を教えて下さい。
今現在押されているキーなんて解る方法はありますか?
195:名無しさん@お腹いっぱい。
13/11/20 23:38:23.77 +i0au6Rz0
autohotkey_Lの一番新しいバージョンを使っています
こういうスクリプトを作ったらエラーになりました
test()
return
test(){
Run, www.autohotkey.com
}
クラスが登録されていません、と出るのですがどこがおかしいのでしょう
196:名無しさん@お腹いっぱい。
13/11/20 23:40:59.28 OofHMdcO0
>>194
keywaitのオプションつかってエラーレベルで判定
もしくはgetkeystateでいけんじゃないかなー?
197:名無しさん@お腹いっぱい。
13/11/20 23:42:33.55 IpEjnz5u0
>>194
GetKeyState + Loop か SetTimer でキー監視したらいいんじゃない?
やりたいことが決まったら該当しそうなコマンドがあるのか確認。
むしろ今後のためにも全て目を通した方がいい。
URLリンク(ahkwiki.net)
198:195
13/11/20 23:52:58.72 +i0au6Rz0
ブラウザ側の設定を変更したらエラーメッセージが消えました
スレ汚し失礼しました
199:名無しさん@お腹いっぱい。
13/11/21 11:19:28.43 dWWNh+SH0
ネトゲのXGENCODEってマクロ・チート対策に引っかかるようになってしまった
マクロも使ってないしpause sprictしても落とされる もうやめるわ
ネトゲを
200:名無しさん@お腹いっぱい。
13/11/21 11:37:32.13 o/8Ro1rc0
>>199
よく言った!それでこそ生粋のホモルーデンスだよ!
201:名無しさん@お腹いっぱい。
13/11/21 12:50:41.93 9zUhsSJq0
>>199
最近、ゲームでAutohotkeyを利用している動画が山ほどツベに載せられてるから
どこもかしこも対策に動き出してるのかもしれん。
202:名無しさん@お腹いっぱい。
13/11/21 14:30:35.51 sABHiha50
autohotkeyのforumにゲーム用のカテゴリが設けられたぐらいだしね
203:名無しさん@お腹いっぱい。
13/11/21 15:02:01.94 HN7FYLf30
格ゲーも規制されちゃうんかね・・・
キーボードゲーマーなんでHitbox配列作ったんだけどこれも規制されちゃうとこまるなぁ
204:名無しさん@お腹いっぱい。
13/11/21 20:19:43.77 V+B1gFkC0
PCで格ゲーって言うほど盛り上がってなさそうだけど
205:名無しさん@お腹いっぱい。
13/11/21 22:10:38.53 HN7FYLf30
左右のボタンが押されてる時ニュートラルにするスクリプト便利なんよ
ヨガフレイムコマンドの精度あがるんよ
206:名無しさん@お腹いっぱい。
13/11/22 10:15:08.40 wWYPEutH0
使えなくするなら代わりの物を教えてほしいよね
対策に引っかかる常駐ソフトをゲーム起動時に落とす為にAutohotkey使ってたのに、本末転倒
けどAutohotkeyの便利さがすごいからやめられない止まらない
207:名無しさん@お腹いっぱい。
13/11/23 13:51:23.92 gnR+5Fxb0
対策されたゲームが、Autohotkeyのどの部分を見て判断しているのか知らないけど
仮にウィンドウクラスを見ているとしたら、Autohotkey.exeをバイナリエディタで書き換えれば回避出来るよ。
実際はそんな簡単な問題でもなさそうだけど。
208:名無しさん@お腹いっぱい。
13/11/23 16:02:13.44 MHBddyEo0
LLフックだろうね
209:名無しさん@お腹いっぱい。
13/11/24 21:56:38.57 6MZ1sECB0
連続したホットキーWheelDownの最後にだけ処理を実行するにはどうしたらいいんでしょうか?
WheelDown::
MsgBox, ホイールダウン
ホイールをまとめて回転してしまうと何回も実行されてしまうのを防ぐため
50ms間ができたら実行というようなことをしたいです
210:名無しさん@お腹いっぱい。
13/11/24 22:03:42.69 6l7gRGw60
settimer,ラベル,-50
かな
211:名無しさん@お腹いっぱい。
13/11/24 22:26:56.93 6MZ1sECB0
>>210
ありがとうございます
そういうのどうやったらパッと思いつくんですか?
賢いです頭良いです参りましたー
212:名無しさん@お腹いっぱい。
13/11/24 22:46:53.44 GF2TaHiu0
>>209
SetTimerだと経過後実行なのでレスポンス悪くなる。
50msだと問題ないが間隔大きくする場合はこっちの方がいいかも。
TickCount =
Return
WheelDown::
ToolTip
If A_TickCount - 500 > TickCount
ToolTip OK
Else
ToolTip NO
TickCount := A_TickCount
Return
213:名無しさん@お腹いっぱい。
13/11/24 23:17:21.45 6MZ1sECB0
>>212
ありがとうございます
賢いですー
これはホイール回転の最初の1回目に実行する方法ですかね?
>>209が分かりにくいですがホイールをまとめて回転させた最後に
1回だけ実行させるにはSetTimer方式しかないでしょうか?
勘違いでしたらすみません
214:名無しさん@お腹いっぱい。
13/11/24 23:23:38.83 4heix6ya0
#IfWinActive ahk_class hoge はひとつしか登録できないんでしょうか?
複数のahk_classに同じものを登録したい場合まとめて設定できますか?
215:名無しさん@お腹いっぱい。
13/11/24 23:26:46.08 6l7gRGw60
>>214
#IF winactive("ahk_exe hoge") && winactive("ahk_exe hige")
みたいな
216:名無しさん@お腹いっぱい。
13/11/24 23:30:57.46 4heix6ya0
>>215
ありがとう 試してみます
217:名無しさん@お腹いっぱい。
13/11/25 00:50:14.57 dyr+O2fS0
>>209
参考になるか分からんけど。
AutoHotkeyを流行らせるページ → 使用例 → 何も操作をしていないときに実行
URLリンク(ahk.xrea.jp)
218:名無しさん@お腹いっぱい。
13/11/25 20:49:51.60 4VOX6Bwt0
>>217
サンクスです!
勉強になります
219:名無しさん@お腹いっぱい。
13/11/27 00:48:35.56 MOrY+w/n0
いままで日本語オフにしたいときに
IME_OFF("A")
って入力してたんですが、バージョンアップかなにかの節目を境に
上のを書き込むと
error : call to nonexistent function
ってでてエラーがでてしまいます。
IME_Func.ahkはautohotkey.exeがあるフォルダにあります。
日本語オフをするときには今はどうやるのがスタンダードなのでしょうか?
おしえてください。
220:名無しさん@お腹いっぱい。
13/11/27 01:03:11.13 8MuF3GKU0
>>219
MouseGestureは専用スレでよろしく
誘導された事と再度質問を書こう。
【AHK】MouseGestureL.ahkを語るスレ【ジェスチャ】
スレリンク(software板)
221:名無しさん@お腹いっぱい。
13/11/27 01:05:00.79 8MuF3GKU0
と思ったらただのIMEスプリクトか失礼。
222:名無しさん@お腹いっぱい。
13/11/27 01:08:37.93 IXvseLy+0
eamat @Cabinet - IME.ahk
URLリンク(www6.atwiki.jp)
ime_func.ahkはわからないけれど
ime.ahkならIME_SET(FALSE) でいいんじゃないかな
223:名無しさん@お腹いっぱい。
13/11/27 01:14:04.47 8MuF3GKU0
>>219
error : call to nonexistent function
エラー:存在しない関数の呼び出し
置く場所や記述ミスじゃない?
%A_MyDocuments%\AutoHotkey\Lib\
{AutoHotkey.exeのあるディレクトリ}\Lib
%A_ScriptDir%/Lib
8.1 ライブラリディレクトリ
URLリンク(ahkwiki.net)
224:名無しさん@お腹いっぱい。
13/11/27 01:33:00.62 tG5dZZAr0
#includeが通ってないぽいかな
あとIME_Func.ahkはかなり古い版なのでAHK_Lに対応してないかも
>222の新版だとLibに入れとけば#includeなしでもいけると思う
使い方は
IME_SET(1) : IME ON
IME_SET(0) : IME OFF みたいな感じで
URLリンク(www6.atwiki.jp)
225:名無しさん@お腹いっぱい。
13/11/27 02:23:57.01 MOrY+w/n0
219です。ありがとうございました。うまくいきました。
ただ二個のことしないと上手く行かなかったように思います。
・LibフォルダにIME.ahkを入れる
・IME_SET(0)にする (IME_SET(FALSE) だと上手く行かなかった。)
222の保存の方法もあまり分からずテキストコピペしたりして試しましたが
IMEオフはなんとかできたっぽいです。
226:名無しさん@お腹いっぱい。
13/11/27 17:11:52.08 FrZA908G0
IME.ahkで現在変換中の状態かどうかを取得するにはどうすればいいですか?
IME窓(漢字の候補)が出てる状態でなく
「ファイル」みたいな一つしか候補がなくてIME窓が出ない単語でも
変換中かどうか取得できるでしょうか?
227:名無しさん@お腹いっぱい。
13/11/27 20:59:40.83 IXvseLy+0
>>226
>>222の
>IME 文字入力の状態を返す
かな?
228:名無しさん@お腹いっぱい。
13/11/27 21:18:02.01 FrZA908G0
>>227
ありがとう~
試してみます
229:名無しさん@お腹いっぱい。
13/11/27 21:49:21.00 FrZA908G0
メモ帳では正しく取得できるのですが
FirefoxやChromeでは常に戻り値ゼロになります
Win7x64です何か改善策ないでしょうか
230:名無しさん@お腹いっぱい。
13/11/27 22:00:40.20 hJltsLV50
>>7Q2
231:名無しさん@お腹いっぱい。
13/11/27 23:29:55.03 tG5dZZAr0
>>229
(IMEの設定 秀丸の例)
URLリンク(homepage3.nifty.com)
ソフト側のIME入力方法が↑ここの「トゥルーインライン入力」のようになってると取得できない
「通常のインライン入力」か「システムライン入力」にしてやる必要があるが、
設定方法はソフト毎に違うしそもそも変更できるかもわからん、個別で確認してみてくれ
MS-Officeの場合は手元の2007までは解除できた、それ以降のバージョンは持ってないのでわからん
>※ MS-Office系で 入力窓のクラス名 を正しく取得するにはIMEのシームレス表示を
> OFFにする必要がある
> オプション-編集と日本語入力-編集中の文字列を文書に挿入モードで入力する
> のチェックを外す
232:名無しさん@お腹いっぱい。
13/11/27 23:56:42.75 FrZA908G0
どうもありがとうー
233:名無しさん@お腹いっぱい。
13/11/29 02:21:22.37 lflsJ3W60
ちょっとなかなか調べても見つからないので聞きたいんですけど、タスクトレイアイコンをダブルクリックした時の挙動を変えるにはどうすればいいでしょう?
234:名無しさん@お腹いっぱい。
13/11/29 02:42:42.07 +F16pq690
Menu, TRAY, Default, MenuItemName
235:名無しさん@お腹いっぱい。
13/11/29 02:44:47.57 G8+3dUdT0
>>233
wiki内検索したらすぐ出たぞ?(タスクトレイアイコン ダブルクリック)
URLリンク(ahkwiki.net)
236:名無しさん@お腹いっぱい。
13/11/30 01:48:29.15 nKfwT6LB0
質問です
押す度に順に違うキーを送信したいのですが
F1,F2,F3と来て元のF1に戻りません
var = 0
PrintScreen::
if (var = 0) {
Send, !^+{F1}
} else if (var = 1) {
Send, !^+{F2}
} else {
Send, !^+{F3}
}
var += 1
if (var > 2) var = 0
return
どこを直せばいいでしょうか
237:名無しさん@お腹いっぱい。
13/11/30 02:02:37.90 /CTVHw590
~
if (var > 2)
var = 0
return
238:名無しさん@お腹いっぱい。
13/11/30 02:13:00.46 nKfwT6LB0
ありがとうございます
次の行に書かないといけないんですね
やっと理解しました
239:名無しさん@お腹いっぱい。
13/11/30 02:13:18.54 QMrAE7z20
>>238
もう少しシンプルに書いた方が
可読性や保守性いいと思うが・・・。
240:名無しさん@お腹いっぱい。
13/11/30 02:33:07.58 nKfwT6LB0
すいません
C言語書いてる癖が出てしまいました
241:名無しさん@お腹いっぱい。
13/11/30 08:10:52.81 GnWsZW4n0
謝る必要なんてないよ
AHKの構文仕様もあまりほめられたものではないしな
242:名無しさん@お腹いっぱい。
13/11/30 10:09:13.26 JlLJ9omk0
質問です。拡張1でコピー ダブルクリックで選択した文字を即検索は設定してます。
webページや2chブラウザで見る改変できない文字は、Wクリックすると想定通り動きます。
しかし、メモ帳やexcel等文字を入力改変できる状態で使用すると、
「vk1Dsc07B」が入力されてしまい、使い物になりません。
無変換キーを押すと問題なく出来る様にはなってるのですが、どこを修正したらいいでしょうか?
#MaxThreadsPerHotkey,2
XButton1::
If(A_PriorHotkey = A_ThisHotkey) And (A_TimeSincePriorHotkey < 500){
Flag = 0
Send,vk1Dsc07B::
Backup := ClipboardAll
Clipboard =
Send,^c
ClipWait,1
Run,URLリンク(www.google.co.jp)
Clipboard := Backup
Return
}Else{
Flag = 1
Sleep,50
If(Flag)
Send,^c
}
Return
243:名無しさん@お腹いっぱい。
13/11/30 13:45:05.00 kIvii5lj0
おそらくどっかからの丸コピコードで全然理解してないんだろうけど
vk1Dsc07B で検索して引っかかる箇所は一行だけなんだから、修正箇所は分かるでしょ
わかってないのは修正内容の方だと思うが
無変換キー送信したい → Sendの特殊キーの項目を確認
URLリンク(ahkwiki.net)
なんで無変換キー送信するのか → IME OFFが目的? → >219-225
244:名無しさん@お腹いっぱい。
13/11/30 21:38:09.30 +aAc1ReT0
MsgBoxダイアログを指定した座標に作ることはできないでしょうか?
MsgBox作成後に移動しようと思いましたがウィンドウじゃないからなのかWinMoveで移動できませんでした・・・
245:名無しさん@お腹いっぱい。
13/11/30 23:25:50.11 QMrAE7z20
>>244
MsgBox表示中は現在のスレッドは一時停止される。
別スレッドで監視/移動 または GUIを自分で作ればいい。
F1::
SetTimer,Move
MsgBox
Return
Move:
WinWait,ahk_class #32770
WinMove,ahk_class #32770,,300,300
SetTimer,Move,OFF
Return
246:名無しさん@お腹いっぱい。
13/12/01 00:47:10.77 rr/QNjsv0
>>245
そうなんですね
本当にありがとうございました
247:名無しさん@お腹いっぱい。
13/12/02 20:27:22.61 UoaosTTM0
WheelAccel.ahkの話はMGLスレよりこっちの方が適してると言われたのでこっちでもう一度質問。
WheelAccelの理想の動きはイメージで言うと下のグラフのような動きなんだけど
(徐々に加速し、スクロールが停止するちょっと前から徐々に減速する様な感じ)
URLリンク(homepage1.nifty.com)
現実問題、WheelAccel.ahkの何処をどのように変えると実現します?
それから、この中に含まれるWheelAccel.ahkが最新バージョン?
URLリンク(mousegesturel.googlecode.com)
248:名無しさん@お腹いっぱい。
13/12/02 23:30:06.75 zqwxjKTK0
ソースコード付属のフリーソフトの改良方法を、フリーソフトを書いた言語のスレで
質問されても本当に困ってしまうわけですが。
その、WheepAccel.ahkと、MGLのソースコードを全部読んで返事してほしいということですか?
249:名無しさん@お腹いっぱい。
13/12/02 23:48:48.95 zqwxjKTK0
>>248
くそ、なんか後味悪い
WA_Throttle()の中身弄ったらいけるんだろ
スクロールが停止する前ってのがわけわからんけどな。
ホイールが停止するのを感知しろとでもいうのか、それともホイールが停止してからも
スクロールのスピードを落としながら停止するまでスクロールしろってことか?
図でいうところのTはホイール操作としてどういう状況なのかがわからんわ
250:名無しさん@お腹いっぱい。
13/12/03 00:01:29.39 Joz+q56x0
WheelAccel.ahkの元になったWheelScroll.ahkを書いたものですが
Scroll.ahkの加速部はここの過去スレで誰かが張ったものを元に制作
Accel.ahkの加速部はIKK…もといmobitan氏が、やっぱりここの過去スレで
別の誰かが張ったものを元に乗せ換えた、という経緯だったと思います
つまり加速に関しては各自欲しい物を適当にもってきてるという状態なので
第三の加速方法の実現方法についてはホイールの加速方法に詳しい方に理論指導ののち
ご自分で入れ込むのがよろしいかと
コード中の具体的な修正箇所はWA_Throttle()を呼び出してる行をコメントにして代わりの加速方法をいれこむか
WA_Throttle() の中を丸ごとすげ替えるかすればOKです
251:名無しさん@お腹いっぱい。
13/12/03 00:27:10.37 5fVa01nj0
ロジクールの高速ホイールつかえばいいんじゃね
252:247
13/12/03 00:41:20.18 gs5BzMAw0
>>250
サンキューでした。
どこまでやれるかガンバってみるわ。
>>248-249
気分悪くさせてしまったなら悪かった、謝るよ。
それから、あんまり火病ると体に良くないよ。
253:名無しさん@お腹いっぱい。
13/12/03 07:06:26.67 132GeGa70
質問するだけしてレスついても反応なしのやつとか
どっかで拾ったソースの改良丸投げ依頼とかそんなの多いね
254:名無しさん@お腹いっぱい。
13/12/03 13:14:49.66 pS1lIgy+0
● 分からない理由 ●
1. 過去ログを読まない。
2. 読んでても肝心な所が見えてない。
3. 検索能力が低い。
4. そもそも検索する気がない。
5. 類推という概念がない。
6. それ以前に普通に頭が悪い。
<わからない11大理由>
1.読まない …現行スレ、テンプレ、取説などを読まない。読む気などさらさらない。
2.調べない …過去スレ、ググるなど最低限の内容も自分で調べようとしない。
3.試さない …めんどくさいなどの理由で実行しない。する気もない。
4.覚えない …人から聞いて、楽して得た答えは身に付かないから、すぐに忘れる。
5.説明できない …何に困っているのか、第三者に正確に伝わる文章が書けない。
6.理解力が足りない …理解力以前の問題で理解しようとしない。
7.人を利用することしか頭にない …甘え根性でその場を乗り切ろうとする。
8.感謝しない …教えてもらって当たり前。事がすんだらさようなら。
9.逆切れする …自分の思うようにならないと逆切れする。
10.開き直る …自分の思うようにならないと開き直る。
11.2ちゃんねるをお客様相談室だと思っている。
255:名無しさん@お腹いっぱい。
13/12/03 13:15:22.52 pS1lIgy+0
★教えて君五大要素★
1 読まない (文盲)
2 調べない (能なし)
3 試さない (発想力欠如のアホ)
4 理解力が足りない (馬鹿)
5 人を利用することしか頭にない (死ね)
YES → 【見つかった?】 ─ YES → じゃあ聞くな死ね
/ \
【探した?】 NO → なら、ねぇよ
\
NO → 死ね
256:名無しさん@お腹いっぱい。
13/12/03 13:15:55.35 pS1lIgy+0
■回答できるレベルの人へお願い■
このスレは親切な人が多いと思うけど、もう日記に対する検証&レスは、
たとえ対処法をわかっている人がいても、レスは一切やめにしてくれないか?
こいつがやってることは
「適当にコード作ってみたけど動かない。動かない原因を調べるのも面倒だし、
学習する気もない。どうせここに書けばおまえらが修正するだろうから誰か直して」
ってことだ。しかも、一度だけならまだしも、何度も繰り返している。
これまでに、このスレではこの手の質問者は居なかったと記憶する。
いつまでもこんなクズにつきあう必要はない。
汎用性のないコードでスレが汚されるのは、結果的に良質な情報が
埋もれる原因になって迷惑だし、横から見ていても参考にならないし、
なによりも見ていて不快でしかない。
257:名無しさん@お腹いっぱい。
13/12/04 12:30:17.43 9w4g5HVI0
そして誰もいなくなった
258:名無しさん@お腹いっぱい。
13/12/04 15:06:16.01 EiiyEWJU0
ID:pS1lIgy+0のことは個人感情でしかないんで気にしないでもいいんじゃよ
259:名無しさん@お腹いっぱい。
13/12/04 19:00:32.22 pdCI9Suq0
>>253
即使えるコピペコード期待→wkiの該当コマンドページ張られる
or WinMessageとかDllCallとかWinApiとかポインタがどうとか理解外の答え帰ってきた怖い
って感じなんだろう
ただ、クレクレに見えるレスでもとっかかりがわからんだけの初心者さんもいて
説明ページへのリンク張ると頑張りだす人もいるので
いきなり>254-255張って萎縮させるより、煽りながらもヒント出すツンデレスでやるほうがいいと思う
255は言動が明らかにおかしいチラウラ野郎用なので質問お断りみたいな流れでは張るべきじゃないね
260:名無しさん@お腹いっぱい。
13/12/04 19:02:20.81 pdCI9Suq0
×255は
>256だった
261:名無しさん@お腹いっぱい。
13/12/04 22:19:12.76 JQh1NruY0
このコピペが必要になるとはな・・・
みたいな万が一の事態が起きた時の保険用にか
262:名無しさん@お腹いっぱい。
13/12/05 17:28:40.83 hVYR+JZI0
F1::
Hoge := A_TickCount - count
tooltip, A_TickCount=%A_TickCount% count=%count% Hoge=%Hoge%
count := A_TickCount
return
一回目のF1押しでHogeが空になってしまいます
static count=0
みたいにしたいのですがコンパイルエラーになります
どうすればいいんでしょうか?
263:名無しさん@お腹いっぱい。
13/12/05 18:40:18.50 92FJxjTK0
>>262
エラーは起こっていないのでコンパイルエラーとは言わない
初回意図しない動作になるのは count の中身が指定されていないから
Hoge := A_TickCount - count → Hoge := 1234 - (空)
式として成り立っていないので (空) が返される。
スクリプト起動時に実行されるAuto-executeセクションで
count = 0 を指定すればいい。
15 スクリプトの起動とAuto-executeセクション
URLリンク(ahkwiki.net)
--------------------------------------
count = 0
F1::
Hoge := A_TickCount - count
tooltip, A_TickCount=%A_TickCount% count=%count% Hoge=%Hoge%
count := A_TickCount
return
264:名無しさん@お腹いっぱい。
13/12/05 19:06:11.77 hVYR+JZI0
>>263
ありがとうございますm(_ _ )m
なるほどAuto-executeセクションに書けばいいんですね
ちなみに
static count=0を書くと私の環境ではコンパイルできないのですがどうしてでしょうか・・・?
[スクリプト仕様]のページを見ると スタティック変数の例↓のように書かれています
AAA(){
static CalledTimes
CalledTimes++
MsgBox,%CalledTimes%回目
}
265:名無しさん@お腹いっぱい。
13/12/05 19:10:53.29 S42OhYbw0
関数内じゃないから
266:名無しさん@お腹いっぱい。
13/12/05 19:18:06.88 hVYR+JZI0
よく分かりましたm(_ _ )m
267:名無しさん@お腹いっぱい。
13/12/08 00:09:08.12 HwtBWHvTP
..
268:名無しさん@お腹いっぱい。
13/12/11 23:18:15.76 VBfa8aHJ0
GUIのEditコントロールにテキストを追記したいのですが質問があります。
アドバイスもらえませんか。 Windows7 64bit, AHK_L v1.1.13.01 64bit
Q1. GuiControlとControlSetTextの違いは?
ControlSetText, Edit1, %text%, ahk_class AutoHotkeyGUI
GuiControl, , Edit1, %text%
Q2. 全部Getしてテキストつなげて再Setだと効率悪そうだけど直接追記の方法ある?
ControlGetText, oldtext, Edit1, ahk_class AutoHotkeyGUI
ControlSetText, Edit1, %oldtext%%addtext%, ahk_class AutoHotkeyGUI
すんませんがお願いします。
269:名無しさん@お腹いっぱい。
13/12/12 00:32:26.55 jKLh4qEi0
>>268
>Q1. GuiControlとControlSetTextの違いは?
Guiコマンドで作成したGUIに対しては細かい指定ができる GuiControl[Get] を使うのが普通。
ControlSetText > 指定したコントロール (GUI、メモ帳なのでもいい)
GuiControl > Guiコマンドで作成したウィンドウ (細かい指定が可能)
>Q2. 全部Getしてテキストつなげて再Setだと効率悪そうだけど直接追記の方法ある?
GuiControlGet,Var,,ControlID
GuiControl,,ControlID,%Var%追加テキスト
270:名無しさん@お腹いっぱい。
13/12/12 00:57:34.13 okQADZym0
>>269
ありがとう。助かった。明日試してみる
271:名無しさん@お腹いっぱい。
13/12/13 04:18:22.59 8uCBpJDm0
処理Aを無限ループさせるスクリプトをGuiで制御させようとしているのですが
Pauseが上手く動作しません
Gui,Add,Button,,Pause
Gui,show
Label1:
処理A
Gosub,Label1
return
ButtonPause:
Pause,,Label1
return
と言った感じに書いてるのですがGuiのPauseで停止は出来るのですが再開することが出来ません
Gui側で停止と再開を制御するにはどのように記述したらいいのでしょうか
272:名無しさん@お腹いっぱい。
13/12/13 06:07:46.79 HWNZLtYL0
>>271
Wiki等説明に書いてあるが Pause はホットキーやホットストリング以外が停止する。
つまりGuiも一時停止しているのでボタンは反応しない、たまたま動いているが Pause 第2引数も間違っている。
URLリンク(ahkwiki.net)
ループ処理は 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:名無しさん@お腹いっぱい。
13/12/13 07:20:03.85 8uCBpJDm0
なるほど!いろいろと勘違いしてたようです。ありがとう
274:名無しさん@お腹いっぱい。
13/12/15 11:46:18.17 Sdf3K9wN0
【AutoHotkey スレッド part16】のレス164
>IMEの状態を間違えて打った時に、入力文字の削除、IMEの切り替え、再入力をキー一発で行う
というスクリプトを参考にしたAスクリプトと、
「文字入力操作に入ったらマウスアイコンを非表示/動かしたら表示する」、
というBスクリプトが有ります。
そのどちらでもコマンド「settimer」と「input」を使用してます。
これらをCというメインスクリプトで#Includeすると、Bスクリプトが動かなくなります。
原因はどちらでも「input」を使用してるせいだとは思いますが、
「input」以外に文字入力を感知するコマンドを見つけられませんでした。
「input」を代替するようなコマンドとか関数ありませんか?
275:名無しさん@お腹いっぱい。
13/12/15 17:53:03.42 oGoZjFg+0
>>274
ない 作れ。
原因が分かっているなら#Includeせずに競合しないように書き直せ。
276:名無しさん@お腹いっぱい。
13/12/16 07:52:55.08 +skMhsJJ0
アプリのスクリプト言語として組み込むような仕組みありますか?
277:名無しさん@お腹いっぱい。
13/12/16 23:27:27.99 k/O+MCiL0
>>276
意味わからなす
278:名無しさん@お腹いっぱい。
13/12/16 23:41:25.41 g9ztIiRs0
>>276
アプリからAutohotkey呼び出せばいいだけじゃね?
279:名無しさん@お腹いっぱい。
13/12/17 12:35:56.56 HF79/rMZ0
今プログラム起動の関数作ってるんですけど、引数受付けてくれないんで困ってます
;プログラム起動処理関数
;存在するならウィンドウアクティブ
ProcessRun(pass,option="",active =""){
SplitPath,pass,exe ;パスを分解してファイル名を取り出す
IfExist,%pass% ;exeが存在するかチェック
{
Process,Exist,%exe% ;プロセスが存在するかチェック。
if (ErrorLevel <> 0){
if(active = 1)
WinActivate,ahk_pid %ErrorLevel%
}else{
Run,%pass%,,%option%
}
}
}
これに”A.exe Bファイル”をいれても動きません
半角スペースから後ろをトリムで切り取るとか出来ませんか?
280:名無しさん@お腹いっぱい。
13/12/17 13:12:16.51 kP0TsYoU0
>>279
RegExReplace() URLリンク(ahkwiki.net)
正規表現で出来るが、これでいいんじゃない?
ProcessRun(pass,pass2="",option="",active="")
~略~
Run,%pass% %pass2%,,%option%
281:名無しさん@お腹いっぱい。
13/12/18 11:18:48.94 s1lQxVjC0
#If hoge1 := WinExist("ahk_class MozillaWindowClass") or hoge2 := WinExist("ahk_class Chrome_WidgetWin_1")
F1::
Tooltip hoge1=%hoge1% hoge2=%hoge2%
return
どちらのウィンドウも起動している状態でF1を押すと
hoge1が常に1
hoge2が常にカラになってしまうのはどうしてでしょうか?
282:名無しさん@お腹いっぱい。
13/12/18 12:28:18.59 PbPhfpuw0
論理和は式のどれかが真になった段階で真が確定する
→どれかが真になった段階で式の評価をやめるから
283:名無しさん@お腹いっぱい。
13/12/18 12:29:25.19 jy55PCzK0
if文の or だの Andだのでつなげた条件は全部実行してから判定してるとは限らんよ
速度優先でTrueを見つけた時点で次の処理に行っちゃう場合が多いと思うけど
(コンパイラによって判定順がお尻からだったり頭からだったりもする)
必ず通る前提で複数の変数に格納するのは非常に危険なのでやめたほうがいい
284:名無しさん@お腹いっぱい。
13/12/18 12:36:30.17 s1lQxVjC0
>>282
本当にありがとうございます
条件を#If hoge1 := WinExist("ahk_class MozillaWindowClass")だけにすると
hoge1がウィンドウハンドルになるのですが
2つ条件を指定するとhoge1が0か1になってしまう理由が分からないです・・・何故ですか?
285:名無しさん@お腹いっぱい。
13/12/18 15:09:03.48 jy55PCzK0
>→どれかが真になった段階で式の評価をやめるから
理由書いてあるのに何故ですかって言われても
286:名無しさん@お腹いっぱい。
13/12/18 15:17:43.51 evB3MxNe0
#If hoge1 or hoge2
になると思ってるんだろうけど
hoge1 := (WinExist() or hoge2)
になってるんじゃないの
287:名無しさん@お腹いっぱい。
13/12/18 15:18:37.09 ExaGxbuH0
>>284
#If (hoge1 := WinExist("ahk_class MozillaWindowClass")) or (hoge2 := WinExist("ahk_class Chrome_WidgetWin_1"))
288:名無しさん@お腹いっぱい。
13/12/18 15:19:09.34 ExaGxbuH0
おう、かぶった
289:名無しさん@お腹いっぱい。
13/12/18 17:38:30.18 G/sv6NM00
AHKで
「”指定した特定のウインドウのみ”、マウスオーバーでアクティブにする」
というような設定はできないでしょうか?