...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...^^
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.
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
Cita de: schumacher en 21 Febrero 2008, 01:48 AM
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
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!
hey gracias! justo lo que necesitaba^^
y para lo que se puede usar, se abren muchas puertas! XD
gracias^^
hablamos