{{category VBScript,nolink}}VBScriptのメモとか小技とか… !!!Visual Basic Script *VBScript ドキュメント **http://msdn.microsoft.com/ja-jp/library/cc392489.aspx *VBScript ユーザーズ ガイド **http://msdn.microsoft.com/ja-jp/library/cc392209.aspx *VBScript ランゲージ リファレンス **http://msdn.microsoft.com/ja-jp/library/cc392193.aspx !!関数ごとのリファレンス *InputBox 関数 **http://msdn.microsoft.com/ja-jp/library/cc410238.aspx *MSDN Library / Exchange Server 2003 / CreateMHTMLBody Method **http://msdn.microsoft.com/en-us/library/ms527024.aspx *MSDN Library / Exchange Server 2003 / CdoMHTMLFlags Enum **http://msdn.microsoft.com/en-us/library/ms526977.aspx !!!vbScriptでいろいろ !!ファイル選択ダイアログの表示 [[ScrapCode/VBS/File]]へ移動 !!フォルダの再帰的作成 指定したパスのディレクトリを作成する。親ディレクトリがない場合は、再帰的に親ディレクトリを作成していく。 {{code Text,4, Set objFso = WScript.CreateObject("Scripting.FileSystemObject") Root = "C:\WORK\" Path = "dir1\dir2\dir3" call CreateFolderEx(Root & Path) '=============================== Sub CreateFolderEx(strPath) strParent = objFso.GetParentFolderName(strPath) If objFso.FolderExists(strPath) Then ElseIf objFso.FolderExists(strParent) Then objFso.CreateFolder strPath Else call CreateFolderEx(strParent) objFso.CreateFolder strPath End If End Sub }} !!MHTML形式ファイルの作成 IEで「Webページの保存」ダイアログの保存形式のうち「Webアーカイブ、単一のファイル (*.mht)」を選択した場合に出来る、(ほぼ同等の)マルチパートMIME形式でエンコードされたファイルの作成する。 {{code Text,4, ' Request URL and Save filename. url = "http://www.yahoo.co.jp/" file = "test.mht" '=============================== Set objCdoMsg = WScript.CreateObject("CDO.Message") objCdoMsg.MimeFormatted = true call objCdoMsg.CreateMHTMLBody( url, 0, "", "") Set objStm = objCdoMsg.GetStream() call objStm.SaveToFile( file, 1 ) ' 1:新規のみ, 2:上書き }} [CreateMHTMLBody|http://msdn2.microsoft.com/en-us/library/ms527024.aspx] の第2引数は、MHTMLに含めない物のビットフラグ([CdoMHTMLFlags|http://msdn2.microsoft.com/en-us/library/ms526977.aspx])で、デフォルトの0はすべて含める。第3と4引数は、BASIC認証のユーザとパスワード。 *[mhtを作る方法 - ブックマクロ開発に|http://d.hatena.ne.jp/takuya_1st/20071009] (はてなダイアリー ID:takuya_1st) **http://d.hatena.ne.jp/takuya_1st/20071009 !!プロキシ設定(レジストリ設定) レジストリの設定を変更して、IEのプロキシサーバの設定を行う。 {{code Text,4, Const strComputer = "." Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") Const HKEY_CURRENT_USER = &H80000001 ' IEプロキシ設定のレジストリパス Const strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" ' [LAN にプロキシ サーバーを使用する] チェック ボックスを構成します。 objRegistry.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, "ProxyEnable", 1 ' プロキシ サーバーの[アドレス] 設定と [ポート] 設定の両方を構成します。 objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, "ProxyServer", "proxy.example.com:8080" ' [ローカル アドレスにはプロキシ サーバーを使用しない] チェック ボックスを構成します。 objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, "ProxyOverride", "" Set objRegistry = Nothing }} *Hey, Scripting Guy! (Microsoft TechNet) **http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/may05/hey0519.mspx !!DirectX のバージョンを確認する(レジストリの値をとる) {{code Text,4, Const strComputer = "." Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") Const HKEY_LOCAL_MACHINE = &H80000002 ' DirectXのレジストリパス Const strKeyPath = "Software\Microsoft\DirectX" ' DirectX のバージョンを取得する objRegistry.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, "Version", strValue ' 実際のバージョンからリリースバージョンに変換する Select Case strValue Case "4.02.0095" strVersion = "1.0" Case "4.03.00.1096" strVersion = "2.0" Case "4.04.0068" strVersion = "3.0" Case "4.04.0069" strVersion = "3.0" Case "4.05.00.0155" strVersion = "5.0" Case "4.05.01.1721" strVersion = "5.0" Case "4.05.01.1998" strVersion = "5.0" Case "4.06.02.0436" strVersion = "6.0" Case "4.07.00.0700" strVersion = "7.0" Case "4.07.00.0716" strVersion = "7.0a" Case "4.08.00.0400" strVersion = "8.0" Case "4.08.01.0881" strVersion = "8.1" Case "4.08.01.0810" strVersion = "8.1" Case "4.09.0000.0900" strVersion = "9.0" Case "4.09.00.0900" strVersion = "9.0" Case "4.09.0000.0901" strVersion = "9.0a" Case "4.09.00.0901" strVersion = "9.0a" Case "4.09.0000.0902" strVersion = "9.0b" Case "4.09.00.0902" strVersion = "9.0b" Case "4.09.00.0904" strVersion = "9.0c" Case "4.09.0000.0904" strVersion = "9.0c" Case Else strVersion = "UNKOWN(" & strVersion & ")" End Select Wscript.Echo "DirectX " & strVersion }} *Hey, Scripting Guy! (Microsoft TechNet) **http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/jan07/hey0108.mspx