パクろうと 思っちゃみたが 道険し! そんなもんだよ世の中は その7
AHKで一番にやったことは、ホットキーで各アプリを起動させることだった。
なりふり構わず、何でもかんでも割り振って・・ 挙句・・ どのキーに何を割り当てたかがわからん!で終わった。(笑)
だったら、メニュー型ランチャーを、やってこませ!ということで、何種類か作った。S君の指導のもとに。
過去に、いろいろなランチャーを試してきたが・・、AHK で構築したのが一番 爺には向いているようだ。
現在3種類のメニューを気分で使っているが、使用頻度の高いのは これ!
爺のはこの部分だけで、1200行以上は軽くあるので、バッサ バッサとカットして載せてますが・・
こんな感じ
味噌は、要所?に 「win3 := WinExist("A")」が織り込んであるところ。(笑)
S君たちだと win3 なんて変数は使わずに、hWIN とかなんでしょうが・・(笑)
アクティブなウインドウ次第で、表示するメニューを替えるので、ランチャーにも編集・表示・操作などの
ショートカットにも・・。 ahk ですもの、当り前か!
一目瞭然ですが、爺のご同輩レベルの方のため、ザァーっと解説
いちばん深いところに、 SystemMenu 次に AhkStartupMenu 次に MainMenu という形をとってます。
MainMenu から、AhkStartupMenu が呼び出せ、次に SystemMenu が呼び出せます。
自分はそれぞれの、先頭か最後に Menu, *****, Add, ◯ MAIN へ ◯, :MainMenu とか
Menu, ++++, Add, ◆ WINDOWS 設定関連 ◆, :SystemMenu とか書いて、MainMenu や SystemMenu へ移ってます。
次の
IfWinActive,ahk_class ahk_class MediaPlayerClassicW 等々ですが、
このメニューを <^LWIN で呼び出した時のアクティブ窓が MPC とか 秀丸 等々の時は、GOSUB で
夫々のメニューを表示しに行きます。 そして、そこから 元の MainMenu に戻っています。
書き方は みな同じですので、要領かませば どんどん メタボできます。(笑)
次は、メニューで選んだら、行の最後の ?? ン? なんてったっけ(笑)
アあああぁ? ラベル? だったっけ その ラベルさんのとこにとんできます。
みたいに・・・ 終わり (笑)
MPC、秀丸、卓駆、超マイナーなDBPro(笑)みたいに お行儀のいいソフトは リソースハッカー辺りで
WM_COMMAND に送る引数を一気に調べられるので、この例では Launcher: ひとつで賄えるので楽ですが、
そうじゃないのは・・ シコシコ・・と かつ 粛々と・・ なんとか してくださいませ。(笑)
なりふり構わず、何でもかんでも割り振って・・ 挙句・・ どのキーに何を割り当てたかがわからん!で終わった。(笑)
だったら、メニュー型ランチャーを、やってこませ!ということで、何種類か作った。S君の指導のもとに。
過去に、いろいろなランチャーを試してきたが・・、AHK で構築したのが一番 爺には向いているようだ。
現在3種類のメニューを気分で使っているが、使用頻度の高いのは これ!
爺のはこの部分だけで、1200行以上は軽くあるので、バッサ バッサとカットして載せてますが・・
こんな感じ
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $<^LWIN:: ; MENU win3 := WinExist("A") ;;;;;;; SystemMenu ;;;;;;;;;; Menu, SystemMenu, Add, コンピュータの電源を切る, CPUOFF Menu, SystemMenu, Add, ファイル名を指定して実行, XRUN Menu, SystemMenu, Add, コンピュータの管理 (&c), CplComputerMaintenance Menu, SystemMenu, Add, システムのプロパティ (&s), CplSystem Menu, SystemMenu, Add, タスクマネージャ, taskman Menu, SystemMenu, Add, ;;;;;;; AhkStartupMenu ;;;;;;;;;;;;; Menu, AhkStartupMenu, Add, ◆ WINDOWS 設定関連 ◆, :SystemMenu Menu, AhkStartupMenu, Add, Menu, AhkStartupMenu, Add, AHK_SPY (&a),AU3_Spy Menu, AhkStartupMenu, Add, AutoScriptWriter,ASW Menu, AhkStartupMenu, Add, 窓 コ ン (&m), Madocon Menu, AhkStartupMenu, Add, ResHacker (&r), ResHacker Menu, AhkStartupMenu, Add, Winspector (&w),Winspector Menu, AhkStartupMenu, Add, ahkコンパイラ (&c),COMP ;;;;;;; MainMenu ;;;;;;;;;;; Menu, MainMenu, Add, ◯ AHK & Start UP 関連 ◯, :AhkStartupMenu Menu, MainMenu, Add, Menu, MainMenu, Add, BunBackup (&b),BunBackup Menu, MainMenu, Add, DVD Decrypter (&d),DVDDecrypter Menu, MainMenu, Add, Lyrics Master (&l),LyricsMaster Menu, MainMenu, Add, MMname2_ (&m),MMname2 Menu, MainMenu, Add, LINK+++(&+),+NetDrive Menu, MainMenu, Add, LINK---(&-),-NetDrive Menu, MainMenu, Add, ハードウエアの取り外し (&h),hotplug IfWinActive,ahk_class ahk_class MediaPlayerClassicW { Gosub,MPC Menu, MPCMenu, Color, B0B000 Menu, MPCMenu, Show Menu, MPCMenu, DeleteAll Menu, SystemMenu, DeleteAll ;sys ━━┓ Menu, MainMenu, DeleteAll ;main━━┫ Menu, AhkStartupMenu, DeleteAll ;tool━━┛ return } IfWinActive,ahk_class ahk_class Hidemaru32Class { Gosub,HIDEMARU Menu, Hidemaru32Class, Color, F0AACC Menu, Hidemaru32Class, Show Menu, Hidemaru32Class, DeleteAll Menu, SystemMenu, DeleteAll ;sys ━━┓ Menu, MainMenu, DeleteAll ;main━━┫ Menu, AhkStartupMenu, DeleteAll ;tool━━┛ return } else { Menu, MainMenu, Color, C0C0C0 Menu, MainMenu, Show Menu, SystemMenu, DeleteAll ;sys ━━┓ Menu, MainMenu, DeleteAll ;main━━┫ Menu, AhkStartupMenu, DeleteAll ;tool━━┛ return } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;; 秀 丸 MENU-SUB ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; HIDEMARU: win3 := WinExist("A") Menu, Hidemaru32Class, Add, コマンド一覧... -232, Launcher Menu, Hidemaru32Class, Add, 追加コピー -43, Launcher Menu, Hidemaru32Class, Add, grepの実行... -59, Launcher Menu, Hidemaru32Class, Add, 他の秀丸エディタと同時スクロール... -165, Launcher Menu, Hidemaru32Class, Add, キー操作の記録開始/終了 -58, Launcher Menu, Hidemaru32Class, Add, キー操作の再生 -60, Launcher Menu, Hidemaru32Class, Add, キー操作の保存... -105, Launcher Menu, Hidemaru32Class, Add, キー操作の読込み... -106, Launcher Menu, Hidemaru32Class, Add, ファイルタイプ別の設定... -54, Launcher Menu, Hidemaru32Class, Add, 動作環境... -81, Launcher Menu, Hidemaru32Class, Add, キー割り当て... -55, Launcher Menu, Hidemaru32Class, Add, Menu, Hidemaru32Class, Add, == MainManu ==, :MainMenu Return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;; MPC MENU-SUB ;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MPC: win3 := WinExist("A") Menu, MPCMenu, Add, ◯ MAIN へ ◯, :MainMenu Menu, MPCMenu, Add, Menu, MPCMenu, Add, 1/2サイズ (&H) -832,Launcher Menu, MPCMenu, Add, 標準サイズ (&N) -833,Launcher Menu, MPCMenu, Add, 2倍サイズ (&D) -834,Launcher Menu, MPCMenu, Add, Menu, MPCMenu, Add, ウィンドウのサイズに拡大 (&S) -838,Launcher Menu, MPCMenu, Add, 内側からウィンドウに接触 (&z) -839,Launcher Menu, MPCMenu, Add, 外側からウィンドウに接触 (&x) -840,Launcher Menu, MPCMenu, Add, Menu, MPCMenu, Add, アスペクト比を保持 トグル (&K) -841, Launcher Menu, MPCMenu, Add, アスペクト比を調整 デフォルト (&0) -850,Launcher Menu, MPCMenu, Add, アスペクト比を調整 4:3 (&1) -851,Launcher Menu, MPCMenu, Add, アスペクト比を調整 5:4 -852,Launcher Menu, MPCMenu, Add, アスペクト比を調整 16:9 (&2) -853,Launcher Menu, MPCMenu, Add, Menu, MPCMenu, Add, 常に手前に表示 無効 -883, Launcher Menu, MPCMenu, Add, 常に手前に表示 有効 -884, Launcher Menu, MPCMenu, Add, 常に手前に表示 再生中 -885, Launcher Menu, MPCMenu, Add, return上が、メニューのメニュー部分?(笑)
味噌は、要所?に 「win3 := WinExist("A")」が織り込んであるところ。(笑)
S君たちだと win3 なんて変数は使わずに、hWIN とかなんでしょうが・・(笑)
アクティブなウインドウ次第で、表示するメニューを替えるので、ランチャーにも編集・表示・操作などの
ショートカットにも・・。 ahk ですもの、当り前か!
一目瞭然ですが、爺のご同輩レベルの方のため、ザァーっと解説
いちばん深いところに、 SystemMenu 次に AhkStartupMenu 次に MainMenu という形をとってます。
MainMenu から、AhkStartupMenu が呼び出せ、次に SystemMenu が呼び出せます。
自分はそれぞれの、先頭か最後に Menu, *****, Add, ◯ MAIN へ ◯, :MainMenu とか
Menu, ++++, Add, ◆ WINDOWS 設定関連 ◆, :SystemMenu とか書いて、MainMenu や SystemMenu へ移ってます。
次の
IfWinActive,ahk_class ahk_class MediaPlayerClassicW 等々ですが、
このメニューを <^LWIN で呼び出した時のアクティブ窓が MPC とか 秀丸 等々の時は、GOSUB で
夫々のメニューを表示しに行きます。 そして、そこから 元の MainMenu に戻っています。
書き方は みな同じですので、要領かませば どんどん メタボできます。(笑)
次は、メニューで選んだら、行の最後の ?? ン? なんてったっけ(笑)
アあああぁ? ラベル? だったっけ その ラベルさんのとこにとんできます。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;; Launcher ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;; Launcher ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Launcher: St1 := A_ThisMenuItem StringGetPos,Var,St1,-,R1 Var = % Var+2 ; Var := Var + 2 StringMid,St1,St1,Var SendMessage, 0x111 , %St1% ,,,Ahk_id %win3% Return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;; SystemMenu ;;;;;;;;;;;;;;;;;;;;;;;;;; CPUOFF: hSellTrayWnd := DllCall("FindWindow", "Str", "shell_traywnd") DllCall("SendMessageA", "Int", hSellTrayWnd, "Int", 0x111, "Int", 0x1FA) return XRUN: hSellTrayWnd := DllCall("FindWindow", "Str", "shell_traywnd") DllCall("SendMessageA", "Int", hSellTrayWnd, "Int", 0x111, "Int", 0x191) return taskman: hSellTrayWnd := DllCall("FindWindow", "Str", "shell_traywnd") DllCall("SendMessageA", "Int", hSellTrayWnd, "Int", 0x111, "Int", 0x1A4) return hotplug: ; run,rundll32 shell32.dll`,Control_RunDLL hotplug.dll Run control hotplug.dll return ScreenSaver: #F1:: RegWrite, REG_SZ, HKEY_CURRENT_USER, Control Panel\Desktop, ScreenSaveActive, 1 SendMessage, 0x112, 0xF140, 0,, Program Manager ; RegWrite, REG_SZ, HKEY_CURRENT_USER, Control Panel\Desktop, ScreenSaveActive, 0 return ;;;;;;;;;;;;;;;;;;;;;;;;;;;; MainMenu ;;;;;;;;;;;;;;;;;;;;;;;;;;;; WebPrintBrowser: run, "E:\_Install_040413\wpb\WebPrintBrowser.exe" return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;; MainMenu 最前列に固定させる トグル ;;;;;;;;;;;;;;;;;; SAT: winset, alwaysontop, toggle, ahk_id %win3% return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;; MainMenu;;; AutoScriptWriter ;; AHKバンドル ;;;;;; ASW: cuteExec("F:\AutoHotkey\AutoScriptWriter\AutoScriptWriter.exe","ahk_class ASW_Dev_01") return
みたいに・・・ 終わり (笑)
MPC、秀丸、卓駆、超マイナーなDBPro(笑)みたいに お行儀のいいソフトは リソースハッカー辺りで
WM_COMMAND に送る引数を一気に調べられるので、この例では Launcher: ひとつで賄えるので楽ですが、
そうじゃないのは・・ シコシコ・・と かつ 粛々と・・ なんとか してくださいませ。(笑)