« IEを使って、UTF-8 の BOM を除去する。 | トップページ | IE8では、PDFファイルを続けてNavigateしないほうがよい。 »

2009年5月20日 (水)

ウィンドウタイトルが数字文字列のウィンドウをAppActivateする。

WScript.ShellのAppActivate()では、数字文字列がプロセスIDに解釈されて、ウィンドウタイトルが数字文字列のウィンドウをAppActivateすることができません。

例えば、123という名前のフォルダを開いて、AppActivate("123")とやっても駄目です。
エクスプローラは、複数インスタンスが1プロセスに同居するので、プロセスIDも指定できません。
IE6以前であればIEでフォルダを開いて、AppActivate("123 - Microsoft Internet Explorer")とすることができたのですが、IE7以降はそれもできません。

しかし、タイトル文字列をUnicodeのバイト配列で指定するとよいようです。

Set Stream=CreateObject("ADODB.Stream")
Stream.Open
Stream.Type=2
Stream.WriteText "123"
Stream.Position=0
Stream.Type=1
Stream.Position=2
TitleBytes=Stream.Read(-1)
Set wShell=CreateObject("WScript.Shell")
r=wShell.AppActivate(TitleBytes)
WScript.Echo CStr(r),TitleBytes

« IEを使って、UTF-8 の BOM を除去する。 | トップページ | IE8では、PDFファイルを続けてNavigateしないほうがよい。 »