Autor
|
Tema: Otra Pregunta Tonta (Leído 3,813 veces)
|
Thaorius
|
Hola gente. Resulta que co mi troyano, me surgio otra duda. Para conectarse con el servidor, yo tipeo le comando connect y me pide los datos. Pero a mi me gustaria poder conectarme escribiendo: connect -port 8865 -ip 231.62.135.21 -password 123 Mi duda, es que yo no se como hacer para que identifique lo que esta seguid de -port y lo ponga como puerto remoto del winsock. l omism ocon password e ip.
Me pueden ayudar?.
Saludos
|
|
|
En línea
|
|
|
|
Slasher-K
Desconectado
Mensajes: 1.477
|
Utiliza las funciones InStr, Mid y Val para obtener los parámetros. Por ej: Sub ParseParam(ParamSpec As String) Dim iFirstPos%, iLastPos% Dim iPort%, sIp$, sPass$
iFirstPos = InStr(1, ParamSpec, "-port", vbTextCompare)
If iFirstPos Then '5 = Len("-port") ' iPort = Val(Mid$(ParamSpec, iFirstPos + 5)) End If
iFirstPos = InStr(1, ParamSpec, "-ip", vbTextCompare)
If iFirstPos Then iLastPos = InStr(iFirstPos + 4, ParamSpec, " ")
If iLastPos Then '3 = Len("-ip") ' sIp = Mid$(ParamSpec, iFirstPos + 3, iLastPos - iFirstPos - 3) Else 'Por si es el último parámetro que se especifica. ' sIp = Mid$(ParamSpec, iFirstPos + 3) End If End If
iFirstPos = InStr(1, ParamSpec, "-password", vbTextCompare)
If iFirstPos Then iLastPos = InStr(iFirstPos + 10, ParamSpec, " ")
If iLastPos Then '9 = Len("-password") ' sPass$ = Mid$(ParamSpec, iFirstPos + 9, iLastPos - iFirstPos - 9) Else 'Por si es el último parámetro que se especifica. ' sPass$ = Mid$(ParamSpec, iFirstPos + 9) End If End If End Sub
Y la próxima vez que postees algo ponele un título adecuado. Saludos.
|
|
|
En línea
|
A la reina de las profundidades que cuida los pasos de una sombra en la noche :*
|
|
|
Thaorius
|
La verdad al leer el code me quede en el sub... xD.
No viene la caso, ahora lo pruebo y te cuento.
Respecto a lo del titulo no hay drama.
Saludos
|
|
|
En línea
|
|
|
|
Thaorius
|
Bueno, lo probe y funciona a medias. Cuando quiero recuperar la informacion de la funcion, so logro que muestre el parametro password. Este es el codigo que tengo. Sub ParseParam(ParamSpec As String) Dim iFirstPos%, iLastPos% Dim iPort%, sIp$, sPass$
iFirstPos = InStr(1, ParamSpec, "-port", vbTextCompare)
If iFirstPos Then '5 = Len("-port") ' iPort = Val(Mid$(ParamSpec, iFirstPos + 5)) frmClientMain.txtLog.Text = iPort End If
iFirstPos = InStr(1, ParamSpec, "-ip", vbTextCompare)
If iFirstPos Then iLastPos = InStr(iFirstPos + 4, ParamSpec, " ")
If iLastPos Then '3 = Len("-ip") ' sIp = Mid$(ParamSpec, iFirstPos + 3, iLastPos - iFirstPos - 3) frmClientMain.txtLog.Text = sIp Else 'Por si es el último parámetro que se especifica. ' sIp = Mid$(ParamSpec, iFirstPos + 3) frmClientMain.txtLog.Text = sIp End If End If
iFirstPos = InStr(1, ParamSpec, "-password", vbTextCompare)
If iFirstPos Then iLastPos = InStr(iFirstPos + 10, ParamSpec, " ")
If iLastPos Then '9 = Len("-password") ' sPass$ = Mid$(ParamSpec, iFirstPos + 9, iLastPos - iFirstPos - 9) frmClientMain.txtLog.Text = sPass$ Else 'Por si es el último parámetro que se especifica. ' sPass$ = Mid$(ParamSpec, iFirstPos + 9) frmClientMain.txtLog.Text = sPass$ End If End If End Sub Private Sub Command1_Click() Dim command As String command = txtCommand.Text Call ParseParam(command) frmClientMain.txtLog.Text = frmClientMain.txtLog.Text & "Command> " & command & vbCrLf & sPass$ End Sub
Private Sub Form_Activate() txtCommand.SetFocus End Sub
Teens idea de que esta mal? Saludos
|
|
|
En línea
|
|
|
|
xavierote
Desconectado
Mensajes: 134
|
Simplemente declara las variables iPort%, sIp$, sPass$ como globales. Si tienes visual basic 6, puedes hacerlo también de esta manera: Option Explicit
'Variables globales Dim sIp As String Dim sPuerto As Integer Dim sPassword As String
Private Sub Command1_Click() Dim Comando() As String Dim i As Integer Comando = Split(Text1.Text, " ")
For i = 0 To UBound(Comando) Select Case LCase(Comando(i)) Case "-ip" sIp = Comando(i + 1) Case "-port" sPuerto = Comando(i + 1) Case "-password" sPassword = Comando(i + 1) End Select Next i
Text1.Text = sIp & vbCrLf & sPuerto & vbCrLf & sPassword End Sub
Mas que nada, si tienes una versión inferior del Visual Basic 6, el comando "split()" no está, por tanto te toca hacerlo por método de búsqueda con el InStr y Mid como bien dijo Anhur. Un Saludo.
|
|
|
En línea
|
|
|
|
Thaorius
|
Tengo el vb6. Ahora mismo estoy en un cyber porque un pariente esta en mi pc. En un rato cuando se valla preubo tu codigo y te cuento.
Saludos.
|
|
|
En línea
|
|
|
|
{_The_Alwar_}
Desconectado
Mensajes: 711
Who dares win
|
jooder!!! cuanto tiempo llevo buscando esto!!! que wapo!
Oye sabriais como hacer para que si yo pongo en un text box msgbox "blabla" se ejecute eso como si yo lo hubiera escrito en el codigo???
Gracias
|
|
« Última modificación: 16 Julio 2005, 17:22 pm por alwar »
|
En línea
|
|
|
|
Thaorius
|
al Probarlo, sale esto: Estoy usando este comando: connect -port 3265 -ip 65.26.156.152 -password 32hgh Y el code haci: 'Variables globales Dim sIp As String Dim sPuerto As Integer Dim sPassword As String
Private Sub Command1_Click() Dim Comando() As String Dim i As Integer Comando = Split(txtLog.Text, " ")
For i = 0 To UBound(Comando) Select Case LCase(Comando(i)) Case "-ip" sIp = Comando(i + 1) Case "-port" sPuerto = Comando(i + 1) Case "-password" sPassword = Comando(i + 1) End Select Next i
txtLog.Text = sIp & vbCrLf & sPuerto & vbCrLf & sPassword End Sub Private Sub Form_Activate() txtCommand.SetFocus End Sub
Que puede ser?
|
|
|
En línea
|
|
|
|
{_The_Alwar_}
Desconectado
Mensajes: 711
Who dares win
|
a mi me funciono lo que pusieron
|
|
|
En línea
|
|
|
|
Thaorius
|
Ezactamente como lo estas usando?
|
|
|
En línea
|
|
|
|
|
|