Process.Start Method (String, String, SecureString, String)
process has a way to take a secure string
ProcessStartInfo myProcess =
new ProcessStartInfo("my.exe");
myProcess.UserName = "...";
SecureString password = new SecureString();
password.AppendChar('1'); // repeat
myProcess.Password = password;
myProcess.UseShellExecute = false;
Process.Start(myProcess);
ClickOnce Deployment for Visual C++ Applications
Deploying MFC applications via ClickOnce
Easy-to-use resumable .NET file downloader
Using BITS
Background Intelligent Transfer Service (BITS)