[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 14:54 / Filesize : 298 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

AutoHotkey Thread 2



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

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で
ショートカットキー投げるとかしてそっち使ったほうが話は簡単かもしれんよ

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
どういうことですか?






[ 続きを読む ] / [ 携帯版 ]

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

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