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
366 名前:361 mailto:sage [2006/01/04(水) 19:50:45 ID:SbxpZ6KF0] >>365 & WheelDown::の最中で待機したかったんですが あきらめて他の仕様にすることにします
367 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/05(木) 01:16:03 ID:YlkDRsZz0] フォルダのパスを引数として渡し、 「フォルダの参照」ダイアログのツリーを操作して 引数のフォルダを選択させる、ということをしたいのですが、 どのようにすればいいのでしょうか? DialogSetやDialogHandlerが使えないソフトにも 自前で対応させようとしているのですが、 「フォルダの参照」ダイアログがどうにもできず困っています。 助言をいただきたいです。
368 名前:355 mailto:sage [2006/01/05(木) 01:17:18 ID:n7Jr+2qn0] >>362 亀レスすみません エラー出なくなりました。ありがとうございます。
369 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/05(木) 01:40:30 ID:8eGMClaI0] >>367 「フォルダの参照」の場合、パスをセットする場所がないので ルート(マイコンピュータ)からインクリメンタルサーチで1階層ごとに フォルダ選択していくしかないのでは? DialogHandlerは随分とうまいことやってるけど、多分100%の無理そうな気がする。
370 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/05(木) 01:41:29 ID:8eGMClaI0] ×多分100%の無理そうな気がする。 ○多分100%の精度での実現は無理そうな気がする。
371 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/05(木) 10:54:01 ID:mE3SDKUy0] 一応フォルダの参照ダイアログの選択フォルダを指定する 方法はあるが(>>369 のような不確かな方法ではない) AutoHotKeyでは無理っぽい気がする。 とりあえずSHBrowseForFolder SHGetPathFromIDList あたりでググってみるといい。この方法は環境に問題がなければ 精度はほぼ100%だよ。(完全に100%かもしれないが、 言い切れるほどの確認はしてないので)
372 名前:367 mailto:sage [2006/01/05(木) 15:29:16 ID:YlkDRsZz0] >>369 >>371 レスありがとうございます。どうも難しいようですね。 「フォルダの参照」の場合はDialogHandlerに丸投げすることにしました。
373 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 16:48:04 ID:g9rnGIxl0] 特定のアプリにのみ有効にすることはできますか? また、マウスジェスチャ(←→ならESCなど)を指定することはできますか?
374 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 17:08:20 ID:E/GD5dod0] そのように書けばできますYO!
375 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/09(月) 15:47:48 ID:OvYu84cO0] >>347 AutoHotkeyユーザーではありませんが、347さんと同じような現象で困っていてこのスレにたどり着きました。 tuneappスレ(Windows2000/XP チューンナップ専用スレ Part17)にも書き込んでます。 以前はこんな現象は起こらなかったので困ってます。 常駐ソフト切ったり、バージョンを変えたり(上げたり落としたり)しても同じく原因がわからないんですよね・・・ レジストリを書き換えても(tuneappでも可)、TweakUIの「アプリケーションにフォーカスを横取りさせない」のチェックボックスに変化無し。 チェックボックスを外してもいつの間にかチェック状態に戻ってしまう・・・ Windows2000を普段使ってまして、WindowsXPだと起きていないので Windows2000の何かが原因なんですかね。 ネットで調べたらWin32 APIてのが関係してるかもしれないようですが、お手上げ状態です。
376 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/09(月) 17:38:31 ID:r9CSfa8s0] >>347 今更だが、Regmon辺りで書き換えてるアプリ探すのが一番かと ForegroundLockTimeoutでフィルタリングして放置しておけばそのうち引っかかると思うぞ
377 名前:347 mailto:sage [2006/01/09(月) 21:51:22 ID:gCdov2U80] >>376 残念ながらそれはもう試してた。Regmonでは引っかからなかったよ。 Tweak UI等での正規の方法で変更する場合は関知してくれるけど、このバグの場合は無理らしい。 いっそ、この問題が起こる人用のスレでも立てて、全使用ソフトを書き連ねる→共通するソフトが容疑者 って方法でも取らないと無理かなぁ…ちなみにOSはXP SP2です。 とりあえず原因が除去できないならってことで、>>347 で書いたものの代わりにこんな感じで無理矢理対処。 SendMessage等を用いたもっとスマートなやり方を誰か分かれば頼む。 TweakFocus: Run, TWEAKUI.EXE WinWait, Tweak UI ControlSend, SysTreeView321, {Down}{Right 2}, Tweak UI Sleep, 50 Control, UnCheck, ,Button2, Tweak UI Sleep, 50 ControlClick, Button6, Tweak UI return
378 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/09(月) 23:37:50 ID:r9CSfa8s0] >>377 Regmonでダメだったのか 古典的なwin.iniのCompatibility95セッションに追加する手法は?
379 名前:347 mailto:sage [2006/01/10(火) 00:20:10 ID:YKl99lMm0] >>378 こんな簡単な解決方法があったとは… 根本的な解決になったわけではないけど、実用上は何の問題もなし。 激サンクス!
380 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 12:26:18 ID:edhaETY50] 今更かもしれませんが・・・前スレ749さん hModule := DllCall("LoadLibrary", str, "DengakuDLL.dll") p := DllCall("DengakuDLL.dll\TOHANKAKU", "str", "01234567890", "str") msgbox, %p% DllCall("lstrcpy", "str",str1, "str", p) msgbox, %str1% DllCall("FreeLibrary", UInt, hModule) で、動きました。処理途中で解放されていたのが問題だったぽいですね。 すでに解決してたらすいません。
381 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 21:55:48 ID:h3Yb+cm+0] DllCall("SetCaretBlinkTime",UInt,100) とやってもすぐに反映されず、何かアクションを起こさなければ速度はそのままです。 何か足りないんでしょうか?
382 名前:前スレ749 mailto:sage [2006/01/11(水) 01:30:09 ID:95IZTI+k0] >>380 あ! LoadLibraryで確保すればOKだったのか。 管理人氏がBRegExp.dll でやってたのは知ってたけど再検証はしてなかったです。 (自分でも忘れてた) 秀マクロ用のDLLが使えるようになるのは結構大きいかも。 教えてくれてアリガトン てことは、AHKでも田楽DLLのSETVER/GETVERでグローバル変数が扱えるのかな iniとか経由なしでオンメモリ上で秀マクロや他のアプリとデータを共有化できるのか うはw夢がひろがりんぐwww
383 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/11(水) 04:51:40 ID:tIP7xIJe0] 起動するとそのままタスクトレイに入るソフトがあるんですが、 これをScrollLockで起動・終了したいんですね。 で、こんな風に書いてみたんですが…… ~ScrollLock:: Process, Exist, task.exe if ErrorLevel = 0 Run, task.exe else WinClose, ahk_pid %ErrorLevel% return これだとそのソフトの終了ができないんです。 ここの「WinClose」が「Process, Close」にすれば「強制終了」はできるんですが、 強制終了でなくふつうの終了がしたいんです……。ソフトの挙動が変わってしまうので。 タスクトレイアイコンを右クリックでxすると終了できるので、 この「WinClose」の行を「Send, #b & AppsKey & x」とかやってみたんですが、 別のアイコンにフォーカスが当たってしまい、、、どうにもうまくいきません。教えてください。
384 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/11(水) 05:02:56 ID:XYQfQQRG0] トレイメニューの「閉じる」のコマンド番号を調べておいてWM_COMMANDで送ってやればいいような
385 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/11(水) 07:58:09 ID:95IZTI+k0] 挙動の本質とは関係ないかもしれないけど、Locks系の押下情報は OSが返してくる値がおかしいからホットキーに割り当てるのは控えたほうが良いと思われ
386 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 01:07:46 ID:rmvCVckQ0] なまず日記すげえな。
387 名前:383 mailto:sage [2006/01/12(木) 03:13:12 ID:HWiUEJ9g0] 助言ありがとうございました。 Send, #b{APPSKEY}x これでいけました。 これ「ソフトがタスクトレイの左端にある」ことを決めてかかっているのでよくないですが、 紹介いただいた「コマンド番号を調べる」方法を知らないので……(^^; ぐぐって見て、 ResouceHackerでできるという話があったのでやってみたんですが、 それらしいエントリが見つからず……断念。
388 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 03:30:15 ID:5XY6ilOR0] Direct Command ttp://members.jcom.home.ne.jp/shinonon/dircmd.html 終了命令はこれで調べられる可能性があるよ SendCmdをRunさせてもいいし、 AHK内でも処理できる。
389 名前:383 mailto:sage [2006/01/12(木) 21:12:12 ID:HWiUEJ9g0] ありがとうございます。 ただ、流行らせるページで紹介されている方法も含め、ソフトが特殊なのかうまくいきませんでした……。 件のソフトはWorkCheckerという、キーの押下回数をカウントするソフトなんですが(^^; 終了時にCSV形式でファイルを出力するもので、強制終了するとこれをやってくれないんですよ。 「終了」のほうは、とりあえず何とかなっているのでこれでいいとして、 もう一つうまく行かないことがありますので、よろしければお願いします。 Media Player Classicを「フルスクリーン」にしているときに、 383で挙げているスクリプトを走らせると、MPCのフルスクリーン化が解除されてしまうんですね。 これが「ウィンドウの最大化」なら、特に解除されることもないんですが……。 問題の部分はこんな感じになってます。 WinGetActiveTitle, player Send, #b{APPSKEY}x WinActivate, %player% このSendをした際に、 タスクトレイにフォーカスが移ってタスクバーが出たままになるのを何とかしたくて このような処理をしてみたんですが、先にも書いたとおり、 最大化したウィンドウでは期待どおりに動くものの、全画面化した場合はうまくいきません。 WinGetActiveTitleが、タイトルの取得のためにウィンドウ表示に戻してしまうんでしょうか……。 ちなみに、playerにはMPCの決め打ちができません。
390 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 21:23:04 ID:HWiUEJ9g0] あ、ちなみに、MPC以外でも同じ状態になります。 それと、 WinGet, player, PID 〜 WinActivate, ahk_pid %player% とか、PIDじゃなくてIDだとかの場合も試しましたが、これもうまくいかず。
391 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 01:26:59 ID:+pozkCUx0] 今プログレスバーを半透明にしようとしているのですが、期待した表示になりません。 Progress,cwFFFFFF ,,name,time winset,TransColor ,FFFFFF 50,time return esc::exitapp ウィンドウを半透明にして文字とバーは透過なしにしたいのですが、出来ないのでしょうか? これだとウィンドウが完全な透明、文字とバーが半透明になります。 Trans ,で設定するとウィンドウは半透明なのですが文字も半透明に。。トホホ。
392 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 12:15:47 ID:5XB+c2x50] 2枚重ね
393 名前:391 mailto:sage [2006/01/13(金) 17:00:20 ID:dZX44Wpz0] >>392 ありがとう!発想を変えれば良かったんですね。希望の動作になったので報告までにはっときます。 オプションでツールウィンドウを指定してるのは、タスクバーに表示させたくないためです。 gui,add,text Gui, Color,000000 gui,+ToolWindow +AlwaysOnTop +OwnDialogs -border gui,show,w300 h200,back winset,Trans, 50,back Progress,cwC8D0D4 ctFFFFFF B,,name,time Progress,50,,,time winset,ExStyle,+0x00000080,time winset,TransColor ,C8D0D4 255,time return esc::exitapp
394 名前:381 mailto:sage [2006/01/14(土) 21:15:58 ID:6j6GF4sd0] いまだ解決せず。 キャレットの速度変更した後、Send,{Left}{Right}とか無理やりアクション起こすと 色々不具合がでるソフトもあるし・・・ SmartCaretはどうやってるんだろう。
395 名前:383 mailto:sage [2006/01/17(火) 10:21:04 ID:aCgAJjPo0] 一段落したのでまとめをさせてください。 したかったのは、プログラム全画面化時のキー押下回数のカウントでした。 カウントには>389で挙げているWorkCheckerというソフトを利用することにしていました。 はじめ>383にてScrollLockを使おうとしていたのは、 全画面化時でもキーボードインジケータによって動作中かどうかがわかるためです。 これによって挙動がおかしくなったかどうかはわかりませんが、>385さんの助言を受け、 起動キーを変更して(NumpadSubに)、動作情報はツールチップに表示させるようにしました。 いろいろ調べてみましたが、WorkCheckerのメッセージによる終了のさせ方がわからず、 タスクトレイにフォーカスを当ててキーをSendするというムリヤリな解決法をとりました。 その後WorkCheckerの使用をやめ、AutoHotkeyスクリプト内部の処理でカウントすることに。 これでスクリプト終了の問題は一応決着がつきました。 が、その数値をファイルに書きこむ際、エントリ名を取得しようとInputBoxを出すと、 >389と同じ状況になり、全画面化が解除されてしまいます。 最大化でなく全画面化なので、WinMaximizeでも状態を復帰させることができません。 いろいろやってみたところ、WinGetActiveTitleとかWinActivateには問題がなく、 プログラムの全画面化が解除されるのは、タスクトレイやInputBoxなど 他のウィンドウにフォーカスが移ったときであることを突き止めました。 また、この現象は、プログラムの最大化時や、 IEのキオスクモード(F11を押すとできる一種の全画面化)では発生しないこともわかりました。 以上です。 全画面化の解除問題は解決してないのですが、うまくいきそうにないので諦めることにしました。 プログラムはPerlのワンライナー程度のスクリプト処理をちょっとかじっていただけ、 Windowsプログラミング経験なしのド素人なので、 コメント行やエラー処理も含めて100行を越えるスクリプトを書いただけでいっぱいいっぱいです(^^; 皆さん、助言どうもありがとうございました。
396 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/17(火) 13:41:14 ID:aCgAJjPo0] まとめてみて、もしや、と思って試してみました。 全画面化中にAlt+Tabをしてみると、AHKスクリプトでの全画面化解除の挙動と一緒でした。 つまり、AHKスクリプト中に全画面化解除されるプログラムは、Alt+Tabでも解除され、 AHKスクリプト中に解除されないプログラムは、Alt+Tabでも解除されませんでした。 (最大化した場合や、IEのキオスクモード) この問題の発生はAutoHotkeyに直接関係がなかったようです。お騒がせしました。
397 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/17(火) 17:29:06 ID:kObrtqt+0] 全画面化解除されても、復帰させれば問題ないのなら、 全画面化解除されるアプリ毎に全画面化に必要な操作をAHKにさせれば良いんでねーの? 数が多いと嫌になるかもしれんが、大抵全画面化のホットキーは決まってるし。
398 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 12:49:22 ID:2qAgcpH90] 時間の計算で難儀してます.... 時刻t1〜時刻t2間の時間T[s]を求める際に、 T := t2 - t1 みたいな書き方はできるんですが、 時刻t2と時間T[s]から、 t1 := t2 - T のような式だとうまくいきません。 たとえば、ここでT=300[s](5分)として計算すると、 t2を時間としてでなく、数値として解釈するようで、T=3:00(3分)として計算されてしまいます。 t1 := t2 - T, Second とやると、今度は「TがYYYYMMDDHH24MISSのフォーマットではない」とエラーになるし、 EnvSubのマニュアルを見ていてもいまいちやり方がわかりません....
399 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 15:46:10 ID:Yqz0MIUn0] EnvAddで-300秒を足すんじゃなかったけ?
400 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 16:19:08 ID:1N3K73ci0] 時間計算はEnvAddとEnvSubの扱いの違いに気がつかないとハマるな 過去スレでも何度か話題になってるから調べてみ
401 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 17:01:54 ID:2qAgcpH90] ほ、ほんとだ... >399,400 レスありがとうございました。 EnvAddのマニュアルにも、たしかにそれらしい文言がありますね。 でもこんなのわかんないよぅ...
402 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 17:12:45 ID:v9Q+2/T40] タイトルバーで中クリックされたら処理を行うってこと(QuickDirみたいなもの)がやりたいんだけど、 どんな感じでやれば良いんでしょーか。とりあえず↓のようにやってみたけど、 SendMessageの使い方が間違ってるのか、うまくいかないっす。(ErrorLevelがFAILになる) ~MButton:: MouseGetPos, x, y, id SetFormat, integer, H x += 0 y += 0 xy := x + y * 0x10000 SendMessage, 0x84, 0, %xy%, ahk_id %id% If ( ErrorLevel == 2 ) { ;ここに処理を入れる } return
403 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 17:52:51 ID:69RhDVUi0] 1.0.40.12から1.0.41にバージョンアップしたら、 RWin up::Return が効かなくなってしまいました。 AutoHotkeyを常駐させ、右Windowsキーを >#i::Send,{Up} >#k::Send,{Down} のように使っているのですが、Windowsキーを押して そのままはなすとスタートメニューがでるのがいやで 冒頭のものを一緒に書いていました。 ところが1.0.41ではスタートメニューがでてしまいます。 解決する方法があれば教えてください。
404 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 17:54:27 ID:1N3K73ci0] 0x84 て何だっけ? 値からメッセージ名探すの大変なんで質問する時はコメントとか入れてクレ
405 名前:402 mailto:sage [2006/01/22(日) 18:30:09 ID:v9Q+2/T40] >>404 スイマセン。 コメント入れるとこんな感じです。 ~MButton:: MouseGetPos, x, y, id ;カーソル下の座標とid取得 SetFormat, integer, H ;座標を16進数に変換 x += 0 y += 0 xy := x + y * 0x10000 ;座標を上位ワードと下位ワードにまとめる SendMessage, 0x84, 0, %xy%, ahk_id %id% ;カーソル下のウィンドウにWM_NCHITTESTを送る If ( ErrorLevel == 2 ) ;タイトルバーならば処理を実行 { ;ここに処理を入れる } return メッセージに関してはここを参考にしました。 ttp://www.winapi-database.com/Message/WM/WM_NCHITTEST.html
406 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 19:02:30 ID:GjGnwmrQ0] >>403 1.0.41 から流行らせるページの 2 stroke key も動かなくなっちゃいましたね。 本体のバグだと思うんで、本家の更新待ちです。
407 名前:406 mailto:sage [2006/01/22(日) 20:00:46 ID:GjGnwmrQ0] すいません。 Ctrl key double tap の方でした…。
408 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 21:39:01 ID:1N3K73ci0] >>405 とりあえず2つほど気がついた点。ただこれでも期待通りの値は取れてないが。 ・SendMessage はウィンドウ指定より先にControlを指定する。(FAILの原因) ・MouseGetPosのX,Y座標はアクティブウィンドウの左上からの相対座標で取得される。 (CoordMode,Mouse,Screenを実行してない場合) つかこのWM_NCHITTESTって「非クライアント領域のどの部分でマウスが操作されたか調べる」って なってるんだけど、いいのだろうか ~MButton:: MouseGetPos, x, y, id,ctl ;カーソル下の座標とid取得 xy := x + y * 0x10000 ;座標を上位ワードと下位ワードにまとめる SendMessage, 0x84, 0, %xy%, ,A MsgBox, ErrorLevel=%ErrorLevel% return 自分もキャプション位置を取得するのにかなり面倒な関数組んでるので こんな簡単にまとめられるならその方が有り難いんだがね
409 名前:402 mailto:sage [2006/01/22(日) 23:52:19 ID:v9Q+2/T40] >>408 座標自体は16進変換しなくても良かったんですね。 自分もその座標の原点をどこにすればよいのか分からなかったので、とりあえずそのままやってみた次第です。 どうやら、Delphi製もしくはWTLを用いて作られたソフトではうまくいくようです。 >自分もキャプション位置を取得するのにかなり面倒な関数組んでるので どのようなロジックで実装されているんでしょうか。
410 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/23(月) 03:04:13 ID:zfPva1iV0] >>409 ちと長いんで自ブログのほうに上げますた。無駄に助長だが一応コピペで当座は動くと思う ttp://d.hatena.ne.jp/eamat/20060123
411 名前:403 mailto:sage [2006/01/23(月) 22:02:12 ID:mqTpMs440] >>406 そうなんですか。 では次のバージョンでの改善を望むことにします。
412 名前:402 mailto:sage [2006/01/24(火) 01:16:40 ID:JUUu5mZd0] >>410 ありがとうございます。期待通りの動きとなりました。 ご苦労の程お察しします。 自分はSendMessageの挙動はいまいち理解できていなく、 根本的な解決法を考えられそうにないので、誰か識者の方ヘルプ^^
413 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/24(火) 11:29:31 ID:hmUrV7Tv0] winキーを単体で押したときだけ無効にするにはどう設定すればいいんでしょうか win+Dとかの操作は有効にしたいんですけど LWIN::Return とすると全部無効になってしまいます。
414 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/24(火) 12:41:36 ID:ArnUgYQ30] 質問前にせめて10レス前ぐらいは読みたまえよ
415 名前:413 mailto:sage [2006/01/24(火) 16:50:53 ID:hmUrV7Tv0] 1.0.40.12 で LWIN up::Return としても全部無効になってしまいます どうしたらいいんでしょうか
416 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/24(火) 23:18:38 ID:Kbo1n5/E0] >>412 ttp://cgi19.plala.or.jp/lukewarm/news/2006_01.html#23
417 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/24(火) 23:30:27 ID:duKuEjYk0] >>413 LWIN::Return LWIN & LWIN::Return;二つ目のLWIN部分は何でも良い。 裏技的だが・・v1.0.40.05ではこれで動いた。他verではどうなるか知らん。
418 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/24(火) 23:35:41 ID:duKuEjYk0] >>416 あぁ、なるほど、SendMessage自体を直に呼べばいいのか。目から鱗。 そうだよなぁ・・・気が付かなかったなぁ・・
419 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/25(水) 00:09:26 ID:1ITNklYD0] >>416 ぬおお、コンパクトだ。さすが
420 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/25(水) 00:37:47 ID:whVXuEi20] ぬるたん ∩ ( ⌒) ∩_ _ グッジョブ!! /,. ノ i .,,E) / /" / /" _n グッジョブ!! / /_∧ ,/ノ' ( l ∧_∧ / /*´∀`)//∧_∧ グッジョブ!! \ \ (*´∀`)( / (*´∀`) n ヽ___ ̄ ̄ ノ ヽ |  ̄ \ ( E) / / \ ヽ フ /ヽ ヽ_//
421 名前:402 mailto:sage [2006/01/25(水) 02:38:42 ID:XjlFS14L0] >>416 (n‘∀‘)ηキテルワー!! 確かにDllCallから使った方が確実ですね。 さり気なくビットシフトなどを使っている辺り、自分との経験?の差を感じます… 改めてお二人に感謝。
422 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/25(水) 04:04:49 ID:8YZ6hNpP0] あら・・スクリーン座標にするだけで、AHKのSendMessageでも出来たよ・・・ 問題はそこだったか・・
423 名前:413 mailto:sage [2006/01/25(水) 19:22:45 ID:sklEJtBz0] >>417 1.0.41.00 で動きました! ありがとう
424 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 00:09:38 ID:NczzL1RK0] RButton & WheelDownにAltTabを割り振りました 特定のアプリだけ、この機能を無効にしたいのですがそれは可能でしょうか Sendにするとすぐキーを離してしまうし、かといってifで条件分岐したあとにAltTabを置いても機能しません
425 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 03:33:13 ID:AxRUycRL0] #IfWinActive
426 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/27(金) 18:46:53 ID:khUBsNcY0] 点呼スレがピンポイントで狙われてるな、何でだろ
427 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/27(金) 18:52:03 ID:MkK/HyNo0] NP2のウィンドウに対してだけ急にahkが効かなくなっちゃったんですが どうすればまた有効になるんでしょうか?
428 名前:403 mailto:sage [2006/01/27(金) 23:27:57 ID:/9813JvU0] >>417 遅ればせながらありがとうございます。 それでうまくいきました。
429 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/28(土) 14:18:33 ID:+ZZFrik00] AHKだと、こういうコメントの書き方できませんね。 /******************************************************************************* * これは、ahkのコメントを確認するためのサンプルです *******************************************************************************/ これもダメ。 /******************************************************************************* * これは、ahkのコメントを確認するためのサンプルです ****************************************************************************** */ これならOK。 /******************************************************************************* * これは、ahkのコメントを確認するためのサンプルです ****************************************************************************** */
430 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/28(土) 14:37:46 ID:9fE5ExNP0] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; これでいいじゃん ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
431 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/28(土) 15:18:26 ID:M2n6ETLA0] /* 行頭に無いとコメント終始認識されないよん */
432 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/28(土) 16:09:27 ID:QgFgpb9I0] ちょこちょこ弄ってたら常駐スクリプトが16KB突破… Runコマンドで呼び出してるのも含めたら40KB超えてたよ。 AutoHotkeyって自由度高い分、各人がどんな使い方してるか気になる。 自分は無変換、変換、カナ/かなキーを修飾キーとしてキーやコマンド割り当てをするのがメイン。 各ウィンドウ位置の保存とかも簡単だし。 トリプルクリック、クワドロプルクリックでも自由に設定できるのも良いね。 あとは、エディットボックスならどんなソフト上にあるものでも 電卓・検索・辞書・コマンドランチャとして使えるようにしたりとか。
433 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/29(日) 22:55:37 ID:g1nyLRt50] 各スクリプトの共通項を切り出してインクルードするのって無理だよね?
434 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/29(日) 23:08:49 ID:sQBDNXPy0] >>433 具体的に。
435 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/29(日) 23:10:30 ID:g1nyLRt50] AHKがインクルードファイルをサポートしてるか否か。 またそれに類する代替機能があるか。
436 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/29(日) 23:18:01 ID:sQBDNXPy0] >>435 ttp://lukewarm.s101.xrea.com/commands/_Include.htm
437 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/30(月) 00:25:20 ID:jpKlrbYu0] gdiplus.dllで描画出来ないYO!! GIFとかICONをPictureコントロールで透明色部分を背景透過して表示したいんだが、 うまくいかない・・ Gui, Add, Picture, AltSubmit BackgroundTrans, AAA.ico Gui, Show とかやっても透明部分が透過されないYO!!! ちゃんとgdiplus.dllはAutoHotkey.exeのフォルダに入れてあるのに・・ へるぷみー><; Win2Ksp4 Ahk1.0.41.00
438 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/30(月) 01:41:27 ID:uhBVy+7t0] >>437 dllが認識されてないとかかな。 system32ディレクトリに置いてみるとか、regsvr32で登録してみるとか、パス通すとかやっても駄目だった?
439 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/30(月) 15:20:34 ID:uhBVy+7t0] Run/RunWaitコマンドでコンソールアプリケーションに引数を与えて実行し、 標準出力を得たいんだけど、とりあえず直接標準出力を得るのは無理っぽいので、 ファイルにリダイレクトし、FileReadLineで読み込む方法をとることにした。 Run, %comspec% /c test.exe "引数" > %A_ScriptDir%\test.dat んで、↑のようにやっても、「 > %A_ScriptDir%\test.dat」部分まで test.exeの引数として認識されてしまうらしく、うまくいかない。 多分AHKは関係ないと思うんだけど、解決策求む。
440 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/30(月) 22:16:04 ID:llgn8y2u0] RunWait は試した?
441 名前:439@携帯 mailto:sage [2006/01/30(月) 22:46:29 ID:Spq+eLJkO] >>440 YES そもそもtest.exeに正しい値が渡っていないのであんまり関係ない感じ。 cmd.exeを経由しなくてもダメでした。 普通にコンソールで、 test.exe 引数 > test.dat とやる分にはうまく行くんだけど…
442 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/30(月) 23:57:09 ID:LkEIKve40] うちでもうまく行くのと行かないのがあった気が。 上手く行かないの早々にあきらめて捨てちゃったんでもう憶えてないけど。
443 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/31(火) 02:44:23 ID:cbKaLT0a0] なんかダブルクォートをAHKで処理してる感じ パラメータに日本語とか使ってない?
444 名前:439 mailto:sage [2006/01/31(火) 03:38:14 ID:iIRAafqH0] >>443 g_calcっていう引数として式を与えると、Google電卓を使った結果を出力するソフトで、 引数としては、1+2*4とか、sin(3.14)のような1バイト文字しか使ってないっす。 ttp://www.vector.co.jp/soft/win95/net/se337404.html …結局面倒なんで、このソフトと同等の機能を持つAHKスクリプトを作って対処してしまいました。 簡単なエラー処理入れても5行程度で済むのね。 なので、自己解決したと言えばしたんだけど、せっかくだから、AHKで標準出力を確実に取得する方法を 後学のためにも知っておきたい。
445 名前:名無しさん@お腹いっぱい。 [2006/01/31(火) 11:20:44 ID:333EyHKl0] てst
446 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/31(火) 18:20:05 ID:61oRgPKa0] ニーツオルグ見た?
447 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/31(火) 18:28:13 ID:R4U/vQRD0] あそこトップがでかいんだもん。
448 名前:391 mailto:sage [2006/02/01(水) 01:02:52 ID:lbQsX6480] ttp://www.vector.co.jp/soft/win95/net/se269471.html コマンドライン型のメール送信ソフトなんだがAHKと組み合わせるとおもしろいな。 携帯にメール送るのに便利だわ。
449 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 01:04:48 ID:lbQsX6480] 名前消し忘れてた。はずかし。。。。
450 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 01:10:05 ID:mATxrmSJ0] >>448 詳しく
451 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 01:15:27 ID:Ll9eZFNT0] POP Out ttp://www.vector.co.jp/soft/dl/win95/net/se367561.html これでメールチェックも出来るお(多分)
452 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 07:17:12 ID:CHFM6H+R0] >>439 ttp://cgi19.plala.or.jp/lukewarm/news/2006_01.html#30
453 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 13:09:29 ID:vBsLlalo0] ファイルの名前を、現在アクティブになってるウィンドウのタイトルにつけかえる、 というスクリプトを書いてみたんですが…… #SingleInstance IGNORE ^r:: f0 = test.txt FileAppend, test, %f0% WinGetActiveTitle, title StringReplace, title, title, `:, f1 = %title%.txt MsgBox, %f1% FileCopy, %f0%, %f1% MsgBox, %f0% return まめFileのように、タイトルに「パス - まめFile4」のようになっていると、 ファイルがA_WorkingDirにできてくれないので、 「C:\ほにゃらら」となっている部分のコロンを落とすようにしてみたんですね。 その後のMsgBoxでちゃんと落ちているのは確認できたんですが、FileCopyは失敗してしまいます。 どうしたらよいでしょうか。これがダメ文字というやつですか?
454 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 15:19:14 ID:qvxzsIy40] コロンはパスの一部なので削ったらダメ タイトルが「パス - まめFile4」ってなってるのが原因なら、 パスじゃない部分「 - まめFile4」を削る。 ファイル名に日本語使ってないならダメ文字は関係ないよ
455 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 15:25:04 ID:7xayIcgw0] あれだ、たぶん、 たとえば、WorkingDirがC\AHKだったとすると C\AHKC\ほにゃらら.txtってことになるってことだろ。
456 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 15:51:43 ID:7xayIcgw0] あ、ちょっと、的ずれてた・・ タダ単に、相対パス指定では\以外で始まる指定は出来ないってだけだた・・ ごめん<>
457 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 15:54:39 ID:vBsLlalo0] えーと、こんな感じです。 C:\ahk ←これがWorkingDirで、 C:\home ←たとえばまめFile4でここを開いているとします。 「C:\ahk\"C:\home\ - まめFile4".txt」みたいな感じにしたいのですが、 ;;ほんとはこんな名前のファイルはつくりたくないのです。 ;;タイトルにパスが入るソフトの対策のためのテストというわけで。 「C:\home\ - まめFile4.txt」という名前で保存されることになるため、 実際にはC:\homeの下に「- まめFile4.txt」がつくられてしまうんですね。 で、これを回避したい、ということで。 それで、とりあえずコロンを落とすことにしてみたんですが…… あと、「\」も問題だと思ったので、「¥」に変えるとかしてみましたが、うまく行かず。 コロンを残しているとこんな感じになります。 「C:¥home¥ - まめFile4.txt」つまり、「C:」に「¥home¥ - まめFile4.txt」ができちゃう。
458 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 16:01:53 ID:5DqBaWvy0] 119 名前:unnamed.ahk[sage] 投稿日:06/02/01(水) 05:06 ID:??? そんなの聞く必要あるの? この程度の簡単なものなら、見ればどういう動作するかはすぐにわかるんだから 自分にとって益があるなら使えばいいし、不要なら構わなければいいじゃん。 >>116 を誰が何の用途に使おうとどうでもいいだろ。 ↑こいつ何様?
459 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 16:03:04 ID:vBsLlalo0] もう少し補足。 タイトルにパスが入って悪さをしさえしなければ問題がないんです。 で、ウィンドウのタイトルを拾うため、どうしてもファイル名に日本語が入ることは避けられません。 たとえば今このスレはJane Doe Styleで見てるんですが、これで同じ操作をすると、 タイトルが「Jane Doe Style 【ソフトウェア】 - AutoHotkey Theread 2」となっているので、 これ+.txtという名前にしたいわけなんです。 やっぱり難しいんですかね……
460 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 16:39:10 ID:7xayIcgw0] いや、別に平気でしょ。ただ日本語入るとダメ文字に引っかかる可能性あるのでそこは考慮する必要があるかもしれない。 ただ、さっきの問題とは別だよ。 ^r:: WinGetActiveTitle, title StringReplace, title, title, `:,: StringReplace, title, title, \,\ , All msgbox, %title% FileAppend, , %title%.txt 基本はこんな感じになる。タイトルのファイルがダメ文字無ければ ワーキングディレクトリにちゃんとファイル出来るよ。 ダメ文字関連はここ参照 ttp://www.tierra.ne.jp/~aki/diary/?date=20060111
461 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 16:44:07 ID:7xayIcgw0] >タイトルのファイルがダメ文字無ければ >ワーキングディレクトリにちゃんとファイル出来るよ。 文章めちゃくちゃだな・・(;´Д`) タイトルにダメ文字含まれてなければ、ちゃんと ワーキングディレクトリに狙ったとおりの名前のファイル出来るよ。 と言いたかった・・スレ汚れまくりごめん<>
462 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 17:22:32 ID:qvxzsIy40] >>458 えー、そのスレの 118=120 だけど、ここに持ち込まんでも… ちなみに大元の書込み人からは補足が入った模様です
463 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 17:37:40 ID:vBsLlalo0] およよ…? 何かうまくいきますね。 すみません、レスいただいてありがとうございました。
464 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 17:49:47 ID:7xayIcgw0] SerchStr=\/:,;*?"<>| ReplaceStr=\/:,;*?”<>| ^r:: WinGetActiveTitle, title c=0 Loop{ StringMid, s, SerchStr, c+1, 1 if !s break StringMid, r, ReplaceStr, c*2+1, 2 StringReplace, title, title, %s%, %r%, All c++ } msgbox, %title% FileAppend, , %title%.txt >>463 これでファイル名に使えない文字はOKかな・・
465 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 21:08:57 ID:vBsLlalo0] うを、すばらしい! そのまま組み込んでみます。重ね重ねありがとうでした<O>ペコリ
466 名前:448 mailto:sage [2006/02/01(水) 21:37:49 ID:+NEdY0Ev0] ;メールサーバー host=mail.xxx.xxx.jp ;表示するメアド mine=xxx@xxx.xx.jp ;送り先のメアド address=xxx@xxx.xx.jp filedelete,temp.txt fileappend,,temp.txt sleep,100 run,temp.txt sleep,1000 winwaitclose,temp.txt run,smail.exe -h%host% -f%mine% -Ftemp.txt %address% return こいつをsmailのフォルダにいれてAHKを起動。ノートパッド開くから本文書いて閉じる。これでメール送信完了です。 自分はiniでアドレス帳作って、メニューで選択、確認ボタン、終了後に送信ログ残すようにしてる。 表示メアドに携帯メアド設定しとけば、携帯料金浮いてなかなかおいしいです。 いちいちメールソフト立ち上げてヘッダ変えてっつーのがめんどくさいもんで。