とりあえずメモ書き程度ですが残しておこうかと。
背景と問題
Windows7環境において、フォントを管理者権限なしでインストールさせたいという要望が事の発端。
マイクロソフトのスクリプトセンターに、[VBScriptでフォントをインストールするサンプルコード][link-1]はあったのですが、一部の環境で上手く動作しないことが発覚。
考えられる手は尽くしたものの解決出来なかったため、ネット上を彷徨っていたところ、[別の手段で実現しているサンプルコード][link-2]を発見!
試してみたところ、MSのサンプルコードでは上手くいかなかった環境でも問題無く動作できたので採用に至りました。
そのときのメモ書きです。
サンプルコード
以下のVBScriptコードは、Cドライブ直下に置いてあるフォントファイル「fontfilename.ttf」を右クリックしてインストールする例です。
Dim objShell
Dim objFolder
Dim objFolderItem
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("C:\")
Set objFolderItem = objFolder.ParseName("fontfilename.ttf")
objFolderItem.InvokeVerb("Install")
上記VBScriptを管理者権限で動かせば、フォントがインストールされます。
InvokeVerb("Install")
これがフォントを右クリックしたときに出るメニューの「インストール」に当たる部分。
応用すれば、xlsファイルを印刷したり、PDFを印刷したりも出来るようです。
詳細
この方法に限らずですが、管理者権限でスクリプトを動作させるための別の手段も必要です。
これについては、VB2005で解決させましたが、別の機会に…。
参考リンク
Hey, Scripting Guy! スクリプトを使用してフォントをインストールする方法はありますか
[http://gallery.technet.microsoft.com/scriptcenter/b5acfc13-3c7b-4168-b9c9-792e005304e6][link-1]
[link-1]:http://gallery.technet.microsoft.com/scriptcenter/b5acfc13-3c7b-4168-b9c9-792e005304e6
How do I install a font from the Windows command prompt?
[http://superuser.com/questions/201896/how-do-i-install-a-font-from-the-windows-command-prompt][link-2]
[link-2]:http://superuser.com/questions/201896/how-do-i-install-a-font-from-the-windows-command-prompt