- 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以降も参照
- 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 にしてもいいんじゃないかと思う
|

|