From this stackoverflow question, your best bet is to run the programme as a service. One option is to use the NSSM. The relevant bits from the answer:
Source: Understanding the Startup Process - Windows 7 Tutorial
The normal startup sequence for Windows 7 is:
- Power-on self test (POST) phase
- Initial startup phase
- Windows Boot Manager phase
- Windows Boot Loader phase
- Kernel loading phase
- Logon phase
Kernel Loading Phase The Windows Boot Loader is responsible for loading the Windows kernel (
Ntoskrnl.exe
) and the HAL into memory. Together, the kernel and the HAL initialize a group of software features that are called the Windows executive. The Windows executive processes the configuration information stored in the registry inHKLM\SYSTEM\CurrentControlSet
and starts services and drivers. The following sections provide more detail about the kernel loading phase.Logon Phase
The Windows subsystem starts
Winlogon.exe
, a system service that enables you to log on and log off.Winlogon.exe
then does the following:
- Starts the Services subsystem (
Services.exe
), also known as the SCM. The SCM initializes services that the registry entry Start designates as Autoload in the registry subkeyHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Servicename
.- Starts the Local Security Authority (LSA) process (
Lsass.exe
).- Parses the Ctrl+Alt+Delete key combination at the Begin Logon prompt (if the computer is part of an AD DS domain).
The logon user interface (LogonUI) feature and the credential provider (which can be the standard credential provider or a third-party credential provider) collect the user name and password (or other credentials) and pass this information securely to the LSA for authentication. If the user supplied valid credentials, access is granted by using either the default Kerberos V 5 authentication protocol or Windows NT LAN Manager (NTLM).
Winlogon initializes security and authentication features while PnP initializes auto-load services and drivers. After the user logs on, the control set referenced by the registry entry
LastKnownGood
(located inHKLM\SYSTEM\Select
) is updated with the contents in theCurrentControlSet
subkey. By default, Winlogon then startsUserinit.exe
and the Windows Explorer shell. Userinit may then start other processes, including:
- Group Policy settings take effect Group Policy settings that apply to the user and computer take effect.
Startup programs run When not overridden by Group Policy settings, Windows starts logon scripts, startup programs, and services referenced in the following registry subkeys and file system folders:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runonce HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce SystemDrive\Documents and Settings\All Users\Start Menu\Programs\Startup SystemDrive\Documents and Settings\username\Start Menu\Programs\Startup
Several applications might be configured to start by default after you install Windows, including Windows Defender. Computer manufacturers or IT departments might configure other startup applications.
Windows startup is not complete until a user successfully logs on to the computer. If startup fails during the logon phase, you have a problem with a service or application configured to start automatically.