LoginSignup
3
4

More than 5 years have passed since last update.

CPU (32bit / 64bit) に応じて別のアプリを起動する

Last updated at Posted at 2013-12-20

導入

Dropboxフォルダの中に GVIM など32bit/64bit版アプリを両方入れている場合、
PCのCPUに応じて適切な方を起動して欲しいことがままあります。(意識せずに使い分けたい)

そんな時は、以下のAutoHotKeyスクリプトをコンパイルして作成した.EXEを
起動することで、自動的に振り分けるようにしています。
コマンドライン引数も引き継いでくれます。

ソースコード

gvim.ahk
; Function: 32bit環境か64bit環境かを判別し、異なるEXEを実行する
; NOTICE: 32bit環境でビルドしてください
#NoEnv
SetWorkingDir %A_ScriptDir%

GetNativeSystemInfo() ; OS の種類を取得
{
  VarSetCapacity(si,44)
  DllCall("GetNativeSystemInfo", "uint", &si)
  if ErrorLevel
      return -1

  arc := NumGet(si,0,"ushort")
  return arc
}

Is64bitCPU()
{
  arc := GetNativeSystemInfo()
  return (arc = 9 or arc = 6)
}

Is32bitCPU()
{
  arc := GetNativeSystemInfo()
  return (arc = 0)
}

; CPUの種類で、実行するパスを変更する
if(Is32bitCPU())
  command := "..\vim32\gvim.exe"
else if(Is64bitCPU())
  command := "..\vim64\gvim.exe"
else
{
  msgbox, unknown CPU
  ExitApp
}

; コマンドライン引数を引き渡す
loop, %0%
{
  arg := %A_Index%
  if( InStr(arg," ") > 0 )
    arg="%arg%"

  command=%command% %arg%
}

run, %command%

注意

このスクリプトをコンパイルするのは 32bit環境の方で行ってください。

参考

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4