Bueno para quien le interese,es que la libreria System.ServiceProcess no funciona en 64 bits,lo he probado en 32 bits y funciona perfectamente. No se si es porque es windows 8 o por que el sistema es 64 bits.
Hola, solo quiero decirte que lo de los 64bits es una tontería, yo uso Windows 7 de 64 bits y como ves te mostré un código funcional. Lo de que no te funcione porque séa Windows 8 también parece otra tontería, si no fuesen compatible las classes del FW en Windows 8 sería para darle una tremenda hostia a Microsoft, pero eso ya no te lo puedo confirmar.
Old Registry: 130425075500000001010 New Registry: 20130425 075500 1010 00 0 00 0 01
Confirma que es correcto, porque a mi no me cuadran las cosas, como ves obtengo esto:
Código:
20130425 075500 1010 00 0 00 0 01
Pero según tus indicaciones la ficha debería ser "0101"
Deberías especificar cual es el registro fijo de este string: 130425075500000001010
Yo he asumido que la ficha eran los últimos 4 dígitos, pero quizás haya que eliminar el último dígito y coger los ultimos 4, entonces modifica esta línea:
Código:
Set "Ficha=!Registry:~-4!"
Por esta otra:
Código:
Set "Ficha=!Registry:~-5!" & Set "Ficha=!Ficha:~0,4!"
Así obtienes exáctamente el nuevo registro, pero como no sé la estructura del antiguo registro... no sé si es lo correcto.
Muchos detalles, pero falta el más importante... ¿Para Linux o para Windows?, vale, acabo de leer lo del Notepad, a no ser que uses Wine para abrir el notepad en Linux me imagino que trabajs en Windows, haz el favor de especificar el detalle cuando formules preguntas.
Que windows trabaja a un nivel mas bajo que linux y tal...
Que Batch séa un "retrasado" no significa que la shell de Linux séa increíblemente superior a la de Windows, Windows además de Batch también dispone el uso nativo de VisualBasicScript, Jscript, y Powershell, puedes hacer de todo. Si no me equivoco Linux solo dispone de Bash como lenguaje nativo (No lo sé seguro pero...), así que tu me dirás.
Claro, no puedes iniciar un servicio que ya se encuentra iniciado, ni detener uno que ya está detenido.
De todas formas no dás ningún detalle acerca del error, solo dices que "falla", podrías haber mostrado la excepción porque no somos magos para adivinar lo que ocurre.
Pero deduzco que el problema es ese porque en tu código no compruebas el estado del servicio. solo puede ser eso, o que el servicio no se pueda detener por alguna dependencia.
Usa un convertidor online de VBNET a C# con esta función que hice, y listo: