1 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/01/28(月) 15:48:16 ID:LAzeYh1N0] (テンプレ>>1 ) ■公式 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/ 関連リンク>>2 以降も参照
540 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 22:43:26 ID:wYoClkp80] >>539 そういうことしたいわけじゃないよ。 エロページはだいたいパスの最後が連番になってるページが多いので 1〜100までページがあるのがわかってる時、片っ端から開いてくのに使ったりする。 Irvineでダウンするにしてもページ内のjpg数がページによってまちまちだしなw >>517 や>>519 もそういう事がしたいんだろう?
541 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 23:29:14 ID:cI06fFxv0] エロを必死に確認したいID:wYoClkp80であった・・・www
542 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 23:30:58 ID:iuOrHl4L0] なんで一般的なスクリプトで済むことを AHKでがんばりたがるのかがわからない。
543 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 00:00:09 ID:k8/9xXte0] >>538 >2の なまず日記 を漁ってみ
544 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 00:23:08 ID:x2ZUK6I60] >>535 if var = value なので、その場合は if s = U が正しい あと好みによるけど GetKeyState() って関数も
545 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 02:30:35 ID:2QK3XTeB0] >>540 そうそう、連番のエロページを自動でめくってムヒヒwって ちがわい! >>536 みたいなことってできるんだ。thx!
546 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 02:32:46 ID:v6FefRTW0] >>538 なまずさんのとこの関数は処理が激烈に遅いので、速度を求めるもの(ファイル検索とか)だと目的にあわせて多少技がいると思う。 >>540 1,Alt+DなりでURL拾う 2,そのURLを右から読んで最初に出てきた数字を+1 じゃだめかい?
547 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 02:50:33 ID:rCs0tb0O0] 文字が化けて困ることをするのなら他のスクリプト言語を選ぶのもひとつの選択ではないか。煽りじゃなく。
548 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 09:21:15 ID:3yDLllki0] ttp://lukewarm.s101.xrea.com/myscripts/MouseGesture.html マウスジェスチャスクリプトで、中央ボタン(MB)のダブルクリックを検知するには どう書けばいいのでしょうか。 MB _ _ MB _ か、MB _ MB _ か試したけれど動かない…。
549 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 09:22:35 ID:QLi8tEuC0] 漏れはファイルパスだけダメ文字修正されたヴァージョン使ってるよ どこで拾ったかは忘れたが
550 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 09:24:00 ID:QLi8tEuC0] 駄目文字微対策版 ttp://yak.myhome.cx/junks/index.html#ahk.cp932 これだ
551 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 13:22:44 ID:2QK3XTeB0] >>539 >サーバーにページが存在するかどうか問い合わせて これってAHKでできるんですか? URLDownloadToFileは違う気がするし。
552 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 15:12:15 ID:APYiR8av0] >>544 ありがとうございます。 「"」をはずしてGetKeyStateにPをつけることでうまくいきました。 最初はGetKeyState()を使っていたのですが、 どういうわけかキーを放してもループを抜けないのことがあるので 引数3つ版を使いました。
553 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 16:48:25 ID:UwM9OJqU0] >>549-550 みごとに動きました!ありがとうございます!結婚してください! 1つ問題を言うなら、AutoHotkeyのトレイアイコンを変更するコマンドで >Menu,Tray,Icon, .\AutoHotkey.exe,1 という指定をしてるのですが、この行で「アイコンがない」という意味の エラーが出るようになりました。 しかし、外部のアイコンを指定して回避できました。
554 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 17:53:33 ID:FcY1c5ey0] エロ画像のURLを連番でムヒヒって、 AHKじゃなくてブラウザ用の拡張ツールとかダウンローダ用つーるのようなきがする、 ってかそうしないとアクション数が多すぎて面倒。 つか、DOM解析したりとか、マウス直下のエレメントから直に実行した方が効率いいし。 そうえいば、Irvineなら http://boo.foo.woo.com/hoge/fuga[00-99].jpg なんてのを、 http://boo.foo.woo.com/hoge/fuga00jpg : http://boo.foo.woo.com/hoge/fuga99jpg って感じに展開してダウンロードキュー作ってくれたはず。 まぁ、Janeとかから間接的に起動させたいならコマンドラインでAHK経由ってものあるが。
555 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/12(月) 19:22:23 ID:1+Yqvhql0] AutoHotkeyの「Iniwrite」コマンドで書いたiniファイルは、 keyがない項目は最下部に追加される仕様で、 長く使っているうちに、順番が汚くなってしまいます。 これを、セクションまたはキーの名前でソートさせる方法はないでしょうか。 [セクション1] abc=0 ghi=0 def=0 ↓ [セクション1] abc=0 def=0 ghi=0 みたいな感じにできるとすっきりするのですが
556 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/12(月) 19:43:04 ID:D8UjqaFx0] >>555 Sort使えばいいんじゃね?一回iniファイルを削除して、ソートしてからIniWrite
557 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/12(月) 23:53:58 ID:9MCe40FX0] vk1Csc079 & i:: Send, {Up} などとして、変換キー Down → 「I」キー Down → 変換キー Up → 「I」キー Up すると、「i」が勝手に連続で入力され始め てしまいます。(何か入力すると止まる) 回避方法は無いでしょうか?
558 名前:557 mailto:sage [2008/05/14(水) 01:07:26 ID:/+0yaezS0] 上の質問取り下げます。 キーリピートの補助ツールの影響でした orz
559 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 04:58:57 ID:ZOd/0zb80] dllcallのつかいかたについて質問です。 流行らせるページのCPU負荷率取得ライブラリがWindows2000で動かないようなので、 このDLLをつかって取得を試みています。 getcpust.dll(WindowsNT/2000/XP/Vista / プログラミング) >CPUの使用率を取得 (利用例ソースコードつき) www.vector.co.jp/soft/winnt/prog/se361629.html それで、下記のように入れてみましたが、 cpu:=DllCall("getcpust.dll\GetCpuStatus") ; get CPU usage 帰ってくる値は常に「1」になってしまい、取得できません。 なお、dllのファイル名を変えたり「GetCpuStatus」を変えると、 1じゃなくてヌルが帰ってくるので、dll自体は認識できているとみて いいのでしょうか。 DllCallの使い方になれていないのですが、今回の場合は どのように書けばよいのか、アドバイスをお願いできれば幸いです。
560 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 10:39:48 ID:VPcXWzWx0] >>559 昔まったく同じ質問があったらしい。 うまくいかない時とかもそうだけど、何度も呼び出すならLoadLibraryしたほうがいいよ #Persistent OnExit, ExitSub hModule := DllCall("LoadLibrary", str, "getcpust.dll") if hModule=0 { ExitApp } SetTimer, GetCpust, 500 return GetCpust: Ret:=DllCall("getcpust\GetCpuStatus", "Int*", cpust, "cdeclInt") ToolTip, 返値 %Ret%`ncpust %cpust%`nErrorLevel %ErrorLevel% return ExitSub: DllCall("FreeLibrary", UInt, hModule) ExitApp
561 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 10:52:50 ID:ZOd/0zb80] >>560 どうもありがとうございます!正常に動きました。
562 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 21:53:23 ID:qEVMeKsk0] Sendでクリップボードの中身を書き出そうとした時に 2バイト文字が含まれてると正常に書き出せなくない?
563 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 23:10:25 ID:P1pe7NoV0] つ Send,^v
564 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/16(金) 10:48:47 ID:PH/VxX9w0] ClassNNの指定方法について質問です。 AutoHotkey付属のAU3_Spy.exeをつかって、 ClassNNを取得するところまでは理解できました。 たとえば下記の例はブラウザのSleipnirですが、マウスカーソルが FenrirEmbeddedToolBar1の上にあるときのみ、カッコ内のスクリプトを 実行する場合、どのように記載すればよいでしょうか。 >>>>>>>>>>( Window Title & Class )<<<<<<<<<<< Sleipnir - [WinGet] >>>>>>>>>( Now Under Mouse Cursor )<<<<<<<< ClassNN: FenrirEmbeddedToolBar1 #IfWinActive ,***** ←たぶんここに何かを記載する 〜実行したいコマンド〜 #IfWinActive
565 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/16(金) 14:47:34 ID:c9i3EJxT0] #IfWinActive, Sleipnirのクラス ***:: MouseGetPos, , , , OutputVarControl , If Outputvarcontrol = FenrirEmbeddedToolBar1 {実行コマンド} こうかな、わかりません><
566 名前:名無しさん@お腹いっぱい。 [2008/05/17(土) 12:51:31 ID:cUZz5sdV0] 特定のウィンドウではキー変更せず それ以外ではキーを変更するにはどうすればよいでしょうか? 下のようにしてみましたが、NotepadでCtrl+Aすると #MaxHotkeysPerInterval に達してしまいます。 「~」をつけると逆にNotepad以外でもCtrl+Aが入ってしまいます。 ^a:: IfWinActive, ahk_class Notepad Send, ^a Else Send, b Return
567 名前:564 mailto:sage [2008/05/17(土) 13:02:38 ID:l+1Pu63/0] >>565 ありがとうございます。おかげさまでヒントになり、解決しました。 MouseGetPos, , , , OutputVarControl , If Outputvarcontrol<>【指定したいClassNN】 return ;違うなら無効ということで、戻る 〜以下やりたいこと これで認識できました。
568 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 14:13:34 ID:hJizOrmY0] >>566 #IfWinNotActiveじゃだめかい
569 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 15:41:23 ID:cUZz5sdV0] >>568 ありがとうございます。それでできましたが、 除外したいウィンドウが複数ある場合はどうしたらいいのでしょうか? 単純に #IfWinNotActive を複数書くと どちらも無効になってしまうようなのですが・・・
570 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 18:26:03 ID:L03/NFhv0] >単純に #IfWinNotActive を複数書くと これがよくわからんが #IfWinNotActive window1 { #IfWinNotActive window2 { #IfWinNotActive window3 { なんとか }}} 論理条件だとこうなりそうだがこれだとダメなのか?
571 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 20:32:11 ID:/leBUyky0] つウィンドウグループ
572 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 22:51:18 ID:cUZz5sdV0] >>570 入れ子にせずに独立に2つ書いてたんですが、 入れ子にしてみるとあとに書いたものしか有効になってないようです。 >>571 こういうのがあるんですね。 ちょっとやってみます。
573 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 01:15:23 ID:jn7VlSlu0] ショートカットキーで特定のアプリ(Firefoxとか)に対して タスクトレイに最小化/最大化をトグルするということはできますか? よろしくお願いします。
574 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 03:25:19 ID:1OtJdJTx0] Access97のモジュールウィンドウでマウスホイールによるスクロールはできないでしょうか? Visual Basic 6.0 IDE でマウス ホイール イベントが機能しない ttp://support.microsoft.com/kb/837910/ja を試してみたのですがAccess2000以降でないと動かないようなので、とりあえずキーを送るだけのものを書いてみたのですが どうもいまいちな気がしますので。 #IfWinActive ahk_class OMain *WheelDown:: Send,{DOWN 2} return *WheelUp:: Send,{UP 2} return #IfWinActive
575 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 03:29:23 ID:1OtJdJTx0] ちなみにWheel Redirectorやかざぐるマウスでは動きませんでした。
576 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 04:36:47 ID:87P/lABM0] >>574 別にその解決法でいいと思うけど、どうしても気になるなら WM_SCROLLかWM_VSCROLLメッセージをコントロールに送れば良いんじゃね? 「どこでもホイール」がそんなことやってたような。 Access97は触ったことないので上手くいくか分からないけども。
577 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 09:29:46 ID:1OtJdJTx0] >>576 ありがとうございます。 しかしどこでもホイールも試してみましたが動きませんでした。 Access2000以降でないとWM_MOUSEWHEELでホイールメッセージを検出できないようです。(よくわかっていませんが) このあたり ttp://www.asahi-net.or.jp/~uk8t-ktu/wincode/global/0010.htm を参考にすればできそうな気もしますが、AHKはまだ使い始めなのでどう書けばいいのかさっぱりな状態です。
578 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 11:25:55 ID:HJA6d0Re0] >>573 タスクトレイにFirefoxがあるなら最大化、無ければ最小化でいいんじゃないか? タスクトレイのものを操作するサンプルは流行らせるページにあったはず
579 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 12:00:49 ID:ab0+UOCY0] >>577 多分 WM_VSCROLLでスクロールコマンド投げる時にスクロールバーのハンドルを 指定してやらんといかんのじゃないかな。 検証してやりたいけどAccess97はもう持ってないので、この辺り使って自分で試行錯誤してくれ 表示ペインとスクロールバーのクラス名や関係性は Winspectorとかで調べると分かりやすいと思う ttp://lukewarm.s101.xrea.com/up/file/085.zip
580 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 12:28:21 ID:q+GwzdQJ0] >>572 Regular Expressions を使うといいんじゃないかな? SetTitleMatchMode RegEx #IfWinNotActive ahk_class (window1|window2|window3)
581 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 13:50:53 ID:7i8b10K90] 1つのPCで、複数のAHKスクリプトを動かす際、 ホットキーの優先順位を決めることは可能でしょうか。 PCを起動している間、必ず常駐させるスクリプトが1つある状況で、 たまに使いたいスクリプトをあとから実行して2つ存在させると、 同じ定義下にあるホットキーを入れた際、発動するスクリプトが 不定期に入れ替わるようです。 2つ目のスクリプトが起動している間は、1つ目のホットキーを 無効にさせたいのですが、ネットワークでいう「メトリック」みたいな 動きは、どのように作るのがベストベストでしょうか。
582 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 14:08:37 ID:1OtJdJTx0] >>579 ありがとうございます。 ちょっと今Accessの勉強をしないとまずいので暇を見てやってみることにします。 ハンドルやクラス名の取得はClsinfoというのを使っていたんですがWinspectorは細かく調べられていいですね。 かざぐるマウスとかで簡単にいけると思ったんですが甘かった..
583 名前:574 mailto:sage [2008/05/19(月) 19:51:51 ID:xrRjgNKk0] 579でいただいたスクリプトを適当に書き換えてAccess97でもマウスホイールによるスクロールができるようになったので 一応報告しておきます。場当たり的修正なので汎用性は0です。WheelScrool.ahkは93行辺りで変数を初期化しているよう なので38行辺りの設定が無効になっているような感じです。 --- WheelScrool.ahk~ Sat Nov 03 00:14:08 2007 +++ WheelScrool.ahk Mon May 19 00:41:40 2008 @@ -137,6 +137,11 @@ scmode = 0 } + if (ccls = "OModule") ; 追加 + { + scmode = null + } + if (!scmode) MOUSEWHELL(ctrl,mx,my,"",AcclSpeed,AcclTOut) Else SCROLL(ctrl,mode,shwnd,"",ScrlCount,AcclSpeed,AcclTOut) @@ -283,6 +288,8 @@ ACount := ScrlCnt Else ACount += ScrlCnt * ASpeed + + ACount = 3 ; 追加 ;wParam: 方向 if (dir = "") AutoHotkey.iniには以下で #IfWinActive ahk_class OMain #Include, %A_ScriptDir%\Extras\Scripts\WheelScrool.ahk Gosub,WheelInit #IfWinActive
584 名前:574 mailto:sage [2008/05/19(月) 21:58:09 ID:xrRjgNKk0] 失礼。これだけでいいみたいです。これなら汎用性もありそうです。 --- WheelScrool.ahk~ Sat Nov 03 00:14:08 2007 +++ WheelScrool.ahk Mon May 19 21:53:35 2008 @@ -94,6 +94,7 @@ ,VDisavledList, VScroolList, MdiActivateList ,BypassCtlList, NullShwndTabooList, HDisavledList + Gosub,WheelInit CoordMode,Mouse,Screen MouseGetPos,mx,my,hwnd,ctrl,3 WinGetClass,wcls, ahk_id %hwnd%
585 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/20(火) 00:01:32 ID:z9u7+QjX0] >>583 >WheelScrool.ahkは93行辺りで変数を初期化しているよう >なので38行辺りの設定が無効になっているような感じです。 そこは関数内でglobal変数を直に使えるよう再宣言してるだけで初期化はされない筈… 一応うちではちゃんと動いてるんだけど、値引き継がれない? XP SP2 / AHK Version 1.0.47.06
586 名前:585 mailto:sage [2008/05/20(火) 02:08:31 ID:z9u7+QjX0] ああ解った、AutoHotkey.ini側の記述の問題だわ AHK常駐時に初期化する前提だから AutoExecute部(ファイル先頭)に書かないとダメ ;--- AutoHotkey.ini --- #Include, %A_ScriptDir%\Extras\Scripts\WheelScrool.ahk Gosub,WheelInit あくまで#IfWinActiveでAccessにのみ適用したいなら WheelScrool.ahkの Hotkeyの前後に入れる ;--- WheelScrool.ahk : Line 77 --- #IfWinActive ahk_class OMain +WheelDown:: WheelRedirect(1) +WheelUp:: WheelRedirect(1) WheelDown:: WheelRedirect() WheelUp:: WheelRedirect() #IfWinActive ttp://lukewarm.s101.xrea.com/up/file/085.zip HDD漁ったらロジクールのチルトでの横スクロールのテストとかした時に作った新しいのがあったんで 上げ直しときます。互換リストにOModule追加してみたんで良かったらコメント外して使って見て下さい。 (ちなみに >583 scmode = null は 0でなく "null"という文字列が代入されてる模様)
587 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/20(火) 20:13:17 ID:zd0pXxS10] AutoHotkeyで取り扱いたいファイルのハッシュ値を計算するための、簡単な方法はないでしょうか。 @IT:Windows TIPS -- Tips:ハッシュ値を利用してファイルの同一性をチェックする www.atmarkit.co.jp/fwin2k/win2ktips/597fciv/fciv.html 上記で解説しているマイクロソフト製の「fciv.exe」をRunで渡してみました。 cmd=fciv.exe "%hashfile%" -xml hash.txt runwait %cmd%,,Hide,pid が、fciv.exe側が日本語のファイル名に対応していないようで、 ほとんどのファイルが、見つからない旨のエラーになってしまいます。 (コマンドラインで渡してもダメだったのでAHkのダメ文字ではないようです) 日本ではfasthash.dllというのが有名のようですが、 dllを使うには、どのように記述すればよいでしょうか。 FastHash.dll hp.vector.co.jp/authors/VA033110/fasthashdll.htm
588 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/20(火) 21:11:57 ID:+6tZiYR+0] >>587 日本語のファイル名に対応していないなら、一時的にAHKでリネームすればいいじゃない。
589 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/20(火) 22:00:36 ID:jzwbJ8Aa0] >>586 わざわざありがとうございます。 かざぐるマウスと併用できるようなのと加速が意外と便利なのでAccess以外にも適用させて使おうと思います。 というかマウスジェスチャーや音量の調節も出来るようだし、AHKがあればかざぐるマウスはいらなそうです。 AHKになさそうなのは設定ダイアログをだしていてもメインウィンドウを動かせる機能ぐらいじゃないかと思います。
590 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/21(水) 18:01:23 ID:+Xi75qRh0] PCのビープ音を鳴らす「Soundbeep」って、状況把握に便利なんですが、 鳴らしている間はスクリプトが完全に止まってしまいますよね。 ビープは鳴らすけど、スクリプト自体は止まらせない方法ってありますか?
591 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/21(水) 18:02:57 ID:P1fIW2PZ0] 別のスクリプトに書いてRun
592 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/21(水) 19:29:17 ID:08CXmI6t0] >>590 SetTimer,Beep,10 Return Beep: soundbeep Settimer,beep,off return
593 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/21(水) 21:46:37 ID:+Xi75qRh0] >>591-592 ありがとうございます。うまくいきました。
594 名前:名無しさん@お腹いっぱい。 [2008/05/22(木) 02:08:12 ID:Bhfqc5ef0] WinXPのエクスプローラーでアドレスバーを非表示にしているとき ツリービューとフォルダビューの間をTabで行き来しようとすると ツリービュー→フォルダビューはTab1回でいけますが フォルダビュー→ツリービューはツリービューを閉じるための×印に 一旦フォーカスがあたるため2回Tabを押さないといけません。 これを1回で行うためにフォルダビューにフォーカスがあるときは Tabが2回送られるように下のようにしたのですが、 なぜか×印がフォーカスされてしまいます。 どうすればよいでしょうか? #IfWinActive, ahk_class ExploreWClass ~Tab:: ControlGetFocus, ClassNN if ErrorLevel = 0 if ClassNN = SysListView321 Send, {Tab}
595 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/22(木) 14:35:58 ID:UGRCaXb90] tab送りじゃなくてControlにFocusを合わせるようにすれば?
596 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/22(木) 23:25:56 ID:Bhfqc5ef0] >>595 なるほど ↓でいけました。ありがとうございます。 #IfWinActive, ahk_class ExploreWClass Tab:: ControlGetFocus, ClassNN If ClassNN = SysListView321 ControlFocus, SysTreeView321 If ClassNN = SysTreeView321 ControlFocus, SysListView321
597 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/23(金) 10:45:11 ID:NPhBXbgz0] デバッグをするため、ウインドウのClassNNが特定の値になっているときに、 ToolTipメッセージをマウスカーソル付近に連続で表示させる動作をさせています。 しかし、マウスカーソルがToolTip自身に乗っかってしまうと、 ClassNNが「特定の値」ではなく、空白になってしまいます。 ClassNNが空白のエリアを除外させたところ、 ToolTip以外の、本当にClassNNが空白の場所との区別ができなくなりました。 ToolTipを表示させる際、ToolTipのClassNNを指定することは可能でしょうか。
598 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/23(金) 23:56:26 ID:/hthvnSA0] 互換シェル使っててLWinをモディファイアに いろんなソフト起動させてるんだけど LWinをちょんと押すだけのときにシェルメニュー 表示とか割り当てたい でもLWinをモディファイアにしてるバインドと ぶつかっちゃうんだけどどうしたら解決できるか わかる人いますか?
599 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/24(土) 00:14:55 ID:jR+OEghm0] LoopでGetKeyState取得して キーが離されるまでのループ回数で分岐とか KeyWaitで時間指定して それを越えたときのKeyStateで分岐とか
600 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/24(土) 01:51:22 ID:kkBoRCJr0] GUI画面にテキストを表示させた際、操作者がGUIの内容を更新する操作をしたとき、 表示したテキストを別のテキストに置き換えて再描画したいです。 普通に同じ座標にAddで追加すると、前のテキストと重なって表示されてしまいます。 GUI画面を破棄するDestroyを入れるとできますが、画面の全部を作り直すため、 かなりチラついてしまいます。 症状確認用テストスクリプト Test: loop { Gui, Destroy Gui, Add, Text,,■■■TESTです■■■→%A_Index% Gui, Show,,GUIテスト sleep,100 } これだと、ものすごくチラついてしまいます。 また、Gui, Destroyをはずすと、最初に表示された内容から変わってくれません。 おそらく、何かやり方があるとは思うのですが、GUI画面の一部の項目を 書き換えて再描画するには、どのように書けばいいのでしょうか。
601 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/24(土) 02:35:35 ID:kLdoO1vi0] Gui, Add, Text, vMyText でテキストを変数MyTextに指定 GuiControl,, MyText, 実際に表示する内容 で書き換える 流行らせるページリファレンスのGUI OSDサンプルとか見れ
602 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/24(土) 14:17:41 ID:kkBoRCJr0] >>601 ありがとうございます。うまくいきました。 100倍くらい速くなりました。
603 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 07:38:54 ID:7/PfvJsA0] 初心者で申し訳ないんですが、 右Alt+jでテンキー1にしたいんですが、 >!j::Numpad1 だと効きません。 j::Numpad1だと問題なく動くんですが、修飾キーをつけたとたん動かなくなります。 Winキー以外のShiftやCtrlでも効きません。何が間違ってるんでしょうか?
604 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 08:14:16 ID:k6NKzcvt0] 98とかME使ってんじゃね
605 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 15:56:56 ID:7/PfvJsA0] >>604 流石にそれはないですw俺の環境だけかな? ノートでNumLockしたくないから、右Altや右Ctrl押してるときだけ有効っぽくしたいんだけど。 あふとかフォトショ使うときに楽になるかなと思ったんだけど。 なぜこんなに難しいんだろ。
606 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 16:43:04 ID:pwVrvVFl0] >>603 なぜ動かないかはわからんが、 !j:: Send,{Numpad1} return で動く。たぶん「仕様」ってやつでは?
607 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 17:01:33 ID:DsBFwt0y0] すいません。WheelScroll.ahkですが Vieasというイメージビューアソフトのマウスホイールでの画像の拡大・縮小が無効になってしまうので #IfWinNotActive ahk_class Vieas_vwin_class WheelDown:: WheelRedirect() WheelUp:: WheelRedirect() ;Shiftホイールで横スクロール +WheelDown:: WheelRedirect(1) +WheelUp:: WheelRedirect(1) #IfWinActive と書き換えてみたのですが、これだとVieasのウィンドウがアクティブになっているときに下のウィンドウが マウスホイールでスクロールできません。 マウスホイールが通常動作するクラスを指定するというようなことはできないでしょうか?
608 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 17:03:41 ID:7/PfvJsA0] >>606 おおっ >!j::Send,{Numpad1}と >^/::Send,{NumpadEnter} で右Altや右Crtlでいけました。有難うございます。 仕様と思います。AHKさいこー。
609 名前:603 mailto:sage [2008/05/25(日) 18:20:04 ID:7/PfvJsA0] モバイルノートに右Altが無かったし、右Ctrlじゃキーが押しにくいので結局、無変換+でやることにした。 言語の設定で無変換を無効化して無問題。 以下、簡単だし別に使う人もいないだろうけど報告まで。 ~vk1Dsc07B & j::Send,{Numpad1} vk1Dsc07B & k::Send,{Numpad2} vk1Dsc07B & l::Send,{Numpad3} vk1Dsc07B & u::Send,{Numpad4} vk1Dsc07B & i::Send,{Numpad5} vk1Dsc07B & o::Send,{Numpad6} vk1Dsc07B & 7::Send,{Numpad7} vk1Dsc07B & 8::Send,{Numpad8} vk1Dsc07B & 9::Send,{Numpad9} vk1Dsc07B & m::Send,{Numpad0} vk1Dsc07B & .::Send,{NumpadDot} vk1Dsc07B & @::Send,{NumpadEnter} vk1Dsc07B & /::Send,{NumpadDiv} vk1Dsc07B & sc028::Send,{NumpadMult} vk1Dsc07B & `;::Send,{NumpadAdd} vk1Dsc07B & -::Send,{NumpadSub} 右Altや無変換でいろいろホットキーを追加してみよっと。
610 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 21:29:11 ID:PNVW0ixZ0] >>607 VieasのメインウィンドウだとControlが存在せずハンドルが取れてなかったみたい。 コントロールが取れない時はウィンドウハンドルを指定してWHEEL投げるように修正かけました。 ttp://lukewarm.s101.xrea.com/up/file/085.zip
611 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 23:50:21 ID:DsBFwt0y0] >>610 ありがとうございます。動作確認しました。 やっぱりAHKいいですね。アプリケーションを問わずに操作できるのがいい。 自分もいろいろ書けるようになるといいんですけどね。
612 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/26(月) 23:03:49 ID:xhUv6vGn0] Guiの質問です。 例 Gui, Add, Picture,Section,*** で作成すると、ClassNNに「Static**」という名称が割り当てられますが、 作成したGuiのClassNNを、特定の文字列で指定することは可能でしょうか。
613 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 01:11:05 ID:0qIAl9sc0] Excelで平成20年1月1日を ^#Dとホットキーを使った場合に 2008/01/01 とするにはどうしたらいいでしょうか? #IfWinActive ahk_class XLMAIN ^#D:: このあとどのように記載したらいいか教えてください. よろしくお願いいたします.
614 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 01:33:15 ID:10H1JCGL0] 2chで使われているような「1201502896」の形式の日付を、 YYYYMMDD形式に変換するには、どのような解決方法が ありますでしょうか。
615 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 01:44:23 ID:mvWayqr00] >>613 Ctrl+CをSendしてStringReplaceしてから はっつければいいんでは? >>614 19700101000000 にその数値を秒数で足せば良いんじゃないかな?
616 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 03:35:18 ID:4BLlhUiO0] 窓キーと3を押すのをトリガーにしようとして # & 3::hogehoge と書いたらキーボードの3が効かなくなりました。 そこで、 #3::hogehogeと書き直したら直りました。 これは既知の現象ですか?
617 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 03:40:10 ID:4BLlhUiO0] >>616 間違えた。 窓キーと2をトリガーにしようとして # & 2と書いたら3のキーが効かなくなった、というのが正しいです。
618 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 03:46:50 ID:Ci2ft8P00] >>616 一つ目のキー自体のもともとの機能は無効化される。 一つ目のキーにチルダ(~)をつければ、そのキーは無効化されず、普通に入力される。 一つにつけておけば、一つ目のキーが同じほかのホットキーでは指定されていなくても、そのキーは無効化されなくなる。 #はShift+3の#と勘違いされただけ。使い方が間違っている。Win & 3て書かないと。
619 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 04:03:06 ID:4BLlhUiO0] >>617 連投済まん。 Hotkeys (Mouse, Joystick and Keyboard Shortcuts)のヘルプにあったこれが答えかも。 lose its original/native function when it is pressed by itself #がある3のキーが効かなくなることが説明できますね。 人騒がせで済みませんでした。夜中にパニックに陥っていたもので。。。(汗
620 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 04:04:31 ID:4BLlhUiO0] >>618 おっ!書き込んでから発見しました。 こんな夜中にありがとうございます。
621 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 12:14:58 ID:10H1JCGL0] >>615 ありがとうございます。変換できました。
622 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 13:47:20 ID:3gCvGmfE0] >>613 ^#D:: Send,^1!c{End}!tyyyy/mm/dd{Enter} んでも IME ONだと失敗するし、素直にExcelマクロで Selection.NumberFormatLocal = "yyyy/mm/dd" したほうがスマートだと思うが。
623 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 13:53:59 ID:3gCvGmfE0] ↑はExcel2002の場合ね、他のバージョンだとアクセラレータキー違うかもしれんし上手く動くかわからん。 Winキー発動はできんけどやっぱマクロ作ってでショートカットキー割り当てたほうがいいと思う。
624 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 19:03:51 ID:10H1JCGL0] ・文字列 string を1行ずつループで回す ・取り出した1行にタブが含まれていたら、タブを別の文字「%okikaemoji%」に置き換える ・結果をstringに戻す ・ループをbreakで終了する という動作を下記の4通りで試しましたが、どれもタブが置き換わってくれません。 1案 value=`t StringReplace, string, A_LoopField,%value%,%okikaemoji%,all 2案 value=%A_Tab% StringReplace, string, A_LoopField,%value%,%okikaemoji%,all 3案 StringReplace, string, A_LoopField,%A_Tab%,%okikaemoji%,all 4案 StringReplace, string, A_LoopField,`t,%okikaemoji%,all どのように書いたら動いてくれるでしょうか。
625 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 20:49:16 ID:mvWayqr00] AutoTrimをOffにする
626 名前:613 mailto:sage [2008/05/28(水) 05:54:16 ID:vTCC4uvQ0] 皆さん お返事遅くてごめんなさい >>615 ありがとうございます >>622 >>623 マクロは考えてなかったです. AHKにこだわりすぎました EXCELマクロでやらせていただきます. ありがとうございます.
627 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 14:00:51 ID:b2k6dMVD0] CTRLのダブルタップを lukewarm.s101.xrea.com/myscripts/index.html を参考にしてやってみたんですが、CTRLを少し押し続けた場合も 起動してしまいます。キーリピートのせいだと思うんですが。 >>389 も同様でした。 回避策はありますか?
628 名前:627 mailto:sage [2008/05/29(木) 15:45:51 ID:b2k6dMVD0] キーリピートの設定を遅くしたらましになったんですが、 他のキーは普通にリピートして欲しいです。 CTRLだけリピートを殺すといった事ができるといいんですが。
629 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 16:59:33 ID:SXLiQ+Fi0] そもそもCtrlキーにリピートがあるのか?
630 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 17:39:08 ID:lv3ZoJSv0] >>628 lukewarm.s101.xrea.com/commands/KeyWait.html ここにサンプルある。2カ所KeyWait入ってるけど上は要らんようなキガス ~CTRL:: if(A_PriorHotkey <> A_ThisHotkey){ return } if(A_TimeSincePriorHotkey > 400){ KeyWait, Ctrl return } tooltip, double tap! return
631 名前:627 mailto:sage [2008/05/29(木) 17:55:57 ID:b2k6dMVD0] >>630 ありがとうございます。 書いてくださった方法でばっちりダブルタップでき、長押しも回避できました。
632 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 20:08:14 ID:yj8hQgNw0] DllCallでLCMapStringを使って文字列を操作したいのですが 引数の型がまったくわからず、どうやってもErrorLevelが-2になってしまいます どう書けばよいのかお教え願えないでしょうか?
633 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 20:47:51 ID:QxYMGk4z0] 非アクティブのiTunesの停止、再生をしたくて↓のようにしてみたんですが 動きません。 #i:: DetectHiddenWindows,On ControlSend,WinTitle,{Space},iTunes return 下のようにクラス指定しても無理でした。 ControlSend,,{Space},ahk_class iTunes 試してみたら、そもそもアクティブにしてもだめだったんですが、打開策はありますか?
634 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 08:25:01 ID:KE70yWJA0] ホットキー以外で初めて書いてみて動作はきちんとするけど、 もっとスマートに書けるんでしょうか? メモリが2,000か6,000K(1:4の割合で変化) CPUが0〜4パー で動いてるんだけど、低スペックってのもあるw(P3-1G)。 プログラミングしたことないんで不安です。 ;EBWinが非アクティブになったら終了。 #Persistent SetTimer , EBWC , 250 return EBWC: WinWait , ahk_class EB_POCKET if ErrorLevel = 0 { WinWaitNotActive , ahk_class EB_POCKET if ErrorLevel = 0 { Process, Close, EBWin.exe } } else return
635 名前:634 mailto:sage [2008/05/31(土) 09:24:36 ID:KE70yWJA0] 自己解決しました、これでAHKの常時起動しなくて済みます。 スレ汚しごめんなさい。 それとも、まだやりようがあるのかな?・・・わからん。 ;EBWinミニウインドー起動が非アクティブになったら終了。 #NoTrayIcon Run, EBWin.exe -m , C:\Program Files\EBWin WinWaitActive , ahk_class EB_POCKET WinWaitNotActive , ahk_class EB_POCKET if ErrorLevel = 0 Process, Close, EBWin.exe else return
636 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 16:10:10 ID:ErfB/+jr0] >>634 >メモリが2,000か6,000K(1:4の割合で変化) の意味が全くわからない そしてスクリプトで何をしようとしてるのか解説が一切ないので、 なにをやってるのかわからない 結論:いくらチラ裏とはいえ、他人にわかるように書きましょう
637 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 16:21:21 ID:nD99XO9q0] >>636 正直それはおまえさんの読解力の問題な気が…
638 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 17:51:19 ID:17jzD8JC0] 繭からやっと移行できたと思ったら これSynergy経由じゃ動かないのかorz
639 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 19:17:34 ID:nD99XO9q0] >>638 動いたり動かなかったり。 >>4 の無変換+ijklの矢印割り当てくらいなら動いたりするけど、 {Blind}の部分が効かなかったりとか。
640 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 00:07:10 ID:ErfB/+jr0] プログラムを実行させるとフォーカスを強制的に フォアグラウンドにしてしまうアプリがあります。 そのアプリをahkからタイマーで呼び出されたのち、呼び出す直前に 作業していた元のウインドウに戻すにはどうしたらいいでしょうか。 その動作を手動で再現させる場合、アプリ呼出し後にALT+TABを押すと 確実に戻れるので、それをAHKで再現できれば解決しそうなのですが。 Run,問題のプログラム.EXE sleep,2000 send,{ALT DOWN} sleep,1000 send,!{Tab down} sleep,1000 send,!{Tab up} send,{ALT UP} 安全牌で、sleepで余裕を入れてるのですが、タイミングが 合わないことが多く、半分くらいしか成功しません。