Adam
04-28-2008, 12:15 PM
Question
How can I make a Program Run Every Time the System Starts
Answer
Certain programs run each time the system starts; some are necessary for the operating system to function, and others to provide convenience to the end user. It may be necessary that your program be launched each time the system starts; fortunately Setup Factory can accomplish this easily.
Note: It is considered poor etiquette to do this on a user's system unless it is an essential process, service, or they have agreed to it.
Making your program run every time the system starts amounts to nothing more then creating a Registry entry in the: "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\ CurrentVersion\\Run" Registry key. The Registry value that you create can be called anything (as long at its length is less then 32 characters), and its value should be the full path to the executable that will be launched when the computer boots.
Note: Since you will be modifying the "HKEY_LOCAL_MACHINE" Registry key make sure that your user has administrative permissions.
Example
Here is an example of a Modify Registry action that will set our program "%AppFolder%\\MyProgram.exe" to run each time the computer starts.
Note: You can place this action on any event during your installation, however it is recommended that this action be placed on the "Before Installing" or "After Installing" event:
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "My Program", SessionVar.Expand("%AppFolder%\\MyProgram.exe"), REG_SZ);
This action creates an entry in the "Run" key, which will make our program "MyProgram.exe" launch each time the computer reboots. Since we created this Registry value using an action we will also have to remove the value using an action during the uninstall. If we do not remove this value the user will receive error messages informing them that "MyProgram.exe" could not be found.
Put this action on either the "Before Uninstalling" or "After Uninstalling" event:
Registry.DeleteValue(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "My Program");
MORE INFORMATION
For more information please see the following topics in the Setup Factory Help:
Command Reference | Actions | Registry | Registry.GetValue (http://www.indigorose.com/webhelp/suf70/Program_Reference/Actions/Registry.GetValue.htm)
Command Reference | Actions | Registry | Registry.DeleteValue (http://www.indigorose.com/webhelp/suf70/Program_Reference/Actions/Registry.DeleteValue.htm)
How can I make a Program Run Every Time the System Starts
Answer
Certain programs run each time the system starts; some are necessary for the operating system to function, and others to provide convenience to the end user. It may be necessary that your program be launched each time the system starts; fortunately Setup Factory can accomplish this easily.
Note: It is considered poor etiquette to do this on a user's system unless it is an essential process, service, or they have agreed to it.
Making your program run every time the system starts amounts to nothing more then creating a Registry entry in the: "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\ CurrentVersion\\Run" Registry key. The Registry value that you create can be called anything (as long at its length is less then 32 characters), and its value should be the full path to the executable that will be launched when the computer boots.
Note: Since you will be modifying the "HKEY_LOCAL_MACHINE" Registry key make sure that your user has administrative permissions.
Example
Here is an example of a Modify Registry action that will set our program "%AppFolder%\\MyProgram.exe" to run each time the computer starts.
Note: You can place this action on any event during your installation, however it is recommended that this action be placed on the "Before Installing" or "After Installing" event:
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "My Program", SessionVar.Expand("%AppFolder%\\MyProgram.exe"), REG_SZ);
This action creates an entry in the "Run" key, which will make our program "MyProgram.exe" launch each time the computer reboots. Since we created this Registry value using an action we will also have to remove the value using an action during the uninstall. If we do not remove this value the user will receive error messages informing them that "MyProgram.exe" could not be found.
Put this action on either the "Before Uninstalling" or "After Uninstalling" event:
Registry.DeleteValue(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "My Program");
MORE INFORMATION
For more information please see the following topics in the Setup Factory Help:
Command Reference | Actions | Registry | Registry.GetValue (http://www.indigorose.com/webhelp/suf70/Program_Reference/Actions/Registry.GetValue.htm)
Command Reference | Actions | Registry | Registry.DeleteValue (http://www.indigorose.com/webhelp/suf70/Program_Reference/Actions/Registry.DeleteValue.htm)