- 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
- 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で ショートカットキー投げるとかしてそっち使ったほうが話は簡単かもしれんよ
- 145 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/09(水) 15:43:04 ID:+AeGgYao0]
- >>143秀丸落として試してみたが、うちでは問題なくトグル出来るが・・・
それと>>141が言うようにhotkeyコマンド使って設定した場合、ホットキーラベルで設定したのと同じ動作になるはずで、 反応鈍いって事はないだろう。ホントにそうならAHK自身のバグとしか考えられん。 >>144 ifWinExistでもちゃんとできるみたい。 同タイトルのウィンドウが存在した場合、まず最前面ウィンドウが優先され、 最前面がない場合と複数最前面がある場合、アクティブの時にはそのウィンドウに、 非アクティブの場合、最後にアクティブだったウィンドウに適用されるっぽいな。 違ったらごめん。 気になったのが、非アクティブの最前面ウィンドウを非最前面にしたときに 一度そのウィンドウをクリックしてやらないと、 他のウィンドウクリックしても後ろに行ってくれないが、 ここらへんはOSの仕様のような気がする。 topmostトグルするまえにWinActivateつかってアクティブにしてやれば一応解決するが。
- 146 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/10(木) 21:56:38 ID:RwGjNG9H0]
- ウィンドウ指定の条件をandじゃなくてorにすることはできないでしょうか。
IfWinActiveとかを何度も書かなきゃだめですか
- 147 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/10(木) 22:01:45 ID:We9gQrEX0]
- >>146
ttp://lukewarm.s101.xrea.com/commands/IfIn.htm
- 148 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/10(木) 22:25:50 ID:RwGjNG9H0]
- >>147
なるほど。ウィンドウのタイトルを変数に入れてIf var inでマッチリストと 比較するわけですね。 or条件を使うときはIfWinActiveではなくこれを使ってみることにします。 ありがとうございました。
- 149 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/11(金) 03:42:19 ID:khVemMEi0]
- タイマー作るのって無理?
InputBoxで入力した時間Sleepしてアクションを起こすってことはできるけど 残り時間の表示をどうやればいいのかわからない。
- 150 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/11(金) 04:01:08 ID:xFnBvB+A0]
- >>149
time=%A_Sec% settimer,count,1000 count: rest:=time-A_Sec+30 tooltip,%rest% return esc::exitapp こんなんでええのだろうか
- 151 名前:149 mailto:sage [2005/11/11(金) 04:05:08 ID:khVemMEi0]
- >>150
なるほど! これはは思い浮かばなかった。 迅速なレスありがとうございます。
- 152 名前:149 mailto:sage [2005/11/11(金) 04:10:33 ID:khVemMEi0]
- あ、いやちょっと待って。
よく考えたら全然ダメじゃん。 数秒確認しただけでレスしちゃった。
- 153 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/11(金) 04:24:46 ID:xFnBvB+A0]
- returnの前にこれ追加しといて
if rest=0 exitapp 的外れだったらすまん。つーか何がダメなんかわからん、とりあえずカウントダウン表示してみただけだし。
- 154 名前:129 mailto:sage [2005/11/11(金) 04:31:30 ID:khVemMEi0]
- たとえば、今、○時○分55秒だったとします。
55-55+30=30 55-56+30=29 55-57+30=28 55-58+30=27 55-59+30=26 55-00+30=85 55-01+30=84 こういう計算だと思うんですが・・・・。 私の方が間違っているのかな。
- 155 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/11(金) 05:53:00 ID:FTok57/z0]
- A_TickCountつかえ
- 156 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/11(金) 07:51:44 ID:A6pk7vW20]
- 時間関係の計算はよくわからんルールになってるぞ
一人で脳使ってないでヘルプ熟読してきなされ
- 157 名前:名無しさん@お腹いっぱい。 [2005/11/11(金) 18:08:09 ID:KIS/mZVoO]
- ちょっとくらいヒントをくれてもいいじゃないですか。
- 158 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/11(金) 18:52:34 ID:A6pk7vW20]
- とりあえず149はA_Sec参照して何がやりたいんだ?
単純に残り秒数カウントダウンしたいだけなら dwncnt := 30 ;残り秒数 settimer,count,1000 count: dwncnt-- tooltip,%dwncnt% return きちっと精度上げたいならSetTimerの値を小さくして>155が言うようにA_TickCount使う
- 159 名前:149 mailto:sage [2005/11/11(金) 20:12:02 ID:khVemMEi0]
- ○時間○分○秒というタイマーも使えるようにしたかったので
A_TickCountではなく、YYYYMMDDHH24MISSで記述した物からEnvAddでSecondsを指定して 1秒ごとに-1加算するようにしたら上手くできました。
- 160 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/13(日) 18:02:11 ID:A/9NzbIG0]
- あるSetTimerがonの時とoffの時で条件分岐って無理?
- 161 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/13(日) 19:35:11 ID:N8ylNJMv0]
- タイマーが動いてるかどうかを調べる方法はなかったはず
自分でフラグ変数用意して現在の状態覚えとくようにすればOKだけど
- 162 名前:160 mailto:sage [2005/11/13(日) 19:37:47 ID:A/9NzbIG0]
- >>161
どういうことですか?
- 163 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/13(日) 19:41:43 ID:5IyRr/ha0]
- 自分で変数を用意する。
- 164 名前:160 mailto:sage [2005/11/13(日) 19:53:57 ID:A/9NzbIG0]
- こんな感じ?
SetTimer, ABC, 3000 ST_Flag = on #A:: If(ST_Flag = "on") { SetTimer, ABC, off ST_Flag = off } Else If(ST_Flag = "off") { SetTimer, ABC, on ST_Flag = on } return
- 165 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/13(日) 21:50:43 ID:N8ylNJMv0]
- そう、それか↓みたいにしてもいいし
#A:: If (interval > 0) { interval = 0 } else { interval = 3000 } SetTimer,ABC,%interval% return
- 166 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/13(日) 21:52:52 ID:N8ylNJMv0]
- 0だとOFFにならんのか
#A:: If (interval > 0) { SetTimer,ABC,OFF interval = 0 } else { interval = 3000 SetTimer,ABC,%interval% } return
- 167 名前:160 mailto:sage [2005/11/13(日) 22:19:27 ID:A/9NzbIG0]
- >>166
なるほど ありがとうございます
- 168 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/14(月) 03:42:28 ID:tpTqEc+p0]
- >+Up::send,{PgUp}
>+Down::send,{PgDn} >+Left::send,{Home} >+Right::send,{End} こんな風に割り当てますよね。 これをあるウィンドウだけは適用したくないのですが、 そういった場合はどう書けばいいんでしょうか?
- 169 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/14(月) 05:14:00 ID:h9uxRFHg0]
- >>168
+Up:: WinGetActiveTitle, ActTitle If(ActTitle <> "割り当てたくないウィンドウタイトル") send,{PgUp} return タイトルで上手くいかなかったらウィンドウハンドル取得して分岐
- 170 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/15(火) 13:59:54 ID:3R61f5fz0]
- >>169
どうもです。 169さんの方法だと、一キーずつ割り当てるしかないんですよね。 一気にやる方法があったら、便利だな。
- 171 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/15(火) 15:34:14 ID:Qg1alPao0]
- 一気にやるってどういう意味だよ。
- 172 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/15(火) 16:41:57 ID:g/ADYEbp0]
- +Up::
+Down:: +Left:: +Right:: WinGetActiveTitle, ActTitle If(ActTitle <> "割り当てたくないウィンドウタイトル") { send,{PgUp} } return
- 173 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/15(火) 16:44:53 ID:g/ADYEbp0]
- すまん途中で書きこんでもうた。関数にしてパラメータ指定するようにしたほうがよりスマート
+Up:: +Down:: +Left:: +Right:: WinGetActiveTitle, ActTitle If(ActTitle <> "割り当てたくないウィンドウタイトル") { if A_ThisHotkey = +Up send,{PgUp} else if A_ThisHotkey = Down send,{PgDn} : } return
- 174 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/15(火) 18:16:51 ID:Qg1alPao0]
- ヒドスwwwww
- 175 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/15(火) 18:34:11 ID:Fr3rXntL0]
- +Up::
Ifwinnotactive,XXXX Send,{Pgup} return これで全部書いたほうが短かくてわかりやすい気がするのだが
- 176 名前:名無しさん@お腹いっぱい。 [2005/11/16(水) 01:46:01 ID:EX3GaO8n0]
- 任意のアプリのタスクトレイアイコンを非表示にすることってできないでしょうか?
わからないなりに調べてみたらShell_NotifyIconというAPIがあるようなので これをDllCallで呼びせさばできそうな気が。 DLLについてはまったくの初心者なので今奮闘しています。
- 177 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/16(水) 02:17:34 ID:ExozuSiy0]
- これって構造体扱えるんだっけ?
構造体扱えなかったらShell_NotifyIconも使えないだろ
- 178 名前:176 mailto:sage [2005/11/16(水) 13:41:19 ID:EX3GaO8n0]
- >>177
ttp://lukewarm.s101.xrea.com/commands/DllCall.htm ここの「構造体と配列の扱い」によればできるようなのですが、 いかんせんまだ勉強中なので難しくて
- 179 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/16(水) 14:43:39 ID:YfyIAE/u0]
- >>178
うまいこと考えたな〜
- 180 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/16(水) 16:26:24 ID:ExozuSiy0]
- 構造体は扱えないけど、逃げ道はあるってことか
面倒そうなので漏れはパス
- 181 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/16(水) 17:08:15 ID:YfyIAE/u0]
- >>178
べつに難しく考えること無いよ。外部にあるからDllCall使ってロードしてやらなきゃならないだけで、 考え方は普通の関数扱うのと変わらない とりあえず、そこにある関数コピペすれば構造体に値をセットしたり読み出したりは出来る。 関数の中身は知らなくていい。 一番下のサンプルみれば使い方はわかるはず。
- 182 名前:176 mailto:sage [2005/11/16(水) 23:23:04 ID:EX3GaO8n0]
- WinGet, whd, ID, A
VarSetCapacity(NotifyIconDate, 24, 0) InsertInteger(whd, NotifyIconDate, 4) DllCall("Shell_NotifyIcon", Int, 0x00000002, Str, NotifyIconDate) Return InsertInteger(pInteger, ByRef pDest, pOffset = 0, pSize = 4) { mask := 0xFF Loop %pSize% { DllCall("RtlFillMemory", UInt, &pDest + pOffset + A_Index - 1, UInt, 1, UChar, (pInteger & mask) >> 8 * (A_Index - 1)) mask := mask << 8 } } わからないなりに作ってみましたが、うまくいかないです。 たぶん色々勘違いしてると思うのですが。
- 183 名前:名無しさん@お腹いっぱい。 [2005/11/18(金) 03:16:50 ID:/PztpgYi0]
- テキスト入力欄かどうかを取得するにはどうすればいいでしょうか?
If(A_CaretX <> "")だと入力欄でないところでも反応してしまいます
- 184 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 22:11:48 ID:KVZUSxn10]
- たしかA_CaretXとA_CaretYはエディット以外の場合は
コントロールの左上の座標になるから そんな感じで弾けばいいと思うよ
- 185 名前:183 mailto:sage [2005/11/18(金) 22:16:55 ID:/PztpgYi0]
- >>184
例えばSleipnirとかJaneとかでテキストを選択してコピーしたら その位置にキャレットがあると見なしてしまいまして
- 186 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/19(土) 01:56:22 ID:adRLoPdI0]
- EDITコントロールか否かの判定はControlGetでLine数を取得してチェックしてる。
非EDIT コントロールの場合 0が返るので ControlGet,line_cont,LineCount,,%ctl%,ahk_id %hwnd% if line_cont > 0 { ;テキスト入力欄の処理 } あとSendMessageで EM_xxx あたりの情報を調べるとか。 www.winapi-database.com/Message/EM/ 編集不可だがコントロールはEDIT使ってる場合(AU3_Spy.exeとか)もあるので そういう場合はどうにかしてLoked状態を確認しないといかんかも知れん
- 187 名前:183 mailto:sage [2005/11/19(土) 02:20:34 ID:EUr5m4mr0]
- >>186
ありがとうございます ですがライン数取得では上手くいかないものが多くて諦めていましたが、 殆どのクラス名に「Edit」が入っていたのでクラス名取得して分岐するようにしました。
|

|