elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  código para evitar que el computador se bloquee por inactividad
0 Usuarios y 3 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: código para evitar que el computador se bloquee por inactividad  (Leído 7,045 veces)
binario010101

Desconectado Desconectado

Mensajes: 136


Ver Perfil
código para evitar que el computador se bloquee por inactividad
« en: 25 Octubre 2015, 04:15 am »

hola amigos

alguien conoce un código para evitar que el computador se bloquee por inactividad, no soy administrador del equipo para modificar esta opción, así que creo necesitar algo que emule click o pulsaciones de letras para evitar que se bloquee el equipo, alguna idea?

gracias


En línea

binario010101@hotmail.com
no soy ing estudio sicologia
CR0N0S

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: código para evitar que el computador se bloquee por inactividad
« Respuesta #1 en: 4 Noviembre 2015, 22:39 pm »

¿Qué sistema operativo tienes? Porqué en la mayoría puedes modificar el tiempo que tarda en cerrarse por inactividad y configurarlo en nunca. Y si no es el sistema operativo lo que te lo apaga, puedes mirar en la BIOS.

Pero si no se me ocurre que puedes crear un bucle infinito tipo:

Código
  1. static void Main()
  2. {
  3. while (true)
  4. {
  5. Console.WriteLine("Ejecutando bucle infinito");
  6. }
  7. }
  8.  



[NOTA DEL MODERADOR]  Usa las etiquetas GeShi para insertar código. Lee las reglas del subforo.


« Última modificación: 5 Noviembre 2015, 13:50 pm por Eleкtro » En línea

binario010101

Desconectado Desconectado

Mensajes: 136


Ver Perfil
Re: código para evitar que el computador se bloquee por inactividad
« Respuesta #2 en: 5 Noviembre 2015, 02:54 am »

Hola amigo gracias por contestar, es un sin 7, uso un usuario de red para iniciar sesión así que no puedo modificar la configuración del pc porque tiene seguridad, puedes explicarme lo den bucle infinito ?
En línea

binario010101@hotmail.com
no soy ing estudio sicologia
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: código para evitar que el computador se bloquee por inactividad
« Respuesta #3 en: 5 Noviembre 2015, 12:22 pm »

Recurriendo a la APi de Windows, la función SetThreadExecutionState, supuestamente es capaz de evitar que el sistema entre en un estado IDLE (inactividad). Esta función afecta por thread o hilo.


Cita de: MSDN
Enables an application to inform the system that it is in use, thereby preventing the system from entering sleep or turning off the display while the application is running.

Nótese que dicha función, usándola periodicamente (mediante un "temporizador" por ejemplo) y pasándole los valores adecuados (ES_CONTINUE + ES_SYSTEM_REQUIRED + ES_AWAY_MODE_REQUIRED) simulará que el PC está en estado de sueño (Sleep). Si también quieres prevenir que la pantalla se apague, usa el valor o flag ES_DISPLAY_REQUIRED.

Otra alternativa, en caso de que esa metodología no te funcionase por el motio que fuese, sería utilizar la función Win32 SendMessage para enviar el mensaje de ventana WM_POWERBROADCAST junto al prámetro (WParam) PBT_APMQUERYSUSPEND ,
pero esto requeriría desarrollar otro wrapper para dicha función. En caso de que SetThreadExecutionState no te funcione me pondré con la otra función de la WinAPI.

Cuéntanos los resultados obtenidos.



Código fuente, desarrollado en el lenguaje Visual Basic.Net:


Ejemplo de uso:
( Lo he testeado en Windows 7 x64, funciona perfectamente. )

Código
  1. Public Class Form1 : Inherits Form
  2.  
  3.    Private WithEvents awakeTimer As Threading.Timer
  4.    Private ReadOnly awakeInterval As Integer = 30000 'ms
  5.  
  6.    Public Sub New()
  7.  
  8.        Me.InitializeComponent()
  9.        Me.awakeTimer = New Threading.Timer(AddressOf Me.AwakeTimer_Callback, Nothing, Me.awakeInterval, 0)
  10.  
  11.    End Sub
  12.  
  13.    Private Sub AwakeTimer_Callback(ByVal stateInfo As Object)
  14.  
  15.        ' Send periodically an Awake signal to avoid the system turning off the display and entering into Sleep or Hibernation mode.
  16.        PowerUtil.SendAwakeSignal()
  17.        Me.awakeTimer.Change(Me.awakeInterval, 0)
  18.  
  19.    End Sub
  20.  
  21.    Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) _
  22.    Handles MyBase.FormClosing
  23.  
  24.        Me.awakeTimer.Dispose()
  25.        PowerUtil.RemovedAwakeSignal()
  26.  
  27.    End Sub
  28.  
  29. End Class

Saludos
« Última modificación: 5 Noviembre 2015, 14:51 pm por Eleкtro » En línea

CR0N0S

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: código para evitar que el computador se bloquee por inactividad
« Respuesta #4 en: 5 Noviembre 2015, 14:59 pm »

Hola amigo gracias por contestar, es un sin 7, uso un usuario de red para iniciar sesión así que no puedo modificar la configuración del pc porque tiene seguridad, puedes explicarme lo den bucle infinito ?

Básicamente es crear un programa cuya única función sea ejecutar un bucle infinito, de esta manera el equipo no está inactivo al mantener funcionando el bucle y no se apaga. El código que te puse está en C#, para una aplicación de consola. Entero sería algo así:

Código
  1. using System;
  2.  
  3. namespace BucleInfinito
  4. {
  5. static void Main()
  6. {
  7. while (true)
  8. {
  9. Console.WriteLine("Ejecutando bucle infinito");
  10. }
  11. }
  12. }
  13.  
« Última modificación: 5 Noviembre 2015, 15:10 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: código para evitar que el computador se bloquee por inactividad
« Respuesta #5 en: 5 Noviembre 2015, 15:23 pm »

Básicamente es crear un programa cuya única función sea ejecutar un bucle infinito, de esta manera el equipo no está inactivo al mantener funcionando el bucle y no se apaga. El código que te puse está en C#, para una aplicación de consola. Entero sería algo así:

Pensar así es una equivocación, el código que has mostrado no funcionará, por que el trabajo que haga una aplicación no es lo mismo que lo que el sistema considera por "estar trabajando", donde se requiere una interacción por parte del usuario.

Con un búcle infinito no conseguirás nada, a menos que asignes una señal de actividad al thread donde estás ejecutando ese búcle (o cualquier otra operación) para mantener el sistema despierto, con la función de la API que mencioné en el post de arriba.

Ten en cuenta que decenas de servicios y aplicaciones de Windows, y aplicaciones de terceros que mantengas en ejecución, están siempre en segundo plano, trabajando, pero aun así el sistema se pone en estado de inactividad, ¿verdad?.

Aparte de eso, hay una cosa muy importante a tener en cuenta en el código que has mostrado, y es que el bucle infinito consumira CPU hasta tal punto que pondrá al PC en un estado de estrés al realizar un trabajo tan intensivo o repetitivo, el cual no es necesario, ya que teniendo en cuenta que el tiempo mínimo para que se ponga el sistema en estado Sleep es de 1 minuto, entonces deberías detener el thread por unos 50 segundos en cada iteración del búcle para dejar descansar al PC y no consumir tantos recursos del sistema:

Código
  1. While True
  2.    Console.WriteLine("Ejecutando bucle infinito")
  3.    Threading.Thread.Sleep(50 * 1000)
  4. End While

De todas formas, como ya digo esa metodología del búcle infinito es inservible para tal fin, pero lo comento para evitar malos hábitos de programación en el sentido que acabo de explicar.

EDITO: Tal vez podrías probar a utilizar un búcle infinito donde simulases una pulsación de teclado o keystroke, con el método System.Windows.Forms.SendKeys.Send, pero de igual modo no creo que esto funcionase para tal fin. (no lo he comprobado)

Saludos!
« Última modificación: 5 Noviembre 2015, 15:34 pm por Eleкtro » En línea

Flamer


Desconectado Desconectado

Mensajes: 1.051


crack, crack y mas crack...


Ver Perfil WWW
Re: código para evitar que el computador se bloquee por inactividad
« Respuesta #6 en: 5 Noviembre 2015, 17:18 pm »

Hola binario mejor no te enredes programando lo que tu buscas se llama automatizador y aqui esta uno llamado tinytask:



es el que yo uso repite todo lo que escribas, clic y movimientos del mause

descarga lo aqui desde su web:http://www.vtaskstudio.com/support.php


Saludos Flamer y es gratuito
En línea

Mi Canal De Youtube y Blog

https://elblogdeflamer.blogspot.com

binario010101

Desconectado Desconectado

Mensajes: 136


Ver Perfil
Re: código para evitar que el computador se bloquee por inactividad
« Respuesta #7 en: 7 Noviembre 2015, 18:58 pm »

Instalar programas no es opción por la seguridad del pc, creo que solo debe ser algo en vbs, bat o una macro en excel. Estoy intentado dejar una tarea programada desde imacros forma chre pero no funciona. Gracias
En línea

binario010101@hotmail.com
no soy ing estudio sicologia
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sistema simple para evitar copias no autorizadas (Codigo fuente)
Programación Visual Basic
byway 7 5,694 Último mensaje 18 Enero 2009, 00:11 am
por Karcrack
Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video « 1 2 3 4 »
Windows
Aikanáro Anário 36 20,708 Último mensaje 5 Julio 2011, 02:40 am
por SuperDraco
Twitter se convierte al código abierto para evitar interrupciones de su servicio
Noticias
wolfbcn 0 2,824 Último mensaje 22 Octubre 2013, 14:00 pm
por wolfbcn
Evitar ver código de .net
Ingeniería Inversa
jaxoR 5 6,254 Último mensaje 15 Junio 2015, 22:06 pm
por jaxoR
Computador para programar
Hardware
Skewer 3 1,964 Último mensaje 15 Enero 2017, 00:21 am
por B€T€B€
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines