Four Different Methods to Display the Find Files Dialog
Posted
by Ovidiu Crisan
on January 27th, 2004
If you want to use 'Find Files' standard dialog, in your programs you can choose between the following four methods.
- Using DDE: it's needed an label control, even invisible.
Private Sub Command1_Click()
With Label1
.LinkTopic = "Folders|AppProperties"
.LinkMode = vbLinkManual
.LinkExecute "[OpenFindFile(,)]"
End With
End Sub
Private Sub Form_Load()
Label1.Visible = False
Command1.Caption = "Find File (1)..."
Me.Caption = "Find File (1)"
End Sub
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
'
Private Const VK_LWIN = &H5B
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_APPS = &H5D
'
Private Sub Command1_Click()
Call keybd_event(VK_LWIN, 0, 0, 0)
Call keybd_event(&H46, 0, 0, 0) 'F
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub
'
Private Sub Form_Load()
Command1.Caption = "Find File (2)..."
Me.Caption = "Find File (2)"
End Sub
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1
Private Const SW_SHOWMINIMIZED = 2
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOW = 5
Private Const SW_MINIMIZE = 6
Private Const SW_SHOWMINNOACTIVE = 7
Private Const SW_SHOWNA = 8
Private Const SW_RESTORE = 9
Private Const SW_SHOWDEFAULT = 10
Private Sub Command1_Click()
Call ShellExecute(Me.hwnd, _
"find", _
Dir1.Path, _
vbNullString, _
vbNullString, _
SW_SHOWNORMAL)
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub Form_Load()
Command1.Caption = "Find File (3)..."
End Sub
Private Declare Function SHFindFiles Lib "Shell32" _
Alias "#90" _
(pidlRoot As Long, pidlSavedSearch As Long) As Long
Private Declare Function SHSimpleIDListFromPath Lib _
"Shell32" Alias "#162" _
(ByVal lpszPath As String) As Long
'
Private Sub Command1_Click()
Dim l As Long
l = SHSimpleIDListFromPath(Dir1.Path)
SHFindFiles ByVal l, ByVal 0
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub Form_Load()
Command1.Caption = "Find File (4)..."
Me.Caption = "Find File (4)"
End Sub
For the last two methods you need to add a DriveListBox and a DirListBox
control. With this methods you can give the start path for searching.

Comments
ok
Posted by Legacy on 10/17/2001 12:00amOriginally posted by: sabirmajor
good for other like goog for yourselves
thanks
Reply