MouseGestureLを特定のフォルダ以下にあるアプリで動作しないようにする

MouseGestureLは大変便利なソフトだけど、ゲーム中は右クリックの入力が横取りされてしまって邪魔になることが多い。
新しいゲームをインストールするたびに、Disableに登録していくのが面倒なので「特定のアプリ以外全部無効」にする設定にしようと思ったけど、どうやらできないようだった。
ゲーム以外では無効にしていなくてもあまり困らなかったので、代替案として「指定したフォルダ以下にある全てのアプリで無効」というカスタム条件式を作って、そこにゲームのインストール先にしているフォルダを設定することにした。

こんな感じのをDisableターゲットにカスタム条件式として登録する

InStr(MG_ExePath(),"D:\Steam")

上記だとD:\Steam以下にあるアプリ全てでMouseGestureLが無効になる。

f:id:common255:20150927145016p:plain

自分は D:\Steam と D:\Game 以下にゲームをインストールしているのでその二つを登録した。

OpenTweenの「発言中のURLを開く(Ctrl+E)」のウィンドウ内でセミコロンをEnterに

発言内に@やURLやハッシュタグが複数あるときに出るウィンドウのことです。
jkで移動した後のEnterが遠いのでセミコロンで代用することにした。
ホームポジション崩れなくなって便利。

;OpenURLウィンドウでセミコロンEnterする
#If WinActive("OpenURL") && WinActive("ahk_exe OpenTween.exe")
`;::Send, {Enter}
#if

セミコロンエンターは格好いいイメージがあるので真似してみたかったというのもある。

Steamのゲームを任意のランチャーから起動する

Steamのクライアントいちいち表示するのめんどくさいしいつも使ってるランチャーですばやく起動したいといった場合に便利。
ゲームの実行ファイルを直接叩いても起動しない為、下記のようにする。

・手順

steam.exe steam://rungameid/(steam_appid)

をランチャーに登録する。
OSの関連付けを見てくれるランチャーであれば

steam://rungameid/(steam_appid)

のようにsteam.exeは省略しても良い。

「steam://rungameid/(steam_appid)」を調べるには、
Steamのライブラリからゲームタイトルを右クリック>ショートカットを作成 を実行して
デスクトップに作成されたショートカットのプロパティを開く(またはファイルの中身のURL=以降を見る)。

ランチャーによってはアイコンがゲームのものではなくSteam.exeのものが表示されてしまう。
変更したい場合はSteam\SteamApps\common\以下からゲームの実行ファイルを探して指定するか、
ショートカットファイルの中身に記載されたIconFile=以降のパスを指定する。

・例:Shorter Launcherに登録

B&orderlands 2 | D:\Steam\Steam.exe | steam://rungameid/49520 || D:\Steam\SteamApps\common\Borderlands 2\Binaries\Win32\Borderlands2.exe
&Left 4 Dead 2 | D:\Steam\Steam.exe | steam://rungameid/550 || D:\Steam\SteamApps\common\Left 4 Dead 2\left4dead2.exe
S&trike Vector | D:\Steam\Steam.exe | steam://rungameid/246700 || D:\Steam\steam\games\a2f968a1f900d9d472cf8673ea0254ee6ffa6a7e.ico
&Alan Wake | D:\Steam\Steam.exe | steam://rungameid/108710 || D:\Steam\SteamApps\common\Alan Wake\AlanWake.exe
Al&an Wake's American Nightmare | D:\Steam\Steam.exe | steam://rungameid/202750 || D:\Steam\SteamApps\common\alan wakes american nightmare\alan_wakes_american_nightmare.exe
Cav&e Story+ | D:\Steam\Steam.exe | steam://rungameid/200900 || D:\Steam\SteamApps\common\Cave Story+\data\icon.bmp
&DmC Devil May Cry | D:\Steam\Steam.exe | steam://rungameid/220440 || D:\Steam\SteamApps\common\DmC Devil May Cry\Binaries\Win32\DMC-DevilMayCry.exe
La-&Mulana | D:\Steam\Steam.exe | steam://rungameid/230700 || D:\Steam\SteamApps\common\La-Mulana\LaMulanaWin.exe
The Last &Remnant | D:\Steam\Steam.exe | steam://rungameid/23310 || D:\Steam\SteamApps\common\The Last Remnant\Binaries\TLR.exe

こんな感じ。
f:id:common255:20140321235524p:plain

エクスプローラで開いているフォルダを任意のファイラで開くAutohotkeyスクリプト

エクスプローラで開いてるフォルダを任意のファイラで開くスクリプト書いた。
フォルダを開く系機能で任意のファイラ指定できないソフトを使わなきゃいけないときなどに便利。

・使い方
1.ファイラやショートカットキーを好みに応じて変える
(以下あふw及びCtrl+Kに設定した例)
2.エクスプローラ上でCtrl+K>エクスプローラ閉じる>設定したファイラでフォルダが開かれる

・動作確認環境:Windows8.1 64bit AutoHotKey_L 64bit v1.1.13.01

・更新履歴
140313 正規表現がルートディレクトリにマッチしてないの直した

;ExplorerでCtrl+K押すと開いてるフォルダをあふwで開く
#If WinActive("ahk_class CabinetWClass")
^K::
  filerpath := "D:\app\afxw\AFXW.EXE -s -L" ;ファイラのパスを指定
  WinGetText, wintext, A
  WinClose, A
  RegExMatch(wintext, "アドレス:\s(\w:\\.*)", folderpath)
  Run, %filerpath%%folderpath1%\
  return
  
;+Shiftであふw逆窓
^+K::
  filerpath := "D:\app\afxw\AFXW.EXE -s -R" ;ファイラのパスを指定
  WinGetText, wintext, A
  RegExMatch(wintext, "アドレス:\s(\w:\\.*)", folderpath)
  WinClose, A
  Run, %filerpath%%folderpath1%\
  return
#If

ひらがなカタカナキーを右Altにする.Regファイル

ノートPCの機種によっては右Altがない場合があり、普段キーボード中心の操作をする人に多大な不便を強いられることがある。
代わりに不要なキーを潰して右Altにしてしまおうという解決方法。
ひらがなカタカナキーを使ってなかったので今回はコレにしました。
Windows7 x64版で確認。

以下をコピペし.regファイルにして実行

Windows Registry Editor Version 5.00

;ひらがなカタカナキーを右Altに変更
"Scancode Map" = hex:00,00,00,00, 00,00,00,00, 02,00,00,00, 38,E0,70,00, 00,00,00,00

参考にしたサイト
碧落 - キーボード配列をWindows上で変更する http://sgry.jp/articles/scancodemap.html

空のディレクトリを検索して削除するRubyスクリプト

引数に渡されたディレクトリ以下を検索して空だったディレクトリを削除します。

emptyDirDel.rb

# encoding: Windows-31J
# 空のディレクトリを削除する
require "find"

n = 0
Find.find(ARGV[0]) do |path|
        if FileTest.directory?(path)
                if Dir.entries(path).join == "..."
                        Dir.rmdir(path)
                        puts "削除: #{path}"
                        n += 1
                end
        end
end

puts "#{n}個のディレクトリを削除しました"

> ruby emptyDirDel.rb ディレクトリ
みたいな感じで使います。

このままだと処理終了後すぐにウィンドウが消えてしまって何消したかわからないので、僕は以下のようなバッチファイルを作って
emptyDirDel.bat

ruby emptyDirDel.rb "%1"
pause

あふwから
emptyDirDel.bat $F
というコマンドを呼んで使ってます。


Dir#rmdirメソッドは空ではないディレクトリは削除しないのでバグあっても致命的なことにはならないはず…。

アプリを再起動するAutoHotKeyスクリプト

Win+Shift+Q押したらアクティブなアプリを再起動します。
60秒経ってもプロセスが終了されなかったらメッセージボックス出して諦めます、時間の掛かるアプリがあれば適当に調整してください。

;アプリ再起動 Win+Shift+Q
#+Q::
  WinGet, exefullpath, ProcessPath, A
  WinGet, pid, PID, A
  WinClose, ahk_pid %pid%
  Process, WaitClose, %pid%, 60 ;最大60秒待つ
  if ErrorLevel != 0 
    msgbox, プロセスが終了しなかったか、時間が掛かっています。スクリプトを終了します
  else
    Run, %exefullpath%
  return