dijous, 26 d’abril del 2012

Arguments de línia de comanda (passar paràmetres) al executar un programa fet en VB6

Ja fa uns dies que em vaig trobar amb la necessitat de poder accedir a diferents servidors sql des d’un mateix executable, depenent de l’accés directe que tenia a l’escriptori. Vull dir, que a l’escriptori tenia dos accessos directes a un EXE, des d’un havia d’atacar al servidor sql “ServidorAAA” i des de l’altre al servidor “ServidorBBB”. Vaig pensar que una bona manera de fer-ho seria mitjançant el pas de paràmetres a l’executable. Avui ho he estat mirant, no recordava si es podia fer o no amb VB6, i al final m’he posat a investigar.

La manera de fer-ho es ben senzilla, tan sols cal accedir al valor de la variable “Command”. Si te un valor, és que s’han passat paràmetres, si no té cap valor llavors vol dir que no s’ha passat cap paràmetre. En el meu cas aquest codi serviria:

If Command = "" Then
    Server = PosarElServidorQueEsVulgui
Else
    Server = Command
End If

Llavors tan sols cal modificar els destins dels dos accessos directes:

Destí accés directe: "C:\AppDir\AppName.exe" ServidorAAA

Destí accés directe: "C:\AppDir\AppName.exe" ServidorBBB

El meu cas és molt senzill, tan sols passo com paràmetre el nom del servidor. El problema ve quan volem passar diferents paràmetres. Doncs bé, el sistema és el mateix, la diferència és que cal tractar la variable “Command” separant els paràmetres. Per exemple, suposant que volem dos paràmetres separats per una coma (“6,9”) es podria aplicar el següent codi:

Dim separador, a, b As Integer

separador = InStr(1, Command,",", vbTextCompare)
a = Mid(Command, 1, separador - 1)
b = Mid(Command, separador + 1)
MsgBox "Primer paràmetre: " & a & “ Segon paràmetre: " & b

Si necessitem més paràmetres encara, el procés seria també el mateix, separar-los per comes (a,b,c,d,e) i llavors com que Command=”a,b,c,d,e” , caldria separar els paràmetres amb un split. En aquests cassos, però,  és millor aprofitar el codi fet dels mestres :-)

http://www.elguille.info/vb/utilidades/LineaComandos_2.htm

Una última cosa, per tal de fer proves, podeu posar els paràmetres d’entrada a la carpeta “generar” de les propietats del projecte:

image

Cap comentari:

Publica un comentari a l'entrada