elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Dificl de explicar, Estoy Muy Confundido
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dificl de explicar, Estoy Muy Confundido  (Leído 2,106 veces)
Neoow

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Dificl de explicar, Estoy Muy Confundido
« en: 24 Noviembre 2006, 20:41 pm »

Hola , Estoy haciendo una aplicacion que va a Abrir un programa desde mi aplicacion con un codigo especificado este es mi codigo por mientras

Private Sub Command1_Click()
Dim A
Dim MyPath

MyPath = "C:\Arhivos de Programa\Aplicacion\Aplicacion.exe

A = Shell(MyPath, vbNormalFocus)
Unload Me
End Sub

Todo funciona bien pero Lo malo es que algunas personas no guardan el programa que quiero abrir aki.
 C:\Arhivos de Programa\Aplicacion\Aplicacion.exe

Por Eso quiero hacer  otro Form que tiene un boton Browse y un text box y tambien que tenga un Checkbox.

El Boton Browse: Va a Abrir un Open file para que el user seleccione el .exe

El Textbox : Hay quiero la direccion del programa que el user selecciono en el boton Browser.

Checkbox : Hay Quiero que si el user quiere  guardar la a direccion del programa que el user selecciono en el boton Browser que estaba en el textbox.

Boton1 : Es el boton que va a aceptar y va abrir el programa que va a abrir la aplicacion.

Boton 2 : Cancelar
Por mientras este es mi codigo.

     Option Explicit

       Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
         "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

       Private Type OPENFILENAME
         lStructSize As Long
         hwndOwner As Long
         hInstance As Long
         lpstrFilter As String
         lpstrCustomFilter As String
         nMaxCustFilter As Long
         nFilterIndex As Long
         lpstrFile As String
         nMaxFile As Long
         lpstrFileTitle As String
         nMaxFileTitle As Long
         lpstrInitialDir As String
         lpstrTitle As String
         flags As Long
         nFileOffset As Integer
         nFileExtension As Integer
         lpstrDefExt As String
         lCustData As Long
         lpfnHook As Long
         lpTemplateName As String
       End Type


       Private Sub Command1_Click()
         Dim OpenFile As OPENFILENAME
         Dim lReturn As Long
         Dim sFilter As String
         OpenFile.lStructSize = Len(OpenFile)
         OpenFile.hwndOwner = Form1.hWnd
         OpenFile.hInstance = App.hInstance
         sFilter = "NyxLauncher (*.Exe)" & Chr(0) & "*.Exe" & Chr(0)
         OpenFile.lpstrFilter = sFilter
         OpenFile.nFilterIndex = 1
         OpenFile.lpstrFile = String(257, 0)
         OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
         OpenFile.lpstrFileTitle = OpenFile.lpstrFile
         OpenFile.nMaxFileTitle = OpenFile.nMaxFile
         OpenFile.lpstrInitialDir = "C:\"
         OpenFile.lpstrTitle = "Open Nyxlauncher Location"
         OpenFile.flags = 0
         lReturn = GetOpenFileName(OpenFile)
         If lReturn = 0 Then
            MsgBox "The User pressed the Cancel Button"
         Else
          Text1.Text = Trim(OpenFile.lpstrFile)
         End If
       End Sub


Como ven todo esta bien pero yo no se como se hace para que la otra ves que el user entre a mi programa ya no tenga que estar poniendo Browse y seleccionar otra ves el .exe , sino cuando la otra ves que el user entre la direccion del .exe ya este grabado en el text.text





« Última modificación: 24 Noviembre 2006, 20:47 pm por Neoow » En línea

CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Dificl de explicar, Estoy Muy Confundido
« Respuesta #1 en: 25 Noviembre 2006, 14:22 pm »

pues puedes poner un procedimiento para que te guarde el path del .exe al cerrar el form y al cargarlro lo abres para que ya te lo de por default.


Código:
private sub GuardarPath(cadena as string)
    Dim f As Long, r As String * 250
    r = cadena
    f = FreeFile
   
    Open App.Path + "\path.txt" For Random As #f Len = Len(r)
    Put #f, 0, r
    Close #f


end sub

Public Function AbrirPath() As String
    Dim f As Long, aux As String * 250
   
    f = FreeFile
    Open App.Path + "\path.txt" For Random As #f Len = 250
    Get #f, 0, aux
    AbrirArchivo = aux
    Close #f
   
End Function
   
y en el form

private sub form_load()
    text1.text = abrirpath
end sub

private sub form_Unload
    if checkBox.Value <> 0 then  Guardar_Path (text1.text)
end sub


En línea

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.
Neoow

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Dificl de explicar, Estoy Muy Confundido
« Respuesta #2 en: 25 Noviembre 2006, 18:56 pm »

Hola ,gracias por responder el codigo se ve bien pero me dasmuchos errores  al compilar si arreglo algo me da otro error y en verda no se como hacearlo funcionar.

Me podrias mandar un projecto tuyo que contiene ese codigo para ver que hice mal?

tienes razon yo no se como haga para que guarde el path del .exe al cerrar el form y al cargarlro lo abres para que ya te lo de por default.

En línea

CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Dificl de explicar, Estoy Muy Confundido
« Respuesta #3 en: 25 Noviembre 2006, 19:53 pm »

la verdad esque agarre pedazos de codigo de un programa que estoy haciendo, ya lo depure y quedo asi:


Option Explicit

Private Sub GuardarPath(cadena As String)
    Dim f As Long, r As String * 250
    r = cadena
    f = FreeFile
   
    Open App.Path + "\path.txt" For Random As #f Len = Len(r)
    Put #f, 1, r
    Close #f
End Sub

Public Function AbrirPath() As String
    Dim f As Long, aux As String * 250
   
    f = FreeFile
    Open App.Path + "\path.txt" For Random As #f Len = 250
    Get #f, 1, aux
    AbrirPath = aux
    Close #f
   
End Function

Private Sub Form_Load()
    Text1.Text = AbrirPath
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If Check1.Value <> 0 Then GuardarPath (Text1.Text)
End Sub


esto solo copialo a tu aplicación, ya no te debe de dar errorres.

lo que hace esque cuando abres el form busca un archivo "path.txt" guardado en el directorio de la aplicación, si no lo encuantra lo crea, y pone su contenido en el text1, al darle cerrar guarda el contenido del text1 en el archivo path.txt, supongo que el path de "C:\Arhivos de Programa\Aplicacion\Aplicacion.exe " esta en text1, sino solo cambia los nombres de los controles



espero te sirva...... saludos!!!
En línea

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.
Neoow

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Dificl de explicar, Estoy Muy Confundido
« Respuesta #4 en: 25 Noviembre 2006, 20:20 pm »

Hola gracias ahora si funcionaba creo q habia unos errores con el codigo pero el nuevo que me diste si funciona gracias.
En línea

Neoow

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Dificl de explicar, Estoy Muy Confundido
« Respuesta #5 en: 26 Noviembre 2006, 01:15 am »

Hola de nuevo esta todo perfecto lo malo es que yo queria usar el codigo que me acabas con 2 botones browse , 2 textbox y 1 checkbox
 osea este es el codigo:
   Option Explicit

       Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
         "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

       Private Type OPENFILENAME
         lStructSize As Long
         hwndOwner As Long
         hInstance As Long
         lpstrFilter As String
         lpstrCustomFilter As String
         nMaxCustFilter As Long
         nFilterIndex As Long
         lpstrFile As String
         nMaxFile As Long
         lpstrFileTitle As String
         nMaxFileTitle As Long
         lpstrInitialDir As String
         lpstrTitle As String
         flags As Long
         nFileOffset As Integer
         nFileExtension As Integer
         lpstrDefExt As String
         lCustData As Long
         lpfnHook As Long
         lpTemplateName As String
       End Type


       Private Sub Command1_Click()
         Dim OpenFile As OPENFILENAME
         Dim lReturn As Long
         Dim sFilter As String
         OpenFile.lStructSize = Len(OpenFile)
         OpenFile.hwndOwner = Form1.hWnd
         OpenFile.hInstance = App.hInstance
         sFilter = "NyxLauncher (*.Exe)" & Chr(0) & "*.Exe" & Chr(0)
         OpenFile.lpstrFilter = sFilter
         OpenFile.nFilterIndex = 1
         OpenFile.lpstrFile = String(257, 0)
         OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
         OpenFile.lpstrFileTitle = OpenFile.lpstrFile
         OpenFile.nMaxFileTitle = OpenFile.nMaxFile
         OpenFile.lpstrInitialDir = "C:\"
         OpenFile.lpstrTitle = "Open Nyxlauncher Location"
         OpenFile.flags = 0
         lReturn = GetOpenFileName(OpenFile)
         If lReturn = 0 Then
            MsgBox "The User pressed the Cancel Button"
         Else
          Text1.Text = Trim(OpenFile.lpstrFile)
         End If
       End Sub



Private Sub GuardarPath(cadena As String)
    Dim f As Long, r As String * 250
    r = cadena
    f = FreeFile
   
    Open App.Path + "\path.txt" For Random As #f Len = Len(r)
    Put #f, 1, r
    Close #f
End Sub


Public Function AbrirPath() As String
    Dim f As Long, aux As String * 250
   
    f = FreeFile
    Open App.Path + "\path.txt" For Random As #f Len = 250
    Get #f, 1, aux
    AbrirPath = aux
    Close #f


End Function


Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Command4_Click()
 Dim OpenFile As OPENFILENAME
         Dim lReturn As Long
         Dim sFilter As String
         OpenFile.lStructSize = Len(OpenFile)
         OpenFile.hwndOwner = Form1.hWnd
         OpenFile.hInstance = App.hInstance
         sFilter = "NyxLauncher (*.Exe)" & Chr(0) & "*.Exe" & Chr(0)
         OpenFile.lpstrFilter = sFilter
         OpenFile.nFilterIndex = 1
         OpenFile.lpstrFile = String(257, 0)
         OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
         OpenFile.lpstrFileTitle = OpenFile.lpstrFile
         OpenFile.nMaxFileTitle = OpenFile.nMaxFile
         OpenFile.lpstrInitialDir = "C:\"
         OpenFile.lpstrTitle = "Open Nyxlauncher Location"
         OpenFile.flags = 0
         lReturn = GetOpenFileName(OpenFile)
         If lReturn = 0 Then
            MsgBox "The User pressed the Cancel Button"
         Else
          Text2.Text = Trim(OpenFile.lpstrFile)
         End If
       End Sub


Private Sub Form_Load()
    Text1.Text = AbrirPath
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If Check1.Value <> 0 Then
       GuardarPath (Text1.Text)
End Sub

He intentado poner:


Private Sub Form_Load()
    Text1.Text = AbrirPath
End Sub
Private Sub Form_Unload(Cancel As Integer)
    If Check1.Value <> 0 Then
       GuardarPath (Text1.Text)
Elseif Check1.value ><0 then
       GuardarPath (Text2.Text)
End Sub

pero no me funciona solo pone el mismo path del primer browser en los dos textbox.
En línea

CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Dificl de explicar, Estoy Muy Confundido
« Respuesta #6 en: 29 Noviembre 2006, 21:41 pm »

según el primer post, lo unico que faltaria seria que en un Command pongas

Código:
i = shell(text1.text, vbNormalFocus)

para que te ejecute la aplicación, de eso de que quieres meterle más controles pues es solo cuestión de usar la imaginación para ver que es lo que quieres que haga y donde poner el código
En línea

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.
soplo
Ex-Staff
*
Desconectado Desconectado

Mensajes: 3.592

Debian rool'z


Ver Perfil
Re: Dificl de explicar, Estoy Muy Confundido
« Respuesta #7 en: 29 Noviembre 2006, 23:54 pm »

Neoow lee las reglas

El código debe ir destacado con code y /code (mira el botón junto al de hacer citas para que quede claro.

Otro como este y te lo borro sin mas.

Un saludo
En línea

Callar es asentir ¡No te dejes llevar!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Muy Confundido
Bugs y Exploits
Schwarzschild 5 4,389 Último mensaje 15 Octubre 2012, 19:49 pm
por morodog
que dificl es hablar el español[video]
Foro Libre
daryo 1 1,236 Último mensaje 18 Octubre 2013, 03:24 am
por bacanzito
Empezar desde cero... Estoy confundido.
Dudas Generales
Oleh 2 1,838 Último mensaje 3 Abril 2015, 22:25 pm
por DarK_FirefoX
Super confundido...
Desarrollo Web
ElChulon 3 2,685 Último mensaje 26 Julio 2016, 03:58 am
por ElChulon
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines