Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: MandingoPC en 8 Diciembre 2011, 01:20 AM

Título: Abrir seleccionar carpteas como si fuera vbmodal
Publicado por: MandingoPC en 8 Diciembre 2011, 01:20 AM
Hola soy nuevo, un gusto a todos.


LO q hago es usar la funcion Shell.BrowseForFolder con un resto de código y parámetros para que me abra el cuadrito para seleccionar una carpeta. El problema es q si se hace click en el formulario, se pierde ese cartel.

Entonces, quisiera saber como hago para q no se pueda hacer otra accion en el progrma hasta q no se cancele o seleccione un directorio. Como si fuera un vbmodal en formularios.


Ah y ya q estoy para no abrir otro topic. MI programa crea un acceso directo a un .exe. Como se hace para que ese acceso directo tenga un icono que yo quiero? (osea cambiarle el icono al acceso directo)
Gracias
Título: Re: Abrir seleccionar carpteas como si fuera vbmodal
Publicado por: MandingoPC en 9 Diciembre 2011, 19:55 PM
Podria algien porfavor ayudarme con esto? hace 3 dias que lo puse y nadie me contestó  :-X

En si es para q ese cartelito no se salga de la vista, como si fuera un vbmodal de formulariio
Título: Re: Abrir seleccionar carpteas como si fuera vbmodal
Publicado por: raul338 en 9 Diciembre 2011, 22:24 PM
Hay clases alternativas para hacer un BrowseForFolder hasta personalizados

http://knol.google.com/k/manoj-ap/how-to-invoke-a-folder-browser-in/3bx1ymwndxj4/6#
http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=69481&lngWId=1
Título: Re: Abrir seleccionar carpteas como si fuera vbmodal
Publicado por: seba123neo en 10 Diciembre 2011, 00:13 AM
proba esto:

Código (vb) [Seleccionar]
Option Explicit

Private Const BIF_RETURNONLYFSDIRS = 1
Private Const BIF_DONTGOBELOWDOMAIN = 2
Private Const MAX_PATH = 260

Private Declare Function SHBrowseForFolder Lib "shell32" (lpBI As BrowseInfo) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long

Private Type BrowseInfo
    hwndOwner As Long
    pIDLRoot As Long
    pszDisplayName As Long
    lpszTitle As Long
    ulFlags As Long
    lpfnCallback As Long
    lParam As Long
    iImage As Long
End Type

Private Function BrowseFolder()

    Dim lpIDList As Long
    Dim sbuffer As String
    Dim szTitle As String
    Dim tBrowseInfo As BrowseInfo
    szTitle = "Choose PrLr Scheduler Sound Folder"


    With tBrowseInfo
        .hwndOwner = Me.hWnd
        .lpszTitle = lstrcat(szTitle, "")
        .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
       
    End With
    lpIDList = SHBrowseForFolder(tBrowseInfo)


    If (lpIDList) Then
        sbuffer = Space(MAX_PATH)
        SHGetPathFromIDList lpIDList, sbuffer
        sbuffer = Left(sbuffer, InStr(sbuffer, vbNullChar) - 1)
       
        BrowseFolder = sbuffer
       
    End If
   
End Function

Private Sub Command1_Click()
    Call BrowseFolder
End Sub


Fuente: Make SHBrowseForFolder Modal?  (http://www.vbforums.com/showthread.php?t=480306)

el truco esta en poner BrowseInfo.hwndOwner = Me.hwnd

saludos.
Título: Re: Abrir seleccionar carpteas como si fuera vbmodal
Publicado por: MandingoPC en 14 Diciembre 2011, 19:10 PM
te agradezco mucho. Eso era tal cual lo que keria neo