Por poder se puede hacer, pero estamos en la cuerda floja. Con el mensaje WM_SETICON podemos cambiar el icono, pero tenemos que pasarle el HANDLE del nuevo icono, y aquí esta el problema. El nuevo icono lo deberíamos de poder obtener con la función LoadIcon, pero ese solo sera valido mientras nuestro programa este en ejecución (y aun así tengo mis dudas). Podemos usar uno de los iconos estándar, pero aun así no puedo asegurar que todo termine cayendo

, hay que pensar que ese mensaje esta pensado para comunicarse con las ventana de un mismo proceso no con las de otro. De todas formas aquí te queda para empezar:
Código:
HANDLE Ventana;
HICON Icono;
// Busca la ventana del bloc de notas
if (Ventana = FindWindow(NULL,"Sin título - Bloc de notas"))
{
// Uso el icono de peligro
if (Icono = LoadIcon(0,IDI_WARNING))
{
SendMessage(Ventana, WM_SETICON, 1, (LPARAM)Icono);
}
}
PD: Tengo mucha curiosidad por lo que estas haciendo, por los mensajes que has puesto, parece algún tipo de aplicación para ocultar el mesenger (supongo que de tu jefe o algún otro vigilante). No tienes porque decírmelo, solo es curiosidad
