Sistema em rede (cliente-servidor)

Recentemente comecei a desenvolver meu trabalho de conclusão de curso e desejo programá-lo em java. Tenho uma noção básica de como começar mas gostaria que vocês me ajudassem me dando dicas de quais bibliotecas usar e talvez possíveis códigos-fonte para que eu tirasse idéias para meu trabalho.

Ele se trata de um sistema de monitoramento de usuários em rede. Irei fazer um sistema parecido com aqueles de lan house, mas com uma IA que define quando o usuário faz algo errado no pc, bloqueando a máquina cliente e avisando o admin do sistema que houve uma transgressão de regras.

Meu primeiro problema é: como fazer o sistema em java bloquear o sistema operacional de forma a não permitir que o usuário termine o programa pelo CTRL+ALT+DEL.

Conforme eu for desenvolvendo, aumentarei o tópico com dúvidas e quando estiver pronto disponibilizo o código fonte no site.
Grato!

Gostaria de obter respostas de possíveis maneiras de fazer o que escrevi acima, se alguém souber, por favor, poste no tópico.
Minha segunda pergunta é: Alguém sabe como posso fazer uma rotina que detecte o sistema operacional em que o programa java está rodando e assim habilite determinadas funções que foram desenvolvidas previamente?
Terceira pergunta: Criei um programinha rápido para poder tirar screenshots da tela nomeando os arquivos com a data e o horário em que foram tirados, mas estou executando com o netbeans aberto, preciso executá-lo em segundo plano. Alguém sabe como fazer?

CÓDIGO FONTE:
[i]
package testescreenshot;
import java.awt.;
import java.awt.image.
;
import java.io.;
import javax.imageio.
;
import java.util.*;

public class Main {

/** Creates a new instance of Main
public Main() {
}*/

public static void main(String[] args) {
    // TODO code application logic here
    Dimension umaarea = Toolkit.getDefaultToolkit().getScreenSize();  
    System.out.println("Altura " + umaarea.getHeight());
    System.out.println("Largura " + umaarea.getWidth());
try{
  Robot robot = new Robot();
  GregorianCalendar tempo = new GregorianCalendar();
  
  // Captura a tela na àrea definida pelo retângulo
  
  BufferedImage bi = robot.createScreenCapture(new 
          Rectangle(0, 0, (int) umaarea.getWidth(),(int) umaarea.getHeight()));
  // Salva a imagem
  ImageIO.write(bi, "jpg", new File(Integer.toString(tempo.getTime().getDate())+"_"+
          Integer.toString(tempo.getTime().getMonth()+1)+"_"+
          Integer.toString(tempo.getTime().getYear()+1900)+"_"+
          Integer.toString(tempo.getTime().getHours())+"_"+
          Integer.toString(tempo.getTime().getMinutes())+"_"+
          Integer.toString(tempo.getTime().getSeconds())+".jpg"));
}
catch(AWTException e){
  e.printStackTrace();
}
catch(IOException e){
  e.printStackTrace();
}	
}  

}[/i]