Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Пользователь


Сообщения: 136
Благодарности: 18

Профиль | Отправить PM | Цитировать


Добрый вечер. Кто подскажет причину того, что при использовании примера из справки раздела Работа с процессами, ProcessFunc.nsh, этот код на Windows 8.1 x64 (в отличии от ХР) при убивании процесса explorer и повторном запуске командой Exec "explorer.exe", не приводит к загрузке Рабочего стола, а открывается только (и то редко, чаще остается голый фон) папка "Этот компьютер"? Такая же проблема у утилиты jack.exe при перезапуске оболочки (ну это к слову)

${KillProcess} "explorer.exe" $4
${If} $4 == 1
MessageBox MB_ICONINFORMATION|MB_OK "Процесс завершен [ explorer ]:$\n$$4 = $4"
Exec "explorer.exe" # запускаем проводник
${ElseIf} $4 == 2
MessageBox MB_ICONINFORMATION|MB_OK "Процесс не завершен [ explorer ]:$\n$$4 = $4"
${ElseIf} $4 == none
MessageBox MB_ICONINFORMATION|MB_OK "$$4 = $4$\nПроцесс[ explorer ] не найден"
${ElseIf} $4 == error
MessageBox MB_ICONINFORMATION|MB_OK "Process error"
${EndIf}

Продолжу...

Добавил полный путь в команду Exec "$WinDir\explorer.exe" и Рабочий стол загрузился. Посмотрел в Анвире разницу в командах запуска. При использовании системой переменной Path Explorer запускался через процесс svchost.exe, что приводило к открытию папки, а с полным путем прямой командой exe_шником от имени пользователя, что приводило к загрузке стола. Так что использовать Path не всегда предсказуемо...

Последний раз редактировалось Salmo, 27-11-2015 в 21:46.


Отправлено: 20:58, 27-11-2015 | #1894