Hacer que una funcion se ejecute cada 5 segnds [SOLUCIONADO]

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
MaTaXeToS
Mensajes: 22
Registrado: 02 Dic 2009, 09:36

Hacer que una funcion se ejecute cada 5 segnds [SOLUCIONADO]

Mensaje por MaTaXeToS »

Mi pregunta es un tanto sencilla pero he estado mirando como hacerlo y he probado varias cosas, pero no logro conseguirlo.

Me gustaria que por ejemplo la funcion _mostrarlobbys se ejecute cada 5 o 10 segundos mientras que la ventana esta activa.
(Lo de la venta que este activa no se como hacerlo pero lo de que se ejecute cada 5 o 10 segundos he intentando hacer esto:

Código: Seleccionar todo

	Func _mostrarlobbys($listview)
		$i = 0
		$u = 0
		While $i == $u
			GUICtrlDelete($listview)
			$listview = GUICtrlCreateListView( "Lobby                               |  Fiabilidad |  Rondas  |  Mapa  |  Punt.  |  Jugadores  |  Estado", 10, 10, 572, 230)

			$cons_lobbys = "SELECT id,nombre,fiabilidad,mapa,maxplayers,mr,equipoa,equipob,estado FROM lobbys ORDER BY id ASC"
			_MySQL_Real_Query($MysqlConn, $cons_lobbys) ;mysql_query
			$res_lobbys = _MySQL_Store_Result($MysqlConn)
			$numlobbys = _MySQL_Num_Rows($res_lobbys) ; mysql_num_rows

			if $numlobbys <> 0 Then ;si el mysql_num_rows no es 0
				;$row = _MySQL_Fetch_Row_StringArray($res) ; mysql_fetch_array
				;_ArrayDisplay($row)
				$i = 1
				While $i <= $numlobbys
					$datos_lobbys = _MySQL_Fetch_Result_StringArray($res_lobbys) ;mysql_fetc_array 2

					$cons_players = "SELECT id FROM lobbys_players WHERE id_lobby='" & $datos_lobbys[$i][0] & "'"
					_MySQL_Real_Query($MysqlConn, $cons_players) ;mysql_query
					$res_players = _MySQL_Store_Result($MysqlConn)
					$numplayers = _MySQL_Num_Rows($res_players) ; mysql_num_rows

					;_ArrayDisplay($datos)
					$lobbyid = "#" & $datos_lobbys[$i][0] & " - " & $datos_lobbys[$i][1]
					$fiabilidad = $datos_lobbys[$i][2] & "%"
					If $datos_lobbys[$i][5] <> "Ninguno" Then
						$rondas = "MR" & $datos_lobbys[$i][5]
					Else
						$rondas = "Ninguno"
					EndIf
					$mapa = $datos_lobbys[$i][3]
					$punt = $datos_lobbys[$i][6] & "-" & $datos_lobbys[$i][7]
					$jugadores = $numplayers & "/" & $datos_lobbys[$i][4]
					$estado = $datos_lobbys[$i][8]
					GUICtrlCreateListViewItem($lobbyid & '|' & $fiabilidad & '|' & $rondas & '|' & $mapa & '|' & $punt & '|' & $jugadores & '|' & $estado, $listview)
					$i = $i + 1
				WEnd
			EndIf
			Sleep(5000)
		WEnd
	EndFunc
Pero no me funciona.

Gracias de antemano.
Última edición por MaTaXeToS el 21 Abr 2010, 14:46, editado 1 vez en total.
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Como hacer que una funcion se ejecute cada 5 segundos

Mensaje por BasicOs »

Para ejecutar cada 5 segundos cualquier función es algo como (añadí un if para la filtrar la ejecución) :

Código: Seleccionar todo

while 1
  if winactive(xxx) then
    MyFuncion(xx)
  endif
  sleep(5000) ;te revisa cada 5 segundos la ventana si está activa puedes ponerlo dentro del IF, y aquí un sleep(200)
Wend
Func MyFuncion(xx)
 xxxCodigo
EndFunc
Salu22:)
MaTaXeToS
Mensajes: 22
Registrado: 02 Dic 2009, 09:36

Re: Como hacer que una funcion se ejecute cada 5 segundos

Mensaje por MaTaXeToS »

perfecto, voy a probarlo a ver que tal y comento otra vez.
MaTaXeToS
Mensajes: 22
Registrado: 02 Dic 2009, 09:36

Re: Como hacer que una funcion se ejecute cada 5 segundos

Mensaje por MaTaXeToS »

fff, he probado varias cositas, y no logro encontrar el sitio donde situar el while que tu me has puesto, podrias decirme donde va situado?

este es el codigo entero:

Código: Seleccionar todo

	#cs ----------------------------------------------------------------------------

	 AutoIt Version: 3.3.6.0
	 Author:         MaTaXeToS

	 Script Function:
		Veritas CSSMIXES.es.

	#ce ----------------------------------------------------------------------------

	; Script Start - Add your code below here

	#include <ButtonConstants.au3>
	#include <EditConstants.au3>
	#include <GUIConstantsEx.au3>
	#include <GuiStatusBar.au3>
	#include <StaticConstants.au3>
	#include <WindowsConstants.au3>
	#include <GuiImageList.au3>
	#include <GuiButton.au3>
	#include <array.au3>
	#include "mysql.au3"

	_MySQL_InitLibrary()
	Dim $MysqlConn = _MySQL_Init()
	Dim $connected = _MySQL_Real_Connect($MysqlConn,"localhost","root","","cssmixes")

	Opt("GUIOnEventMode", 1)
	#Region ### START Koda GUI section ### Form=
	$login = GUICreate("Veritas - v1.0", 246, 154, 267, 211)
	$login_grupo1 = GUICtrlCreateGroup("Login", 8, 0, 233, 129)
	; MIRO SI YA EXISTE LOS REGISTROS DEL USUARIO Y LA CONTRASEÑA
	$reguser = RegRead("HKEY_CURRENT_USER\Software\CSSMIXES", "usuario")
	$regpassword = RegRead("HKEY_CURRENT_USER\Software\CSSMIXES", "password")
	If $reguser <> "" Then
		$inputuser = GUICtrlCreateInput($reguser, 104, 24, 121, 21)
	Else
		$inputuser = GUICtrlCreateInput("", 104, 24, 121, 21)
	EndIf
	If $regpassword <> "" Then
		$inputpassword = GUICtrlCreateInput($regpassword, 104, 56, 121, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
	Else
		$inputpassword = GUICtrlCreateInput("", 104, 56, 121, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
	EndIf
	$texto_usuario = GUICtrlCreateLabel("Usuario", 24, 24, 40, 17)
	$texto_password = GUICtrlCreateLabel("Contraseña", 24, 56, 58, 17)
	$identificar = GUICtrlCreateButton("Identificar", 40, 88, 75, 25, $WS_GROUP)
	$cerrar = GUICtrlCreateButton("Cerrar", 128, 88, 75, 25, $WS_GROUP)
	GUICtrlCreateGroup("", -99, -99, 1, 1)

	GUISetOnEvent($GUI_EVENT_CLOSE, "_cerrar")
	GUICtrlSetOnEvent($cerrar, "_cerrar")
	GUICtrlSetOnEvent($identificar, "_identificar")

	$estado = _GUICtrlStatusBar_Create($login)
	_GUICtrlStatusBar_SetSimple($estado)
	_GUICtrlStatusBar_SetBkColor($estado, 0xF0FBFF)
	GUISetState(@SW_SHOW)
	#EndRegion ### END Koda GUI section ###
	; FUNCION PARA MANTENER LA VENTANA ACTIVA
	While 1
		$nMsg = GUIGetMsg()
		Switch $nMsg
			Case $GUI_EVENT_CLOSE
				Exit
		EndSwitch
	WEnd

	Func _cerrarventana()
		GUIDelete(@GUI_WinHandle)
	EndFunc

	; FUNCION DEL IDENTIFICADOR
	Func _identificar()
		$erroruser = 0
		$errorpassword = 0
		$errornoexiste = 0
		$errorpwmal = 0
		$usuario = GUICtrlRead($inputuser)
		$pass = GUICtrlRead($inputpassword)
		If $usuario == "" Then
			$erroruser = 1
		EndIf
		If $pass == "" Then
			$errorpassword = 1
		EndIf

		; NO HA INTRODUCIDO NADA
		If $erroruser == 1 Then
			If $errorpassword == 1 Then
				_GUICtrlStatusBar_SetText($estado, " Porfavor introduzca usuario y contraseña")
			EndIf
		EndIf

		; HA INTRODUCIDO EL USER PERO NO LA PW
		If $erroruser == 0 Then
			If $errorpassword == 1 Then
				_GUICtrlStatusBar_SetText($estado, " Porfavor introduzca la contraseña")
			EndIf
		EndIf

		; HA INTRODUCIDO LA PW PERO NO EL USER
		If $erroruser == 1 Then
			If $errorpassword == 0 Then
				_GUICtrlStatusBar_SetText($estado, " Porfavor introduzca el contraseña")
			EndIf
		EndIf
		; SI NO SE HA DETECTADO NINGUN ERROR
		If $errorpassword == 0 Then
			If $erroruser == 0 Then
				_login($usuario,$pass)
			EndIf
		EndIf
	EndFunc

	; FUNCION DEL LOGIN
	Func _login($usuario,$pass)
		$cons_usuario = "SELECT id,steamid,password,alias FROM usuarios WHERE alias='" & $usuario & "'"
		_MySQL_Real_Query($MysqlConn, $cons_usuario) ;mysql_query
		$res_usuario = _MySQL_Store_Result($MysqlConn)
		$numusuario = _MySQL_Num_Rows($res_usuario) ; mysql_num_rows

		if $numusuario <> 0 Then ;si el mysql_num_rows no es 0
			;$row = _MySQL_Fetch_Row_StringArray($res) ; mysql_fetch_array
			;_ArrayDisplay($row)
			$datos_usuario = _MySQL_Fetch_Result_StringArray($res_usuario) ;mysql_fetc_array 2
			;_ArrayDisplay($datos)
			$usuario_id = $datos_usuario[1][0]
			$usuario_steamid = $datos_usuario[1][1]
			$usuario_password = $datos_usuario[1][2]
			$usuario_alias = $datos_usuario[1][3]
			if $usuario_password == $pass Then
				_GUICtrlStatusBar_SetText($estado, " TODO OK")
				_escribirregistrousuario($usuario_alias)
				_escribirregistropassword($usuario_password)
				_mixes($usuario_alias, $usuario_id, $usuario_password, $usuario_steamid)
				_alertasonido()
			Else
				_GUICtrlStatusBar_SetText($estado, " CONTRASEÑA INCORRECTA")
			EndIf
		Else
			_GUICtrlStatusBar_SetText($estado, " No existe el usuario")
		EndIf
	EndFunc

	Func _escribirregistrousuario($usuario_alias)
		$reguser = RegRead("HKEY_CURRENT_USER\Software\CSSMIXES", "usuario")
		If $reguser == "" Then
			RegWrite("HKEY_CURRENT_USER\Software\CSSMIXES", "usuario", "REG_SZ", $usuario_alias)
		Else
			If $reguser <> $usuario_alias Then
				RegWrite("HKEY_CURRENT_USER\Software\CSSMIXES", "usuario", "REG_SZ", $usuario_alias)
			EndIf
		EndIf
	EndFunc

	Func _escribirregistropassword($usuario_password)
		$regpassword = RegRead("HKEY_CURRENT_USER\Software\CSSMIXES", "password")
		If $regpassword == "" Then
			RegWrite("HKEY_CURRENT_USER\Software\CSSMIXES", "password", "REG_SZ", $usuario_password)
		Else
			If $regpassword <> $usuario_password Then
				RegWrite("HKEY_CURRENT_USER\Software\CSSMIXES", "password", "REG_SZ", $usuario_password)
			EndIf
		EndIf
	EndFunc

	Func _alertasonido()
		SoundSetWaveVolume(100)
		SoundPlay("bin\ding.wav")
	EndFunc

	Func _mostrarlobbys($listview)
		GUICtrlDelete($listview)
		$listview = GUICtrlCreateListView( "Lobby                               |  Fiabilidad |  Rondas  |  Mapa  |  Punt.  |  Jugadores  |  Estado", 10, 10, 572, 230)

		$cons_lobbys = "SELECT id,nombre,fiabilidad,mapa,maxplayers,mr,equipoa,equipob,estado FROM lobbys ORDER BY id ASC"
		_MySQL_Real_Query($MysqlConn, $cons_lobbys) ;mysql_query
		$res_lobbys = _MySQL_Store_Result($MysqlConn)
		$numlobbys = _MySQL_Num_Rows($res_lobbys) ; mysql_num_rows

		if $numlobbys <> 0 Then ;si el mysql_num_rows no es 0
			;$row = _MySQL_Fetch_Row_StringArray($res) ; mysql_fetch_array
			;_ArrayDisplay($row)
			$i = 1
			While $i <= $numlobbys
				$datos_lobbys = _MySQL_Fetch_Result_StringArray($res_lobbys) ;mysql_fetc_array 2

				$cons_players = "SELECT id FROM lobbys_players WHERE id_lobby='" & $datos_lobbys[$i][0] & "'"
				_MySQL_Real_Query($MysqlConn, $cons_players) ;mysql_query
				$res_players = _MySQL_Store_Result($MysqlConn)
				$numplayers = _MySQL_Num_Rows($res_players) ; mysql_num_rows

				;_ArrayDisplay($datos)
				$lobbyid = "#" & $datos_lobbys[$i][0] & " - " & $datos_lobbys[$i][1]
				$fiabilidad = $datos_lobbys[$i][2] & "%"
				If $datos_lobbys[$i][5] <> "Ninguno" Then
					$rondas = "MR" & $datos_lobbys[$i][5]
				Else
					$rondas = "Ninguno"
				EndIf
				$mapa = $datos_lobbys[$i][3]
				$punt = $datos_lobbys[$i][6] & "-" & $datos_lobbys[$i][7]
				$jugadores = $numplayers & "/" & $datos_lobbys[$i][4]
				$estado = $datos_lobbys[$i][8]
				GUICtrlCreateListViewItem($lobbyid & '|' & $fiabilidad & '|' & $rondas & '|' & $mapa & '|' & $punt & '|' & $jugadores & '|' & $estado, $listview)
				$i = $i + 1
			WEnd
		EndIf
	EndFunc

	Func _mixes($usuario_alias, $usuario_id, $usuario_password, $usuario_steamid)
		GUISetState(@SW_HIDE, $login)
		$lobbys = GUICreate("Lobbys", 590, 250, 192, 124)
		$listview = GUICtrlCreateListView( "Lobby                               |  Fiabilidad |  Rondas  |  Mapa  |  Punt.  |  Jugadores  |  Estado", 10, 10, 572, 230)
		_mostrarlobbys($listview)
		GUISetOnEvent($GUI_EVENT_CLOSE, "_cerrar")
		GUISetState(@SW_SHOW)
	EndFunc

	; FUNCIONES DE CERRAR EL FORMULARIO
	Func _cerrar()
	  Exit
	EndFunc
Mira que siempre intento hacerlo todo yo y aprender por mi mismo,pero como siempre, hay cosas que superan a uno mismo.
(La funcion que quiero que se repita es la de _mostrarlobbys($listview) y el titulo de la ventana es "Lobbys", el while que tu me has puesto adaptado para lo que yo quiero seria asi:

Código: Seleccionar todo

while 1
  if winactive("Lobbys") then
    _mostrarlobbys($listview)
  endif
  sleep(5000)
Wend
gracias :)
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Como hacer que una funcion se ejecute cada 5 segundos

Mensaje por BasicOs »

Puede ser asi mismo una función:

Func MantenerVenta()
xxx codigo aqui
EndFunc

Puedes llamarla desde el gui, poniendo una opción en el switch (o case), o bien con un hotkeyset().. realmente desde cualquier sitio de tu código, no se que error te da o exactamente en que momento del código quieres llamarlo, me imagino que después de identificarse....
Puedes buscar guis y cases/switchs hechos en el foro para ver como están hechos :smt025 :smt025
Salu22:)
MaTaXeToS
Mensajes: 22
Registrado: 02 Dic 2009, 09:36

Re: Como hacer que una funcion se ejecute cada 5 segundos

Mensaje por MaTaXeToS »

Bueno, gracias por decirme eso, ya lo he conseguido que me lo vaya refrescando, el problema que me ha surgido ahora, es que no me deja cerrar la ventana, es como si estubiera trabajando y no me deja cerrarla.

aqui tengo el codigo:

Código: Seleccionar todo

	#cs ----------------------------------------------------------------------------

	 AutoIt Version: 3.3.6.0
	 Author:         MaTaXeToS

	 Script Function:
		Veritas CSSMIXES.es.

	#ce ----------------------------------------------------------------------------

	; Script Start - Add your code below here

	#include <ButtonConstants.au3>
	#include <EditConstants.au3>
	#include <GUIConstantsEx.au3>
	#include <GuiStatusBar.au3>
	#include <StaticConstants.au3>
	#include <WindowsConstants.au3>
	#include <GuiImageList.au3>
	#include <GuiButton.au3>
	#include <array.au3>
	#include "mysql.au3"

	_MySQL_InitLibrary()
	Dim $MysqlConn = _MySQL_Init()
	Dim $connected = _MySQL_Real_Connect($MysqlConn,"localhost","root","","cssmixes")

	Opt("GUIOnEventMode", 1)
	#Region ### START Koda GUI section ### Form=
	$login = GUICreate("Veritas - v1.0", 246, 154, 267, 211)
	$login_grupo1 = GUICtrlCreateGroup("Login", 8, 0, 233, 129)
	; MIRO SI YA EXISTE LOS REGISTROS DEL USUARIO Y LA CONTRASEÑA
	$reguser = RegRead("HKEY_CURRENT_USER\Software\CSSMIXES", "usuario")
	$regpassword = RegRead("HKEY_CURRENT_USER\Software\CSSMIXES", "password")
	If $reguser <> "" Then
		$inputuser = GUICtrlCreateInput($reguser, 104, 24, 121, 21)
	Else
		$inputuser = GUICtrlCreateInput("", 104, 24, 121, 21)
	EndIf
	If $regpassword <> "" Then
		$inputpassword = GUICtrlCreateInput($regpassword, 104, 56, 121, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
	Else
		$inputpassword = GUICtrlCreateInput("", 104, 56, 121, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
	EndIf
	$texto_usuario = GUICtrlCreateLabel("Usuario", 24, 24, 40, 17)
	$texto_password = GUICtrlCreateLabel("Contraseña", 24, 56, 58, 17)
	$identificar = GUICtrlCreateButton("Identificar", 40, 88, 75, 25, $WS_GROUP)
	$cerrar = GUICtrlCreateButton("Cerrar", 128, 88, 75, 25, $WS_GROUP)
	GUICtrlCreateGroup("", -99, -99, 1, 1)

	GUISetOnEvent($GUI_EVENT_CLOSE, "_cerrar")
	GUICtrlSetOnEvent($cerrar, "_cerrar")
	GUICtrlSetOnEvent($identificar, "_identificar")

	$estado = _GUICtrlStatusBar_Create($login)
	_GUICtrlStatusBar_SetSimple($estado)
	_GUICtrlStatusBar_SetBkColor($estado, 0xF0FBFF)
	GUISetState(@SW_SHOW)
	#EndRegion ### END Koda GUI section ###
	; FUNCION PARA MANTENER LA VENTANA ACTIVA
	While 1
		$nMsg = GUIGetMsg()
		Switch $nMsg
			Case $GUI_EVENT_CLOSE
				Exit
		EndSwitch
	WEnd

	Func _cerrarventana()
		GUIDelete(@GUI_WinHandle)
	EndFunc

	; FUNCION DEL IDENTIFICADOR
	Func _identificar()
		$erroruser = 0
		$errorpassword = 0
		$errornoexiste = 0
		$errorpwmal = 0
		$usuario = GUICtrlRead($inputuser)
		$pass = GUICtrlRead($inputpassword)
		If $usuario == "" Then
			$erroruser = 1
		EndIf
		If $pass == "" Then
			$errorpassword = 1
		EndIf

		; NO HA INTRODUCIDO NADA
		If $erroruser == 1 Then
			If $errorpassword == 1 Then
				_GUICtrlStatusBar_SetText($estado, " Porfavor introduzca usuario y contraseña")
			EndIf
		EndIf

		; HA INTRODUCIDO EL USER PERO NO LA PW
		If $erroruser == 0 Then
			If $errorpassword == 1 Then
				_GUICtrlStatusBar_SetText($estado, " Porfavor introduzca la contraseña")
			EndIf
		EndIf

		; HA INTRODUCIDO LA PW PERO NO EL USER
		If $erroruser == 1 Then
			If $errorpassword == 0 Then
				_GUICtrlStatusBar_SetText($estado, " Porfavor introduzca el contraseña")
			EndIf
		EndIf
		; SI NO SE HA DETECTADO NINGUN ERROR
		If $errorpassword == 0 Then
			If $erroruser == 0 Then
				_login($usuario,$pass)
			EndIf
		EndIf
	EndFunc

	; FUNCION DEL LOGIN
	Func _login($usuario,$pass)
		$cons_usuario = "SELECT id,steamid,password,alias FROM usuarios WHERE alias='" & $usuario & "'"
		_MySQL_Real_Query($MysqlConn, $cons_usuario) ;mysql_query
		$res_usuario = _MySQL_Store_Result($MysqlConn)
		$numusuario = _MySQL_Num_Rows($res_usuario) ; mysql_num_rows

		if $numusuario <> 0 Then ;si el mysql_num_rows no es 0
			;$row = _MySQL_Fetch_Row_StringArray($res) ; mysql_fetch_array
			;_ArrayDisplay($row)
			$datos_usuario = _MySQL_Fetch_Result_StringArray($res_usuario) ;mysql_fetc_array 2
			;_ArrayDisplay($datos)
			$usuario_id = $datos_usuario[1][0]
			$usuario_steamid = $datos_usuario[1][1]
			$usuario_password = $datos_usuario[1][2]
			$usuario_alias = $datos_usuario[1][3]
			if $usuario_password == $pass Then
				_GUICtrlStatusBar_SetText($estado, " TODO OK")
				_escribirregistrousuario($usuario_alias)
				_escribirregistropassword($usuario_password)
				_mixes($usuario_alias, $usuario_id, $usuario_password, $usuario_steamid)
				_alertasonido()
			Else
				_GUICtrlStatusBar_SetText($estado, " CONTRASEÑA INCORRECTA")
			EndIf
		Else
			_GUICtrlStatusBar_SetText($estado, " No existe el usuario")
		EndIf
	EndFunc

	Func _escribirregistrousuario($usuario_alias)
		$reguser = RegRead("HKEY_CURRENT_USER\Software\CSSMIXES", "usuario")
		If $reguser == "" Then
			RegWrite("HKEY_CURRENT_USER\Software\CSSMIXES", "usuario", "REG_SZ", $usuario_alias)
		Else
			If $reguser <> $usuario_alias Then
				RegWrite("HKEY_CURRENT_USER\Software\CSSMIXES", "usuario", "REG_SZ", $usuario_alias)
			EndIf
		EndIf
	EndFunc

	Func _escribirregistropassword($usuario_password)
		$regpassword = RegRead("HKEY_CURRENT_USER\Software\CSSMIXES", "password")
		If $regpassword == "" Then
			RegWrite("HKEY_CURRENT_USER\Software\CSSMIXES", "password", "REG_SZ", $usuario_password)
		Else
			If $regpassword <> $usuario_password Then
				RegWrite("HKEY_CURRENT_USER\Software\CSSMIXES", "password", "REG_SZ", $usuario_password)
			EndIf
		EndIf
	EndFunc

	Func _alertasonido()
		SoundSetWaveVolume(100)
		SoundPlay("bin\ding.wav")
	EndFunc

	Func _mostrarlobbys($listview)
		GUICtrlDelete($listview)
		$listview = GUICtrlCreateListView( "Lobby                               |  Fiabilidad |  Rondas  |  Mapa  |  Punt.  |  Jugadores  |  Estado", 10, 10, 572, 230)

		$cons_lobbys = "SELECT id,nombre,fiabilidad,mapa,maxplayers,mr,equipoa,equipob,estado FROM lobbys ORDER BY id ASC"
		_MySQL_Real_Query($MysqlConn, $cons_lobbys) ;mysql_query
		$res_lobbys = _MySQL_Store_Result($MysqlConn)
		$numlobbys = _MySQL_Num_Rows($res_lobbys) ; mysql_num_rows

		if $numlobbys <> 0 Then ;si el mysql_num_rows no es 0
			;$row = _MySQL_Fetch_Row_StringArray($res) ; mysql_fetch_array
			;_ArrayDisplay($row)
			$i = 1
			While $i <= $numlobbys
				$datos_lobbys = _MySQL_Fetch_Result_StringArray($res_lobbys) ;mysql_fetc_array 2

				$cons_players = "SELECT id FROM lobbys_players WHERE id_lobby='" & $datos_lobbys[$i][0] & "'"
				_MySQL_Real_Query($MysqlConn, $cons_players) ;mysql_query
				$res_players = _MySQL_Store_Result($MysqlConn)
				$numplayers = _MySQL_Num_Rows($res_players) ; mysql_num_rows

				;_ArrayDisplay($datos)
				$lobbyid = "#" & $datos_lobbys[$i][0] & " - " & $datos_lobbys[$i][1]
				$fiabilidad = $datos_lobbys[$i][2] & "%"
				If $datos_lobbys[$i][5] <> "Ninguno" Then
					$rondas = "MR" & $datos_lobbys[$i][5]
				Else
					$rondas = "Ninguno"
				EndIf
				$mapa = $datos_lobbys[$i][3]
				$punt = $datos_lobbys[$i][6] & "-" & $datos_lobbys[$i][7]
				$jugadores = $numplayers & "/" & $datos_lobbys[$i][4]
				$estado = $datos_lobbys[$i][8]
				GUICtrlCreateListViewItem($lobbyid & '|' & $fiabilidad & '|' & $rondas & '|' & $mapa & '|' & $punt & '|' & $jugadores & '|' & $estado, $listview)
				$i = $i + 1
			WEnd
		EndIf
	EndFunc

	Func _mixes($usuario_alias, $usuario_id, $usuario_password, $usuario_steamid)
		GUISetState(@SW_HIDE, $login)
		$lobbys = GUICreate("Lobbys", 590, 250, 192, 124)
		$listview = GUICtrlCreateListView( "Lobby                               |  Fiabilidad |  Rondas  |  Mapa  |  Punt.  |  Jugadores  |  Estado", 10, 10, 572, 230)
		GUISetOnEvent($GUI_EVENT_CLOSE, "_cerrar")
		GUISetState(@SW_SHOW)
		MantenerVenta($listview)
	EndFunc

	Func MantenerVenta($listview)
		while 1
		  if winactive("Lobbys") then
			_mostrarlobbys($listview)
		  endif
		  sleep(10000)
		Wend
	EndFunc

	; FUNCIONES DE CERRAR EL FORMULARIO
	Func _cerrar()
	  Exit
	EndFunc
Que estoy haciendo mal? siento ser tan torpe xD, es que es la segunda aplicacion que hago en autoIT.
Avatar de Usuario
Alastor
Aprendiz de Mago
Mensajes: 59
Registrado: 13 Dic 2009, 14:27
Ubicación: Zaragoza, España
Contactar:

Re: Como hacer que una funcion se ejecute cada 5 segundos

Mensaje por Alastor »

no he leido mucho lo que has puesto (ahora lo leeré con mas calma...)
pero si lo que quieres es que una funcion se ejecute cada 5 segundos...

Código: Seleccionar todo

AdlibRegister("NombreDeLaFuncion", 5000); ejecuta la funcion cada 5 segundos
Aprendiendo AutoIt y C++
MaTaXeToS
Mensajes: 22
Registrado: 02 Dic 2009, 09:36

Re: Como hacer que una funcion se ejecute cada 5 segundos

Mensaje por MaTaXeToS »

Muchas gracias, es lo que necesitaba, es que con lo del While 1, no me dejaba cerrar luego la ventana.
Responder