Я пишу своеобразное приложение для бронирования ПК (клиент на C#), и все сделано, за исключением того, что у меня есть проблемы с его запуском как можно скорее, когда пользователь входит в систему на ПК (Windows 7/Vista), т.е. я хотите переопределить explorer.exe каким-то образом.Лучший способ запустить приложение «PC booking» в Windows 7/Vista?
Я пытался заменить мое приложение с 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 это работает лучше.
BTW: UAC выключен на всех машинах, на которых это будет работать.
Любые предложения были бы хороши - прямо сейчас я застрял.
Спасибо.
У меня нет времени, чтобы играть и дать реальный ответ, но параметр «UseShellExecute» выглядит неправильно для меня - оболочка обычно является проводником (за исключением вашего случая, я думаю, это ваша программа), которая не работает тем не менее, поэтому он вряд ли сможет начать сам. Вы пытались установить это на false? – Tao
Hi Tao. Да. Я тоже об этом подумал и попытался установить UseShellExecute в false. Теперь я получаю окно проводника, но нет оболочки, нет панели задач и так далее. –