Isso é um pouco antigo, mas eu estava tendo os mesmos problemas e nenhum dos itens acima estava funcionando. O que fiz foi criar um VBScript que fosse executado na inicialização que abriu o programa.
1) Clique com o botão direito do mouse no programa, acesse propriedades, então, compatibilidade e confira "Run as Administrator"
2) Crie o VBScript
usando um editor de texto (eu uso o Notepad ++)
Script:
Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run """C:\Program Files (x86)\File\Program.exe""", 0 'Must quote command if it has spaces; must escape quotes
Set WshShell = Nothing
Nota: esse C:\Program Files (x86)\File\Program.exe
é o caminho completo para o programa com extensão.
Além disso, certifique-se de salvá-lo como .vbs
3) Agora coloque o VBScript na pasta de inicialização que usei:
C:\Users\Admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
O caminho acima é específico para minha conta de usuário, então o seu será diferente. Eu usei isso em vez de um arquivo de lote porque eu não queria que a janela de comando feia aparecesse. Isso é basicamente um atalho falso.