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.