Hola.
Lo que podrías hacer es usar on objeto tipo timer y que cada tanto controle los archivos que existen en el escritorio.
Creo que en csharp para obtener la ruta del directorio podes usar:
string dir=Environment.GetFolderPath(SpecialFolder.Deskto pDirectory);
Eso te devuelve la ruta del escritorio del usuario.
Osea que una función para revisar los archivos que tenes en el escritorio podría ser algo así:
Código:
string dir=Environment.GetFolderPath(SpecialFolder.DesktopDirectory);
DirectoryInfo di = new DirectoryInfo(dir);
FileInfo[] rgFiles = di.GetFiles("*.exe");
foreach(FileInfo fi in rgFiles)
{
Console.Write("El archivo " + fi.Name + " no se permite en esta PC");
System.IO.File.Delete(dir + fi.name);
}
Ese sería mas o menos el código, lo escribo al vuela así que puede ser que tengas que corregir algo, pero eso basicamente lo meterías en el evento del timer.
Espero te sirva.