Título: Dificl de explicar, Estoy Muy Confundido Publicado por: Neoow 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 Título: Re: Dificl de explicar, Estoy Muy Confundido Publicado por: CeLaYa 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) Título: Re: Dificl de explicar, Estoy Muy Confundido Publicado por: Neoow 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. Título: Re: Dificl de explicar, Estoy Muy Confundido Publicado por: CeLaYa 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!!! Título: Re: Dificl de explicar, Estoy Muy Confundido Publicado por: Neoow 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.
Título: Re: Dificl de explicar, Estoy Muy Confundido Publicado por: Neoow 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. Título: Re: Dificl de explicar, Estoy Muy Confundido Publicado por: CeLaYa 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 Título: Re: Dificl de explicar, Estoy Muy Confundido Publicado por: soplo 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 |