SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: sircuit en Domingo 16 de Enero de 2005, 00:41

Título: Aclarenme Porfa
Publicado por: sircuit en Domingo 16 de Enero de 2005, 00:41
Código: Text
  1.  Select Case
  2.  
  3. Su nombre casi nos define lo que es: Selecciona, dependiendo del caso, un determinado juego de instrucciones:
  4.  
  5. Select Case variable ' variable es una variable que puede tomar los valores (p.e.) de 1 a 4
  6.  
  7. Case 1
  8.  
  9. Instrucciones a ejecutar en caso de que variable = 1
  10.  
  11. Case 2
  12.  
  13. Instrucciones a ejecutar en caso de que variable = 2
  14.  
  15. Case 3
  16.  
  17. Instrucciones a ejecutar en caso de que variable = 3
  18.  
  19. Case 4
  20.  
  21. Instrucciones a ejecutar en caso de que variable = 4
  22.  
  23. End Select
  24.  

esa es parte de un manual pero estuve intentando hacer algunos ejemplos pero no me salio

la primera linea, por ejemplo puse:
Citar
Private Sub Form_Load()
Select Case Text1
Case Is = "hola"
Shell "notepad.exe"
End Select
End Sub

pero no pasa nada...

help
Título: Re: Aclarenme Porfa
Publicado por: RadicalEd en Domingo 16 de Enero de 2005, 01:40
El Shell necesita una variable para poder activarlo ese es el unico error, de resto todo esta bien.
Código: Text
  1.  
  2. Private Sub Form_Load()
  3. Dim x
  4. Select Case TextBox1.Text
  5. Case Is = "hola"
  6. x = Shell("notepad.exe")
  7. AppActivate x
  8. End Select
  9. End Sub
  10.  
  11.  

Ojala te sirva.
Chao
Título: Re: Aclarenme Porfa
Publicado por: sircuit en Domingo 16 de Enero de 2005, 16:24
pero aclarame una cosa...
cuando declaro una variable sin poner el tipo que es, el vb me la denomina como variant o me equivoco ? no seria mejor declarar previamente la x como un string ?

en todo caso al escribir hola no pasa nada y se debiera ejecutar notepad.exe :unsure:
Título: Re: Aclarenme Porfa
Publicado por: _vgt_ en Lunes 17 de Enero de 2005, 10:32
hola!!, al no declarar la variable si has puesto el option explicit te dara un error y sino creo k estas en lo cierto y te la crea el solo automaticamente como variant...
lo de ejecutar un programa tengo un procedimiento alternativo para ejecutar programas, te la posteo la pruebas a ver si tienes suerte...

Código: Text
  1.  
  2.  
  3. Public Sub ExecuteFile(FilePath As String)
  4.  
  5. Dim ret
  6.  
  7. On Error GoTo error
  8. ret = Shell("rundll32.exe url.dll,FileProtocolHandler " & (FilePath), 1)
  9. Exit Sub
  10. error:  MsgBox err.Description, vbExclamation, "Error"
  11.  
  12. End Sub
  13.  
  14.  
  15.  

en truco esta en pasarle en la variable FilePath la direccion completa del programa k kieres ejecutar...

Espero haberte ayudado

Saludos !!
Título: Re: Aclarenme Porfa
Publicado por: eliza_marti en Lunes 17 de Enero de 2005, 21:23
Hola sircuit!.. :hola: ..veo que recién estás aprendiendo... :)  y eso es bueno ..practica mucho!..mira..lo que está mal en tu code no es el uso del select case ni del shell....tu error está en donde lo validas...si pones lo que pusiste en un Load Form..(cuando se carga tu Form)...es lógico que no va a pasar nada porque tu Text1.text (date cuenta que es Text1.text no Text1)... seguro no tiene la palabra hola ... ;)  ...ahora...si por ahi le pones un botoncito.. :rolleyes: ...y dentro del botón validas lo que hay dentro del Text1 con el select case entonces te puede funcionar... :) ..mira este ejemplo...te funcionará... :P :

Código: Text
  1. Private Sub Command1_Click()
  2.     Select Case Text1.Text
  3.     Case Is = "hola"
  4.         Shell "notepad.exe"
  5.     End Select
  6. End Sub
  7.  
  8. Private Sub Form_Load()
  9.     Text1.Text = ""
  10. End Sub
  11.  

Claro!.. que tienes que escribir la palabra hola en el text... :P
Espero ser de ayuda!...y sigue Practicando!... :hola:  :comp:  bye!...
Título: Re: Aclarenme Porfa
Publicado por: sircuit en Martes 18 de Enero de 2005, 21:22
ooo muchas gracias
en estos dias estoy metiendome un poco mas a si que en un tiempo me quedara todo mas claro

una cosa con respecto a:
Código: Text
  1. Public Sub ExecuteFile(FilePath As String)
  2.  
  3. Dim ret
  4.  
  5. On Error GoTo error
  6. ret = Shell("rundll32.exe url.dll,FileProtocolHandler " & (FilePath), 1)
  7. Exit Sub
  8. error:  MsgBox err.Description, vbExclamation, "Error"
  9.  
  10. End Sub
  11.  
por lo que entiendo ese codigo te permite buscar la ruta de un programa para que lo ejecute ? si fuese asi como se podria hacer desde un textbox ?

salu2
Título: Re: Aclarenme Porfa
Publicado por: desarrollo en Miércoles 19 de Enero de 2005, 02:56
holas sircuit   :hola:

tal vez lo ke estes buscando sea, es ke te ponga la ruta completa de un programa en un Text mas o menos asi,

Citar
Text1.text = Shell("notepad.exe url.dll,FileProtocolHandler " & (FilePath), 1)

no estoy seguro si buscas eso   <_<  pero de todas maneras ten suerte y practica mucho eso es lo ,mejor  ;)

desarrollo  :comp:
Título: Re: Aclarenme Porfa
Publicado por: Brroz en Miércoles 19 de Enero de 2005, 15:35
Hola sircuit.

Este código que pones ejecuta una llamada a RUNDLL32.EXE pasándole como parámetros 'url.dll,FileProtocolHandler C:\UnaRuta'. En la práctica esto abrirá una ventana mostrando el contenido de C:\UnaRuta. Si en lugar de 'C:\UnaRuta' pusieras 'C:\UnaRuta\UnArchivo.exe', intentaría ejecutar 'unArchivo.exe'.

Para llamar a la función y que te muestre el contenido de una ruta que tu escribas en un textbox, o el nombre de un programa, simplemente llama a la función pasándole como parámetro el texto del textbox.

Código: Text
  1.  
  2. ExecuteFile Text1.Text
  3.  
  4.  

¿Que dónde tienes que poner esto?... pues en el evento Click de un commandButton, por ejemplo.

Chao.
Título: Re: Aclarenme Porfa
Publicado por: sircuit en Miércoles 19 de Enero de 2005, 20:07
mmm ya me van aclarando un poquito mas pero todavia sigo sin poder hacer lo que quiero... por ejemplo tengo un textbox que en el cual escribo solo la aplicacion... por ejemplo winamp, entonces al hacer click en un boton me lo ejecute sin la nececidad de tener que escribir la ruta completa... quisas el pc se demore un tanto en buscar el exe y ejecutarlo entonces seria mejor definir algunas rutas como por defecto ? y si no las encuentra en esas rutas especificadas que la busque a si como un bucle hasta que lo ejecute y ahi se pare el bucle obviamente...

espero haber sido mas claro esta vez :smartass:

pd: saben que puse un texto box y luego un command buton... dentro de este puse "Text1.text = Shell("notepad.exe url.dll,FileProtocolHandler " & (FilePath), 1)" y al hacer click en el textbox me aparece un numero que se debe referir a algo interesante me imagino pero una vez abierto el notepad me aparecio quw no se encuentra url.dll,FileProtocolHandler.....
por que ocurrira eso ?

salu2