File.expand_pathがシフトJISのパスを返せない2

id:sshiさん、コメントありがとうございます。
試してみました。バッチリです。

require 'win32ole'
$KCODE='sjis'
fso = WIN32OLE.new('Scripting.FileSystemObject')
p fso.GetAbsolutePathName(ARGV[0])

Win32OLEを使うと、ExcelIEなど、Windows上のツールで遊べるんですね。

今回はAPIで間に合ってしまいましたが、何かのときに役に立ちそう。