「Out」引数で関数を呼び出し、JScriptの参照によって引数を渡す
-
29-09-2019 - |
質問
WMIを使用してローカルレジストリに接続するために、JScript(WSH)の次のコードを使用しています。 var registry = GetObject('winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default:StdRegProv');
そしてそれはうまくいきます。
次に、実際に削除しようとせずにキーを削除することを許可されているかどうかを判断する必要があります(たとえば、非破壊的なチェックを実行します)。ドキュメントを見て、必要であることがわかりました StdRegProv.CheckAccess()
方法。問題はそれです CheckAccess
結果を返します out
議論と私はvbscriptのものを見つけることができませんでした ByRef
JScriptに相当します。
インターネットのどこかで使用していることがわかりました SWbemServices.ExecMethod
どういうわけか役に立ちますが、どうすればそれをどのように使用できるかわかりませんでした。
参照によって渡された引数を備えたJScriptのパフォーマンス関数呼び出しでコードサンプルを提供してもらえますか?
解決
ええ、それを機能させました。
それを必要とする人のために、 CheckAccess
jscriptでの呼び出しは次のように見えます:
function CheckAccess(defKey, subkeyName, required) {
var providerName = "StdRegProv";
var funcName = "CheckAccess";
// connect to WMI
var services = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default");
// get provider
var registry = services.Get(providerName);
var in_params = registry.Methods_(funcName).InParameters.SpawnInstance_();
in_params.hDefKey = defKey;
in_params.sSubKeyName = subkeyName;
in_params.uRequired = required;
var outParams = services.ExecMethod(providerName, funcName, inParams);
return Boolean(outParams.bGranted);
};
所属していません StackOverflow