En travaillant sur une dll de hook système, je me suis souvent arraché les cheveux parce qu'elle se déchargeait mal. J'ai donc repensé à une source que j'avais vue ici qui permettait d'injecter du code dans les autres applications, et me suis dit pourquoi ne pas l'utiliser pour décharger ma dll à coups de FreeLibrary ?
Voici le résultat, un petit utilitaire qui scanne tous les processus (en obtenant les PID directement à partir de la perflib, cette méthode n'a jamais été présentée sur cppfrance à ma connaissance - en tout cas mes recherches ne m'ont ramené sur aucune source) et crée un thread distant afin de décharger la dll, si elle est présente. Le thread renvoie un entier qui indique le résultat de l'opération (succès, erreur ou dll non présente dans ce processus).
Le code s'explique de lui même et n'est donc PAS commenté, lisez les liens fournis en annexe pour le comprendre...