- 1 名前:名無しさん@お腹いっぱい。 [2005/10/21(金) 04:31:53 ID:qy14hWPT0]
- If You = beginner
Read, Template, >>2-6 Previous Thread:: AutoHotKey Thread pc7.2ch.net/test/read.cgi/software/1098531338/ If Res > 950 Please, Build, NextThread
- 44 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/28(金) 09:33:32 ID:A/rBIdCZ0]
- >>43
でもZIPファイルは落とせないね!
- 45 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 00:58:05 ID:XDFu3HNG0]
- Set Win = WScript.CreateObject("Shell.Application")
'Win.MinimizeAll '全ウィンドウを最小化 'Win.UndoMinimizeALL 'ウィンドウ操作を元にもどす 'Win.TileVertically 'ウィンドウを左右に並べて表示 'Win.TileHorizontally 'ウィンドウを上下に並べて表示 Win.CascadeWindows ' ウィンドウを重ねて表示 こんなvbsをAHKで賢くやるほうほうはないですかね。 (vbsはコンパル時間がうざい)
- 46 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 01:13:06 ID:Yt1MOkGO0]
- なにを言ってるのか解らんのだが・・・
- 47 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 11:28:39 ID:DzqBi16s0]
- 解像度を取得して
WinSetで並べる
- 48 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 12:27:47 ID:6hUgk4ep0]
- vbsで何でコンパイルが必要なのかわからん、あれもスクリプトやろ
全最小化と元に戻すのはまんまのがある、コマンド調べろ 並べて表示、重ねて表示はタスクバーのコンテクストメニューから選べるので その辺をエミュレートするとか。
- 49 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 12:48:18 ID:HP8QDb5t0]
- LButtonを押した、離したをキーで代替したいのですが
w:: ; Send,{LButton Down} return まではできたのですが、wキーを離したというイベントは取得できないのでしょうか? ???:: ; Send,{LButton Up} return
- 50 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 12:56:44 ID:e8EHHc6U0]
- インタープリタ言語って実行するたびコンパイルしてるみたいな感じなんでしょ?
そんときのウェイトがダルいっつってんだと思うけど、俺も>>48に同意 VBSが必要な理由がわからない
- 51 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 13:02:30 ID:e8EHHc6U0]
- >>49
流行らせるページにそのものズバリで解説されてるよ NT系限定みたいだけど
- 52 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 13:31:01 ID:HP8QDb5t0]
- >>51
目を通してみたつもりだったんですが見落としてました。 NTで検索したら見つかってこれでできました。 ありがとうございます。 w:: ; Send,{LButton Down} return w up:: ; Send,{LButton Up} return
- 53 名前:名無しさん@お腹いっぱい。 mailto:sae [2005/10/29(土) 16:44:12 ID:+/XWPeiP0]
- >>40ありがとうできますた。
+Sift:: とか、なんか裏技っぽいですねぇ
- 54 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 17:10:19 ID:6hUgk4ep0]
- >>50
>45は vbs → ahkに移行したいって内容だし、漏れはvbsが不要とは言ってない >実行するたびコンパイルしてるみたいな感じ 言いたいことは大体わかるが、コンパイルって「実行前に行う構文チェック」とは違うから。 コンパイルとはソースをオブジェクトコードに翻訳する作業のこと、 スクリプト(インタプリタ)言語は実行時に逐次処理するのでオブジェクト変換は行われない。 と思ったら、wikipediaに↓の記述があった >インタプリタの中には、実行直前に一度ソースコードを中間的なコード(中間言語)に変換し、 >それを逐次解釈するものもある ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%97%E3%83%AA%E3%82%BF vbsがどうなのかは知らん
- 55 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/30(日) 04:22:18 ID:/Ikc9y6N0]
- クリップボード拡張を作ってみようと思ったんだけど
クリップボード内に指定した文字列が入らずに 元からあった内容が貼り付けられたり メニュー操作が無視されたりします(何も起こらない) 書いたのは以下のような内容なのですが、何かいい方法はありませんか? Backup := ClipboardAll Menu,clip_select,Add,line,clip Menu,clip_select,Add,text,clip Menu,clip_select,Show,%A_CaretX%,%A_CaretY% exit clip: if A_ThisMenuItemPos=1 { Clipboard = ―――――――― send,^v Clipboard := Backup Backup := return } if A_ThisMenuItemPos=2 { FileRead,Clipboard,C:\text.txt send,^v Clipboard := Backup Backup := return }
- 56 名前:名無しさん@お腹いっぱい。 [2005/10/30(日) 05:09:41 ID:TyhuAUFb0]
- 音量をCtrl+UpとCtrl+Downで操作し、そのボリュームをGUIで表示して1秒後に消える
というものを作ろうとしています。(ようはMasterVCみたいなもの) Gui, +AlwaysOnTop -Caption Gui, Color, 245DDB Gui, Add, Text, vVolume cWhite, *** Return ^Up:: SoundSet, +5, Master Gosub, Sound Return ^Down:: SoundSet, -5, Master Gosub, Sound Return Sound: SoundGet, Vol, Master Transform, Vol, Round, %Vol% GuiControl,, Volume, %Vol% Gui, Show, x624 y998 NA Sleep, 1000 Gui, Hide Return しかし、これだと音量を例えば20上げたくてCtrl+Upを4回押しても 1回押すごとに1秒待たなくてはいけず、反映されません。 どなたかお力をお貸しください。
- 57 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/30(日) 05:58:30 ID:CU8CuHjq0]
- >>56
タイマーでGui,Hideを1秒後に1回だけ実行させるように取り計らう
- 58 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/30(日) 06:00:59 ID:CU8CuHjq0]
- >>55
適当に間空けてみたら?
- 59 名前:56 mailto:sage [2005/10/30(日) 06:04:03 ID:TyhuAUFb0]
- >>57
なるほど、こんな方法があったんですね。 ありがとうございます。 ところで、これのGUIウィンドウがタスクバーに表示されないようにできないでしょうか?
- 60 名前:55 mailto:sage [2005/10/30(日) 06:53:42 ID:/Ikc9y6N0]
- >>58
Clipwaitを入れたりはしてたんですが そういえばSleepはやってませんでした。 ClipWait Sleep, 250 ぐらいを挟んだらたまにコケますがうまくいくようになったようです。 とりあえずこれで微調節してみようと思います。 ありがとうございました。
- 61 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/30(日) 08:44:09 ID:mpnujeVB0]
- >>59
Gui,+/-Option >>60 ClipWaitはクリップボードを空にしてからじゃないと意味がないよ 内容が書き換わったか、ではなくクリップボードに何か入っているかを見てるから
- 62 名前:56 mailto:sage [2005/10/30(日) 14:09:58 ID:TyhuAUFb0]
- >>61
見あたらないんですが・・・。 どのオプションでしょうか?
- 63 名前:56 mailto:sage [2005/10/30(日) 14:23:56 ID:TyhuAUFb0]
- 見つかりました。
+ToolWindowですね。すみませんでした。
- 64 名前:56 mailto:sage [2005/10/30(日) 14:33:52 ID:TyhuAUFb0]
- もう1つすみません。
+E0x00000020を入れても透過ウィンドウにならないです。
- 65 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/31(月) 13:05:42 ID:auv8fr6b0]
- つWinSet
- 66 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/01(火) 18:03:24 ID:ozgXNR060]
- >>56
完成したらUPしてくれませんか?
- 67 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/01(火) 18:40:57 ID:JPnPn5j40]
- >>56
>>66 ttp://www.autohotkey.com/forum/viewtopic.php?t=2216 これのHotkey部分を書き換えれば望みの動作になるかと。
- 68 名前:56 mailto:sage [2005/11/01(火) 22:04:36 ID:hYFbhs5k0]
- >>66
>>56のSoud:の部分を Sound: SetTimer, GuiHide, off SoundGet, Vol, Master Transform, Vol, Round, %Vol% GuiControl,, Volume, %Vol% Gui, Show, x624 y998 NA SetTimer, GuiHide, 1000 Return GuiHide: SetTimer, GuiHide, off Gui, Hide Return >>67 >>56の時点でできた上のスクリプトで動作は満足していましたが、リンクのスクリプトも参考になりました。 ところで、視覚スタイルをOFFにする以外にタスクバーのグラデーションって切れないんでしょうか? 上のスクリプトの色設定だとタスクバー上でしっかり隠れてくれない。 透過も上手くいかないし・・・・
- 69 名前:56 mailto:sage [2005/11/01(火) 22:05:59 ID:hYFbhs5k0]
- > >>56の時点でできた上のスクリプト
>>59の時点でできた上のスクリプト 間違いです
- 70 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/01(火) 22:29:37 ID:so0ECgfj0]
- >>68
下のようなエラーになります。 matsuya.dyndns.tv/2ch/img-box/img20051101222853.jpg
- 71 名前:70 [2005/11/01(火) 22:30:27 ID:so0ECgfj0]
- 70のエラーになるやつです。
Gui, +AlwaysOnTop -Caption Gui, Color, 245DDB Gui, Add, Text, vVolume cWhite, *** Return ^Up:: SoundSet, +5, Master Gosub, Sound Return ^Down:: SoundSet, -5, Master Gosub, Sound Return Sound: SetTimer, GuiHide, off SoundGet, Vol, Master Transform, Vol, Round, %Vol% GuiControl,, Volume, %Vol% Gui, Show, x624 y998 NA SetTimer, GuiHide, 1000 Return GuiHide: SetTimer, GuiHide, off Gui, Hide Return
- 72 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/01(火) 23:10:10 ID:B9WSZONo0]
- >>71
7行目(以降)のどこか(ていうか行頭)に不正な文字がある。 2ちゃんに貼ってて整形が崩れずインデントが保たれている段階で気付こうな
- 73 名前:70 mailto:sage [2005/11/01(火) 23:36:01 ID:so0ECgfj0]
- >>72
thx。全角スペースが入ってた。
- 74 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/02(水) 00:05:41 ID:k4q1X8S+0]
- 全角スペースいれるのやめない?
ちょっと見にくいだけじゃん。コピペめんどくせ。
- 75 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/02(水) 00:17:11 ID:Pn1A6Moc0]
- >>74
どっちにしろ、コピペしたのをそのまま使わず 後で自分好みにタブ入れたり改良したり変数変えたりするから 掲示板上での見やすさを優先してほしい。
- 76 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/02(水) 01:04:10 ID:1s79aisd0]
- なんか裏技的にうまくインデントを表現できないかね
- 77 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/02(水) 01:04:59 ID:Oarl5uV80]
- 漏れは自分が質問するときは除去してるけど、人にレス付ける時は
敢えて全角スペースでインデント入れる場合が多いな。 特にそのままAutoHotkey.iniにコピペして使いそうな相手なら尚更 あぷろだに上がってる投稿モノの中に、全然インデントされてないスクリプトが いくつかある。多分元々プログラミングしない人で掲示板でしか 人のソース見てないとインデントの概念自体がないんだと思う。 コーディングルールは個人の好き好きではあるけど、AHKの場合は 人から貰ったソースを手を入れずにそのまま使えるケースは少ないし 他人が見てもわかりやすい記述は知ってて欲しいと思うので
- 78 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/02(水) 02:11:33 ID:L1tQPzXC0]
- スペース0
スペース1 スペース2 スペース3 スペース4
- 79 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/02(水) 02:13:48 ID:L1tQPzXC0]
- >>78
- 80 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/02(水) 02:15:47 ID:L1tQPzXC0]
- スペース0
 スペース1   スペース2    スペース3     スペース4
- 81 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/02(水) 02:23:32 ID:L1tQPzXC0]
- スペース0
スペース1 スペース2 スペース3 スペース4 >>78はコピペミス。  または と書くと、半角スペースに変換される。 半角スペースが連続しても1個に変更されてしまうことがないみたい。
- 82 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/02(水) 03:25:15 ID:yA1z2EuC0]
- ギコナビで特殊文字変換してる
- 83 名前:名無しさん@お腹いっぱい。 [2005/11/02(水) 17:33:22 ID:y7CD98+Z0]
- >>77
世の中にはインデントがないほうが見やすい人も存在する
- 84 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/02(水) 18:48:13 ID:Oarl5uV80]
- >>83
>コーディングルールは個人の好き好きではあるけど、AHKの場合は >人から貰ったソースを手を入れずにそのまま使えるケースは少ないし >他人が見てもわかりやすい記述は知ってて欲しいと思うので
- 85 名前:名無しさん@お腹いっぱい。 [2005/11/02(水) 20:23:36 ID:5+koFFKw0]
- >>84
>>83
- 86 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/02(水) 21:00:58 ID:mmYbLWLG0]
- >>84-85
#SetThreadMood, Mataari
- 87 名前:名無しさん@お腹いっぱい。 [2005/11/03(木) 04:45:03 ID:CGo3fQX00]
- キャプションを非表示にすることってできますか?
たぶんSendMessageを使うんだろうけど、見つかりません。
- 88 名前:87 mailto:sage [2005/11/03(木) 05:08:44 ID:CGo3fQX00]
- みつかりました。
SendMassageではなくてWinSetだけれど。 WinSet, Style, ^0x00C00000
- 89 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/03(木) 16:00:33 ID:aDGTml8d0]
- あるアプリAを起動すると、別のアプリBも自動的に起動するようにするには、どのようにすればよいのでしょうか?
- 90 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/03(木) 16:16:15 ID:RQBG0Gu80]
- 条件をもっと絞ってくれないとな。
単純な方法から高い連動性を求めるものまでいろいろあるから
- 91 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/03(木) 16:53:28 ID:aDGTml8d0]
- アプリAが何らかの方法で起動されると、プロセスを監視していたAutoHotKeyがそれを察知してアプリBも自動的に開くようにしたいのです。
何秒後に開く、とかの指定は必要なく、アプリAを終了したらアプリBも終了する、などの機能も必要ありません。 AutoHotKeyの監視はできれば5分ごとに監視するようにしたいのですが、常に監視するのでもかまいません。 方法をご存じの方がいましたら、お願いします。
- 92 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/03(木) 17:47:09 ID:GMRToEkf0]
- #Persistent
Settimer,kansi,5000 kansi: IfWinExist,A If hoge = 0 { { IfWinExist,B { hoge = 1 } else { Run,B } } return } else { hoge = 0 return } こんな感じでいいんでしょうか?
- 93 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/03(木) 17:49:07 ID:GMRToEkf0]
- スレの流れからして俺、最低だな・・・。
- 94 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/03(木) 18:42:44 ID:CgkRLY9O0]
- あー、Ifがネストしちゃうと漏れは完全アウトだな。
パッと見ではもちろんじっくり考えても全然理解できない。 で、エディタに貼っつけてインデントしてから考えてみたんだけど 一番上位のIfWinExist,A の{ }抜けてるけどいいのんかい? あと 7,16行の { } に意味なくないか、これ
- 95 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/03(木) 18:47:37 ID:6IkeUy0z0]
- >>91
つProcess
- 96 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/03(木) 20:16:45 ID:IdqDMTZK0]
- ThumbSenseのように、タッチパッドに触れているかどうかを判定できるようになるといいなあ。
- 97 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/03(木) 21:22:00 ID:myFIFexE0]
- TAB使えばいいじゃん
- 98 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/03(木) 22:56:37 ID:ZNzLxnpo0]
- もしどなたかソースコード解凍できる人いましたら
ソースからShellExecuteというAPI検索して6個目(=最後)の引数何になってるか 確認していただけませんか?
- 99 名前:98 mailto:sage [2005/11/03(木) 23:06:30 ID:ZNzLxnpo0]
- ごめんやっぱりいいです。
でもやっぱりなんかおかしい。
- 100 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/04(金) 22:35:21 ID:GuCt95u60]
- マウスカーソルを変更したり消去するコマンドは無かったorz
ノーマウスカーソルの機能をぱくれると思ったが残念
- 101 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/05(土) 00:12:48 ID:1+JQ8ek+0]
- >>100
前スレより。 DAT落ちしてるみたいなんでコピペ > 627 名前:625[sage] 投稿日:2005/05/20(金) 23:58:26 ID:jhPL19PD > とりあえずLoadCursorFromFileで直接カーソルファイル指定で > システムのポインタは変えれるぽい > (LoadCursorも試してみたがイマイチ挙動がよくわからん) > > #1:: SetSystemCursor(LoadCursorFromFile("C:\WINDOWS\Cursors\hoge.cur"),32512) > #2:: SetSystemCursor(LoadCursorFromFile("C:\WINDOWS\Cursors\hoga.cur"),32512) > > LoadCursorFromFile(lpFileName) > { ; カーソルファイルからマウスカーソルを作成する > return DllCall("LoadCursorFromFile",Str, lpFileName, Int) > } > SetSystemCursor(hCur,id) > { ;システムカーソルを変更する > return DllCall("SetSystemCursor", Uint,hCur, Int,id ,Int) > } > > 630 名前:592[sage] 投稿日:2005/05/25(水) 12:53:24 ID:62rl7YBY > IME状態表示用のアイコン作ってみた > ttp://lukewarm.s101.xrea.com/up/file/028.zip > > 631 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2005/05/25(水) 12:54:38 ID:62rl7YBY > あ、マウスカーソルに訂正
- 102 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/05(土) 03:27:14 ID:kQuWg8rN0]
- dllcallでShowCursorを使えばいけそうだけど
#y::DllCall("User32\ShowCursor", "int", 0) テストで作ってみても反応無かったorz 助けて
- 103 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/05(土) 04:50:06 ID:/8hJVayJ0]
- >>102
それ自分のプロセスのウィンドウにしか利かない
- 104 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/05(土) 15:21:11 ID:q4T/nF7a0]
- ttp://www.autohotkey.com/docs/misc/Clipboard.htm
の OnClipboardChange の例にある%A_EventInfo%ですが 誰か解説してほしい・・・ とりあえず、文字やファイルだと1 bmpだと2になるんだが、 文字とファイルの区別はつかないのかな
- 105 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/05(土) 16:06:10 ID:1+JQ8ek+0]
- >>104
lukewarm.s101.xrea.com/commands/indexframe.html
- 106 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/05(土) 16:07:29 ID:1+JQ8ek+0]
- 違った。こっちの下のほう
lukewarm.s101.xrea.com/misc/Clipboard.htm
- 107 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/05(土) 16:12:49 ID:1+JQ8ek+0]
- 何度もスマソ、ちなみにクリップボード内のフォーマットはDllCallでAPI使えば取得できる
サンプル d.hatena.ne.jp/eamat/20050920/p1
- 108 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/05(土) 19:25:38 ID:q4T/nF7a0]
- >>106
ありがとう。 日本語のヘルプ(chm)しか見てなかった・・・すまん >>107 こっちも参考にしてみる。ありがと 今週初めにAutoHotkey知ったんだがおもしろい。 これでCaps入れ替えができれば完璧なんだが・・・
- 109 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/05(土) 20:23:00 ID:YtsoQGy80]
- やっとサッカーチームが!
- 110 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/05(土) 20:24:40 ID:rpDKFDGY0]
- 戦う相手がいません!
- 111 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/06(日) 16:38:36 ID:7Hz8Kh6P0]
- こんなスクリプト書いてくださいってのは、ここ的にアリですか?
- 112 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/06(日) 17:44:40 ID:PoGd2lip0]
- (ω・ )ゝ なんだって?
- 113 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/06(日) 19:45:09 ID:7Hz8Kh6P0]
- >>112
こんなスクリプト書いてくださいってのは、ここ的にアリですか!!!
- 114 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/06(日) 19:55:01 ID:FAFXojQr0]
- /.──┬ /⌒ヽ ┌─┴─┐ . | ヽヽヽ ―┼― .| ヽ | \
/| ┌─┐| ノ  ̄フ .  ̄| ̄ヽ | , | | | \  ̄| ̄ヽ | . | | └─┘| | ─┼─ ,ノ │ ノ . | \ | ゝ | | ノ │ |/ ̄ヽ | J ○ J . ノ ヽノ . J \_ レ ノ ヽノ _ノ _____ ____ー┼ー | / _/_ -- 二二_ /~| ̄/ヽ / ヽ | \  ̄ ヽ | | ノ .| ∨ | / _| | | | ̄| ノ l____, \ノ ノ (_ノヽ レ  ̄
- 115 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/06(日) 19:56:57 ID:0hkV63L40]
- >>111
いちいちそんな無駄レスせずにさっさと本題書けよ。印象悪いぞ。 過去スレからの流れを見てるとこのスレは自分である程度試行錯誤する人間には 手助けするけど、丸投げは(・A・)イクナイ!って感じだからそれを踏まえた上でヨロシク。
- 116 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/06(日) 21:48:46 ID:A0mk0Y990]
- 横やりですいません。>>102のヒントお願いします。。。
- 117 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/06(日) 23:40:35 ID:z+zoLLJT0]
- >>111
無し ヒントを教えてくれとかならまだしも、丸投げはダメだろ
- 118 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/07(月) 00:15:52 ID:Lx44qPKh0]
- >>116
>103で答えは出ていると思うのだが
- 119 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/07(月) 04:00:09 ID:S2Pl78Ca0]
- >>111
とりあえず、なにがしたいんだ?怒らないから言ってみなさい
- 120 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/07(月) 18:35:53 ID:7cDsa3uM0]
- >>111
やっぱり怒る
- 121 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/07(月) 20:21:01 ID:rV/rS1+v0]
- ^p::
IfWinActive, ahk_class Notepad Send, ^o else Send, ^p return こんな感じのスクリプトを書いているんですが、指定ウィンドウ以外で無限ループしちゃいます。 こういう時どうしたらいいんでしょうか?
- 122 名前:名無しさん@お腹いっぱい。 [2005/11/07(月) 20:39:04 ID:PUaC//G70]
- >>121
一行目に #UseHook を追加
- 123 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/07(月) 21:58:01 ID:Lx44qPKh0]
- $^p::
- 124 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/07(月) 23:09:43 ID:rV/rS1+v0]
- >>122-123
無限ループしないようになりました。 ありがとうございます。
- 125 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/07(月) 23:58:04 ID:d1b3VXPA0]
- >>117
では、ヒントをお願いします。 >>119 優しいお言葉どうもです。書いてみます。 起動していたらアプリをアクティブ、起動していなかったらアプリを起動。 これは出来ました。これにさらに、Ctrlを押していたらアプリを終了。 Altを押していたら、アプリを最前面にをトグルということをやりたいです。 Win + H >秀丸を起動、起動していたらアクティブ。 Win + Ctrl + H>秀丸を終了、起動していなかったら何もしない。 Win + Alt + H>秀丸を最前面に、起動していなかったら起動して、最前面に。 これ単純にすべてのホットキーを設定しちゃえばいいのですが、 いろいろなアプリに対応させたいので、関数っていうんですか? 処理をうまいことまとめられたらいいなぁとおもいまして。 >>120 ひぃ…そこをなんとか。ヒントだけでも。
- 126 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 01:56:56 ID:BqfIoljv0]
- どのへんを関数化したいのかわからんのだが
取り零しとかあるしトリガは素直にホットキー使ったほうがよい モデファイヤキーの押下状態で内部分岐もできるが これだとhが入力できなくなるので ~ つけるか中でSendするとかの処理が必要 *h:: dsp= if (GetKeyState("CTRL")) dsp = ctrl if (GetKeyState("SHIFT")) dsp = %dsp% sift if (GetKeyState("ALT")) dsp = %dsp% alt if (GetKeyState("LWIN") || GetKeyState("RWIN")) dsp = %dsp% win ToolTip,%dsp% return
- 127 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 07:16:19 ID:OmlMtwX30]
- SetHotkey("n" , "notepad.exe", "C:\WINNT\System32", "max")
SetHotkey("c", "calc.exe", "C:\WINNT\System32", "") return SetHotkey(key, appPath, appWorkDir, appWinState) { global appPath%key%:=appPath appWorkDir%key%:=appWorkDir appWinState%key%:=appWinState Hotkey, #%key%, launchApp ;Hotkey, ^#%key%, quitApp ;Hotkey, !#%key%, toggleWindow Return } launchApp: StringRight, key, A_ThisHotkey, 1 appPath:=appPath%key% appWorkDir:=appWorkDir%key% appWinState:=appWinState%key% Run, %appPath%, %appWorkDir%, %appWinState% Return hotkeyが関数に対応してないからめんどくさかった・・ とりあえずこれで動的に割り当てられるはず。 ヤレヤレダゼ( ゚д゚)y─┛~~
- 128 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 08:00:45 ID:AQU/ZuaD0]
- 「=」と「:=」ってどう使い分けるんですか?
- 129 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 10:08:44 ID:U5/qb0is0]
- >>128
一緒
- 130 名前:128 mailto:sage [2005/11/08(火) 10:19:07 ID:AQU/ZuaD0]
- >>129
そうなんですか? あとIfの時()で囲むか囲まないかってのもいまいちよくわかりません。
- 131 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 10:32:21 ID:w31TiB9U0]
- >>128
a:=A_AhkVersion と a=%A_AhkVersion% だとaが同じ内容になる。 d=%abc%xyz%% ってやりたくても出来ないので、こんなときは b:=adc%xyz% これで似たような意味になる。こう解釈してんだけど間違ってたらごめん。
- 132 名前:131 mailto:sage [2005/11/08(火) 10:34:58 ID:w31TiB9U0]
- ごめん。
d=%abc%xyz%%→b=%abc%xyz%% 間違えました。
- 133 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 13:01:31 ID:x8v+5Rvv0]
- >>126
>>127 ずばり答えまで書いてくださって、ありがとうございます。 内容を解釈しながら、改良してみます。
- 134 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 13:16:32 ID:OmlMtwX30]
- >>127
あー、寝ぼけてるな・・・ hotkeyが関数に対応してたとしても別段コード変わらんよな・・ >>133たしかに、ヒントじゃないなw がんばってね
- 135 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 15:15:11 ID:ZVndp7Og0]
- >>129
おいおい。。。 違うやろ、ifの = と == は文字列比較以外はほぼ一緒だけど >131の解釈でだいたい合ってる
- 136 名前:128 mailto:sage [2005/11/08(火) 19:12:51 ID:AQU/ZuaD0]
- 「=」と「:=」の使い分けはわかりました。
「If」と「If()」は?
- 137 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 19:27:52 ID:BqfIoljv0]
- If var = value
→ 従来仕様、1行に1判定文しかかけない If (var1 = var2) and (var1 = "value") → 後から追加された形式、AND や OR で複数の判定を連結できる AHKは 1.0.25と1.0.34あたり(うろ覚え)で大幅な仕様追加があった。 := や if () 、Functionは従来の記述ルールでできない部分を拡張する形で導入された記述形式 従来仕様とチャンポンになってるので後から入ってきた人には分かりにくいかもしれないな
- 138 名前:128 mailto:sage [2005/11/08(火) 19:32:07 ID:AQU/ZuaD0]
- >>137
なるほど。 ありがとうございました。
- 139 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 22:48:46 ID:x8v+5Rvv0]
- >>134
続きを改良しつつ、作ってみました。 SetHotkey(key, appPath, appTitle, appWorkDir="", appOpt="") { global appPath%key%:=appPath appTitle%key%:=appTitle appWorkDir%key%:=appWorkDir appOpt%key%:=appOpt Hotkey, #%key%, launchApp Hotkey, ^#%key%, quitApp Hotkey, !#%key%, toggleWindow Return } launchApp: StringRight, key, A_ThisHotkey, 1 appPath:=appPath%key% appTitle:=appTitle%key% appWorkDir:=appWorkDir%key% appOpt:=appOpt%key% ifWinNotExist, %appTitle% Run, %appPath%, %appWorkDir%, %appOpt% else WinActivate, %appTitle% return Return
- 140 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 22:50:31 ID:x8v+5Rvv0]
-
quitApp: StringRight, key, A_ThisHotkey, 1 appTitle:=appTitle%key% ifWinNotExist, %appTitle% Exit else WinClose, %appTitle% return Return toggleWindow: StringRight, key, A_ThisHotkey, 1 appPath:=appPath%key% appTitle:=appTitle%key% appWorkDir:=appWorkDir%key% appOpt:=appOpt%key% ifWinNotExist, %appTitle% Exit else WinSet, Topmost, TOGGLE, %appTitle% return Return んー >>126さんの言うとおり、取りこぼしがあるし、 Topmostのトグルが出来てないような。 折角作ってもらったのに、ホットキーの方が確かってことなんですかねぇ。
- 141 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 23:08:59 ID:BqfIoljv0]
- いや、取りこぼしが発生するのは LoopやSettimerで自力監視する場合の話
Hotkeyコマンドは動的に割り当ててるだけでトリガはAHKまかせだし 問題ない筈だが
- 142 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 23:28:51 ID:BqfIoljv0]
- Returnを2回重ねてるところと Exit使ってるのの意味がわからんのだが
toggleWindow: StringRight, key, A_ThisHotkey, 1 appTitle := appTitle%key% ifWinExist, %appTitle% WinSet, Topmost, TOGGLE, %appTitle% Return でいいんじゃね? (If あるんで全角インデントした)
- 143 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 23:38:44 ID:x8v+5Rvv0]
- >>141
なんか反応が鈍い時があるんですよね。 >>142 メタメタだ…。
- 144 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/09(水) 07:51:17 ID:HqHg5smR0]
- ていうかappTitleにどんな値指定してんだか知らんけど
秀丸みたいに多重起動できるアプリだとウィンドウを限定できねんじゃね? 判定は ifWinExist じゃなくて ifWinActiveにして 任意のウィンドウがアクティブなときに動作させないと誤爆するな あと秀のようにアプリ自体がTopmostの機能をもってる場合はSendで ショートカットキー投げるとかしてそっち使ったほうが話は簡単かもしれんよ
|

|