« バッチファイルを Unicode や UTF-8 で書く。 | トップページ | ウィンドウアプリに化かしたcmd.exeを使う。 »

2009年4月20日 (月)

コンソールアプリをウィンドウアプリに化かす。

コンソールアプリ、例えば、cmd.exeをウィンドウアプリのcmdw.exeに変えるにはどうするか?

方法1

link.exeを持っていれば、
copy cmd.exe cmdw.exe
link /edit /subsystem:windows cmdw.exe

方法2

なければ、
copy cmd.exe cmdw.exe
c2w.vbs cmdw.exe

c2w.vbs

Option Explicit
Const adTypeBinary=1
Const adTypeText=2
Const adSaveCreateOverWrite=2
Dim Path
Dim Stream
Dim Buf
Dim Bytes

Path=WScript.Arguments.Item(0)
Set Stream=CreateObject("ADODB.Stream")
Stream.Open
Stream.Type=adTypeText
Stream.WriteText Chr(2)
Stream.Position=0
Stream.Type=adTypeBinary
Stream.Position=2
Bytes=Stream.Read(1)
Stream.Close
Stream.Open
Stream.Type=adTypeBinary
Stream.LoadFromFile Path
Buf=Stream.Read(512)
Stream.Position=AscB(MidB(Buf,1+&H3c,1))+AscB(MidB(Buf,2+&H3c,1))*256+AscB(MidB(Buf,3+&H3c,1))*256*256+AscB(MidB(Buf,4+&H3c,1))*256*256*256+(&H4+&H14+&H44)
Stream.Write Bytes
Stream.SaveToFile Path,adSaveCreateOverWrite
Stream.Close
Set Stream=Nothing

« バッチファイルを Unicode や UTF-8 で書く。 | トップページ | ウィンドウアプリに化かしたcmd.exeを使う。 »