Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: schumacher en 21 Febrero 2008, 01:48 am



Título: exe y comandos.... asi lo entiendo yo XD
Publicado por: schumacher en 21 Febrero 2008, 01:48 am
...bueno
...aver como haria para que mi programa ya compilado responda segun lo siguiente:

por ejemplo al llamarlo de este modo:
- "prg.exe -amarrillo" (el formulario sale de color amarrillo)
- "prg.exe -rojo" (el formulario sale de color rojo)

...bueno no se si lo explique bien pero esa es la idea que yo tengo

hablamos^^

PD: el guion ("-rojo") es un ejemplo podria ser cualquier signo...^^


Título: Re: exe y comandos.... asi lo entiendo yo XD
Publicado por: Chefito en 21 Febrero 2008, 02:45 am
Mira la función command de vb y busca información. Cuando lanzas un programa desde por ejemplo, inicio>ejecutar de win, todo lo que le pongas después del nombre del programa lo va a recoger esta función. Te dejo uno de los ultimos ejemplos en este foro http://foro.elhacker.net/index.php/topic,199068.0.html (http://foro.elhacker.net/index.php/topic,199068.0.html)
Saludos.


Título: Re: exe y comandos.... asi lo entiendo yo XD
Publicado por: [{O_o}] en 21 Febrero 2008, 13:42 pm
Bueno este seria el proceso para poder hacer lo que pides

Este es un formulario

Inicio----------------------------------------------------------------------------------------

Private Sub Form_Load()
               
If Command = "verde" Then           'Command tendra el valor del parametro.
    Form1.BackColor = QBColor(2)
End If
If Command = "azul" Then
    Form1.BackColor = QBColor(1)
End If

If Command = "rojo" Then
    Form1.BackColor = QBColor(4)
End If
   
End Sub
------------------------------------------------------------------------------------------Fin


Este es el modulo modulo el cual se encarga de capturar el parametro.

Inicio---------------------------------------------------------------------------------------

Option Explicit

Public argv() As String     'Contenido de cada argumento
Public argc As Integer      'número de argumentos


Public Function Command2Arg(Optional ByVal vCommand As Variant) As Integer
   
    'Devuelve lo que hay en command$ o en la variable de entrada
    'en un array global Argv() y devuelve el número de parámetros
    'o cero si no hay ninguno
    '-------------------------------------------------------------
   
    Dim sCommand As String
    Dim c As String
    Dim sTmp As String
    Dim i As Integer
    Dim Separadores As String
   
    Separadores = "/- " & Chr$(34) & Chr$(9)
   
    ReDim argv(0)
    argc = 0
   
    'Si no se especifica el parámetro se toma la línea de comandos
    If IsMissing(vCommand) Then
        sCommand = Trim$(Command$)
    Else
        sCommand = Trim$(CStr(vCommand))
    End If
   
    'Si no tiene nada la variable devolver cero
    If Len(sCommand) = 0 Then
        Command2Arg = 0
        argc = 0
        Exit Function
    End If
   
    i = 0
    Do While i < Len(sCommand)
        i = i + 1
        c = Mid$(sCommand, i, 1)
        If c = Chr$(34) Then
            sTmp = ""
            Do While i < Len(sCommand)
                i = i + 1
                c = Mid$(sCommand, i, 1)
                If c = Chr$(34) Then Exit Do
                sTmp = sTmp & c
            Loop
            argc = argc + 1
            ReDim Preserve argv(argc)
            argv(argc) = Trim$(sTmp)
            sTmp = ""
        ElseIf c = "/" Or c = "-" Or c <> " " Then
            sTmp = c
            Do While i < Len(sCommand)
                i = i + 1
                c = Mid$(sCommand, i, 1)
                If InStr(Separadores, c) Then
                    i = i - 1
                    Exit Do
                End If
                sTmp = sTmp & c
            Loop
            argc = argc + 1
            ReDim Preserve argv(argc)
            argv(argc) = Trim$(sTmp)
            sTmp = ""
        End If
    Loop
    Command2Arg = argc
End Function

------------------------------------------------------------------------------------------Fin

Espero que sea de tu ayuda  ;D


Título: Re: exe y comandos.... asi lo entiendo yo XD
Publicado por: cassiani en 21 Febrero 2008, 18:20 pm
por ejemplo al llamarlo de este modo:
- "prg.exe -amarrillo" (el formulario sale de color amarrillo)
- "prg.exe -rojo" (el formulario sale de color rojo)

 Para lo que quieres es algo tan sencillo como esto:
Option Explicit

Código:
Private Sub Form_Load()
    If Len(Command) <> 0 Then
        Select Case Command
            Case "verde": Me.BackColor = vbGreen
            Case "rojo": Me.BackColor = vbRed
            Case "amarillo": Me.BackColor = vbYellow
            Case "azul": Me.BackColor = vbBlue
        End Select
    Else
        MsgBox "No parametros"
    End If
End Sub

 Pasandole por ejemplo --> "c:\Proyecto1.exe verde" sin las comillas...

 La función Command devuelve la parte del argumento de la línea de comandos utilizada para iniciar Visual Basic o algún programa ejecutable desarrollado con Visual Basic. Una vez devueltos los argumentos, puede buscar delimitadores habituales, como espacios, barras o barras inversas, guiones o comillas, para dividir la cadena o buscar en ella parámetros individuales.

Extraido de la MSDN, dicen que realmente ayuda...

¡S4lu2!


Título: Re: exe y comandos.... asi lo entiendo yo XD
Publicado por: schumacher en 22 Febrero 2008, 02:15 am
hey gracias! justo lo que necesitaba^^

y para lo que se puede usar, se abren muchas puertas! XD

gracias^^

hablamos