| 
	
		|  Autor | Tema: Actualizar campos en pagina web desde un programa de visual basic  (Leído 17,368 veces) |  
	| 
			| 
					
						| JOSE-CAMPOS 
								
								 Desconectado 
								Mensajes: 16
								
								
								
								
								
								   | 
 
Saludos he hecho algunos trabajos con electrónica para medir valores de sensores de temperatura, nivel, presion etc y los puedo ver en mi PC en tiempo real cada vez que cambia el valor de la lectura en el sensor cambia en la pantalla de la PC, y ahora lo que quiero y necesito es poder hacer una pagina web donde pueda mostrar esos mismos valores en tiempo real y que cuando se actualice el programa en visual, tenga la posibilidad de actualizar la pagina web tambien en tiempo real, solo necesito la forma de hacerlo ya que tengo un poco de conocimiento en VB6 y un poquito en HTML, espero haberme explicado bien, espero su ayuda, mil gracias 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 La accion mas cercana a la grandeza es la humildad |  |  |  | 
			| 
					
						| BlackM4ster 
								 
								
								 Desconectado 
								Mensajes: 499
								
								 
								Error, el teclado no funciona. Pulse F1 para continuar
								
								
								
								
								
								     | 
 
Hola Jose espero poder ayudarte, si no sabes php, es jodido pero te paso un ejemplo: Creamos un archivo .PHP que cuando le pasemos los valores los guarda en algun sitio (una base de datos no que sino te complicas jaja) puedes coger este Php de un ejemplo de Cookie Stealer: recogerdatos.php <?
 $fecha=time();
 $dato1 = $_GET['dato1'];
 $dato2 = $_GET['dato2'];
 
 $fff = fopen("temperaturas.txt","a"); //no es a+ porque queremos que se actualicen
 
 $salida = "<br><table width='449' border='1' cellpadding='2' cellspacing='1' bordercolor='#000000' bgcolor='#FFFFFF'>
 <tr>
 <td width='137' rowspan='3'><div align='center'>$fecha</div></td>
 </tr>
 <tr>
 <td><div align='center'>$dato1</div></td>
 </tr>
 <tr>
 <td><div align='center'>$dato2</div></td>
 </tr>
 </table>";
 
 fwrite($fff, $salida);
 fclose($fff);
 
 echo "<script>location.href='www.google.es';</script>"; //Nos lleva a Google
 ?>
Desde tu programa, tendrás que acceder a la página web de la siguiente manera: http://www.tupagina.com/recogerdatos.php?dato1=30&dato2=233Puedes meter tantos datos como quieras. En vb6: Option ExplicitPublic Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
 Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal sURL As String, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
 Public Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
 Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
 
 Public Const IF_FROM_CACHE = &H1000000
 Public Const IF_MAKE_PERSISTENT = &H2000000
 Public Const IF_NO_CACHE_WRITE = &H4000000
 
 Private Const BUFFER_LEN = 256
 
 
 Public Function ActualizarDatos(dato1 As String, dato2 as string) as string
 Dim sBuffer As String * BUFFER_LEN, iResult As Integer, sData As String
 Dim hInternet As Long, hSession As Long, lReturn As Long
 
 'get the handle of the current internet connection
 hSession = InternetOpen("vb wininet", 1, vbNullString, vbNullString, 0)
 'get the handle of the url
 
 dim sURL as string
 sURL = "http://www.tupagina.com/recogerdatos.php?dato1="&dato1&"&dato2="&dato2
 
 If hSession Then hInternet = InternetOpenUrl(hSession, sURL, vbNullString, 0, IF_NO_CACHE_WRITE, 0)
 'if we have the handle, then start reading the web page
 If hInternet Then
 'get the first chunk & buffer it.
 iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
 sData = sBuffer
 'if there's more data then keep reading it into the buffer
 Do While lReturn <> 0
 iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
 sData = sData + Mid(sBuffer, 1, lReturn)
 Loop
 End If
 
 'close the URL
 GetUrlSource = sData
 End Function
y en cualquier parte de tu código: ActualizarDatos(500,36) //Por ejemploCon esto, la pagina guardará los últimos datos que le pases en el archivo de texto, que puede ser leido en otro php (iframe por ejemplo) asi: <?phpreadfile ("http://www.tupagina.com/temperaturas.txt")
 ?>
Espero haberte ayudado   
 
 |  
						| 
								|  |  
								| « Última modificación:  6 Abril 2013, 10:40 am por Black Master » |  En línea | 
 
 |  |  |  | 
			| 
					
						| JOSE-CAMPOS 
								
								 Desconectado 
								Mensajes: 16
								
								
								
								
								
								   | 
 
Saludos Black Master, estoy muy agradecido veo que eres bueno en esto y ademas debo confesar que me sorprende la voluntad de ayudar que tienes y las molestias que te tomaste al hacerlo, como dijiste si no se PHP, me sera cuesta arriba, sin embargo solo necesito saber como actualizar algunos campos en una pagina web, voy hacer honesto, no entendí mucho de lo que me enviaste pero ya mismo me pongo a meterle el pecho para familiarizarme y poder resolver lo que necesito, mil gracias nuevamente y estoy casi seguro que seguiré preguntándote al respecto, Saludos PD: te iba a enviar una imagen pero no supe hacerlo por aca 
 Amigo Master, hice todo tal cual me indicas y no me corre, el archivo php lo subie a http://www.jose-campos.com/prueba/recogerdatos.php  pero al ejecutarlo en la web aparece en blanco pense dentro de mi ignorancia que apareceria  dos label con sus valores, obviamente hice algo o todo mal. el formulario en visual debe llevar un control especial? algun boton? etc? mil gracias de antemano |  
						| 
								|  |  
								| « Última modificación: 10 Abril 2013, 03:42 am por simorg » |  En línea | 
 
 La accion mas cercana a la grandeza es la humildad |  |  |  | 
			| 
					
						| BlackM4ster 
								 
								
								 Desconectado 
								Mensajes: 499
								
								 
								Error, el teclado no funciona. Pulse F1 para continuar
								
								
								
								
								
								     | 
 
A ver, vamos por pasos    Las imagenes las puedes mandar subiendolas a http://imageshack.us  por ejemplo y poniendo el enlace El archivo que has subido no sirve, el codigo está mal puesto (cuando esté bien puesto, debería redirigirte a Google) No quites la linea  echo "<script>location.href='www.google.es';</script>"; //Nos lleva a Google que esa linea nos sirve para comprobar que el resto del código se ha ejecutado. Al principio he pensado que tu servidor web no soportaba PHP pero luego, he visto que algún momento te funcionó y no te diste cuenta, cambiaste algo, y adiós    : http://www.jose-campos.com/prueba/temperaturas.txtFijate que, aunque no le pusiste datos (.php?dato1=aosdnks&dato2=sdasd ) al final de la url, la tabla si que te la guardó y eso es buena señal. Te recomiendo que borres el codigo fuente entero de ese archivo, pongas el mio exactamente igual, accedas a tu url pasandole valores http://www.jose-campos.com/prueba/recogerdatos.php?dato1=aosdnks&dato2=sdasd y consultes el archivo http://www.jose-campos.com/prueba/temperaturas.txt Te falta por crear un archivo más, ver.php  que sirve para ver las temperaturas <?phpreadfile ("http://www.jose-campos.com/prueba/temperaturas.txt")
 ?>
Cuando hagas esto, avísame y miro a ver si funciona que entre semana tengo clases y no puedo estar en el ordenador |  
						| 
								|  |  
								| « Última modificación:  7 Abril 2013, 10:43 am por Black Master » |  En línea | 
 
 |  |  |  | 
			| 
					
						| JOSE-CAMPOS 
								
								 Desconectado 
								Mensajes: 16
								
								
								
								
								
								   | 
 
Saludos Master y gracias nuevamente: ahora si va bien el código php, solo tuve que poner http:// antes de el link de google y en la linea 1 php despues del ?,  sin embargo pero aun no puedo actualizar los datos desde VB6 obviamente algo hice mal, lo hice de la siguiente manera en un modulo puse esta parte Option Explicit Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal sURL As String, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long Public Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer Public Const IF_FROM_CACHE = &H1000000 Public Const IF_MAKE_PERSISTENT = &H2000000 Public Const IF_NO_CACHE_WRITE = &H4000000      Private Const BUFFER_LEN = 256 EN EL CODIGO DEL FORMULARIO COLOQUE ESTO Public Function ActualizarDatos(dato1 As String, dato2 As String) As String     Dim sBuffer As String * BUFFER_LEN, iResult As Integer, sData As String     Dim hInternet As Long, hSession As Long, lReturn As Long     'get the handle of the current internet connection     hSession = InternetOpen("vb wininet", 1, vbNullString, vbNullString, 0)     'get the handle of the url     Dim sURL As String       sURL = "http://www.jose-campos.com/prueba/recogerdatos.php?dato1=50&dato2=98"     If hSession Then hInternet = InternetOpenUrl(hSession, sURL, vbNullString, 0, IF_NO_CACHE_WRITE, 0)     'if we have the handle, then start reading the web page     If hInternet Then         'get the first chunk & buffer it.         iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)         sData = sBuffer         'if there's more data then keep reading it into the buffer         Do While lReturn <> 0             iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)             sData = sData + Mid(sBuffer, 1, lReturn)         Loop     End If      'close the URL     GetUrlSource = sData End Function ActualizarDatos = (500)  '''''OJO solo me corrio asi... porque de esta forma  no me funkaba ActualizarDatos (500,36) otra pregunta esa numeracion que se genera en la parte central de la tabla en ver.php a que se refiere? mil gracias y de ti quedo atento  |  
						| 
								|  |  
								|  |  En línea | 
 
 La accion mas cercana a la grandeza es la humildad |  |  |  | 
			| 
					
						| BlackM4ster 
								 
								
								 Desconectado 
								Mensajes: 499
								
								 
								Error, el teclado no funciona. Pulse F1 para continuar
								
								
								
								
								
								     | 
 
jose, estoy conectado asi que no te vayas |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| JOSE-CAMPOS 
								
								 Desconectado 
								Mensajes: 16
								
								
								
								
								
								   | 
 
ok aca estare |  
						| 
								|  |  
								|  |  En línea | 
 
 La accion mas cercana a la grandeza es la humildad |  |  |  | 
			| 
					
						| BlackM4ster 
								 
								
								 Desconectado 
								Mensajes: 499
								
								 
								Error, el teclado no funciona. Pulse F1 para continuar
								
								
								
								
								
								     | 
 
Pon exactamente esta funcion: Public Function ActualizarDatos(dato1 As String, dato2 as string) as stringDim sBuffer As String * BUFFER_LEN, iResult As Integer, sData As String
 Dim hInternet As Long, hSession As Long, lReturn As Long
 
 'get the handle of the current internet connection
 hSession = InternetOpen("vb wininet", 1, vbNullString, vbNullString, 0)
 'get the handle of the url
 
 dim sURL as string
 sURL = "http://www.jose-campos.com/prueba/recogerdatos.php?dato1="&dato1&"&dato2="&dato2
 
 If hSession Then hInternet = InternetOpenUrl(hSession, sURL, vbNullString, 0, IF_NO_CACHE_WRITE, 0)
 'if we have the handle, then start reading the web page
 If hInternet Then
 'get the first chunk & buffer it.
 iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
 sData = sBuffer
 'if there's more data then keep reading it into the buffer
 Do While lReturn <> 0
 iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
 sData = sData + Mid(sBuffer, 1, lReturn)
 Loop
 End If
 
 'close the URL
 GetUrlSource = sData
 End Function
y la llamas asi: ActualizarDatos("500º","60º") |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| JOSE-CAMPOS 
								
								 Desconectado 
								Mensajes: 16
								
								
								
								
								
								   | 
 
en que parte coloco esta linea?
 ActualizarDatos("500º","60º")
 
 Me disculpo por mi ignoracia
 |  
						| 
								|  |  
								|  |  En línea | 
 
 La accion mas cercana a la grandeza es la humildad |  |  |  | 
			| 
					
						| BlackM4ster 
								 
								
								 Desconectado 
								Mensajes: 499
								
								 
								Error, el teclado no funciona. Pulse F1 para continuar
								
								
								
								
								
								     | 
 
pues cuando obtengas los datos, despues |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Correo desde Visual Basic????
							« 1 2 3 » Programación Visual Basic
 | CeLaYa | 20 | 31,045 |  23 Abril 2008, 22:05 pm por Pox1
 |  
						|   |   | enviar datos de visual basic a una pagina web
							« 1 2 3 » Programación Visual Basic
 | TheWarrior | 23 | 30,464 |  20 Septiembre 2010, 06:42 am por Carloswaldo
 |  
						|   |   | creador de .exe desde visual basic Programación Visual Basic
 | darksystem | 4 | 3,012 |  12 Mayo 2008, 04:22 am por HaDeS, -
 |  
						|   |   | Compilar desde visual basic programa para pda o palm. Programación Visual Basic
 | El-Jedi | 4 | 4,508 |  9 Mayo 2010, 05:00 am por seba123neo
 |  
						|   |   | Cambiar una página por otra Visual Basic .NET (C#, VB.NET, ASP)
 | Adrylek | 3 | 2,991 |  10 Agosto 2013, 22:55 pm por Eleкtro
 |    |