仕様をざっとみたところ、AutoHotkeyを使用すれば、ほぼ実装できますね。AutoHotkey は Vista の環境でも動きます。
IME.ahkを使用すれば、「IME側の設定変更」は不要でしょう。とはいえ IME.ahk には Internet Explorer や Microsoft Word では正常に動作しないという欠点があります。この点に注意する必要があります。
問題は CapsLock の Ctrl への書き換えの部分です。こればかりは現行の AutoHotkey では対処できません。
追記:それっぽいものを作ってみました。
- ひらがなキー+文字キーを押し下げた後の挙動がおかしくなってしまいます。解決方法が解りません。
- ウィンドウの最大化のトグルを実装していません。ここではただ最大化のみしています。
実装できる、と言ってもこれじゃあ、ねぇ。
さらに追記:mobitanさんの指摘を反映しました。コメント欄をご覧ください。
Process, Priority, , High SendMode Input #NoEnv #SingleInstance FORCE #WinActivateForce #UseHook #persistent SetBatchLines, -1 SetWinDelay, 0 SetKeyDelay, 0 SetControlDelay, 0 ; AutoHotokeyを流行らせるアップローダ ; http://lukewarm.s101.xrea.com/up/ ; 089.zip Shift&Space + IME.ahk #Include %A_ScriptDir% #Include .\IME.ahk sc029::Esc sc07B::BS sc079:: Send,{Enter} IME_SET(0) return sc070:: Send,{Del} return ~Shift:: IME_SET(0) return sc00C::Send,{[} sc00D::Send,{]} sc07D::Send,~ +sc003::Send,@ +sc007::Send,{^} +sc008::Send,& +sc009::Send,* +sc00A::Send,( +sc00B::Send,) +sc00C::Send,{{} +sc00D::Send,{}} +sc07D::Send,`` sc01A::Send,= sc01B::Send," +sc01A::Send,{+} +sc01B::Send,' sc028::Send,- sc02B::Send,\ +sc027::Send,: +sc028::Send,_ +sc02B::Send,| sc073::Shift Space::Send,{Space} Space & sc002::Send,{F1} Space & sc003::Send,{F2} Space & sc004::Send,{F3} Space & sc005::Send,{F4} Space & sc006::Send,{F5} Space & sc007::Send,{F6} Space & sc008::Send,{F7} Space & sc009::Send,{F8} Space & sc00A::Send,{F9} Space & sc00B::Send,{F10} Space & sc00C::Send,{F11} Space & sc00D::Send,{F12} Space & sc07D::Send,{vkF4sc029} ; 全角 Space & sc010::Send,{vk1Csc079} ; 再変換 Space & sc011::Send,!{Left} Space & sc012::Send,{Space} Space & sc013::Send,!{Right} ;;; toggle: WinRestore ;;; WinRestore ;;; http://www.autohotkey.com/docs/commands/WinRestore.htm Space & sc014::WinMaximize ; Mod1+[ T ] = ウィンドウ最大化トグル Space & sc015::Send,^{Home} Space & sc016::Send,^{Left} Space & sc017::Send,{Up} Space & sc018::Send,^{Right} Space & sc019::Send,^{v} ; Mod1+[ = ] = クリップボード履歴 (常駐ソフトのキー設定に合わせる) ; Space & sc01A:: Space & sc01B::Send,{PgUp} Space & sc01E::Send,{Esc} Space & sc01F::Send,{BS} Space & sc020::Send,{Enter} Space & sc021::Send,{Del} Space & sc022::Send,!{F4} Space & sc023::Send,{Home} Space & sc024::Send,{Left} Space & sc025::Send,{Down} Space & sc026::Send,{Right} Space & sc027::Send,{End} Space & sc028::Send,{AppsKey} Space & sc02B::Send,{PgDn} Space & sc02C::Send,{Undo} Space & sc02D::Send,^+{Tab} Space & sc02E::Send,^{Tab} Space & sc02F::Send,^{F4} Space & sc030::WinMinimize Space & sc031::Send,^{x} Space & sc032::Send,^{c} Space & sc033::Send,!{Tab} Space & sc034::Send,{Tab} Space & sc035::Send,^{End} ; Space & sc073::Send,{} sc079 & sc002:: sc079 & sc003:: sc079 & sc004:: sc079 & sc005:: sc079 & sc006:: sc079 & sc007:: sc079 & sc008:: sc079 & sc009:: sc079 & sc00A:: sc079 & sc00B:: sc079 & sc00C:: sc079 & sc00D:: sc079 & sc07D:: sc079 & sc010:: sc079 & sc011:: sc079 & sc012:: sc079 & sc013:: sc079 & sc014:: sc079 & sc015:: sc079 & sc016:: sc079 & sc017:: sc079 & sc018:: sc079 & sc019:: sc079 & sc01A:: sc079 & sc01B:: sc079 & sc01E:: sc079 & sc01F:: sc079 & sc020:: sc079 & sc021:: sc079 & sc022:: sc079 & sc023:: sc079 & sc024:: sc079 & sc025:: sc079 & sc026:: sc079 & sc027:: sc079 & sc028:: sc079 & sc02B:: sc079 & sc02C:: sc079 & sc02D:: sc079 & sc02E:: sc079 & sc02F:: sc079 & sc030:: sc079 & sc031:: sc079 & sc032:: sc079 & sc033:: sc079 & sc034:: sc079 & sc035:: sc079 & sc073:: IME_SET(1) IME_SetConvMode(25) StringRight, OutputVar, A_ThisHotkey, 5 Send,{%OutputVar%} return sc070 & sc002:: sc070 & sc003:: sc070 & sc004:: sc070 & sc005:: sc070 & sc006:: sc070 & sc007:: sc070 & sc008:: sc070 & sc009:: sc070 & sc00A:: sc070 & sc00B:: sc070 & sc00C:: sc070 & sc00D:: sc070 & sc07D:: sc070 & sc010:: sc070 & sc011:: sc070 & sc012:: sc070 & sc013:: sc070 & sc014:: sc070 & sc015:: sc070 & sc016:: sc070 & sc017:: sc070 & sc018:: sc070 & sc019:: sc070 & sc01A:: sc070 & sc01B:: sc070 & sc01E:: sc070 & sc01F:: sc070 & sc020:: sc070 & sc021:: sc070 & sc022:: sc070 & sc023:: sc070 & sc024:: sc070 & sc025:: sc070 & sc026:: sc070 & sc027:: sc070 & sc028:: sc070 & sc02B:: sc070 & sc02C:: sc070 & sc02D:: sc070 & sc02E:: sc070 & sc02F:: sc070 & sc030:: sc070 & sc031:: sc070 & sc032:: sc070 & sc033:: sc070 & sc034:: sc070 & sc035:: sc070 & sc073:: IME_SET(1) IME_SetConvMode(16) StringRight, OutputVar, A_ThisHotkey, 5 Send,{%OutputVar%} return