2008-10-31 2 views
0

Я разрабатываю приложение, которое должно использовать regini (из-за устаревших причин), чтобы вставить что-то в реестр. Я пытаюсь сделать это таким образом, чтобы пользователь приложения не знал об этом. Я написал следующий код:Использование regini из приложения C#, не беспокоя пользователя?

System.Diagnostics.ProcessStartInfo pi = new ProcessStartInfo(); 

pi.FileName = @"c:\windows\system32\regini.exe"; 
pi.Arguments = name; 
pi.WorkingDirectory = Utils.AppSettings.WorkingDirectory.ToString();  
pi.WindowStyle = ProcessWindowStyle.Hidden; 
pi.RedirectStandardError = true; 
pi.RedirectStandardOutput = true; 
pi.UseShellExecute = false; 
Process p = new Process(); 
p.StartInfo = pi; 
p.EnableRaisingEvents = true; 
p.Start(); 

К сожалению, я все еще вижу «команда» всплывающее окно каждый раз, когда этот код выполняется. У меня создалось впечатление, что

pi.WindowStyle = ProcessWindowStyle.Hidden; 

предотвратит это. Как я могу запретить региону открывать собственное окно команд?

ответ

2

Попробуйте добавить эту строку:

pi.CreateNoWindow = true; 
0

Я нашел сообщение об ошибке на Microsoft Connect Обратная связь Сайт: System.Diagnostics.ProcessWindowStyle.Hidden shows window while executing

Может быть, есть намек на то, что вы забыли.

+0

Спасибо, но обсуждение в связи только сосредоточивается на проблеме воспроизведения проблемы. Видимо, они не могут. – Bernie 2008-10-31 09:14:37