Dzięki za odpowiedź,
niestety, jak teraz uruchamiam program na środowisku deweloperskim (Win XP Prof, 2002, SP3) to widzę przy uruchomieniu zapytanie "Uruchamianie jako" z domyślnie zaznaczonym "Bieżący użytkownik" i "Chroń mój komputer".
Nie powinna być zaznaczona opcja "Chroń mój komputer", ponieważ wtedy program wywoływany działa nieprawidłowo (za małe uprawnienia powodują, że WaitForExit działa nieprawidłowo - C# zauważa, że program się zamknął, chociaż w Task Manger ciągle jest otwarty; uruchomione z uprawnieniami administratora WaitForExit zauważa, że program się zamknął i TaskManger potwierdza, że jest zamknięty), jak również samo okienko z zapytaniem nie powinno się w ogóle wyświetlać (ponieważ program się nie uruchamia automatycznie).
Z tym problemem miał sobie poradzić plik app.manifest, ale jak widać nie wystarczyła wspomniana w pierwszym poście zmiana.
Tymczasowy workaround wygląda tak:
Kopiuj
var pass = new System.Security.SecureString();
pass.AppendChar('h');
pass.AppendChar('a');
pass.AppendChar('s');
pass.AppendChar('l');
pass.AppendChar('o');
System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo();
si.FileName = exeFile;
si.Arguments = iniFile;
si.Verb = "runas"; // run as administrator
si.Domain = "DOMENA";
si.UserName = "Administrator";
si.Password = pass;
si.UseShellExecute = false; // Start => The Process object must have the UseShellExecute property set to false in order to start a process as a user.
si.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized; // i tak nie uruchamia sie zminimalizowane
System.Diagnostics.Process process = System.Diagnostics.Process.Start(si);
process.WaitForExit();
Ten workaround działa u mnie na środowisku deweloperskim (nie pojawia się okienko "uruchom jako"), ale już na serwerze nie działa (okienko to się pojawia, nawet jak główną aplikację uruchomię poprzez prawy przycisk myszy, uruchom jako i odznaczę checkbox z ograniczeniami).
Również takich opcji (http://www.trainsignal.com/blog/disable-uac-on-windows-server-2008) nie mam dostępnych (choć co prawda artykuł jest o Win 2008, a nie Win 2003).
W jaki sposób mogę zapewnić, że nie wyświetla się okienko, a hasło nie musi być podawane w kodzie (zamiast podawania hasła w kodzie autentyfikacja powinna następować przy starcie mojej aplikacji, stąd też zmiany w app.manifest)? Przede wszystkim chodzi mi o to, żeby nie było zapytania o autentyfikację, któe uniemożliwia automatyczne uruchomienie.
Pozdrawiam!