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


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

AutoHotkey スレッド part7



1 名前:名無しさん@お腹いっぱい。 [2008/12/31(水) 12:39:34 ID:ROX9gd900]
■公式
www.autohotkey.com/

■解説
AutoHotkeyを流行らせるページ
lukewarm.s101.xrea.com/

■過去スレ
1 pc7.2ch.net/test/read.cgi/software/1098531338/
2 pc7.2ch.net/test/read.cgi/software/1129836713/
3 pc11.2ch.net/test/read.cgi/software/1157043396/
4 pc11.2ch.net/test/read.cgi/software/1184556627/
5 pc11.2ch.net/test/read.cgi/software/1201502896/
6 pc11.2ch.net/test/read.cgi/software/1219130051/

関連リンク>>2以降も参照

620 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 02:58:52 ID:LqjZj8GK0]
USBの外付けテンキーに、普通のキーボードのテンキーと別のコマンドを
Autohotkeyを使って割り当てる事ってできるんでしょうか?
テンキーをプログラマブルキーボード的に使えないかと思うんですが
キーボード側のテンキーと連動しちゃわないかと思いまして…

621 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 04:07:31 ID:1EEvkJ+r0]
>>620
つ MagicKeyPad

622 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 04:19:05 ID:J5YLNUgU0]
uusbd.sysでも使って
デバイス毎にホットキーやリマップが設定出来るようになったら夢が広がるんだけどな

外付けテンキー全般に言えるか分からんが
マジェテンキーはNumLockがOnとOffの時とで異なるキーコードを送るようだから
やりようによってはフルキーボード付属のテンキーと別の動作をすることが出来るかもね

623 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 05:45:21 ID:LqjZj8GK0]
>>621
おおっ こんなソフトが! ありがとうございました。
Ahkで可能だったら最高だったんですが、現状ではできない感じなのでしょうかね。

624 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 07:39:15 ID:bNSgGuY10]
>>615
617でダメならナニがしたいのかよくわからんが
hotkeyコマンドで任意のホットキーをオン・オフ出来るからそれで良いんじゃないの?と思うが


625 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 08:46:33 ID:rh+NBoz70]
>>619
そうですね。すみませんでした。

やりたかったこと:
アプリケーションA専用のホットキーとして6つほど割り当てております。
そのほかにアプリケーションランチャー代わりとして5つほど割り当てているのですが、変数の中身の値によってそれだけをすべて無効にしたかったのです。

#あるキーを押せば無効になる、というものではなくあらかじめ設定用の変数を用意/設定をし、それによってスクリプトを走らせたと同時に有効/無効を切り替えられればな、と。
#走らせたあとは有効/無効を切り替えるということは考えていなかったです。


>>624
やぱ俺の頭が足りんよ
リファレンスとにらめっこしてくるよ

626 名前:名無しさん@お腹いっぱい。 [2009/04/11(土) 08:47:29 ID:iBHZiqEC0]
xpを使っています
autohotkeyのスクリプトから、そのスクリプトのショートカットをスタートアップに登録したいです
A_ScriptFullPathでそのスクリプトのありかを取得
A_Startupでスタートアップフォルダのありかを取得
ここまでは分かっています。その先がわかりません。

627 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 08:55:36 ID:ZRhwazf80]
FileCreateShortcut, %A_ScriptFullPath%, %A_Startup%\%A_ScriptName%.lnk

628 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 09:31:30 ID:bNSgGuY10]
>>625
#IfWinActiveで特定のアプリにのみ有効なホットキーを設定
hotkeyでホットキーのオン・オフ切り替え
このあたりを使えば望みの動作が出来ると思う
俺はよくiniファイルの設定を読み込ませてホットキーを動的に設定したりオン・オフしたりさせてるが
それと同じ方法で実現できると思う
hotkeyコマンドに変数展開使うだけだし




629 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 09:37:44 ID:e4COaq2Q0]
>>625
「変数」は何処に存在するんだろうか?

; 起動毎にホットキーのOn/Offがトグルになるスクリプト
OnExit, OnExitSub
IniRead, IsHotkeyEnable, conf.ini, Hotkey, Enable, 0 ; 無ければ "0(=Off)"とする

If (IsHotkeyEnable) {
 Hotkey, IfWinActive, ahk_class Progman ; デスクトップのみ
 Hotkey, #1, Key1, On
 Hotkey, #2, Key2, On
}
return
; 終了時にフラグを逆転して終了
OnExitSub:
 IsHotkeyEnable := !IsHotkeyEnable
 IniWrite, %IsHotkeyEnable%, conf.ini, Hotkey, Enable
 ExitApp

Key1:
 MsgBox, Key1 Action
 return
Key2:
 MsgBox, Key2 Action
 return


630 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 10:36:03 ID:iBHZiqEC0]
>>627
ありがとうございました。

631 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 12:30:52 ID:G+GUTcDI0]
>>608
keybatという1500円のソフトで可能だよ。さっき試した出来たよ。
俺はこれからAHKに乗り換えた当初に同じことをやろうとして苦労した覚えがある。
レジストリいじるソフトを使用してF13を導入して解決した。レジストリいじれないならkeybatだね。
人気ないけど、いいソフトだと思う。キーカスタマイズスレで罵倒された楽しい思い出があるけどw

632 名前:615 mailto:sage [2009/04/11(土) 19:33:36 ID:rh+NBoz70]
>>629
iniに書き込んであります。

>>628,629
ヒントありがとうございます。
自分が思っていたような動作をするスクリプトが書けました。
とは言っても、約半分ぐらい629と同じですが。

お世話になりました!
ありがとうございました。

633 名前:492 mailto:sage [2009/04/11(土) 23:31:57 ID:3TjMJxNW0]
以前書いたくるくるスクロールが不細工だったので書き直し。
おまけでくるくるスクロールの関数とカーソル上下でスクロールする関数を同梱しました。
トラックボールを使っている人にしか需要は無いと思います。
ttp://lukewarm.s101.xrea.com/up/file/108.zip

634 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 23:34:26 ID:YKimc9dt0]
>>633
使わせていただきます!


635 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 23:47:34 ID:oqoLxhVT0]
リマップで質問です。特定キーをトリガにして、リマップの内容を変更するのがうまくいきません。
添削してもらえませんか?

--
vkAFsc130::PgDn ←デフォルト定義
vkAEsc12E::PgUp ←デフォ

vkADsc120::    ← 問題のトリガ
if flag = 100
{
vkAFsc130::PgDn  ←この定義で Duplicate してしまう
vkAEsc12E::PgUp
flag = 0
}
else
{
vkAFsc130::Down
vkAEsc12E::Up
flag = 100
}
return

636 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 23:58:49 ID:e4COaq2Q0]
そもそも、言語仕様にに沿ってない。つーか言語がめちゃくちゃなんだけど
>>615からのの流れを流用してHotkeyコマンド使うか、
リマップを捨てて、Sendでキー送るってカンジかな

後者なら↓みたいな感じ
kAFsc130::
 If flag = 100
  Send, {PgDn}
 Else
  Send, {Down}
 return

どうしてもリマップ捨てたくないなら AutoHotkey_L の #if 使う方がいいかも
#if (flag==100)
vkAFsc130::PgDn
vkAEsc12E::PgUp
#if (flag!=100)
kAFsc130::Down
vkAEsc12E::Up
#if

637 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/12(日) 00:08:41 ID:BvyA+lnB0]
>>636
>そもそも、言語仕様にに沿ってない。つーか言語がめちゃくちゃなんだけど
滝汗

ありがとうございます。もうちょっと色々見てみます。


638 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/12(日) 11:50:32 ID:9mFGO0zQ0]
無変換+zで、ひとつ下のウィンドウをアクティブに。
~vk1Dsc07B & z::
WinGetClass, classA, A
a=
WinGet, List, List,,,ningenshikkaku
Loop,%List%
{
Hwnd := List%A_Index%
SetFormat,Integer,H
WinGet,s,Style,ahk_id %Hwnd%
SetFormat,Integer,D
if((!(s&0x08000000))&&((s&0x80)|| !(s&0x80000000)))
{
WinGetClass, class, ahk_id %Hwnd%
if (a=1){
WinActivate, ahk_id %Hwnd%
break
}
if (class=classA)
a=1
}
}
return



639 名前:638 mailto:sage [2009/04/12(日) 13:07:26 ID:9mFGO0zQ0]
>>638
すみません、これはダメだわ。GOMPlayer等、見つけられないものもあるw、まあ手動で足していけばいいか。
キーボード中心環境なら、上にいくのも付け足せば、最前面表示とかに行けて便利?

Alt+Tabは順序が入れ替わって、使い辛いな。
無変換←→とかで、タスクバー順にアクティブにできたほうがいいけど、AHKでできるかな?

640 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/12(日) 14:31:19 ID:dIdsRb2N0]
タスクバーの情報を取得するのは公式フォーラムにあるというのがここでのFAQ
ttp://www.autohotkey.com/forum/topic18652.html

キーボード派のWindow切り替えなら、こういうemacsのiswitchライクなのも良いと思う
ttp://www.autohotkey.com/forum/topic33353.html

641 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/12(日) 15:25:54 ID:9mFGO0zQ0]
>>640
おお、d
上のは、情報が特殊なんだね。Dolphi製はTApplicationのほう取ってるし、hWndとかも何か特殊だ。
特殊だと思ったら、10進法でとってるのか。
TApplicationをどうにかしたら、タスクバー順にアクティブはできそうだね。

下のはいいね、好みw

642 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/12(日) 16:41:10 ID:RL+Ry9QM0]
流行らせるページにwhileとかの説明が新しく追加されてるね。英語弱いので助かります。

643 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/12(日) 20:46:21 ID:bhv5GHsf0]
1by1のビッグウィンドウを思い出したw

644 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/12(日) 21:28:50 ID:XLkAadI10]
スレ違いっぽいけど
admin権限なしでCtrl<->CapsLock交換できるソフトってない?
autohotkeyでキー置換の大部分はできるんだけど
これだけ困ってる。

645 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/12(日) 21:54:14 ID:PppMsUH80]
>>644
日本語ユーザーはやっぱりその壁にぶち当たるんだよな

で、なんでautohotkeyではこのキーだけ駄目なんだろう
内部で特殊な処理をしているのかな

646 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/12(日) 22:26:34 ID:r11nbAGs0]
WheelAccel.ahkでIE上でホイールを早く回した場合に、スクロールが上手く加速されていないような気がします。
IE上で素早くホイールを回した場合でも、回転に応じたスクロールができるようになりませんでしょうか。

647 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/12(日) 23:39:09 ID:ln8RqTb30]
IEのスムーズスクロールをOFFにする
A_EventInfo を考慮した加速方式にする

648 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/13(月) 03:50:01 ID:25xJ6v2w0]
すみません、どなたかご教授お願いします。
プログラムに明るくなくて分かりづらい説明で申し訳ありませんが。

Photoshop使用時に「6」に
6::send +!r
という風にキーを割り当ててます。(ブラシのモードが変更されるショートカット)

それとは別にPhotoshopでは Shift+Alt+クリック で
「カラーサンプラーを配置する」という機能があるのですが、
どうもフォトショ使用中に時折、「6」を押した瞬間にクリックして
ブラシモード切替と同時にサンプラーを配置してしまうのです。

上手いこと「6」と同時くらいにクリックしても
Shift+Alt+クリック にならなくするような方策はないものでしょうか?



649 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/13(月) 04:42:51 ID:hmD/M1lx0]
>>648
これを試してみては

6::
blockinput, on
send, +!r
blockinput, off
return


650 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/13(月) 04:57:26 ID:25xJ6v2w0]
>>649
激減しました、ありがとうございます!

しかしガチャガチャ何度もやってると極稀にサンプラーが起動してしまうことがありました。
とりあえず大分改善されたのでとても助かります。

あつかましい話ですがついでにもう一つ質問させてください。
キーを押しっぱなしにすると連打が始まってしまいますが、これを
抑制するのってどうやればいいんでしょうか?

651 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/13(月) 05:18:04 ID:DVlSaX3W0]
KeyWait, 6
return
にすればいいかもしれないね。
それか、6 up::にしてキーを離したときに送るか。

652 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/13(月) 06:43:56 ID:hmD/M1lx0]
>>650
>>649でダメなら

#InstallMouseHook
6::
if !getkeystate("LButton", "P")
send, +!r
return


連打しないで押したままにしたいなら↓みたいな感じかな

a::
send, {a down}
keywait, a
send, {a up}
return

653 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/13(月) 19:54:37 ID:0vf0TAcu0]
ソフトの使い方を常にポップアップ表示させるようなものを作りたいんですが
ソフトのウィンドウを動かした時に、一緒に説明の画面も追随するようなのって
どうやったら作れますか?

654 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/13(月) 20:30:43 ID:Ay3UPRR20]
エスパー難しすぐる

自作GUIならOnMessage()使ってウィンドウメッセージの"WM_MOVE(0x3)"を拾う、
そうでないならタイマーでウィンドウ位置を監視して動いた稼働かを検知、

で、追従させたい窓を移動

655 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/13(月) 22:22:03 ID:H1zTlTqI0]
>>644 が求めている解決方法ではないけど、
自分の場合は、ソフトでの解決はあきらめて、
Ctrl<->CapsLock交換できるキーボードを使っています。

656 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/14(火) 00:22:52 ID:+WvFDJJL0]
>>654
なるほど、タイマー使う手がありますね。
サンクスです。

657 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/14(火) 16:20:23 ID:sa012nT50]
Run,"hoge.exe"で外部のスクリプトやアプリを実行するとき、
ビープ音がなるんだけど、これを止める方法はないもんかな?

658 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/14(火) 16:34:44 ID:7q5WOPK90]
うちではpingコマンドを定期的にルータに向けて発射させてるが、
意図的にsoundbeepコマンドを使わない限り、鳴らないけど?



659 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/14(火) 17:12:09 ID:D6tdSy390]
Run, notepad
うん、無言で起ち上がる

660 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/14(火) 17:27:38 ID:19+rPi280]
ウィルス対策ソフトの設定かな?
AutoHotkeyを除外すれば解決するんじゃないかと見た

661 名前:657 mailto:sage [2009/04/14(火) 19:02:25 ID:sa012nT50]
ウィルスソフト切っても鳴ってる。
キーに割り当てないで、スクリプトの先頭で、Run, notepad と書けば鳴らないで起動するけど、
キーに割り当ててから、キーを押してアプリやスクリプトを起動するときはビープ音が鳴ります。
他のPCのAHKのスクリプトでも、ホットキー押してアプリやスクリプトを起動してもビープ音なってたんだが、
まさか家だけの特別仕様?・・・w 
Zip版で入れたのと関係あんのかな・・・
鳴らしたり鳴らさなかったりするコマンドでもあるのかと思ったんだが。
まぁ、動作状況が分かりやすいといえなくも無いかなw、と。

662 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/14(火) 19:22:49 ID:eiTdV88b0]
b::Run, notepad

をautohotkey.ini にを記述してBを押してみたけど
特に何の音もせず、xyzzyが起動した
(Terapperというソフトでnotepadの代わりにxyzzyを起動するようにしている)

663 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/14(火) 19:31:03 ID:7q5WOPK90]
>>661
ahkのバージョンと、入手場所は?

うちでは、explorerで選択したファイルのハッシュを計算するため、
ホットキーをつかって、呼ばれた場所でハッシュ計算コマンドを呼び出してる。

こんな使い方するのは、ahk界隈では朝飯前だろうから
いちいちビープが鳴ってたら、全世界でクレームだらけになるぞw

664 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/14(火) 19:42:22 ID:M4uz39800]
・何かのデスクトップテーマや常駐ソフトで音が鳴るようになってる
・本当のウィルスに感染してる
・PCの中にいる妖精さんが鳴らしている

665 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/14(火) 20:33:27 ID:sa012nT50]
>>662
そのように、ためしに別の組み合わせのキーの横に直接記述したら、音が消えました。
普通に動いてるから気にしてなかったんだけど
スクリプトの記述のエラーのビープ音なのかも・・・。
>>663
>>全世界でクレームだらけになるぞw
そりゃそうだ。
>>664
たぶん妖精さんですねw

みなさんお騒がせしました。ごめんね。

666 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/14(火) 21:20:21 ID:j9JZmdvM0]
>>665
@割り当ててるホットキーがすでに別のソフトに割り当てられててそっちで音がなってる。
AたとえばWin+Dを押したとき、エクスプローラにDキーが送られて、エクスプローラから「Dで始まるファイルなんてねえよ!」って言われて音が鳴る

ぱっと思いつくのはこれぐらい

667 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/14(火) 22:50:52 ID:9Q5al6/M0]
コンパネの「サウンドとオーディオデバイス」の設定で
「プログラムの起動」に音が設定されているにイッピョ

668 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/14(火) 23:00:00 ID:McvR1AuZ0]
>>667
+エラーだろうな



669 名前:名無しさん@お腹いっぱい。 [2009/04/16(木) 01:42:10 ID:WuzwTPez0]
代入について質問します
autohotkeyでは以下の二つの処理のうち、より早いのはどちらなのでしょうか。

a = test
a := "test"


670 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/16(木) 02:04:46 ID:mvpsM9MdP]
>>669
ttp://lukewarm.s101.xrea.com/test/read.cgi/bbs/1157529465/97
最近のバージョンではどうか知らない

671 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/16(木) 02:10:27 ID:QXtfAzQn0]
適当に作った。こっちでは、数値でも文字列でも 「=」 のほうが 「:=」 より速い
Gui, Add, ListView,Grid,Name|Count|Time(ms)
Loop, 3
 LV_ModifyCol(A_Index, 80)
Gui, Show
count := 1000 * 1000
Tests = Test1|Test2|Test3|Test4
Loop, PARSE, Tests, |
{
 StartTime := A_TickCount
 Gosub, %A_LoopField%
 Time := A_TickCount - StartTime
 LV_Add("", A_LoopField, count, Time)
}
return
Test1:
 Loop, %count%
  a = 1000
 Return
Test2:
 Loop, %count%
  a := 1000
 Return
Test3:
 Loop, %count%
  a = あいうえお
 Return
Test4:
 Loop, %count%
  a := "あいうえお"
 Return

672 名前:名無しさん@お腹いっぱい。 [2009/04/16(木) 05:16:49 ID:qBUQoLG70]
Version 1.0.48.01

673 名前:669 mailto:sage [2009/04/16(木) 08:07:16 ID:WuzwTPez0]
>>670-671
ありがとうございます。
昔から層だったのですか。


>>672


674 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/16(木) 08:41:24 ID:rRTU/mFz0]
>>585
>数十万件ほどある2chのDAT自動分類とか、本文検索、カテゴリわけ、統計抽出で使ってる。
便利そうだなあ、うpおねがいできない?

675 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/16(木) 16:03:00 ID:DnQKjK+d0]


676 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/16(木) 16:29:05 ID:dH1w2+Gu0]


677 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/16(木) 17:23:25 ID:bLNrS1bm0]


678 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/16(木) 18:12:44 ID:cHHoWky00]




679 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/17(金) 01:36:32 ID:mo1/Vcwy0]
>>671
じゃあ := の存在意義ってあるのかな?

680 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/17(金) 01:39:57 ID:EfTDXa450]
:=は、右式で計算するときじゃね? と俺は理解して使い分けてるけど


681 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/17(金) 03:32:56 ID:XkaWyP6+0]
計算しようとする分、遅くなるんだろうね。

682 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/17(金) 21:58:16 ID:xuJtArT2P]
|=
の使い道が分からん

683 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/17(金) 23:21:53 ID:NeCnakzy0]
扉を開けるって意味のAAじゃないのか?

684 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/17(金) 23:34:41 ID:s+XI67ya0]
>>682
flags|=NEW_FLAG

685 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 00:06:21 ID:1kiue+Dq0]
Orのビット演算した結果を代入じゃないの?

686 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 00:29:50 ID:kItLjanl0]
ビット演算とか Or の概念自体がわからんのじゃね?
AHKのサンプルでも | じゃなく +で足し込んでフラグの説明してる場合が多いしな

687 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 10:36:33 ID:tJm8WU8c0]
インストーラー形式の方ではなくzip版AutoHotkey104801.zipで
MouseGesture2を使わせて貰おうと思うのですが
AutoHotkey104801.zipを解凍したフォルダに入っているのLibフォルダの中に
MouseGesture2.zipを解凍して出来たフォルダ一式を入れてAutoHotkey.exeを
実行してもドキュメントフォルダにAutoHotkey.ahkを作成するかを聞いてきて
yesにしてもnoにしてもMouseGesture2.ahkを読み込めません。
AutoHotkey.exeを実行しただけで、複数の.ahkを読み込みたいのですが
インストーラーでインストールしないと無理なのでしょうか?


688 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 10:37:58 ID:VGVOYY6h0]
低レベル過ぎ
流行らせるページで初歩を学んでこい



689 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 11:17:02 ID:tJm8WU8c0]
>>688
AutoHotkey.exeの実行は読んだのですが自分のやり方が間違っているので出来ません。
MouseGesture2など複数の.ahkをAutoHotkey.exeをクリックしただけで実行できる
具体的な方法を聞きたいのです。

690 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 11:19:11 ID:YTnYPyoc0]
>>689
やり方が間違ってるって分かるんなら解決できるだろ

691 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 11:23:56 ID:tJm8WU8c0]
流行らせるページを参考にしただけでは無理だったので聞いています。

692 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 11:26:32 ID:TxHWsmXa0]
#Include項を読めば、問題解決。
別々にexeに送ったほうがいいよ。includeしても問題が発生するだけ。ランチャ登録で、一発じゃん。

693 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 11:33:10 ID:HfGyibd50]
MouseGesture2 は単体で起動した方がいいね
でもこの調子じゃ使いこなすまでにかなり苦労しそうな雰囲気…

694 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 11:33:13 ID:TxHWsmXa0]
使用方法の「AutoHotkey.exeの実行」と
スクリプト仕様の「スクリプトの起動とAuto-executeセクション」も参照。
これで理解できないなら、聞くだけ無意味。初期の初期です。

695 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 11:42:06 ID:kItLjanl0]
色々便利な機能があるのは分かってるが組込みが面倒臭そうすぎて敬遠してるな>MouseGesture2
そこそこAHK暦ある人間ですらそんな状態なので、とりあえず単体起動で常用して
組込み(含むLIBでの自動組込み)は自力でAHK書けるようになってからにしたらいいと思う

696 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 11:51:36 ID:TxHWsmXa0]
マウ筋とAHKの組み合わせで必要十分だしね。
さらに踏み込みたいなら、MouseGesture2は非常に便利なんだけどね。
マウ筋を使いすぎて環境移動が面倒くさいのもあるけど。

ただ、ここでMouseGestureがあったらなとは、よく思う。
JaneStyleとかのマウスジェスチャーつきのソフトでは、よく思う。

697 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 12:03:30 ID:tJm8WU8c0]
>>688-696
付き合って頂きありがとうございます。
マウ筋からMouseGesture2への乗り換えの最中に問題が出てファビりました。
後出しで申し訳ありませんが、MouseGesture2とnamazu_ime_scr_v10201だけ
他のスクリプトとうまく(動いたり動かなかったり)読み込めなかったので質問しました。
マウ筋はv1.40になってかなり便利なのですが、もう少し自由度が欲しいので
ncludeを使ったりしてもう暫く色々やってみます。
最悪、MouseGesture2とnamazu_imeは単体で動かします。
皆さん本当にありがとうございました。

698 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 12:30:04 ID:XnVnH0l70]
経験則だが

MouseGesture.ahkはAuto-executeセクションで#includeするスクリプトの中では最後に記述する
なまず日記のスクリプトを#includeする場合はAuto-executeセクション以外の方がいい
※スクリプト内でReturnを使ってる場合はエラーが出るから



699 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 12:39:43 ID:tJm8WU8c0]
>>698
ありがとうございます。未だ奮闘中なので
>Returnを使ってる場合は
これかな?
なまずさん所、詳しく読んでみます。

700 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 12:51:20 ID:UjDkIbnE0]
インクルード(関数ライブラリ含む)の仕様上無理だってのはわかるけど
インクルード「される」側のAutoexecブロックとかプリプロセッサ命令(#NoEnvとか)を
有効にするかしないかを選びたいなぁと思う事はある。

701 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 17:57:57 ID:1kiue+Dq0]
たとえば、下の二つは個別ではきちんと動く
-----------------------------
Func_AAA()
return
Func_AAA(){
ToolTip,AAA
return
}
-----------------------------
Func_BBB()
return
Func_BBB(){
ToolTip,BBB
return
}
-----------------------------
けどIncludeすると下のようになって実行できない
-----------------------------
Func_AAA()
return ;ここで終了
Func_AAA(){
ToolTip,AAA
return
}
Func_BBB() ;ここまでこない
return
Func_BBB(){
ToolTip,BBB
return
}
-----------------------------

702 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 18:15:51 ID:TxHWsmXa0]
結局、全部統合して一つのスクリプトにするってだけだから、変数とかAuto-Executeとか理解しながらまとめるしかない。
競合したりすると原因究明が面倒くさいから、個別に管理してる。

703 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 19:32:24 ID:14iQRRzH0]
MouseGesture2にて
・条件定義タブで「種別=>ウィンドクラス」「値=>CabinetWClass」
・ジェスチャ定義タブで「定義名=>右↓→」「カーソル移動=>RB_DR_」
・動作割り当てタブで「Send,^w」と設定しました。
これで「右↓→」でウィンドウを閉じるようにできました。

ところがファイルを右ドラッグした時の右ドラッグメニュー「ここにコピー」等の
表示レスポンスが落ちました。
設定タブでタイムアウトを「200」にしましたが、まだ遅いと感じます。
できればファイルやフォルダのアイコン上ではマウスジェスチャーを無効化したいです。

下のサイトはマウ筋の設定ですが、まさにこれと同じ事で悩んでいます。
こういった設定はどうすればいいですか?
f57.aaa.livedoor.jp/~atechs/pukiwiki.php?faq%A4%C8%BC%BA%C7%D4%CE%E3#i0b3c179

704 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 19:43:43 ID:TxHWsmXa0]
>>703
>>488のこれが使えるかも。
ControlGet,StateListView,List,Selected,%ClassNN%,ahk_id %WindowID% ; StateListViewにSysListView32の選択項目名を入れる

705 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 21:55:07 ID:14iQRRzH0]
>>704
ありがとうございます。
先日マウ筋から乗り換えたばかりの自分には少し難しいかもしれません。
自分の勉強不足です。
色々試してみます。

706 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/18(土) 22:49:52 ID:vwMG/qD80]
条件定義で条件を作成し(例えば条件名を GestureCancel とする)
カスタム条件式で下記の何れかを登録(または複数登録)
MG_LvHitTest()
MG_TvHitTest()
MG_TreeListHitTest()
※関数の詳細はReadme.txtの335行目〜の「●ユーティリティ変数・関数」を参照

ジェスチャ定義で RB_ を作成

動作割り当て
RB_ を選択
条件 GestureCancel
動作 MG_About()

これで以前と同様に扱えると思う

707 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/19(日) 00:06:23 ID:RYyoU1dL0]
あるキーが押されたらループを抜けて次の処理へ、ということをやりたくて
以下のように書いていますが、タイミングによってはスリープに引っ掛かって
失敗してしまいます。ホットキーの利用も考えたのですがうまくいきません。
低レベルで申し訳ないのですが、どう書けばいいのでしょうか…?
(スリープ処理は残しておきたいです)

Loop
{
if ( GetKeyState("RETURN") = 1)
Break
Else
Sleep,100
}

708 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/19(日) 00:11:10 ID:zeE5du8S0]
KeyWait, Return, D
msgbox, test




709 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/19(日) 00:24:59 ID:OzydvQTn0]
KeyWait使うのが楽だと思うけど。。。
どうしてもSleepを残すのならば、ループ内でキーを拾えないのはしょうがない
ホットキーつかってフラグの上げ下げすりゃいいはず

Loop
 Go := false
 while (Go==false)
  Sleep, 100
  :

SomeKey::Go:=true

710 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/19(日) 00:39:19 ID:RYyoU1dL0]
>>708-709
ありがとうございます!
実際はループ中に他の処理もしているので(省略してしまってすみません)、
KeyWait で止まってしまうのはまずかったのです。
フラグを立てる方法でうまくいきました。ありがとうございました!

711 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/19(日) 17:31:21 ID:85CwF9t90]
GUIに現在時刻をリアルタイムで表示したいんですがどうすればよいのでしょうか?

712 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/19(日) 17:44:32 ID:tIMrGJMJ0]
>>711
組み込み変数
%A_YYYY%年%A_MM%月%A_DD%日%A_Hour%時%A_Min%分

713 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/19(日) 22:16:23 ID:OzydvQTn0]
; 簡易マウスジェスチャ関数
; ジェスチャの結果をLRUDの文字列として返す

GetGesture(timeout=1000, tipNo=0, sensitivity=30) {
 CoordMode, Mouse, Screen
 CoordMode, Tooltip, Screen
 ButtonName := RegExReplace(A_ThisHotkey, "^\W+|\s.+", "", "", -1)
 MouseGetPos,nx,ny
 qp := ATan(1), lastDir = ""
 while GetKeyState(ButtonName, "P") {
  if (A_TimeSinceThisHotkey > timeout && !gesture) {
   if (tipNo)
    Tooltip,Timeout, x+16, y+16, %tipNo%
   break
  }
  MouseGetPos,x,y
  dx:=x-nx, dy:=y-ny
  if (tipNo)
   Tooltip, %gesture%, x+16, y+16, %tipNo%
  if (Mod(A_Index, 10)!=1 || Sqrt(dx**2 + dy **2) < sensitivity)
   Continue
  rad := ATan(dy/dx)
  dir := (rad < qp && rad > -qp ) ? ((dx > 0) ? "R" : "L") : (dy>0) ? "D" : "U"
  if (lastDir != dir)
   gesture .= dir
  lastDir := dir, nx:=x, ny:=y
  Sleep, 20
 }


714 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/19(日) 22:18:27 ID:OzydvQTn0]
; 続き
 if (!gesture) {
  Send, {%ButtonName% Down}
  KeyWait, %ButtonName%
  Send, {%ButtonName% Up}
 }
 if (tipNo)
  Tooltip,,,, %tipNo%
 return gesture
}

利用例)

SetTitleMatchMode, RegEx

#IfWinActive, ahk_class CabinetWClass|ExploreWClass|MozillaUIWindowClass|IEFrame
$RButton::
 g := GetGesture(1000, 20)
 Send, % (g=="R") ? "{Browser_Forward}" : (g=="L") ? "{Browser_Back}" : (g=="LDR") ? "^w" : ""
 return


715 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/20(月) 02:35:47 ID:MR7L4s8s0]
>>712
ソフト起動時の時間しか表示してくれません・・・。
できればリアルタイムで表示が変わっていくようにしたいんですが

716 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/20(月) 03:06:03 ID:NtrPHVPz0]
>>715
そりゃそうさ。
Gui,Showをするか、GuiControlで変えるかしないと。
チカチカする場合は、
SetBatchLines, -1 ; maximize script speed!
SetWinDelay, -1
を書けば緩和されるかも。

717 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/20(月) 03:14:34 ID:MR7L4s8s0]
>>716
ありがとう!
明日試してみます。

718 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/20(月) 05:28:09 ID:JG3J5CMR0]
変数名の中に変数を入れた場合その変数を呼び出すにはどうすればよいのでしょうか?
たとえば

no=1
name%no%=taro

こうした場合%name1%では呼べますが%name%no%%では呼べません。



719 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/20(月) 08:57:33 ID:dpb8VPO80]
:=

720 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/20(月) 21:17:57 ID:i3tTOHu+0]
>>718
no=1
name%no%=taro
dainyu:=name%no%
msgbox, %dainyu%

こんな感じにしてる。

721 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/20(月) 22:30:21 ID:WxIZTvGU0]
1.0.48.02キター

722 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/20(月) 23:22:48 ID:fqH4UQW20]
変数の参照の仕方は変態的だよなぁ

a1 = ああああ
a2 = いいいい
a3 = うううう
a4 = ええええ
a5 = おおおお
Loop, % 0+2+3 {
 Tooltip, % "a" . A_Index " = " . a%A_Index%, A_Index*10 , % A_Index*20, %A_Index% ; ※
 Sleep, 2000
}

※で色々な参照方法があるけど通るってある意味すごい

723 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/20(月) 23:28:21 ID:M2RTDhVt0]
このスレってなんですか
ウイルススレですか

724 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/21(火) 00:03:25 ID:dpy2yIyN0]
タスクバーの右クリックで出るメニュー open をみると
履歴らしきものが出ますが、不要な場合
履歴を記録しないような設定は出来ますでしょうか。

725 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/21(火) 00:29:47 ID:sZR4frkX0]
最前面ってのはできるけど指定ウィンドウの前面って配置させることはできません?

726 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/21(火) 01:14:56 ID:+3mbXAWQ0]
コマンド1発じゃできないだろうけど、できると思うよ

727 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/22(水) 17:30:52 ID:I73rPchU0]
;の後に書くコメントは日本語だとまずいですか?
英語版windowsで使えなくなるとか、何かで問題が起こるとか、
その様な不具合はありますでしょうか?

728 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/22(水) 17:45:26 ID:zXLOeeEn0]
無問題



729 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/22(水) 17:46:05 ID:I73rPchU0]
即レスthxです。

730 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/22(水) 18:34:33 ID:lbTzV7q7P]
>>727
もしかすると、SetTimerコマンドを使っている場合、
コメントにダメ文字(>>3)が入ってるとまずい場合があるかも

先週くらいからコメントに「〜」とかが入っているスクリプトを作って使い始めたんだけど、
何回か、“NTMARTA.DLLは正しいイメージファイルではありません” というエラーメッセージが出て
他のアプリケーションを巻き込んで挙動がおかしくなることがあった
(ちょっと調べたところでは、全く処理が行われていない次回サブルーチン起動待ちの状態でエラーが出ている)
おとといくらいから該当部分のコメントを修正して様子見をしてるんだけど、いまのところエラーが出てないような感じ

731 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/22(水) 20:27:38 ID:Cv0jfypZ0]
gaatsu.ps.land.to/up/src/up_0122.jpg


Gui, Add, Radio ,vRadioA , aaaaa
Gui, Add, Radio ,vRadioB , bbbbb
Gui, Add, Radio ,vRadioC Checked1, Manual
Gui, Add, Edit ,vEdit ,
Gui,Show


おおざっぱにこういうのつくってるんですがaaaaa、bbbbbにチェックが入ってると
Manualのテキスト入力欄がグレイアウトして、入力できないようにするには
どうすればよいのでしょうか?

732 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/22(水) 21:00:51 ID:R/5HKiXn0]
Gui, Add, Radio ,vRadioA Gtext_usable, aaaaa
Gui, Add, Radio ,vRadioB Gtext_usable, bbbbb
Gui, Add, Radio ,vRadioC Gtext_usable Checked1, Manual
Gui, Add, Edit ,vEdit,
Gui,Show
Return

text_usable: ;ラジオボタンの操作に連動したルーチン
GUI, Submit, NoHide
If(RadioA or RadioB = 1){
GuiControl, Enable0, Edit,
}
Else if RadioC = 1
GuiControl, Enable1, Edit,
Return


733 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/22(水) 21:01:40 ID:zXLOeeEn0]
Gui, Add, Radio ,vRadioA gEvent1, aaaaa
Gui, Add, Radio ,vRadioB gEvent1, bbbbb
Gui, Add, Radio ,vRadioC gEvent1 Checked1, Manual
Gui, Add, Edit ,vEdit ,
Gui, Show

Event1:
Gui, Submit, NoHide
GuiControl,Disable%RadioC%,Edit
Return


734 名前:名無しさん@お腹いっぱい。 [2009/04/22(水) 21:13:52 ID:pLtZjKfp0]
特定のプログラムだけスリープさせるのってできましたっけ?

735 名前:734 [2009/04/22(水) 21:36:21 ID:pLtZjKfp0]
api32 のsuspendthread を使ってやってみます

736 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/22(水) 22:41:47 ID:JfqAvQ+s0]
選択した文字列の最初の行をファイル名.txtで保存するahk教えて君

737 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/22(水) 22:48:24 ID:zXLOeeEn0]
以下を何らかのイベント(ホットキーが便利)をトリガとしてで処理させる
@ (クリップボードを待避)
A ^cを送る
B クリップボードが読めるのを待つ
C PARSING LOOP を使ってクリップボードを行毎に処理させる
D 1ループ目で、行内容を別変数に保存してループ終了
E ファイル出力コマンドで吐き出す
F (待避したクリップボードを戻す)

@Fはなくても良い
^cでコピー出来ない場合は別の方法を考える

738 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/22(水) 23:09:07 ID:JfqAvQ+s0]
#c::
Send,^c
ClipWait
SetEnv,word,%clipboard%
ファイル出力

こうですか?わかりません



739 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/22(水) 23:55:14 ID:zXLOeeEn0]
C Loop, PARSE を使う
  区切り文字は `n 。先頭・最後の Tab, 半角スペース、 `r などは除外した方がいい
  ※ クリップボード内容を他の変数に代入しないでも文字列分割ループで参照できる
D ここはCのループ内。やる事やったらすぐ Break。(1行目だけ欲しいから)
  ファイル名代入時に禁則文字を置換した方がベター
E FileAppend を使う
  出力内容は Clipboard そのもの。ファイル名はDで取得したもの。
  このコマンドは常に追記になるので、事前に IfExist て存在したとき FileDeleteしたほうが良い
  出力フォルダを変えたい・日時を入れたいとかなら、 A_MyDocuments, A_Day などの「組み込み変数」を使う

740 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/23(木) 00:15:01 ID:acO3R8MP0]
このスレってautohotkeyの海外のwikiのように
鋭い指摘やおもしろい手順がいくつもあるよな
勉強になるわ

741 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/23(木) 00:16:45 ID:JNriN8sz0]
>>732,733
できました。ありがとう!

742 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/23(木) 00:32:02 ID:K/YTztcc0]
>>732
横レスですまんが
>If(RadioA or RadioB = 1){
これは
RadioA = 1 or RadioB = 1
みたいなもの?

743 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/23(木) 08:38:13 ID:ehgiERWq0]
Radioなら1か0だから、それと等価ではある
個人的には後者のように素直に書くか、
いっそのこと if ( RadioA or RadioB ) の方が明快だと思うけどね

744 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/23(木) 08:39:08 ID:neftGxox0]
#IfWinActive, aaa
^Numpad9::

#IfWinActive, bbb
<^Numpad9::
>^Numpad9::

↑のように#IfWinActiveのどこかで、左か右かのモディファイアキーを使用する設定にしてると
aaa がアクティブな時に Ctrl+テンキー9 を押しても機能しないのですが、
これは仕様なのでしょうか?

念のためにAutoHotkey.iniをクリアして↑のホットキーだけで試してみたのですが、同じ結果になりました。

745 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/23(木) 17:01:08 ID:7IN0MA170]
Ver104802 で試してみたけど、(今のところ?)修飾キーに < > を利用すると
< > 無しの同一ホットキーが効かなくなるみたいやね。
これは同一スクリプト内だけの問題で、スクリプトを別にすると効くみたい。

スクリプト内で < > を利用する場合、左右の区別が不必要でも
< > を記述して対応するのが簡単かも。

#IfWinActive, aaa
<^Numpad9::
>^Numpad9::
send, a
return

#IfWinActive, bbb
<^Numpad9::send, b
>^Numpad9::send, c


746 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/23(木) 19:44:43 ID:Z06C8ITC0]
GUI, Add, Text,, %clipboard%
GUI, Show

初歩的な質問で申し訳ありませんがクリップボードの内容が変更したら
表示も同時に変わるようにするにはどうすればよいのでしょうか?
Redrawオプションの使い方がいまいちわかりません・・・。

747 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/23(木) 19:45:36 ID:IDkO4Joj0]
OnClipboardChange

748 名前:736 mailto:sage [2009/04/23(木) 19:55:54 ID:sSOdcq6M0]
>>739
親切にありがとう

#c::
Send,^c
ClipWait
StringSplit, name, clipboard, `,.`n%A_Tab%, %A_Space%
FileAppend,%clipboard%,D:\memo\%name1%.txt

こんな感じで行き詰っています。
ファイル名取得できまへんがな



749 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/23(木) 20:30:30 ID:Z06C8ITC0]
>>747
ありがとう
でも再描画の仕方がわからない・・・。

750 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/23(木) 22:24:24 ID:Baw+u3zK0]
>>748 でもそれなりに動くけどな。
区切り文字がカンマ(,)またはピリオド(.)またはタブで、前後の空白除去、って動作だけど
思った通りなんだろうか。

テストした文字列の1行目に禁則文字「 \ / : * ? " < > | 」が入ってて
FileAppendでエラーになっているんじゃないかと予想。
完成するまではMsgBoxとかで変数内容確認すると良いよ。

あとエラーかどうかは、ErrorLevel調べれば分かる。
文字列置換(StringReplace か RegExReplace)で引っかからない文字にすればいい。

>>749
GuiControl コマンド

751 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/23(木) 22:45:13 ID:neftGxox0]
>>745
レスありがとうございます。
やっぱり仕様なのかなあ・・・

752 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/24(金) 00:13:08 ID:4ogwzjQN0]
GUI, Add, Text,Vaaa, %clipboard%
GUI, Show
return
OnClipboardChange:
GuiControl, MoveDraw, aaa,
return
GuiClose:
Exitapp

わからん・・・。

753 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/24(金) 00:14:45 ID:+WwSzOjf0]
>>647
誰かそれを作った人はいませんでしょうか?

754 名前:736 mailto:sage [2009/04/24(金) 00:27:01 ID:umX25vaH0]
>>750 thx
> テストした文字列の1行目に禁則文字「 \ / : * ? " < > | 」が入ってて
それでしたw

あとひとつだけ、
StringReplace, fname, name1, %A_Tab% \ / : * ? " < > | ,, ALL
複数の検索文字列はどう書けばいいんでしょうか?

755 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/24(金) 01:14:10 ID:4Tp5poaX0]
>>754
以下から好きな(もしくは自分で改造できる)方法で
(どれも禁則文字をアンダースコアに変換する)

@ StringReplaceを指定文字の回数頑張る
StringReplace, FileName, FileName, \, _
StringReplace, FileName, FileName, /, _
 :

A @を単純化するために検索文字リストを作成してループで回す
NG = \/:*?"<>|
Loop, PARSE, NG
  StringReplace, FileName, FileName, %A_LoopField%, _

B 正規表現でやる
FileName := RegExReplace(FileName, "[\\\/\|\?\*:<>""\t]", "_", "", -1)

※ \(0x5c)に関しては誤爆がありうるので注意(BREGEXPなどを使えば回避できるが・・・)

756 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/24(金) 09:01:46 ID:iP7K7SB40]
ラジオボタン
途中で別のコントロールを追加すると、次からは新しいグループになる。

同じグループにすることってできないだろうか・・・。

757 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/24(金) 11:18:44 ID:BW5MCYnb0]
今気づいたけど

組み込み関数の引数にコマンドライン引数を指定する事って出来ないんだな
a = %1%
とか一々しないといけないのは面倒

758 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/24(金) 20:36:29 ID:umX25vaH0]
>>755thx
#c::
Send,^c
ClipWait
StringSplit, name, clipboard, `r, %A_Space% %A_Tab%
fname := RegExReplace(name1, "[\/\|\?\*:<>""\t]", "_", "", -1)
FileAppend, %clipboard%, D:\memo\%fname%.txt
MsgBox,64,,%fname%.txt`rを保存しました。,2
return

ばっちりです!



759 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/24(金) 22:41:32 ID:4Tp5poaX0]
おめ。

#cを連打してみると不具合が出るよ(ファイル内容を確認すれば分かる)
そのときは >>739のE



760 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/25(土) 13:20:37 ID:RzJzru2Y0]
NoCloseでクローズボタンの無効化をしたいのですが、
ウィンドウ生成とともに無効化されるようになりません。
ショートカットキーによる無効/有効のトグルはできるのですが、
Rulesに ahk_class Notepad と書いた状態で notepad を起動しても、
新規ウィンドウのクローズボタンは有効のままです。
Disable close buttons on Window Creation
のチェックボックスはチェックしています。
なぜRulesの記述が有効にならないのか
わかる方がいましたらご助言お願いします。

761 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/25(土) 15:24:35 ID:LVJjcW7S0]
XPのExplorerで、ファイルをドラッグアンドドロップしはじめると、
マウスカーソルが禁止マークになって、
掴んだファイルが半透明で表示されます。

このとき、マウスの左ボタンから手を離す前に
掴み中であることを識別して別の処理をしたいのですが、
掴んでるファイル名を取得する方法はないでしょうか。

762 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/25(土) 16:54:54 ID:KzAWR4DV0]
たまたま似たようなの作ってた。

; Button Up直前にGUIを置いてファイルを取得する
Gui, -Caption -ToolWindow +AlwaysOnTop
Gui, Show, w3 h3 Hide

pattern := "ExplorerWClass|CabinetWClass"

LButton::
 Send, {LButton Down}
 KeyWait, LButton
 IfWinExist, ahk_class SysDragImage
 {
  CoordMode, Mouse, Screen
  MouseGetPos, x, y, hwnd, classNN
  WinGetClass, class, ahk_id %hwnd%
  If RegExMatch(class, pattern)
   Gui, Show, % "NA x" (x-1) " y" (y-1)
 }
 Send, {LButton Up}
 Gui, Hide
 return

GuiDropFiles:
 MsgBox, %A_GuiEvent%
 return


763 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/25(土) 17:08:39 ID:Y2iaPllI0]
おーありがとうございます!
自スクリプトに組み込んで活用させていただきます。

764 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/25(土) 23:47:43 ID:Aak6Bmgi0]
だれか、ahk の日本語解説本、書いて下さい。
英語は細かいところがわからなくて困る。

765 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 00:14:17 ID:RsidKdjm0]
>1

766 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 00:42:15 ID:XR0J5Yoc0]
これだな。2007/09/05だから少々古い。
ttp://www.flib.jp/D800/book854.html

767 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 15:13:57 ID:AJINZZJZ0]
exeからahk取り出せませんか?

768 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 15:20:55 ID:7UkZFFcM0]
>>767
できます。パスワードなければ



769 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 15:29:58 ID:AJINZZJZ0]
パスはつけてないんですがどうやってソース取り出すか教えてください

770 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 15:33:35 ID:E78MgH1L0]
exe2ahkでググレクズ

771 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 15:38:55 ID:AJINZZJZ0]
>>769,770
ありがとう

772 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 16:30:26 ID:yHBXLU9I0]
::a::autohotkey{ENTER}
の動作にツールチップ(一秒後に消える)
を着けたいのですがうまくいかず困っています。
RemoveToolTip:の部分でエラーを出されてしまいます。

a::
send ,autohotkey {enter}
ToolTip, AHK
SetTimer, RemoveToolTip, 1000
return

RemoveToolTip:
SetTimer, RemoveToolTip, Off
ToolTip
return

なにぶん最近いじり始めたばかりなので
根本的なところで間違えてるかもですが
問題点を教えてください。
よろしくお願いします。


773 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 17:19:15 ID:ViVhDQ+t0]
>>772
2行目のsendの後が全角スペースになってる。
あとsendで送られたのがautohotkeyじゃなくてutohotkeyになった。
a::を$a::に変えたら直った。

どんなエラーが出てたのかわからんけど、基本的にそのままで行けた。

774 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 17:52:28 ID:PRYSHYE50]
> SetTimer, RemoveToolTip, -1000

で1度だけの呼び出しに出来るよ

775 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 21:23:21 ID:yHBXLU9I0]
>>773,774
レスありがとうございます。

>>773の方法だとうまくいかないようです。
エラーは

Line Text:Removetooltip
Error:Duplicate label
The program will exit.

です。
環境が違うせいなのかな?
当方環境 AHK v1.0.48.02 OS:VistaHP32bit

>>774の方法で後半部分を削ると動きました。

::a::autohotkey{ENTER}
での動作に比べて動作速度が遅くなるのは仕方ないのでしょうか?
SendMode Inputとか入れてもあんまり効果ないようです。



776 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 22:35:29 ID:PRYSHYE50]
>>775
a::
Send, autohotkey {enter}
  ↓
Send, a ; ココで同サブルーチンが呼ばれてしまう。(>>5参照)
Send, u ; これ以降は普通に動作
  :
Send, {Enter}

> 動作速度が遅くなるのは仕方ないのでしょうか?
SetKeyDelay

777 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/26(日) 23:18:41 ID:yHBXLU9I0]
>>776
レスありがとうございます。
SetKeyDelayを使用して十分な速度で動くようになったのでこれで運用してみようと思います。

>>775の時はこのスクリプトの前の他のスクリプトで既にRemoveToolTip:を使用していたため
RemoveToolTip:の部分でエラーを吐いていたようです。
WhichToolTipのあたりを勉強してきます。


778 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/27(月) 00:09:04 ID:+ovk7Hbu0]
>>766
> これだな。2007/09/05だから少々古い。
> ttp://www.flib.jp/D800/book854.html

ありがとうございます。
しかし、専用viewer が怪しそうで、downloadしなかったので、見られませんでした。
残念



779 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/27(月) 11:31:05 ID:0QYIMn790]
書籍の形にこだわる理由は何?
流行らせるページはなんでスルーなの?

780 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/27(月) 12:05:09 ID:/pHC43gt0]
本の宣伝にならないからw

という冗談は置いておいて、

流行らせるページも万能じゃないし、
もうちょっと優しめに書かれた入門書が欲しいという初心者がいても不思議じゃないと思うけど

781 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/27(月) 12:40:58 ID:+rxhALv90]
If Var1 = %Var2% と If (Var1=Var2) とか、文法にずいぶん癖があるからなあ
最初は俺も苦労した

782 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/27(月) 17:00:26 ID:0QYIMn790]
いや、入門レベルならそれこそググればブログなどで取っかかりから説明してるとこ沢山見つかるっしょ

英語云々書いてるってことはわざわざ原点に当たってるみたいだし
むしろより高度な方向の解説を求めてるのかと思ったんだけど。

783 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/27(月) 19:20:25 ID:HMa7F1Xh0]
>>778
てかそれ、流行らせるページの人が書いてるものでしょ

784 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/27(月) 21:17:12 ID:ZpVxt0r00]
わかりやすい書籍があれば
どこででも読むかたちで予習復習できるじゃん

785 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/27(月) 22:16:23 ID:wELKguDV0]
まず前金で200万振り込んでくれ

786 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/27(月) 23:42:24 ID:l7+SdciM0]
>>781
前者はわかるが後者はなんだい?


787 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 00:11:36 ID:KKp3NETS0]
等価だよ
IfEqual, Var1, %Var2%
If Var1=%Var2%
If (Var1=Var2)

こういうのも通るし
count=0
Loop {
 If (count++==3)
  Break
 MsgBox, % A_Index
}

788 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 01:01:30 ID:E1vvN/jt0]
>>787
ありがとう
最後の例はすごいな
そういう発想はなかった



789 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 08:49:47 ID:XnR93Z5I0]
>>679 の := の話と似てるな
:= や if() は、式を書ける分だけ一般の高級言語に近い仕様

ahkは発展途上の過程で色々盲腸的な部分が残ってるんで分かりにくいね

790 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 09:00:55 ID:tUgDcu7Y0]
>>787の3つのIF、速度が違ったりするのかな

791 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 11:14:37 ID:KKp3NETS0]
ちょっとテストしてみた。1万回ループしてms単位の差がでてきた。
バッチ的に回すにしても他の処理の方が圧倒的に重いだろうし、気にするほどじゃない。

792 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 14:00:29 ID:tUgDcu7Y0]
>>791
てことは if() に統一して問題無さそうだね。ありがと。

793 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 15:18:00 ID:6TUioa2p0]
if()で使うけど、結局は%%つけちゃったり、""をつけ忘れたりする。

794 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 17:58:54 ID:cLThndOM0]
既出かもしれんが、autohotkey も、なでしこ みたいにbat偽装しても動くんだな。便利だわ。

;@echo off
;"%~dp0Autohotkey.exe" "%~0" %*
;exit
;rem Autohotkey.exeのあるフォルダに hogehoge.bat で保存。
;rem このバッチにファイルをドロップしてみる。
;rem 下記にAHKのスクリプトを記述する。
tmpLimit=%0%
Kari:=""
Loop
{
KariI:=%A_INDEX%
KariR:=chr(13)
kari=%kari%%KariI%%KariR%
if(tmpLimit=A_INDEX)
break
}
msgbox,%kari%

795 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 18:10:30 ID:BorXmBFr0]
>>794
できない言語を探す方が難しいと思うよ

796 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 18:21:57 ID:lIOj1va90]
>>794
bat偽装っていう意味がわからないんだけど、どんなシーンでなんのメリットがあるの?

797 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 18:48:08 ID:cLThndOM0]
>>796
Autohotkey.exeがハードディスクにインストールしてない環境や、
関連付けしてない環境でAhkスクリプトを実行したいときに便利かもしんない。
>>795
よく使ってるUWSCは拡張子をチェックしてるみたいでBatだとはねられちゃった。
なでしこも出来るわな。Dosの複数行をコメントや変数でエラーにならんように
誤魔化せて、拡張子チェックしてない場合はいけそうだ。

798 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 20:02:51 ID:c0gmFX8Z0]
他のアプリからパスを受け取るコマンドってないんですか?



799 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 20:13:23 ID:KKp3NETS0]
その他のアプリがパスをくれるなら、引数なりドラッグ&ドロップなりで煮るなり焼くなりなんなりと。
くれないならアドレスバーとかタイトルバーとかから読む。

800 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/28(火) 20:45:45 ID:c0gmFX8Z0]
>>799
こういうのがしたいとおもって
FileAppend,
(
これは
%ぱす%
です
),D:\aaa.txt

うまくいえないので半年ろむってます


801 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/29(水) 19:08:35 ID:k0T7d2ZLP]
%1%

802 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 17:50:27 ID:kybyWs4G0]
/* hogehoge.js JscriptのスクリプトからAutohotkeyのスクリプトを使うのもOKだった
;*/ //ここからは jscriptのスクリプト Autohotkey.exeの有る場所に置いて実行。
var 変数 = "豚インフルエンザでも海外旅行";WScript.Echo(変数);
var 引数空白付けて2重引用符で囲む=" "+"B"+" "+"\""+"jscriptから引数を渡す"+"\""
var 戻値 = 関数autohotkeyexeで自身のスクリプトを実行_引数空白2重引用符(引数空白付けて2重引用符で囲む);
WScript.Echo("Window Script Host = AutohotkeyからのStdOut = " + 戻値);

function 関数autohotkeyexeで自身のスクリプトを実行_引数空白2重引用符(sArg){
var objshl = new ActiveXObject("WScript.Shell");
var pAutohotkeyExe = WSH.ScriptFullName.substring(0,WSH.ScriptFullName.length - WSH.ScriptName.length)+"autohotkey.exe";
var objExec = objshl.Exec("\"" + pAutohotkeyExe + "\"" + " " + "\"" + WSH.ScriptFullName + "\"" + sArg);
do{WScript.sleep(200)}while(objExec.Status == 0);
//条件が合っている間はloop 戻値を取得
if(objExec.stdout.AtEndOfStream){var result = objExec.stderr.ReadAll();var serror = 1}
else if(objExec.stderr.AtEndOfStream){var result = objExec.stdout.ReadAll()}
return result}
;/*
*/
;/* // ここからはAutohotkey のスクリプト
Arg1=%1%
Arg2=%2%
Fun%Arg1%(Arg2)
FunA(sMes){
FileAppend,%sMes%,*
}
FunB(sMes){
Msgbox,Jscriptからもらった = %sMes%
FunA(sMes)
}
;*/

803 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 18:03:27 ID:/B3Hmf7f0]
でっていう

804 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 19:01:28 ID:SRqHNfq20]
素晴らしい中身の薄さにワロタ

805 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/30(木) 19:07:22 ID:kybyWs4G0]
>>803
SFCminiとかDynaWrapperをインストール出来ない環境で、
jscriptからDLLを使ったり、アプリのウィンドウを制御したり、
ドロップ可能なGUIを使える程度かなw
Suppon.exeからでもDLL使えるんでいろいろできそうだけど
Autohotkey経由のほうが楽。HTAより凝ったことが出来そう。

806 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 02:30:29 ID:V4O1Kqdz0]
タスクバーの上からGUIを貼り付けていろいろ改造してるのですが、
現在のテーマがLunaかClassicかを判別する、ウマイ方法はないでしょうか?

現状、タスクバーの太さ(高さ)で判別していて一見うまくいってたのですが、
「タスクバーを固定する」をONにしている環境だと、LunaでもClassicでも
高さが22で同じになってしまい、判別できなくなってしまいました。

807 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 02:44:30 ID:tK7xHrIL0]
questionbox.jp.msn.com/qa3095644.html

808 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 02:57:12 ID:V4O1Kqdz0]
即レス感謝!おかげさまで解決できました



809 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 17:58:20 ID:8PsslnK50]
WheelScroll.ahk の作者さん、ここ見ていらっしゃいますか?
マルチモニタサブモニタ側 (座標がマイナス値) でホイールが利かないようなのですが、どこを直せばいいものやら…
ヒントをいただければ幸いです。

AHK 1.0.48
Vista SP1
ロジクールのマウスドライバ SetPoint 4.60.122 を併用

810 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 19:34:18 ID:ui+UUCsN0]
>>809
どもです。一応座標値0,0基準での決め打ち動作などはさせていないはずなんですが
WheelRedirect()内の
CoordMode,Mouse,Screen
MouseGetPos,mx,my,hwnd,ctrl,3
で取ってるマウス座標値が怪しい気がします。これが正しくマイナス値でとれてない場合
GetScrollBarHwnd()での座標比較でこけてる可能性があります。

1.スクリプト殺したノーマルの状態で通常のホイールが効いているか
2.ToolTip,mx=%mx% my=%my% とか追加して値がマイナス値になってるかどうか
3.互換モード(WM_SCROLL)で動かした場合も動かないのか
4.管理人さんのホイールリダイレクト で正常に動くかどうか
 lukewarm.s101.xrea.com/myscripts/WheelRedirect.zip

あたりを調べてみてください。
ちなみにサブモニタは左と上のどちらでしょうか?


あー、もう一週間くらい風邪が治んない。頭痛すぎてモノ考えられないっす
GW前に医者行っとけば良かったわ

811 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 20:52:47 ID:8PsslnK50]
>>810
早速のご返信ありがとうございます。
実はマルチモニタは勤務先のマシンなので連休明けまで確認できません。
調べがつき次第、またここで報告させていただきます。
ちなみにサブモニタは左です。

風とのこと、どうぞお大事になさってください。インフルじゃありませんように。。。。

812 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 21:55:34 ID:17i2D6iq0]
A_EventInfo 分だけ WM_MOUSEWHEEL を Post してるけど、
wParamの上位ワードを ±120*A_EventInfo にしてもいいんじゃないかと思う






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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