Лучший способ запустить приложение «бронирование ПК» в Windows 7 / Vista? - PullRequest
0 голосов
/ 07 марта 2012

Я пишу своеобразное приложение для бронирования на ПК (клиент на C #), и все готово, за исключением того, что у меня возникают проблемы с его быстрым запуском при входе пользователя в ПК (Windows 7 / Vista), т.е. Я хочу каким-то образом переопределить файл explorer.exe.

Я пытался заменить свое приложение на explorer.exe в,

«HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Shell»

и это работает, но когда я пытаюсь запустить explorer.exe в моем приложении,

const string explorer = "explorer.exe";
string explorerPath = string.Format("{0}\\{1}", Environment.GetEnvironmentVariable("WINDIR"), explorer);
Process eProcess = new Process();
eProcess.StartInfo.FileName = explorerPath;
eProcess.StartInfo.UseShellExecute = true;
eProcess.StartInfo.CreateNoWindow = true;
eProcess.Start();
eProcess.WaitForInputIdle();

он просто зависает и не запускает проводник как должен.

Я также попробовал множество других «обходных путей», чтобы начать с других записей реестра в соответствии с

http://technet.microsoft.com/en-us/magazine/ee851671.aspx

но ни один из них не работает на 100% в Windows 7 / Vista. В XP это работает лучше.

Кстати: UAC выключен на всех машинах, на которых он будет работать.

Любые предложения были бы хорошими - сейчас я застрял.

Спасибо.

1 Ответ

0 голосов
/ 07 марта 2012

Не eProcess.WaitForInputIdle();, тогда будет работать.

...