- 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以降も参照
- 404 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 23:41:33 ID:W44aSFYp0]
- ないんじゃないかな。
Loop, PARSE, ファイル名, `n hoge := A_LoopReadLine とすればループが終わったときに hoge には最終行の内容が入っているけど
- 405 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 23:46:14 ID:ABSLuhUi0]
- >>404
そうできるのであれば十分です どうもありがとうございます!
- 406 名前:名無しさん@お腹いっぱい。 [2009/03/09(月) 18:31:39 ID:3Pb9nLSu0]
- ワードパッドの書式バーのフォントの色の変更や
太字化をahkでやりたいんですが座標指定でやるしかないんでしょうか? WinMenuSelectでは反応しないし、 ボタンのハンドルをMouseGetPosで調べることもできません。 青とか赤の個別の色のボタンは調べられるんですが、値が毎回違うので 行き詰っています。
- 407 名前:406こういう感じでやりました [2009/03/09(月) 18:48:21 ID:3Pb9nLSu0]
- #F::
MouseGetPos, X , Y, W, OVC,2 ;これでハンドルを調べました MsgBox %W% <--> %OVC% clipboard = %OVC% return #G:: SetTitleMatchMode,2 DetectHiddenText, On WinMenuSelectItem,ahk_id 0x50370,,7& ;ウインドウのハンドルからメニューバーとして操作しようとしましたが WinMenuSelectItem,ahk_id 0x50370,,8& ;反応しません WinMenuSelectItem,ahk_id 0x50370,,9& WinMenuSelectItem,ahk_id 0x50370,,10& WinMenuSelectItem,ahk_id 0x50370,,11& WinMenuSelectItem,ahk_id 0x50370,,12& ;WinMenuSelectItem,ahk_id 0x50370,,1&,1& ;ファイル→新規、これは動きます
- 408 名前:406こういう感じでやりました [2009/03/09(月) 18:50:43 ID:3Pb9nLSu0]
- WinMenuSelectItem,ahk_id 0xd40372,,1& ;バー自体のアドレスからメニューバーとして操作しようとして
WinMenuSelectItem,ahk_id 0xd40372,,2& ;動きません WinMenuSelectItem,ahk_id 0xd40372,,3& WinMenuSelectItem,ahk_id 0xd40372,,4& WinMenuSelectItem,ahk_id 0xd40372,,5& WinMenuSelectItem,ahk_id 0xd60376,,1& ;反応しません WinMenuSelectItem,ahk_id 0xd60376,,2& WinMenuSelectItem,ahk_id 0xd60376,,3& WinMenuSelectItem,ahk_id 0xd60376,,4& WinMenuSelectItem,ahk_id 0xd60376,,5& WinMenuSelectItem,ahk_id 0x9d01b2,,1& WinMenuSelectItem,ahk_id 0x9d01b2,,2& WinMenuSelectItem,ahk_id 0x9d01b2,,3& WinMenuSelectItem,ahk_id 0x9d01b2,,4& WinMenuSelectItem,ahk_id 0x9d01b2,,5& ControlClick,,ahk_id 0xfb0194,,LEFT ;ハンドルが特定できません MsgBox done return
- 409 名前:nCIjdtNZgMN mailto:nihfnmwf@zzaawhbf.com [2009/03/09(月) 18:51:33 ID:1ok/Ifbl0]
- comment5, kim-kardashian-video.limitedliability.us/index.html kim kardashian nude video, %-PP,
- 410 名前:406こういう感じでやりました [2009/03/09(月) 19:17:25 ID:3Pb9nLSu0]
- やり直したらinspect_toolbarがなぜか今回は動いたので
それでやってみます
- 411 名前:406こういう感じでやりました [2009/03/09(月) 23:05:06 ID:3Pb9nLSu0]
- 連投すみません
ワードパッドの書式バーの位置をずらした後 (メニューバー・ファイル(ファイル... ツールーバー 書式バー(MSゴシック... のように ) inspect_tool_ids で書式バーのコマンドIDを調べて(32801) #G:: PostMessage,0x111,32801,0,,A return でフォントの色を選ぶボタンをahk経由で押させることは出来たのですが、 赤とか青とかの個別の色を押させることが出来ません。 方法はありますか?
- 412 名前:406-411(除409) [2009/03/10(火) 00:39:25 ID:VYBxlQGq0]
- すいません、出来ました。Resource HackerでIDが調べられて
無事できました。ありがとうございました。長すぎる連投してしまい 本当に申し訳ないです。
- 413 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 15:05:28 ID:rmSmGeHP0]
- 起動してるプロセスを取得してその中から選択したプロセスを監視して任意の条件でいろいろする
ってのをやってみてるんだけど IrvineとかJaneとかプロセスが二重に取得されてどっちを選べばいいかわからない
- 414 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 15:11:02 ID:D/8zxGdl0]
- 多重で起動してるの?すごい使い方だな。
- 415 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 15:47:04 ID:rmSmGeHP0]
- 一つしか起動してないけど取得されるのは二つになってるってこと
- 416 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 16:27:55 ID:4NcKH5rc0]
- AHKでプロセスいじるのって Process コマンドでの
存在チェック(PID取得)、 強制終了、 優先度変更、 終了/存在待ち だけど、二重に取得されるってどういうことだろ Process, Exist, Jane2ch.exe pid := ErrorLevel WinGet, list, LIST, ahk_pid %pid% MsgBox, %list% ってすると2個窓がとれるけど これのことだったら >>144,147,153 あたりと同じなんだが・・・
- 417 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 21:21:52 ID:gm+lfOz80]
- Delphi製のアレなら、既に解決方法は確立されているので検索してこい
- 418 名前:名無しさん@お腹いっぱい。 [2009/03/11(水) 03:02:36 ID:pYoGuoaj0]
- WM_COMMANDでメニューバーをクリックしたときにでてくる新しいウインドウ
の中のコマンドに対するコマンドIDをしらべたいんですが、 何かいい方法はありますか? 窓コンもinspect_toolbarも反応しなくて、resource hacker でも調べられません。 ddwinとかpdicビューワーに使いたいんですけど。
- 419 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 07:16:24 ID:1ccOe8xw0]
- WheelScroll.ahk の改造版をうpしますた。ホイール加速を滑らかにしたつもり。
lukewarm.s101.xrea.com/up/ の 104.zip
- 420 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 08:59:21 ID:12ef3abb0]
- AutoHotKeyのPython版みたいなのみつけた。
AutoHotKeyのスクリプトの記述性の低さが嫌な人にはいいのかも。 keyhac ?(craftware)? sites.google.com/site/craftware/keyhac まあ、AutoHotKeyはDSL(ドメイン特化言語)で手軽さがあってそれでいてGUI持つくれるというのがいいけどね。 (まあ、PythonもGUIいけるけど)
- 421 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 10:22:40 ID:12ef3abb0]
- ちょっと質問です。OpenJaneで「お気に入り」に入れてあるスレを
お気に入りからはずして「印」のみつける(お気に入りからはずすと何故か「印」がはずれてしまうため) というのを一発でやりたいと考えています。 メニューのコマンドを送ろうとしているのですが、ControlSendを使ってもキーが送られないようです。 以下のように単なるSendだと上手くいっているようなのですが、 ControlSendとSendの違いってなんなんでしょうか? ; OpenJane #IfWinActive, Jane ahk_class TMainWnd ; Ctrl+D to delete favorite without deleting SIRUSI ^d:: WinWait,Jane ahk_class TMainWnd Send, !tv Sleep, 100 Send, !tm ; ControlSend,,!tv!tm ; damepo return #IfWinActive
- 422 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 11:45:04 ID:iQp8Awzp0]
- Sendはフォーカスのあるところに送る
ControlSendはフォーカスが無くても、というか対象を指定してキーを送る ウィンドウ指定+コントロールの指定なし、でいけるんじゃないの Styleだけど↓で動くよ ControlSend,, !tv!tm, ahk_class TMainWnd
- 423 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 11:48:35 ID:iQp8Awzp0]
- というか、非アクティブ窓に送るのがControlSendの主目的だし
#IfWinactiveつかってるんだし、>>421でうごくならそれでいいと思う keyhacはkeymapがあるし繭の代替みたいなかんじだぬ
- 424 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 12:50:26 ID:12ef3abb0]
- >>422-423
サンクス。 なるほど、アクティブのときに使うなら必要ないですね。 むしろ、フォーカスないときに送るAPIもあるのかと感心したw
- 425 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 16:10:47 ID:7PTN87iF0]
-
どうしてもスマートな書き方が分からず困ってしまったので質問します。 Photoshop7.0を使っているのですが、そのPhotoshopでの作業で ズームイン・アウトの動作は、alt+マウスのホイールで行うんですけど それをホイールのみで行いたいんですが、いまいちうまく動作しません。 ; Photoshop #IfWinActive, ahk_class Photoshop wheelup::Send, {ALTDOWN}{wheelup} wheeldown::Send, {ALTDOWN}{wheeldown} #IfWinActive とりあえずこれで動くことは動くんですが、これだとaltキーが押されっぱなしで いったんaltキーを押さないと開放されないんです。 ホイールの動作を止めてから、0.5秒くらいでaltキーが都度開放されるようにしたいんですが どういう風に書けば良いんでしょうか。
- 426 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 17:30:08 ID:SMQKLnXdP]
- !{WheelUp}じゃ駄目なの?
- 427 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 17:40:17 ID:WedUAl7t0]
- うむ、自分も色々試したんだけど、ウチのCS3ではダメなんだよな
!修飾だとズームさえしないし、Sleep,500 して Send {Alt Up} してもズームはするがAltが押しっぱ状態 色々なSendModeやhookにしたけどダメだった ただのズームで良ければ、Ctrl-やCtrl+送れば良いけど、 これだとポインタ位置のズームにならないから期待には沿えないんだろうな
- 428 名前:425 mailto:sage [2009/03/11(水) 17:44:19 ID:zQD6nmYr0]
- >>427
>ただのズームで良ければ、Ctrl-やCtrl+送れば良いけど、 >これだとポインタ位置のズームにならないから期待には沿えないんだろうな ははは。仰るとおりです。単なるズームならそれで良いんですけどね。 やっぱ難しいのかな…。 Photoshop7.0以前のホイール動作がしたいだけなんですけどねー。
- 429 名前:425 mailto:sage [2009/03/11(水) 17:51:27 ID:zQD6nmYr0]
- >>426
実際やってみると分かるんですが、 それでは「altキーを押しっぱなしでホイール動作」にはならないんですよね。 altとホイールを同時に入力、とみなされて、微妙にカククアした動作になるんですよ。 押しっぱなしというキー入力がないと、スムーズにズームしないんですよね。
- 430 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 18:10:32 ID:WedUAl7t0]
- あー、ウチではこれで動くようになったけど、かなりインチキくさいので7.0ではダメかも
Sleep後のAltの送り方をイジれば何とかいけそうなんでは wheelup:: SendInput {Alt Down}{WheelUp} Sleep, 500 Send {Alt} Send {Alt Up} return
- 431 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 18:21:31 ID:iQp8Awzp0]
- > Sleep後のAltの送り方
タイマーでいいんじゃないかな。環境がないから何とも言えないけど。 wheelup:: wheeldown:: SendInput {Alt Down}{%A_ThisHotkey%} SetTimer, AltUp, 500 return AltUp: Send, {Alt} Send, {Alt Up} return
- 432 名前:425 mailto:sage [2009/03/11(水) 18:45:36 ID:zQD6nmYr0]
- >>430
おお!まさしく理想の動きになりました! Sleep後の動作の書き方が分からなくてつまづいてました…。 ありがとうございます! >>431 そちらも試してみましたが、なんかaltキーが常時連打されてるような動作になりました…。
- 433 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 18:51:43 ID:W+NxFur40]
- 解決したようだけど、押しっぱなしの原因は#HotkeyModifierTimeoutのあたりなのかな?
- 434 名前:431 mailto:sage [2009/03/11(水) 19:07:50 ID:iQp8Awzp0]
- > そちらも試してみましたが、なんかaltキーが常時連打されてるような動作になりました…。
うは、初歩的なミス > SetTimer, AltUp, 500 は↓で SetTimer, AltUp, -500 解決したならいいんだけど
- 435 名前:425 mailto:sage [2009/03/11(水) 19:34:30 ID:zQD6nmYr0]
- >>434
ありがとうございます! キチンとスムーズに動作してくれました。 AutoHotkeyの存在を知ったのが昨日なのでまだあまり把握しきれてないですが、 かなり勉強になったのでちょっとハマってみます。
- 436 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 21:02:29 ID:G1UR0H3q0]
- >>434
>負の値を指定した場合、その絶対値の時間が経過後に、一度だけサブルーチンが実行される。 勉強になった、d.。 ふぅ、無駄こいた(´;ω;`)ブワッ wheelup:: wheeldown:: Send, {Alt Down}{%A_ThisHotkey%} MouseGetPos, xMouse, yMouse settimer, IdleMouseMoved, 100 return IdleMouseMoved: MouseGetPos, xMouseNow, yMouseNow xMouseChange := ( xMouseNow - xMouse ) * ( xMouseNow - xMouse ) yMouseChange := ( yMouseNow - yMouse ) * ( yMouseNow - yMouse ) If (xMouseChange > 9) | (yMouseChange > 9) | (A_TimeIdle > 500){ send, {Alt Up} settimer, IdleMouseMoved, off } Return
- 437 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 21:11:08 ID:XeGc9YVz0]
- 作成した関数が
複数の値を返すことはできますか?
- 438 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 22:25:12 ID:NuVSrS420]
- >>437
引数の参照渡し(ByRef)を使ってみるとか。 #persistent SetTimer, timer return MouseGetScreenPos(ByRef x, ByRef y){ CoordMode, Mouse, Screen MouseGetPos, x, y CoordMode, Mouse, Relative } timer: MouseGetScreenPos(sx, sy) MouseGetPos, x, y tooltip, x%x%`ny%y%`n`nsx%sx%`nsy%sy% return
- 439 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 22:26:53 ID:RHpZI3IT0]
- windowsXPにAHK1.0.48.00をインストールしました
起動するにはAutoHotkey.exeをwクリックすればいいんですよね? どうも起動していないようです プロセスにも載っていません どうすれば使えるようになるのでしょうか? よろしくおねがします
- 440 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 22:41:17 ID:G1UR0H3q0]
- >>439
exeと同じところにAutoHotkey.iniを作ってメモ帳で編集。 a::a で保存。exeをダブルクリックするか、iniをexeにD&Dすればいい。
- 441 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 22:52:15 ID:RHpZI3IT0]
- >>440
ありがとうございます。無事動きました。 以前使っていた自作のスクリプトがなぜか駄目だったようです これが原因とは思っても見なかったので 初歩的なことを聞いてしまいました おかげで切り分けが出来きて解決しました
- 442 名前:名無しさん@お腹いっぱい。 [2009/03/12(木) 01:46:44 ID:F1m5qWie0]
- >>438
なるほど。参照渡しなら間違いないですね ありがとうございます。 別件の質問ですが a に test があり、かつb に hogeがあるときで 条件分岐をしたいのですが If a in test and b in hoge と書いたら上手く動きません 初歩的なことだと思いますが どうすればよいのでしょうか
- 443 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 02:07:36 ID:1BiiCvek0]
- if InStr(a, "tesst", true) && InStr(b, "hoge", true)
Caseを問わないなら括弧内の第3引数を省略または false にする
- 444 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 02:21:15 ID:F1m5qWie0]
- >>443
ありがとうございます。
- 445 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 13:49:22 ID:fNm1iUGy0]
- 無変換キーをシフトキーのかわりとして使いたいのですが
無変換キー+A をshift + A とするだけではなく ctrl + 無変換キー+A をctrl + shift + A や win + ctrl + 無変換キー+A をwin + ctrl + shift + A というふうに あたかもレジストリの編集により無変換キーをシフトキーとしたように動作させたいです remap を使っても思ったとおりの動作ができません
- 446 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 14:01:43 ID:nMFGybhR0]
- 「思ったとおりの動作ができません」がどうせ間違ってるんだから、
途中まで試したコードを晒してみたら?
- 447 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 15:12:04 ID:fNm1iUGy0]
- すみませんでした
sc07B::shift だけでできました
- 448 名前:名無しさん@お腹いっぱい。 [2009/03/13(金) 15:47:42 ID:fNm1iUGy0]
- たびたびすみません
リマップ lukewarm.s101.xrea.com/remap.html > リマップによって生成された入力では、フックを使用しているホットキー(「$^c」など)は反応しない。 この制限を解除する方法はありませんか?
- 449 名前:jbpfxyseplh mailto:jhhgov@qjokcp.com [2009/03/13(金) 15:47:58 ID:DVfGG20W0]
- uGaXvO <a href="gvatgngxmxho.com/">gvatgngxmxho</a>, [url=iyoeszfqayam.com/]iyoeszfqayam[/url], [link=ohsodtdhgqfa.com/]ohsodtdhgqfa[/link], oqdjndcqppwj.com/
- 450 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 19:24:04 ID:xVfJVQvM0]
- モディファイアのリマップはScancodeMapいじるようにした方が
何かとすっきりさっぱりだと思うんだ。
- 451 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 22:39:12 ID:nX9nzRDN0]
- >>450
そうですか。 ありがとうございます。
- 452 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/14(土) 21:34:52 ID:4icr6LvT0]
- fenrirの呼び出しキーをうまく設定できません
^a:: send,^b return こういう設定を書きました そのうえで、fenrirの呼び出しキーの設定の項目で ctrl + A を入力しました。 すると、左のctrlキーのときには意図したとおり ctrl + B が入力されたことになるのですが、 右のctrlキーのときには なし と表示されてしまいます。 パソコンはvistaを使っています どうすれば右のctrlキーを左のctrlキーのように動かせるのでしょうか
- 453 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 00:25:08 ID:lsWqS3cG0]
- >>452
なんか言ってることがよく分からんが、それfenrirを起動したくないってこと?
- 454 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 00:58:42 ID:SZZoZhnK0]
- >>453
いやそうじゃないんです 他のソフト(エディタとか)では 右のctrl + A できちんと ctrl + Bが動作するんですが fenrirに限ってはそのようには動かないんです 左のctrl + A ではfenrirでもきちんと ctrl + Bが動作するんですが あ、fenrirは最新バージョンを使っています どうもautohotkeyの内部で 右のctrlと左のctrlの処理が大きく異なっていると思うのですが よくわかりません
- 455 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 09:19:57 ID:AqdEGZ0E0]
- fenrir側の呼び出しキーの取得方法が特殊なんじゃなかろうか。
わざわざCtrl-Aを一旦Ctrl-Bにして呼び出す理由が分からないけど、 ただ前面にしたいなら、fenrirを二重起動するという方法もあると思う
- 456 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 09:46:43 ID:aN9r1MmC0]
- LCtrlとRCtrlと両方書いてもだめかぬ
- 457 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 09:54:41 ID:B8F8JwCv0]
- Gui, Add, Hotkey
Gui, Show return ^A::MsgBox, Send`, "Ctrl + B" いったんAHK止めてからせっていすりゃいいんじゃねーの
- 458 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 10:14:36 ID:aN9r1MmC0]
- 試してみたら正常動作したけどfenrirが古かったから最新版にしてみたんだがやっぱり普通に動くな
- 459 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 13:07:53 ID:2+vykJE1P]
- もし {vkXXscXX} の形式だったら {vkXX} だけにしてみるとか
- 460 名前:452 mailto:sage [2009/03/15(日) 14:01:34 ID:dCql5Xe00]
- autohotkey のkeyhistoryを見てみました
左のctrl + b では 42 030 i d 10.25 B fenrir 42 030 i u 0.00 B 右のctrl + b では A2 01D i d 2.42 Ctrl fenrir A3 11D i u 0.00 Right Control 42 030 i d 0.00 B 42 030 i u 0.00 B A2 01D i u 0.02 Ctrl こうなりました そこで以下のように書いたら左のctrl + bと同様に動きました ^a:: send,{blind}b return >>457のスクリプトではどちらのctrlも正常に動きます 上記のみなさんのご指摘を踏まえると、 私の環境が特異だということですかね いろいろと調べてみます ありがとうございました。
- 461 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 17:00:43 ID:OR65f9ys0]
- ホットキー用のキー足りねぇ→キーボード2台つなげばよくね
と思い、ジャンクの安いキーボード買ってきた 2台目用はScrollLockでもして、それで1台目と区別すりゃいいなと思ってたんだが ScrollLockもCapsLockもNumLockも連動しやがる 1台目と2台目のキーボードの入力を判別する方法はないでしょうか? PS/2接続とUSB接続の2台なんですが
- 462 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 19:38:57 ID:BkAbLvKa0]
- 斜め上を行く発想だなw
レスじゃなくてスマンが…
- 463 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 19:42:47 ID:eGMmt4nd0]
- ソフト名忘れたが、デバイスドライバレベルで区分けするフリーソフトがあるよ。
たしか作者は日本人
- 464 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 20:51:44 ID:5g2lI0+Z0]
- 俺はプログラマブルキーボード使ってる。
本来はキーマクロを割り当てて使うものだが、キーマクロのメモリ登録では、 アプリ毎に動作を切り替えられず、専用のツールを利用すれば対象アプリ毎の 設定も出来るが、あまり出来が良くないので、メモリにはF13〜F24や、 普通のキーボードでは入力しづらいショートカットキーを登録し、 AutoHotkeyで引っ掛けてアプリ毎の動作に書き替えてる。
- 465 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 21:39:38 ID:OR65f9ys0]
- >>463
情報ありがとう、それがみつかればできそうだ >>464 俺も最初プログラマブルキーボードか、ホットキーがいっぱいあるゲーミングキーボードとか考えたんだか 特殊なキーボードは値段が高くて選択肢も少ないので、なんとかならないかと思ったんだが プログラマブルってほどじゃなくても、全キーをWinキーあたりと同時押しができれば あとはAutoHotKeyで十分なんだけど ただWinキーを押しっぱなしで固定するだけじゃ、やっぱり2台とも連動して駄目だし ハード的に改造しようかと調べてもROMライター前提で変換基盤自作とか、素人には無理そうだし
- 466 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 00:59:49 ID:VkzQ2R4K0]
- setntptimeという時刻修正プログラムを実行後、ログの最後の4行を
TrayTipかMsgBoxに表示するようにしたいのですが RunWait, C:\App\Internet\setntptime\setntptime.exe,,hide logfile = C:\App\Internet\setntptime\settimeLog.txt i = 0 Loop, read, %logfile% { i += 1 } FileReadLine, server, %logfile%, i-3 FileReadLine, oldtime, %logfile%, i-2 FileReadLine, fixtime, %logfile%, i-1 ;最終行は改行だけなので省略 MsgBox,, setntptime log, %server%`n%oldtime%`n%fixtime% return のように、2度手間になりますがログの行数を取得してからFileReadLineする 方法しか思い浮かびませんでした。 もう少しスマートにしたいんですが良い方法あったらご教授ください。
- 467 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 01:19:19 ID:pREBWc+h0]
- >>466
RunWait, C:\App\Internet\setntptime\setntptime.exe,,hide logfile = C:\App\Internet\setntptime\settimeLog.txt Loop, read, %logfile% { server=%oldtime% oldtime=%fixtime% fixtime=%dummy% dummy=%A_LoopReadLine% ;改行が入る } MsgBox,, setntptime log, %server%`n%oldtime%`n%fixtime% return こんなんじゃだめ?
- 468 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 01:24:58 ID:Q86YJixB0]
- すげぇ・・・なんというアクロバティック。これがこのスレの底力だな
- 469 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 01:50:46 ID:VkzQ2R4K0]
- >>467
うおー即レスありがとうございます ダミー咬まして・・・うーん頭こんがらかりそう 使わせていただきます。
- 470 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 13:48:31 ID:hCcdtXRQ0]
- >>419
遅レスですが、IKKI氏乙です。 何か年末に作って放置してたのがあったのであげてみる。 秀丸でAHK編集する人のための CompleteX 用設定 LIBフォルダの関数ライブラリを読んで単語補完辞書&ヒントを作成する。 www6.atwiki.jp/eamat/pub/MyScript/MyLibList.zip
- 471 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 15:39:39 ID:Lst9ESBRP]
- Runで引数を変数で与えたいんだが、
Run, %var1%, %var2% ってやっても作業ディレクトリがうまく与えられないみたいなんだけど 何が原因?
- 472 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 15:52:26 ID:Lst9ESBRP]
- ごめんなさい自己解決
制御文字が含まれてたっぽい
- 473 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 18:39:45 ID:gDeBu6wE0]
- よくあるw
エクスプローラの引数とか特に 俺は行数増えるけど見通しよくするために↓みたくしてる dir = c:\hoge\hoge cmd = %var1%, %var2% Run, %cmd%, %dir%
- 474 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 19:02:16 ID:hImTYnxN0]
- >>470 乙です
一方、海の向こうではchmでいくんだろうか? GenDocs v2.0 - Create StdLib documentation easily! ttp://www.autohotkey.com/forum/topic41287.html といっても、前スレ GenDocs - utility for creating StdLib documentation ttp://www.autohotkey.com/forum/topic22548.html も含め投票数(反応)そのものも少ないみたいだし、このまま付けたり付けなかったりバラバラでいくのかな。。
- 475 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 19:03:05 ID:L7m3HeAn0]
- 作業ディレクトリを指定したら、実行ファイルってファイル名だけでいい気がした。
当たり前か・・・
- 476 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 21:04:07 ID:lw7F/3Qx0]
- >>467
これ、発想がすばらしいなぁ。 AHK以外でも使えそうなアルゴリズムだ。ありがとう
- 477 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 00:30:37 ID:2PEehZZi0]
- >>470
ちょうど欲しいと思ってた CompleteX 辞書ww ありがとう、使わせてもらいます。
- 478 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 09:35:49 ID:OXmG24Mg0]
- スクリプト内でも関数ライブラリ使ってんの忘れてたorz
秀丸でAHK編集する人のための CompleteX 用設定 ファイルパス関数群 (Path.ahk)同梱版 www6.atwiki.jp/eamat/pub/MyScript/MyLibList_200090318.zip
- 479 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 14:37:20 ID:zm0v5CvW0]
- みんな宜しくよノシ
- 480 名前:名無しさん@お腹いっぱい。 [2009/03/18(水) 19:11:42 ID:wqUWRKfJ0]
- atokの変換リストを表示中に
autohotkeyで操作をしたいのですが atokの変換リストを表示しているかどうかを 取得する方法が分かりません。 window spyを使っても使用しているエディタの情報だけを 取得してしまっているようです どうすればいいのでしょうか
- 481 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 21:24:09 ID:xJ1I3V720]
- IME.ahk でいいじゃん。とおもったけどリストが出ているかどうかは分からないのね。
で、原始的だが変換リストを出してマウス直下の窓を調べるほうほうでやった Pause:: MouseGetPos,,, hwnd WinGetClass, class, ahk_id %hwnd% Tooltip, %class% return ATOK2007なので"ATOK20Cand" だった。 で、いい加減だけど、指定の窓があったら(ウィンドウハンドルが0以外なら) 変換中とすればいいんじゃないかな Pause:: Tooltip, % WinExist("ahk_class ATOK20Cand") return これが出ているとき専用のキーバインドが欲しいなら #Ifが使える、Autohotkey_Lが向いてそうだ #If WinExist("ahk_class ATOK20Cand") a:: hoge b:: hige
- 482 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 21:26:05 ID:xJ1I3V720]
- あ、、、#IfWinExist でいいじゃん・・・orz
- 483 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/19(木) 00:19:09 ID:DoWJYG5p0]
- >>481-482
おお!期待通りに動きました ありがとうございます!
- 484 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/19(木) 09:46:28 ID:iKaTZieB0]
- 超初歩的質問なんですがデスクトップをダブルクリックしたのを検出するのってどうやるんでしょうか
OSはVISTA32SP1です
- 485 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 17:37:19 ID:oBtBrUgR0]
- こんにちは。わたしも質問です。
テンキーをマクロ用のホットキーとして使用してるのですが、 NumLockキーを押すと、「NumLock On&AHK Suspend」 もう一度押すと、「NumLock Off&AHK 再開」 このトグル動作をさせたいのですが、どのように記述すればいいのでしょうか。 よろしくおねがいします。
- 486 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 17:53:19 ID:Ie0QoNxm0]
- SuspendじゃなくてPauseな気もする
- 487 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 18:03:04 ID:Ie0QoNxm0]
- >>484
カーソル下をahk_class Progmanか否かで判別し、あとは下記を参考でできるかな? ~CTRL:: if A_PriorHotkey <> %A_ThisHotkey%, return if A_TimeSincePriorHotkey > 400, return ;some action return
- 488 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 18:11:28 ID:Ie0QoNxm0]
- ああ、だめだ。あと下記も参考に
670 名前:665[sage] 投稿日:2008/06/06(金) 19:45:37 ID:89UJiJcz0 >>669 うあそういうことか >>667 自レスも含みますが>666であったファイルの選択の状態を取得する他の方法を探したところ ControlGetが使えそうなのでそれでやってみたテスト ~LButton:: MouseGetPos,MouseX,MouseY,WindowID,ClassNN,1 ; カーソル下の情報を取得(ClassNN以下いらないような WinGet,DesktopID,,ahk_class Progman ; デスクトップのウィンドウIDを取得 ControlGet,StateListView,List,Selected,%ClassNN%,ahk_id %WindowID% ; StateListViewにSysListView32の選択項目名を入れる If(A_TimeSincePriorHotkey<300 && DesktopID==WindowID && StateListView=="") ; デスクトップ上である&選択項目がない Send,!{Numpad1} return アイコンのないところでダブルクリックをしたとき、イベントを乗っ取らないダブルクリックなので、 丁度よく最初のクリックの時点でデスクトップがアクティブになって選択状態が外れる 同じ方法でエクスプローラ・Openダイアログ等の余白をダブルクリックで上階層移動もできる 選択項目を利用するので MButton:: 等では途中に左クリック入れるとかしないとそのままではできない・・
- 489 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 18:41:45 ID:oBtBrUgR0]
- >>486
レスありがとうございます。 ~NumLock::pause でできました^^
- 490 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 20:49:30 ID:q1D8qFby0]
- へ〜、UpperDirOneみたいなのが楽につくれるなぁ・・・と思ったけど
~LButtonでフォルダ移動の場合、項目がとれる前に移動が完了ちゃって フォルダに移動した後にBackspace送っちゃって元通り・・・で意図したとおりに動かない 結局 ~ なしになったけどうまくいかんもんだねぇ SetTitleMatchMode, RegEx #IfWinActive, ahk_class CabinetWClass|ExplorerWClass LButton:: if (A_ThisHotkey==A_PriorHotkey && A_TimeSincePriorHotkey<300) { MouseGetPos,,,,classNN ControlGet, selected,List,Selected, SysListView321, A Send, % (classNN=="SysListView321" && !selected) ? "{BackSpace}" : "{LButton}" } else { Send, {LButton Down} KeyWait, LButton Send, {LButton Up} } return
- 491 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 20:54:15 ID:w27aWi9q0]
- >>488,489
ありがとう! 月曜まで家に帰れないから試せないけど、帰ったらやってみる!
- 492 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 00:19:19 ID:JP2qPQY00]
- 某スレで盛り上がってたので書いてみました。
カーソルをくるくる回すとスクロールします。 ttp://lukewarm.s101.xrea.com/up/file/105.zip
- 493 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 00:26:44 ID:g8LL/GxK0]
- >>492
どうやってAHKで再現しようか考えていたら・・・ ありがたく頂きます
- 494 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 00:28:23 ID:ft3ZieEm0]
- これは面白いw
タッチパットのノートパソコンだとうまく利用できそう。
- 495 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 00:45:49 ID:daHpkZkf0]
- おお、すんばらし。
組み込むと色々応用が効きそうだ。
- 496 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 01:16:17 ID:e7LMny/o0]
- autohotkey.ini に includeで
#Include kurukuruscroll.ahk と書いて使わせてもらったんだけど、includeする位置によって使えたり 使えなかったりするのはなんでだろう。 マニュアルのどこを読めばいいのか教えて欲しい。
- 497 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 05:54:27 ID:enEmkL2t0]
- >>492
一つに纏められて助かりました 認識率と反応も完璧だね
- 498 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 07:41:19 ID:QvNRDM9W0]
- >>496
ttp://lukewarm.s101.xrea.com/Scripts.html ここの一番下auto-executeですね。 ホットキーが書いてあるとこより前に組み込みます。 変数が重複しないよう気をつけましょう。
- 499 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 08:45:00 ID:e7LMny/o0]
- >>498
ありがとう!!! 各includeファイルのauto-executeセクションをautohotkey.iniのauto-executeセクションに移動したらうまく動いたー。 今までauto-executeセクションって知らなかった^^; *.ahkを includeするときって autohotkey.ini ------------------- AAA.ahkの auto-executeセクション BBB.ahkの auto-executeセクション return #Include AAA.ahk #Include BBB.ahk ;ホットキー定義開始 -------------------
- 500 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 09:41:42 ID:mEL9l3Hw0]
- ダブルクリック検出の件だが、何とかなったので張ってみる。コードのインデントに全角空白使ってるので注意。
; IsDoubleClicked関数 ; ダブルクリックを判定する関数、L,R,M,X1,X2の各ボタンに対応 ; システムからダブルクリック時間、範囲を取得して判定、AutoHotkey_Lの#ifでの使用を想定 IsDoubleClicked(){ Static dcTime=0,LastTime,tx,ty,LastMouseKey=0,lx=-256,ly=-256,lr=0 if(!dcTime){ dcTime:=DllCall("GetDoubleClickTime") SysGet,tx,36 SysGet,ty,37 LastTime:=A_TickCount-dcTime*2 } if(A_TickCount=LastTime) Return lr NowMouseKey:=(GetKeyState("LButton","P") | GetKeyState("RButton","P")<<1 | GetKeyState("MButton","P")<<2 | GetKeyState("XButton1","P")<<3 | GetKeyState("XButton2","P")<<4) VarSetCapacity(Point,8) DllCall("GetCursorPos","uint",&point) if((LastMouseKey!=NowMouseKey)||((A_TickCount-LastTime)>dcTime) ||(abs((NumGet(Point,0)-lx))>tx)||(abs((NumGet(Point,4)-ly))>ty)){ lx:=NumGet(Point,0),ly:=NumGet(Point,4) LastTime:=A_TickCount,LastMouseKey:=NowMouseKey Return lr:=0 } else{ LastTime:=A_TickCount-dcTime Return lr:=1 } }
- 501 名前:500 mailto:sage [2009/03/21(土) 09:42:42 ID:mEL9l3Hw0]
- ; Lv_HitTest関数
; リストビューでアイテム上にマウスがある時に種類を返す ; そもそもリストビュー上でない場合は何も返さず、 ; アイテム上にない場合は0を返す ; 参考:流行らせるページの MouseGesture.ahk 内 MG_LvHitTest() 関数 Lv_HitTest(){ MouseGetPos,,,hwnd,class,1 MouseGetPos,,,,chwnd,3 WinGet,pid,PID,ahk_id %hwnd% VarSetCapacity(point,8) DllCall("GetCursorPos","uint",&point) if(substr(class,1,13)=="SysListView32" || substr(class,1,9)=="TListView"){ p:=DllCall("kernel32.dll\GlobalAlloc","uint",0x40,"uint",8,"uint") NumPut(NumGet(point,0),p+0,0),NumPut(NumGet(point,4),p+0,4) DllCall("user32.dll\ScreenToClient","uint",chwnd,"uint",p) hp:=DllCall("kernel32.dll\OpenProcess","uint",0x001F0FFF,"uint",0,"uint",pid,"uint") pi:=DllCall("kernel32.dll\VirtualAllocEx","uint",hp,"uint",0,"uint",24,"uint",0x1000,"uint",0x4,"uint") DllCall("kernel32.dll\WriteProcessMemory","Int",hp,"uint",pi,"uint",p,"Int",8,"Int",0) SendMessage,0x1012,0,%pi%,,ahk_id %chwnd% DllCall("kernel32.dll\ReadProcessMemory","uint",hp,"uint",pi+8,"uintp",flag,"uint",4,"uint",0) DllCall("kernel32.dll\VirtualFreeEx", "uint",pi, "uint",0, "uint",0x8000) DllCall("psapi\CloseProcess","uint",hp) DllCall("kernel32.dll\GlobalFree","uint",p) flag:=flag & 15 return (flag<4) ? ((flag<2) ? 0 : "ItemIcon") : ((flag<8) ? "ItemLabel" : "ItemState") } }
- 502 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 09:43:29 ID:mEL9l3Hw0]
- ; IsDesktopDoubleClicked関数
; デスクトップをダブルクリックした時にTrue IsDesktopDoubleClicked(){ Return IsMouseOverDesktop() && IsDoubleClicked() } ; IsMouseOverDesktop関数 ; マウスがデスクトップ上にある時にTrue ; bbLeanだとProgmanじゃうまくいかなかったので IsMouseOverDesktop(){ MouseGetPos,,,hwnd Return (hwnd==DllCall("GetDesktopWindow") ||hwnd==WinExist("ahk_class Progman")) }
- 503 名前:500 mailto:sage [2009/03/21(土) 09:44:06 ID:mEL9l3Hw0]
- ; 使い方 #ifじゃなくても何とかなるが、ダブルクリックじゃなかった時に
; 通常のクリックをするべきなので AutoHotkey_Lの#ifを推奨 #if IsDoubleClicked() && (WinActive("ahk_class CabinetWClass") || WinActive("ahk_class ExploreWClass")) && Lv_HitTest()==0 LButton::Send,{BS} #if IsDesktopDoubleClicked() LButton::Msgbox,デスクトップがダブルクリックされた #if 以上、長くなった&見にくくてすまんがこんな感じでできた。
- 504 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 09:50:33 ID:mEL9l3Hw0]
- ; おまけ:行頭の全角スペースとTabを相互変換するスクリプト
#NoEnv #EscapeChar ' Gui,Font,,MS ゴシック Gui,Add,Text,,↓ここにコードを貼り付ける Gui,Add,Edit,w640 h480 vData Gui,Add,Button,gWsToTab,行頭の全角スペースをTabに変換 Gui,Add,Button,gTabToWs x+10,行頭のTabを全角スペースに変換 Gui,Show Return GuiClose: GuiEscape: ExitApp GuiDropFiles: if(A_EventInfo<=1) FileRead,Data,%A_GuiEvent% GuiControl,Text,Data,%Data% Return WsToTab: TabToWs: Gui,Submit,NoHide Output:="",w:=(A_ThisLabel="WsToTab" ? 1 : 0) Loop,Parse,Data,% chr(10) { chr:="",t:=A_LoopField While (SubStr(t,1,(w ? 2 : 1))==(w ? " " : chr(9))) t:=SubStr(t,(w ? 3 : 2)),chr.=(w ? chr(9) : " ") Output.=chr t chr(10) } GuiControl,Text,Data,%Output% Return
|

|