Aufruf GetOpenName Funktion

  • #1
K

Kuno1

Guest
Hallo

Um Dateien zu öffnen verwende ich in meinem VB-Programm den Windows Standard Dialog. Ich möchte nun, dass beim Öffenen die Dateiansicht nicht auf Liste sondern auf Details gestellt wird. Einen Lösungsansatz habe ich hier gefunden:

http://www.microsoft.com/germany/ms.../DateiansichtDesOeffnenDialogsVeraendern.mspx

Kann mir jemand sagen wie (mit welchen Parametern) ich die Funktion GetOpenName aufrufen muss, dass mir die Dateien mit den Details angezeigt werden.

Vielen Dank für die Hilfe

Gruss Kuno
 
  • #2
Versuch mal das hier:

Unter Diverse API-Konstanten

Code:
Private Const WM_INITDIALOG As Long = &H110

hinzufügen und

Code:
Private Function OFNHookProc( _ 
   ByVal hDialog As Long, _ 
   ByVal Message As Long, _ 
   ByVal wParam As Long, _ 
   ByRef lParam As NMHDR _ 
   ) As Long 
Dim hWndLVParent As Long-> Handle des ListView-Elternfensters 
Dim lpNMHDR As NMHDR -> WM_NOTIFY-Nachrichtendetails 
  If Message = WM_NOTIFY Then-> Nachricht vom Dialog 
 Select Case lParam.code 
   Case CDN_INITDONE 
  hWndLVParent = FindWindowEx(GetParent(hDialog), 0, SHELLDLL_DefView, vbNullString) 
  If hWndLVParent <> 0 Then 
 Call SendMessage(hWndLVParent, WM_COMMAND, ByVal ShowStateValue, ByVal 0&) 
  End If 
   Case CDN_FOLDERCHANGE 
   Case CDN_SELCHANGE 
   Case CDN_SHAREVIOLATION 
   Case CDN_HELP 
   Case CDN_FILEOK 
   Case CDN_TYPECHANGE 
 End Select 
  End If 
End Function

durch

Code:
Private Function OFNHookProc( _
   ByVal hDialog As Long, _
   ByVal Message As Long, _
   ByVal wParam As Long, _
   ByRef lParam As NMHDR _
   ) As Long
Dim hWndLVParent As Long-> Handle des ListView-Elternfensters
Dim lpNMHDR As NMHDR -> WM_NOTIFY-Nachrichtendetails
Static setupDone As Boolean

  If Message = WM_INITDIALOG Then
    setupDone = False
  End If

  If Message = WM_NOTIFY Then    
    If setupDone = False Then
      hWndLVParent = FindWindowEx(GetParent(hDialog), 0, SHELLDLL_DefView, vbNullChar)
      If hWndLVParent <> 0 Then
        Call SendMessage(hWndLVParent, WM_COMMAND, ByVal ShowStateValue, ByVal 0&)
        setupDone = True
      End If
    End If
  End If

End Function

ersetzen. Dann (wie du es sicher schon versucht hast ...) GetOpenName mit dem entsprechenden View-Parameter (in deinem Fall also Report) aufrufen.

Code:
Select Case lParam.code 
   Case CDN_INITDONE 
   Case CDN_FOLDERCHANGE 
   Case CDN_SELCHANGE 
   Case CDN_SHAREVIOLATION 
   Case CDN_HELP 
   Case CDN_FILEOK 
   Case CDN_TYPECHANGE 
End Select
und die langen Kommentare habe ich der Übersichtlichkeit wegen weggelassen; du kannst das natürlich wieder einfügen, wenn du es brauchst.
 
  • #3
Hallo

Vielen Dank für die Hilfe. So funktioniert es wunderbar. Zusatzfrage: Gibt es eine Möglichkeit, dass die Dateien auch gleich nach dem Änderungsdatum absteigend sortiert werden?

Nochmals herzlichen Dank

Kuno
 
Thema:

Aufruf GetOpenName Funktion

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben