WSH : 指定したキーでレジストリエディタを開く は、WSH での処理なので、どちらかと言えばバッチ処理です。連続してレジストリエディタの作業をするのでは無く、その場限りの処理で使ったりします( とにかくある場所のレジストリキーを開きたい等 ) このサンプルは、ある目的の作業中にレジストリエディタの特定のキーを、何度も連続して開く事を想定していますので、GUI を持つ HTA を使っています。
右端のアイコンよりダウンロードできます
<SCRIPT language="VBScript"> Dim WshShell Set WshShell = CreateObject( "WScript.Shell" ) Dim objWMIService Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") </SCRIPT> <html> <head> <title>指定したキーでレジストリエディタを開く</title> <meta http-equiv="content-type" content="text/html; charset=SHIFT_JIS"> <HTA:APPLICATION ID="Sqlwin" BORDERSTYLE="sunken" INNERBORDER="yes" SCROLL="no" ICON="http://winofsql.jp/WinOfSql.ico" > <style type="text/css"> * { font-family: "メイリオ" font-size: 16px; } body { margin:0; background-color: white; } .action { margin-top: 20px; margin-left: 20px; } </style> <SCRIPT language="VBScript"> Function ActionOpenReg( str ) Dim colProcessList Set colProcessList = objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name = 'regedit.exe'") For Each objProcess in colProcessList WshShell.AppActivate("レジストリ エディタ") WshShell.SendKeys ("%{F4}") Next Call window.setTimeout("Call OpenReg(""" & str & """)", 500 ) End Function Function OpenReg( str ) Dim colProcessList Set colProcessList = objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name = 'regedit.exe'") For Each objProcess in colProcessList on error resume next objProcess.Terminate() on error goto 0 Next Dim strRegSavePoint if GetOSVersion() >= 6 then str = "コンピュータ\" & str else str = "マイ コンピュータ\" & str end if strRegSavePoint = "Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\LastKey" WshShell.RegWrite "HKCU\" & strRegSavePoint, str, "REG_SZ" Call WshShell.Run( "regedit" ) End Function ' ********************************************************** ' OS バージョンの取得 ' ********************************************************** Function GetOSVersion() Dim colTarget,str,aData,I,nTarget Set colTarget = objWMIService.ExecQuery( _ "select Version from Win32_OperatingSystem" _ ) For Each objRow in colTarget str = objRow.Version Next aData = Split( str, "." ) For I = 0 to Ubound( aData ) if I > 1 then Exit For end if if I > 0 then nTarget = nTarget & "." end if nTarget = nTarget & aData(I) Next GetOSVersion = CDbl( nTarget ) End Function </SCRIPT> </head> <body> <input class="action" type="text" id="key" style='width:600px;' value="HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"> <input class="action" type="button" value=" 開く " onClick='Call ActionOpenReg(document.getElementById("key").value)'> </BODY> </html> <SCRIPT for="window" event="onload" language="VBScript"> window.focus() top.moveTo 0, 0 top.resizeTo 800, 120 </SCRIPT> <SCRIPT for="window" event="onunload" language="VBScript"> </SCRIPT>
|
【VBScriptの最新記事】
- 指定した位置でレジストリエディタを開く為の VBScript をダウンロードします
- VBScript(WSH) と PHP(7.3) で氏名をランダムに作成
- VBScript : XCOPYで新しいファイルのみバックアップする為のスクリプトを作成するスクリプト
- VBScript + PowerShell : PowerShell がファイルを開くダイアログで取得したパスをテキストファイル経由で VBScript に戻して使用する
- VBScript : XMLファイルのテキストノードの値の更新
- WSH(VBScript) : 指定したキーでレジストリエディタを開く
- VBScript : WEB上のHTMLを使用して、InternetExplorer.Application でパスワード入力を実装する
- VBS : 正規表現で、URL リストの中のドメイン部分のみを取り出す
- 文字列を指定してその名前の変数でオブジェクトを作成する : WEB に VBScript ライブラリ
- 実行中のスクリプトのタイプを知る : WEB に VBScript ライブラリ
- VBS : FileZilla用誰にでも使える拡張子ランチャー