を使用して実行されるJScriptスクリプトがありますcscript.exe
。cscript.exe
デスクトップ(およびスタートメニュー)に、別のJScriptスクリプトを実行するためのパラメーターを使用して実行するショートカットを作成します。関連する部分では、次のようになります。
function create_shortcut_at(folder, target_script_folder)
{
var shell = new ActiveXObject("WScript.Shell");
var shortcut = shell.CreateShortcut(folder + "\\Run The Script.lnk");
shortcut.TargetPath = "cscript";
shortcut.Arguments = "\""+target_script_folder+"\\script.js\" /aParam /orTwo";
shortcut.IconLocation = target_script_folder+"\\icon.ico";
shortcut.Save();
}
のように呼ばれcreate_shortcut_at(desktop_folder, script_folder)
ます。
そして、それはそれが行く限り、うまくいきます。デスクトップアイコンを作成し、スクリプトを適切にポイントして、ダブルクリックすると実行します。問題は、実際には「管理者として」スクリプトを実行する必要があるということです。
また、スクリプトは実際には「管理者として」実行する必要があります。つまり、アプリケーションを(すべてのユーザーに対して)インストールし、コンピューターを再起動します。(興味のある人にとっては、スクリプトはwpkg.jsです。自己昇格するように変更することは望ましくありません。)
ショートカットのターゲットは実際には「cscript.exe」であるため、エスカレーションにマニフェストを使用することはできません。理論的には、Windowsディレクトリにcscript.exe.manifestをインストールすることもできますが、それが機能したとしても、明らかな理由から、それはひどい考えになります。
また、ダミースクリプトを使用しないことをお勧めします。これは、処理する余分なファイルであり、別の、一見合理的な解決策が手元にあるためです。ショートカットの[管理者として実行]チェックボックスをオンにします。
30秒間の調査により、WScript.ShellActiveXオブジェクトにこれに必要なインターフェイスがないことがわかりました。追加の調査は、IShellLinkDataListがそうすることを示唆しています。ただし、IShellLinkDataListは汎用COMインターフェイスです。私はインターネットの周りにいくつかの例を見ますが、ほとんどはここにリンクしています。ただし、すべての例はコンパイルされたコード(C ++、C#、さらにはJScript.NET)でそれを行います。から実行して、JScriptで直接実行できることを強く望んでいますcscript.exe
。
とは言うものの、私は思いもよらなかったアイデアや他の解決策を求めています。