2010-11-29 52 views
2

JScript(WSH)の次のコードを使用してWMI:var registry = GetObject('winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default:StdRegProv');を使用してローカルレジストリに接続しています。JScriptで参照渡しで引数を渡す `out`引数を持つ関数を呼び出す

次に、本当に削除しようとせずにキーを削除できるかどうかを判断する必要があります(たとえば、非破壊検査を実行するなど)。私はドキュメントを見て、私はStdRegProv.CheckAccess()メソッドが必要であることが分かった。問題は、CheckAccessが結果をout引数として返し、JScriptでVBScriptのByRefが見つかりませんでした。

インターネットのどこかで、SWbemServices.ExecMethodを使用するとどうにか役立つことがわかりましたが、私はそれをまだどうやって使うことができるのか分かりませんでした。

誰も私が参照渡しの引数を持つ関数呼び出しを実行するJScriptでコードサンプルを提供できますか?

答えて

2

Heh、働いています。

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); 
}; 
:それを必要とする人のための

は、JScriptの中CheckAccess invokationは次のようになります

関連する問題