AdvancedRun

AdvancedRun v1.23
Copyright (c) 2015 - 2021 Nir Sofer
Web site: https://www.nirsoft.net

Description

AdvancedRun is a simple tool for Windows that allows you to run a program with different settings that you choose, including - low or high priority, start directory, main window state (Minimized/Maximized), run the program with different user or permissions, Operating system compatibility settings, and environment variables. You can also save the desired settings into a configuration file and then run the program automatically from command-line with the desired settings.

Examples of what you can do with AdvancedRun

  • Run the RegEdit of Windows as normal user on Windows 10/8/7/Vista, without elevation. In this mode, you'll not be able to access or modify Registry keys that require admin rights.
  • Run the RegEdit of Windows as SYSTEM user on Windows 10/8/7/Vista. In this mode, you'll be able to access the HKEY_LOCAL_MACHINE\SECURITY key.
  • Run RegEdit as TrustedInstaller on Windows 10/8/7/Vista.
  • Run a program with a user of another running process.
  • Run a program with another logged-in user, without typing the password of the user.
  • Run a program in high priority.
  • Run a specific instance of program in Windows XP compatibility mode, without making global changes in the Registry.
  • Run a specific instance of program with different PATH environment string, but without modifying the PATH string of the entire system and without using batch files or command prompt window.
  • Run a program with a full set of environment variables you choose, ignoring the system environment variables completely.

System Requirements

This utility works on any version of Windows, starting from Windows XP and up to Windows 10. Both 32-bit and 64-bit systems are supported. Some of the features, like 'Run As SYSTEM User' and 'Run As user of selected process' are not supported on Windows XP.

Versions History

  • Version 1.23
    • Added /WaitProcess command-line option. If the WaitProcess option is enabled, the AdvancedRun process will wait in the background until the process executed by AdvancedRun is terminated, for example:
      AdvancedRun.exe /WaitProcess 1 /Run
  • Version 1.22
    • Added option to run a program as another logged-in user on your system, without specifying the password of the user. Elevation is needed to use this option.
  • Version 1.21
    • Fixed the /cfg command-line option to load the .cfg file from the current directory if full path is not specified.
  • Version 1.20
    • Added 'Run As TrustedInstaller' option. You can use this option by choosing 'TrustedInstaller' in the 'Run As' Combo-Box.
    • You can also run a program as TrustedInstaller from command line, for example:
      AdvancedRun.exe /EXEFilename "c:\windows\regedit.exe" /RunAs 8 /Run
  • Version 1.15
    • Added 'Add Explorer Menu' option. When Explorer context menu is added, you can right-click on .exe file inside Explorer window, choose 'Advanced Run' and then AdvancedRun program will be opened with the selected .exe file.
    • You can now add AutoRun=1 line to .cfg file in order to run a program according to the .cfg file without using the /run command.
  • Version 1.11
    • The default height of the main window is now below 600 pixels, in order to make it work properly on 800 X 600 screen.
  • Version 1.10
    • Added option to run as specified user name/password.
    • Be aware that the password is not saved inside the .cfg file. If you want to run as the specified user from command-line, you should specify the password using the /RunAsPassword command-line option.
  • Version 1.07
    • Added /cfg command-line option to start AdvancedRun with the specified config file.
  • Version 1.06
    • The last size/position of the main window is now saved in the .cfg file.
  • Version 1.05
    • Added option to run a process as a child of the specified process.
    • You can now drag a file from Explorer into the window of AdvancedRun in order to easily fill the 'Program To Run' field.
  • Version 1.03
    • Fixed the Environment Variables text-box to handle Ctrl+A (Select All).
  • Version 1.02
    • Fixed to store the process name of the 'User of the selected process' option inside the .cfg file.
  • Version 1.01
    • Fixed bug: AdvancedRun crashed while working with environment variables.
  • Version 1.00 - First release.

Start Using AdvancedRun

AdvancedRun doesn't require any installation process or additional dll files. In order to start using it, simply run the executable file - AdvancedRun.exe
After running AdvancedRun, you can choose the .exe file you want to run and all other settings and then click the 'Run' button to run the program with the settings you chose.

AdvancedRun Options

  • Program to Run: The .exe filename that you want to run. You can also specify environment variables here, for example: %windir%\system32\regedit.exe
  • Command-Line Arguments: The command-line string to pass to the program.
  • Start Directory: Specifies the start directory of the program. If you don't specify it, the directory of the .exe file will be used. You can also specify environment variables here, for example: %appdata%\Microsoft
  • Use search path to find the program location if the full path is not specified: If you specify only a filename (without a directory) in the 'Program To Run' field and this option is turned on, AdvancedRun will try to locate the .exe file in all directories specified in your PATH environment variable.
  • Parse the environment variables inside the command-line string before passing it to the program: If this option is turned on, any environment variable inside the command-line string will be parsed before passing it to the program. If it's turned off, AdvancedRun will not parse the environment variables inside the command-line string, allowing the running program to do the parsing.
    For example if you specify '%windir%\system32' in command-line string, the program will receive it as C:\Windows\System32 if this option is turned on. If it's turned off, the program will receive it as %windir%\system32
  • Set the process affinity mask (space-delimited list): Allows you to specify the CPUs that the program can use , first CPU is 0, second CPU is 1, and so on... For example:
    0 1 2 3
  • Priority Class: Specifies the priority to run the program: Normal, Idle, High, RealTime, Below Normal, Above Normal.
  • Main Window State: Runs the program with the specified window state - Normal, Minimized, Maximized or Hidden. Be aware that this option only affects programs that support it.
  • Window Position (X,Y): Runs the program with the main window in the specified position. only affects programs that support it.
  • Window Size (W,H): Runs the program with the main window in the specified size. only affects programs that support it.
  • Run As: (For Windows Vista or later)
    Allows you to run the program with different users and/or permissions. You can choose one of the following options:
    • Current User - Allow UAC Elevation: Runs the program normally. If the program requires elevation ('Run As Administrator'), the UAC window will appear to confirm the elevation.
    • Current User - Without UAC Elevation: Runs the program without UAC elevation ('Run As Administrator'), even if the program requires it. For example... You can use this option to run RegEdit of Windows without admin permissions.
    • Administrator (Force UAC Elevation): Forces the program to run as administrator, even if it doesn't require it.
    • SYSTEM User: Runs a program as a SYSTEM user. SYSTEM user has the ability to access some data that normal admin user cannot access. For example, If you run RegEdit of Windows as SYSTEM user, you'll be able to access the HKEY_LOCAL_MACHINE\SECURITY key.
    • User of the selected process: Runs a program as a user of another process that you choose. For example, if you're logged on as user1, and there is a program running as user2, you can choose to run another program as user2. You can type the name of the process filename (e.g: myprogram.exe) or the process ID (e.g: 2543)
    • Child of selected process (Using code injection): Runs a program as a child of another process that you choose. The new process is created with the same user and privileges of the parent process. You can type the name of the process filename (e.g: myprogram.exe) or the process ID (e.g: 2543)
      Be aware that on 64-bit systems, you must use the 64-bit version of AdvancedRun if the parent process you choose is 64-bit process and you must use the 32-bit version of AdvancedRun if the parent process you choose is 32-bit process.
    • Specified user name and password: Runs a program with the specified user name and password.
    • TrustedInstaller: Runs the specified program as TrustedInstaller.
    • Another logged-in user: Runs the specified program with another logged-in user, without specifying the password, you only have to type the name of the user. This option works only when there is at least one process owned by the specified user.
      Be aware that elevation is needed to use this option.
  • Operating system compatibility mode: This option is identical to the Operating system compatibility mode provided by Windows, when you right-click on .exe file, choose 'Properties' and then go to the 'Compatibility' tab. As opposed to the compatibility mode of Windows, AdvancedRun doesn't make any systemwide change in the Registry. It only sets the compatibility mode to the specific instance of program that you run.
  • Disable Visual Themes: This option is identical to the 'Disable Visual Themes' option in the compatibility tab of Windows.
  • Disable desktop composition: This option is identical to the 'Disable desktop composition' option in the compatibility tab of Windows.
  • Run In 640 X 480 Resolution: This option is identical to the 'Run In 640 X 480 Resolution' option in the compatibility tab of Windows.
  • Disable display scaling on high DPI settings: This option is identical to the 'Disable display scaling on high DPI settings' option in the compatibility tab of Windows.
  • Environment Variables:
    • Use current system environment variables without any change: This is the default option. The program will simply run with the current environment variables.
    • Merge the following environment variables with the system variables: In this option, the environment variables you specify in the text-box below will be merged with the current system variables. You should specify the environment variables in variable=value format, every variable in a separate line. Be aware that AdvancedRun will not make any change in the current system variables, it'll only set the merged environment variables to the specific instance of program that you run.
    • Use only the following environment variables (Ignore the system variables): In this option, only the environment variables you specify in the text-box below will be provided to the program you run, while the current system variables will be ignored. You should specify the environment variables in variable=value format, every variable in a separate line.

Command-Line Options

/Run {Config File} Runs a program according to the settings stored in the specified configuration file.
If the config file is not specified, the default config file located in the same folder of the .exe file is used (AdvancedRun.cfg).

Alternatively, you can add the following line to the .cfg file in order the run the program without specifying the /Run command:
AutoRun=1

/cfg {Config File} | Start AdvancedRun with the specified configuration file.
/WaitProcess <0 | 1> | If this option is enabled ( /WaitProcess 1 ), the AdvancedRun process will wait in the background until the process executed by AdvancedRun is terminated.

/EXEFilename <value>
/CommandLine <value>
/StartDirectory <value>
/PriorityClass <value>
/RunAs <value>
/OSCompatMode <value>
.
.
. 		You can use any variable stored in the config file as command-line parameter. For example, in order to run RegEdit as system user:
AdvancedRun.exe /EXEFilename "%windir%\regedit.exe" /CommandLine "" /StartDirectory "" /RunAs 4 /Run

In the above example, the '4' value of the /RunAs parameter sets the Run As mode to SYSTEM user. If you don't know what is the right value to use from command-line, simply choose the desired option from the user interface, save it to config file, and then check the values stored in the config file.

If you want to specify a value contains double quotes ("" ), you should enclose the value with single quotes , for example:
AdvancedRun.exe /EXEFilename "c:\temp\myprog.exe" /CommandLine ' "c:\temp\my files\1234.txt" "hello" '

If you want to run as the specified user name and password (/RunAs 7 ), you should specify the password with /RunAsPassword, for example:
AdvancedRun.exe /RunAsUserName "User01" /RunAsPassword "Password1234" /RunAs 7 /Run

Translating AdvancedRun to other languages

In order to translate AdvancedRun to other language, follow the instructions below:
  1. Run AdvancedRun with /savelangfile parameter:
    AdvancedRun.exe /savelangfile
    A file named AdvancedRun_lng.ini will be created in the folder of AdvancedRun utility.
  2. Open the created language file in Notepad or in any other text editor.
  3. Translate all string entries to the desired language. Optionally, you can also add your name and/or a link to your Web site. (TranslatorName and TranslatorURL values) If you add this information, it'll be used in the 'About' window.
  4. After you finish the translation, Run AdvancedRun, and all translated strings will be loaded from the language file.
    If you want to run AdvancedRun without the translation, simply rename the language file, or move it to another folder.

License

This utility is released as freeware. You are allowed to freely distribute this utility via floppy disk, CD-ROM, Internet, or in any other way, as long as you don't charge anything for this and you don't sell it or distribute it as a part of commercial product. If you distribute this utility, you must include all files in the distribution package, without any modification !

Disclaimer

The software is provided "AS IS" without any warranty, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The author will not be liable for any special, incidental, consequential or indirect damages due to loss of data or any other reason.

Feedback

If you have any problem, suggestion, comment, or you found a bug in my utility, you can send a message to nirsofer@yahoo.com