Mi è capitato qualche tempo fa di dover rispondere su una discussione di programmazione su Hardwareupgrade, ad un utente che voleva lanciare applicazioni in background da windows con finestre nascoste. Bene, il discorso è molto semplice, basta creare un piccolo script VBS con il seguente codice
Const HIDDEN_WINDOW = 12
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = HIDDEN_WINDOW
Set objSh = CreateObject("Shell.Application")
objSh.ShellExecute '<Path_al_file_da_eseguire>", "" , " <working_directory>", "runas", 1
EDIT: correggere il primo apice dopo objSh.ShellExecute con un DOPPIO APICE, mi è scappato
Dove <Path_al_file_da_eseguire> è il percorso del file eseguibile che si vuole lanciare in background. Se si tratta di un programma complesso sarà necessario impostare anche la Working Directory che solitamente è uguale al path dell'eseguibile senza però il nome dell'eseguibile finale.