Você pode iniciar seu aplicativo como serviço. Os serviços são app que o Windows iniciar a partir da inicialização, mesmo antes de entrar na tela de login.
Você pode seguir esta tutorial para fazer isso
Posso executar um programa na inicialização antes que alguém faça login? Assim, por exemplo, o q-torrent e alguns outros programas iniciam novamente após o desligamento inesperado (como falta de energia ou similar) e automaticamente executam suas tarefas. E também o seguinte programa seria visto no gerenciador de tarefas como se fosse executado pelo sistema ou usuário.
Você pode usar o Agendador de Tarefas para conseguir isso. Pressione Win + R e execute taskschd.msc lá. Crie uma tarefa e defina uma opção "Executar se o usuário está logado ou não". Crie um gatilho "Na inicialização". Adicione uma ação com o caminho para o seu programa ou arquivo bat, coloque argumentos e diretório de inicialização, se necessário. Você precisará inserir suas credenciais quando clicar em OK.
Algumas palavras sobre a opção "Executar se o usuário está logado ou não". Esta opção está disponível quando você executa sua tarefa como usuário atual ou outro usuário na máquina. Mas você pode especificar para executar a tarefa como SYSTEM para conceder privilégios máximos e "Executar se o usuário está logado ou não" será desativado porque o sistema está sempre online. Mas eu não recomendo usar o SYSTEM se você realmente não precisa de privilégios tão altos.
Meu exemplo: eu tenho um servidor gitbucket que funciona assim. Eu criei o arquivo bat com o seguinte conteúdo:
java -jar gitbucket.war --gitbucket.home="D:\gitbucket\home" > stdout.log 2> stderr.log
Então, coloquei o caminho do arquivo bat no campo "Program / script" (D: \ gitbucket \ gitbucket.bat) e seu diretório no campo "Start in (optional)" (D: \ gitbucket). Todos os argumentos estão dentro do morcego, então eu não preciso deles no campo "Adicionar argumentos (opcional)".