それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

JScript などをUACで動かす方法

UACに昇格するのが面倒だなって思ってました。

JScriptでShellアプリケーションをnewすれば出来るそうです。先人に感謝です。

(function(){
  var key="uac";//無限起動を避けるフラグ
  var sh = new ActiveXObject("Shell.Application");
  args=(function(){args = [];for(var e=new Enumerator(WScript.Arguments);
        !e.atEnd();e.moveNext()){args.push(e.item());}return args;})();
  if(args[args.length-1]==key){return;}else{
    args.push(key)
  }
  sh.ShellExecute("wscript.exe", '"'+WScript.ScriptFullName + '" '+args.join(" ") , "", "runas", 1);
  //自分を殺して、UAC影響下で起動し直す
  WScript.Quit(0);
})();

WScript.Echo("Hello From UAC mode");
//=ここにUACで動かしたい処理を書く

//==/
WScript.Echo("END");

色々使えそう

UACで昇格できるようになれば、いままで通りJScriptでWindowsを触ることが出来ますね。というかとっととC#に移行した方がいいのですが。。。