Call of Duty: Black Ops 4が起動しなかったが常駐していたAutohotkeyを終了させたら無事起動した

タイトルで要点全部説明できていますが、以下に経緯などを書きます。

2018年11月頃、Call of Duty: Black Ops 4のPC版を購入しました。
インストール後にBattle.net上のプレイボタンを押すが、うんともすんとも言わずに起動しない。
タスクマネージャでプロセスの様子を見ると、起動したBlackOps4.exeが数秒後に終了していることがわかりました。

その後グラフィックドライバのアップデートやアンチウィルスソフトの例外設定に追加するなどの一般的とされる対処を一通り試すものの、症状が改善しなかったため諦めました。
HUMBLE STOREで買ってたので返金処理して忘れることに。
余談ですがBattle.netでは返金を受け付けていないそうです。

時は流れ1月、BO4のBlackOut期間限定でフリープレイにするよ~とのことなので再度試すがやはり起動しない。
やっぱ無理か……………と諦めかけてたところふと思って、常駐していたAutohotkeyを終了してからBO4の起動を試みたところ…………起動した!!!!!!!!!

Autohotkeyがチートツール扱いされていたのかなと予想していますが、とにかく起動できてよかったです。

同様の症状で起動しない場合はマクロ系のツールが原因の可能性があるので、終了させてから試してみてくれよな!以上!

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メソッドは空ではないディレクトリは削除しないのでバグあっても致命的なことにはならないはず…。