home *** CD-ROM | disk | FTP | other *** search
/ Freelog 100 / FreelogNo100-NovembreDecembre2010.iso / Graphisme / Jshot / jshotinstall_1.3beta.exe / com / izforge / izpack / installer / elevate.js < prev    next >
Text File  |  2009-03-23  |  2KB  |  74 lines

  1. /*
  2.  * IzPack - Copyright 2001-2008 Julien Ponge, All Rights Reserved.
  3.  * 
  4.  * http://izpack.org/
  5.  * http://izpack.codehaus.org/
  6.  * 
  7.  * Licensed under the Apache License, Version 2.0 (the "License");
  8.  * you may not use this file except in compliance with the License.
  9.  * You may obtain a copy of the License at
  10.  * 
  11.  *     http://www.apache.org/licenses/LICENSE-2.0
  12.  *     
  13.  * Unless required by applicable law or agreed to in writing, software
  14.  * distributed under the License is distributed on an "AS IS" BASIS,
  15.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16.  * See the License for the specific language governing permissions and
  17.  * limitations under the License.
  18.  */
  19.  
  20. /*
  21.  * This script can be used to elevate rights through the UAC on Windows Vista.
  22.  * Run it as follows:
  23.  *    elevate aplication.exe "argument1 argument2 argument3"
  24.  *
  25.  * Adapted from Aaron Margosis 'elevate.js' script, see
  26.  * http://blogs.msdn.com/aaron_margosis/archive/2007/07/01/scripting-elevation-on-vista.aspx
  27.  *
  28.  * The getUniversalPath function provides a workaround for network drives, see
  29.  * http://blogs.msdn.com/cjacks/archive/2007/02/19/mapped-network-drives-with-uac-on-windows-vista.aspx
  30.  */
  31.  
  32. function getUniversalPath(path)
  33. {
  34.     var file = fso.GetFile(path);
  35.  
  36.     var absPath = file.path;
  37.     if (absPath.substring(1, 2) != ":")
  38.     {
  39.         return absPath;
  40.     }
  41.  
  42.     var shareName = file.Drive.ShareName;
  43.     if (!shareName)
  44.     {
  45.         return absPath;
  46.     }
  47.  
  48.     return shareName + absPath.substring(2);
  49. }
  50.  
  51. var fso = new ActiveXObject("Scripting.FileSystemObject");
  52. var Shell = new ActiveXObject("Shell.Application");
  53. var Application = WScript.Arguments(0);
  54.  
  55. var Arguments = "";
  56. for (var Index = 1; Index < WScript.Arguments.Length; Index += 1)
  57. {
  58.     if (Index > 1)
  59.     {
  60.         Arguments += " ";
  61.     }
  62.  
  63.     var Arg = WScript.Arguments(Index);
  64.  
  65.     if (Index > 1 && WScript.Arguments(Index - 1) == "-jar")
  66.     {
  67.         // If the JAR file is on a mapped network drive, we have to convert it's path to UNC.
  68.         Arg = getUniversalPath(Arg);
  69.     }
  70.     Arguments += "\"" + Arg + "\"";
  71. }
  72.  
  73. Shell.ShellExecute(Application, Arguments, "", "runas");
  74.