L'unica possibilità concreta che vedo è di sostituire il valore HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell con il nome del tuo programma, che, se convalida il login, si occupa di lanciare explorer.exe; tuttavia questo sistema è facilmente aggirabile: all'utente basta un CTRL+ALT+CANC per aprire il task manager e lanciare explorer.exe o qualunque altro programma manualmente, magari killando il processo del tuo eseguibile. Il fatto che comunque quest'ultimo verrebbe rapidamente rilanciato dal sistema (se HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell\AutoRestartShell è impostato su 1) è chiaramente ininfluente. Potresti invece optare per una soluzione che si avvale dell'uso di desktop multipli: crei un nuovo desktop per il login (con CreateDesktop), così da evitare che compaia il task manager, ma si tratta comunque abbastanza di un pasticcio.