Я могу придумать два подхода:
Второй подход немного грязный, но не такой сложный. Страница PInvoke.net описывает вызов и даже дает рабочий пример:
РЕДАКТИРОВАТЬ: Некоторые заметки о проблемах очистки, вдохновленные комментарием Роба. Я поместил их здесь в этот существующий ответ, потому что они сами по себе не дают хорошего ответа.
Обратите внимание, что при любом подходе (httpcfg.exe или прямое использование HTTP-API) действительно убедитесь, что вы отменили регистрацию URL-адресов в процессе удаления.
Причина в том, что HTTP.SYS (который на самом деле является компонентом ядра) имеет только так много (не страничной) памяти, доступной для управления резервированием URL. Если вы превысите это, имея много (возможно устаревших / оставшихся) регистраций, вы получите ошибки и не сможете зарегистрировать новые URL (см. http://support.microsoft.com/kb/824033).
Хотя это «разрешимо», если вручную использовать httpcfg.exe для очистки регистраций, которые, по вашему мнению (!), Являются осиротевшими (или позволяют больше памяти - осторожно!), Это ужасная боль и совершенно ненужная, если деинсталляторы работают так, как было предложено.