Otra Pregunta Tonta

Iniciado por Thaorius, 15 Julio 2005, 20:32 PM

0 Miembros y 1 Visitante están viendo este tema.

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
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

Slasher-K

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.



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
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

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
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

xavierote

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.

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.
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

{_The_Alwar_}

#6
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

Thaorius

al Probarlo, sale esto:


0



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?
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

{_The_Alwar_}

a mi me funciono lo que pusieron

Thaorius

Ezactamente como lo estas usando?
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí