Iniciar y finalizar programa pulsando un botón

Un apunte: estás definiendo la variable "state" a cero inicialmente y cuando óperas con ella haces

  state=1-state;

Que el resultado será también y siempre cero...