Ich habe ein Formular, das OpenFileDialog aufruft.
Ich möchte eine bestimmte Datei im Vordergrund (Hervorgehoben) im Dateifenster fokussiert werden.
Ist es möglich?
Ich habe Code, wo ich alle Dateien auswählen kann, jetzt möchte ich 1 Datei ausgewählt werden.OpenFileDialog eine Datei vorwählen
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim OpenFileDialog1 As New OpenFileDialog
OpenFileDialog1.Filter = "All files (*.*)|*.*"
OpenFileDialog1.RestoreDirectory = True
OpenFileDialog1.FileName = "C:\MyFile.wmv"
OpenFileDialog1.InitialDirectory = My.Settings.VideoDirectory
OpenFileDialog1.Multiselect = True
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
My.Settings.VideoDirectory = Path.GetDirectoryName(OpenFileDialog1.FileName)
End If
End Sub
Dim m_lastDialogHandle As IntPtr
Public Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
Public Declare Function FindWindowExW Lib "user32.dll" (ByVal hWndParent As IntPtr, ByVal hWndChildAfter As IntPtr, <MarshalAs(UnmanagedType.LPWStr)> ByVal lpszClass As String, <MarshalAs(UnmanagedType.LPWStr)> ByVal lpszWindow As String) As IntPtr
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
MyBase.WndProc(m)
If m.Msg = 289 Then ' Notify of message loop
Dim dialogHandle As IntPtr = m.LParam
If (dialogHandle <> m_lastDialogHandle) Then
Dim hChild1 As IntPtr = 0
Dim hChild2 As IntPtr = 0
Dim hChild3 As IntPtr = 0
m_lastDialogHandle = dialogHandle
hChild1 = FindWindowExW(dialogHandle, 0, "DUIViewWndClassName", Nothing)
If hChild1 = 0 Then Exit Sub
hChild1 = FindWindowExW(hChild1, 0, "DirectUIHWND", Nothing)
If hChild1 = 0 Then Exit Sub
Do
hChild2 = FindWindowExW(hChild1, hChild2, Nothing, Nothing)
If hChild2 = 0 Then Exit Sub
hChild3 = FindWindowExW(hChild2, 0, "SHELLDLL_DefView", "ShellView")
Loop Until hChild3 <> 0
SendMessage(hChild3, &H111, &H17021, 0)
End If
End If
End Sub
End Class
Ich bin sicher, dass es möglich ist, 1 Datei auszuwählen, muss ich nur noch die gute WM_COMMAND kennen.
Jede Hilfe wird geschätzt.
Vielen Dank für Ihre Mühe, aber es funktioniert nicht, die Datei wird nicht im Dateifenster hervorgehoben. Ich möchte, dass die Datei im Dateifenster fokussiert wird, damit ich schnell sehen kann, welche Datei ich zuletzt ausgewählt habe. –
Ihre Frage ist nicht sehr klar, also sollten Sie es aktualisieren. Sie haben nichts über die Hervorhebung der Datei im Dateifenster gesagt. Dies wählt die Datei aus, genau wie Sie gefragt haben. Wenn Sie auf den Button klicken und dann auf Öffnen klicken, wird die Datei geöffnet, sofern sie existiert. Zumindest tut es in VB 2013. Edit: Ich sehe, dass Sie die Hervorhebungsanfrage in einen Kommentar setzen. Habe diese nicht gelesen. Bearbeiten Sie Ihre Frage. – topshot