Я работаю над расширением оболочки Windows, и, к сожалению, при внесении изменений в DLL я должен перезапустить проводник Windows (поскольку он сохраняет DLL в памяти).
Я нашел эту программу от Дино Эспозито, но она не работает для меня.
void SHShellRestart(void)
{
HWND hwnd;
hwnd = FindWindow("Progman", NULL );
PostMessage(hwnd, WM_QUIT, 0, 0 );
ShellExecute(NULL, NULL, "explorer.exe", NULL, NULL, SW_SHOW );
return;
}
У кого-нибудь есть что-то, чем они могут поделиться?
P.S. Я понимаю, что могу зайти в диспетчер задач и убить процесс проводника, но я просто хочу сделать это ленивым способом. Кроме того, это позволяет автоматизировать.
P.P.S Я использую .NET для разработки, но функциональность перезапуска оболочки может быть на языке C, C ++ или .NET. Это будет просто небольшой исполняемый файл.