Метод если честно не очень, надо знать точный заголовок окна, что ознаечает уйма рутины, и к слову лучше использовать
PostMessage, поскольку при использовании
SendMessage приложение которое послало сообщение ждёт когда придёт ответ(т.е. не функционирует), а в первом случае приложение пошлёт сообщение и продолжит работу.
Так же есть отличный вариант сканировать вызываемые модули (dll), например артмани вызывает
artmoney733.dll(с разными версиями) , и даже если злоюзер попытается обхитрить нас изменением имени процесса , то его будет ждать приятный сюрприз, артмани всё равно не стартанёт.
Или ещё вариант подходит для l2phx , исзвестно что в проге можно изменить название главной формы, но вот менять информацию о версии файла нельзя

, поэтому можно в сканировании добавить проверку допустим поля
"Название продукта" оно обычно одно и тоже на всех версиях
L2PacketHack, и соответственно килять процесс с таким содержанием в проверяемом поле.
Так же есть и другие интересные варианты...