Explorer.exe не запускается?

Я использовал следующий код в Visual Basic, чтобы убить и перезапустить explorer.exe.

УБИТЬ Explorer.exe (работает нормально):

Dim process As System.Diagnostics.Process = Nothing
Dim psi As New ProcessStartInfo
psi.UseShellExecute = True
psi.FileName = "taskkill.exe"
psi.Arguments = "/F /IM explorer.exe"
process = System.Diagnostics.Process.Start(psi)

ЧТОБЫ ПЕРЕЗАПУСТИТЬ Explorer.exe еще раз:

Я старался-

Shell("explorer.exe") 

а также

System.Diagnostics.Process.Start("explorer.exe")

Когда я выполняю, он только открывает окно проводника, но не запускает процесс explorer.exe. Я использую win 8.1.


person Nick    schedule 27.02.2014    source источник
comment
Может быть, мы могли бы помочь решить проблему, решение которой состоит в том, чтобы попытаться убить и перезапустить проводник, а не пытаться исправить ваше решение?   -  person Damien_The_Unbeliever    schedule 27.02.2014
comment
It opens an explorer window, but doesn't start the explorer.exe process? Это не имеет смысла — если вы видите окно проводника, значит, должен быть запущен explorer.exe. Каковы ваши настоящие симптомы? Ваша панель задач не видна? Explorer.exe не отображается в диспетчере задач? Пожалуйста, отредактируйте свой вопрос с более подробной информацией.   -  person RB.    schedule 27.02.2014
comment
Я так понимаю он убивает Shell убивая процесс explorer.exe. Затем он хочет перезапустить Shell (проводник), но выполнение explorer.exe только открывает окно проводника вместо перезапуска оболочки. - Я думаю, что начиная с Vista пользователь не может вызывать оболочку, или она должна быть хотя бы зарегистрирована как Shell в разделе реестра WindowsNT. о том, как перезапустить оболочку, мне придется провести некоторое исследование   -  person MrPaulch    schedule 27.02.2014
comment
Скажите нам: вы испортили запись HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell?   -  person MrPaulch    schedule 27.02.2014
comment
Кроме того, убивать так просто, что вы можете сделать это сами... вам не нужен taskkill.exe, чтобы сделать за вас всю грязную работу :)   -  person MrPaulch    schedule 27.02.2014
comment
Вы правы !, это моя проблема, он открывает только окно проводника. и я проверил диспетчер задач, но explorer.exe там не было, и панель задач также не появляется. @Мистер Полч   -  person Nick    schedule 28.02.2014
comment
@Damien_The_Unbeliever Да Пожалуйста, если вы можете дать мне образец, чтобы убить и перезапустить Explorere.exe, это было бы здорово! это может быть java или vb.net .. спасибо   -  person Nick    schedule 28.02.2014
comment
@РБ. да, панель задач не видна, а explorer.exe не виден в разделе диспетчера задач, но когда я набираю exploere.exe при запуске новой задачи, все приходит в норму...   -  person Nick    schedule 28.02.2014
comment
Нет, я пытался сказать, что убивать и перезапускать проводник, вероятно, неправильно. По какой-то причине вы думаете, что это принесет вам X. Если бы мы знали, что такое X, возможно, мы смогли бы предложить лучшие предложения для его достижения.   -  person Damien_The_Unbeliever    schedule 28.02.2014
comment
Послушайте, вы проверили значение реестра, которое я у вас просил? да это бы многое объяснило...   -  person MrPaulch    schedule 28.02.2014
comment
@Damien_The_Unbeliever, что я хочу сделать, я хочу запустить форму Windows, пользователь должен заполнить ее, прежде чем что-либо делать, просто, только после заполнения формы пользователь должен иметь возможность использовать ПК   -  person Nick    schedule 28.02.2014
comment
Вы можете добиться большего успеха, попытавшись реализовать поставщик учетных данных. Это уловка, которую Windows (начиная с Vista) предлагает программистам, которые хотят участвовать в процессе входа в систему. (Но вы не будете писать его в VB.Net)   -  person Damien_The_Unbeliever    schedule 28.02.2014


Ответы (1)


Используйте это, чтобы запустить процесс проводника

Dim ExProcess = New Process()
ExProcess.StartInfo.UseShellExecute = True
ExProcess.StartInfo.CreateNoWindow = True
ExProcess.StartInfo.FileName = "c:\windows\explorer.exe"
ExProcess.StartInfo.WorkingDirectory = Application.StartupPath
ExProcess.Start()
person Brammetje    schedule 03.03.2015
comment
Спасибо, это сработало! Я столкнулся с той же проблемой, что и OP, и ваше решение работает нормально. - person Marçal Torroella; 27.03.2019