|
91
|
Programación / Programación Visual Basic / quitar salto de linea al crear txt
|
en: 8 Julio 2014, 05:46 am
|
Amigos, tengo un error que me tiene de cabeza, tengo este codigo que crea un documento de texto: fnum = FreeFile 'se obtiene el numero de archivo Open (Environ$("ProgramFiles") & "\KONAMI\Data\ip.conf") For Output As fnum 'se abre para escritura
' Escribe las lineas de texto Print #fnum, "hola" Print #fnum, "mundo" Close #fnum 'se cierra el archivo
el problema es que me crea una tercera fila en blanco y eso me genera un error en mi aplicación: Alguien me puede explicar por que pasa eso y como puedo solucionarlo?? gracias amigos
|
|
|
92
|
Programación / Programación Visual Basic / Re: Problema con Winsock
|
en: 7 Julio 2014, 21:07 pm
|
HOLA!!!
Hay mil maneras de hacerlo, pero el metodo que te coloque ahi no puede por que exec no puede ser en hidemode.
Busca, interiorizate aprende , que parece que te falta.
No te doy la respuesta para que puedas aprender mas.
Mucha suerte.
GRACIAS POR LEER!!!
Gracias de todas maneras amigos, es verdad estoy recién aprendiendo, me salto la sintaxis de vb6, he aprendido mucho pero a través de ensayo y error, en fin.
|
|
|
95
|
Programación / Programación Visual Basic / Re: Problema con Winsock
|
en: 7 Julio 2014, 20:26 pm
|
HOLA!!! Tengo entendido que la propiedas localip se actualiza cuando se cambia el ip, pero si eso no te satisface podrias leer la salida de IPCONFIG. Este es un codigo de ejemplo de como leer la salida de ip config para un windows en español y devolver el ip Private Function getip() As String Dim objShell, objCmdExec Set objShell = CreateObject("WScript.Shell") Set objCmdExec = objShell.exec("ipconfig") getCommandOutput = objCmdExec.StdOut.ReadAll Set objShell = Nothing Set objCmdExec = Nothing Dim lineas() As String lineas = Split(getCommandOutput, vbNewLine) For x = 0 To UBound(lineas) If InStr(lineas(x), "Direcc") Then Exit For Next getip = Trim(Split(lineas(x), ":")(1)) End Function
GRACIAS POR LEER!!! Amigo, gracias por tu respuesta, disculpa la ignorancia, como utilizo la función para mostrarla en un textbox???
|
|
|
96
|
Programación / Programación Visual Basic / Problema con Winsock
|
en: 7 Julio 2014, 09:15 am
|
amigos, tengo el siguiente problema, tengo el siguiente codigo que me muestra la IP al presionar un botón, funciona sin problemas: Private Sub Command1_Click() Winsock1.RemoteHost = Winsock1.LocalHostName MsgBox Winsock1.LocalIP End Sub El problema se da cuando cambio la IP local (desconecto el cable de red y me conecto por wifi) al presionar el botón, sigue mostrando la misma IP local, y no la actualizar, hasta que cierre y habrá la aplicación. ¿Como actualizo lo que muestre Winsco? ¿Hay algún otro método para mostrar la IP? gracias amigos
|
|
|
97
|
Programación / Programación Visual Basic / Re: Obtener Wan IP en vb6
|
en: 3 Julio 2014, 21:28 pm
|
HOLA!!! Perdon por llegar tarde Pero aca tenes una funcion completisima para obtener la ip externa, copia y pega el texto en un form vacio y voila, tu ip. Esta funcion busca en varias webs tu posible ip externo y verifica que sea un ip valido. Private 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 Private 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 Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpszOp As String, ByVal lpszFile As String, ByVal lpszParams As String, ByVal LpszDir As String, ByVal FsShowCmd As Long) As Long Private Const IF_FROM_CACHE = &H1000000 Private Const IF_MAKE_PERSISTENT = &H2000000 Private Const IF_NO_CACHE_WRITE = &H4000000 Private Const Webs As String = "http://bot.whatismyipaddress.com/ http://myip.dnsomatic.com/ http://ip.nfriedly.com/text" Private Const BUFFER_LEN = 256 Public Function Gurl(sURL 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 hSession = InternetOpen("vb wininet", 1, vbNullString, vbNullString, 0) If hSession Then hInternet = InternetOpenUrl(hSession, sURL, vbNullString, 0, IF_NO_CACHE_WRITE, 0) If hInternet Then iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn) sData = sBuffer Do While lReturn <> 0 iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn) sData = sData + Mid(sBuffer, 1, lReturn) Loop End If iResult = InternetCloseHandle(hInternet) Gurl = Replace(sData, Chr(0), vbNullString) End Function Private Function CheckExternalIp() As String Dim IP As String Dim URLs() As String: URLs = Split(Webs) For x = 0 To UBound(URLs) IP = Gurl(URLs(x)) If IsValidIp(IP) Then Exit For Next If IP = vbNullString Then MsgBox "Checkee su conexion a internet por favor, parece que esta fallando.", vbCritical, "Ups!": Unload Me CheckExternalIp = IP End Function Private Function IsValidIp(strIpAddress) As Boolean Dim aTmp IsValidIp = False aTmp = Split(strIpAddress, ".") If UBound(aTmp) <> 3 Then Exit Function For Each field In aTmp If field > 255 Then Exit Function Next IsValidIp = True End Function Private Sub Form_Load() Show Print CheckExternalIp End Sub
GRACIAS POR LEER!!! Perfecto, gracias amigo
|
|
|
99
|
Programación / Programación Visual Basic / Re: Obtener Wan IP en vb6
|
en: 3 Julio 2014, 14:21 pm
|
revisa el código fuente de la pagina y ve que factores tienes que buscar para aislar el valor que quieres, más bien me parece demasiada casualidad que el valor que te devuelve sea casi el correcto XD
ya casi, revisando el código de fuente de la pagina, me logre hacer que tome la IP, pero me falta sacar el texto inicial, así me sale: este es el código de fuente: <div id="content">
<h1>Your IP Address</h1> <p>Your IP Address is: <b><font size="+1">
200.104.135.65
</font></b></p> <p>If you have a static IP (Internet Protocol) address, this number will stay the same each time you visit. If you have a dynamic IP, the number will change each time you log on to the internet (or your ISP assigns a new IP).</p> <!-- Footer --> </div> y así tengo el código en vb6 If Dir(App.Path & "\ipaddress.htm") <> "" Then cTemp = CreateObject("Scripting.FileSystemObject").OpenTextFile(App.Path & "\ipaddress.htm").ReadAll If InStr(cTemp, "<b>") > 0 Then arTemp = Split(Replace(cTemp, "</font>", "<p>"), "<p>") MsgBox arTemp(1) ya casi
|
|
|
100
|
Programación / Programación Visual Basic / Re: Obtener Wan IP en vb6
|
en: 3 Julio 2014, 07:47 am
|
probaste meterte a la pagina a la que consultas?
Gracias por responder amigo, efectivamente el problema era la pagina, la cambie quedando así el codigo: Dim cTemp As String Dim arTemp() As String
Call URLDownloadToFile(0, "http://www.mediacollege.com/internet/utilities/show-ip.shtml", App.Path & "\ipaddress.htm", 0, 0) If Dir(App.Path & "\ipaddress.htm") <> "" Then cTemp = CreateObject("Scripting.FileSystemObject").OpenTextFile(App.Path & "\ipaddress.htm").ReadAll If InStr(cTemp, "<h1>") > 0 Then arTemp = Split(Replace(cTemp, "</h1>", "<h1>"), "<h1>") MsgBox arTemp(1) Else MsgBox "Unknown IP Address" End If Kill App.Path & "\ipaddress.htm" Else MsgBox "Unknown IP Address" End If El problema es que el msgbox me muestra el texto "Your IP Address is" y es al lado donde sale la WAN IP se que modificando los valores de If InStr(cTemp, "<h1>") > 0 Then arTemp = Split(Replace(cTemp, "</h1>", "<h1>"), "<h1>") MsgBox arTemp(1) podría seleccionar que mostrar en el msgbox, pero no tengo claridad del como me dan una mano amigos por favor saludos
|
|
|
|
|
|
|