读书人

关于打开对话框的过滤器,该如何处理

发布时间: 2012-01-31 21:28:41 作者: rapoo

关于打开对话框的过滤器
同样的代码(用API调用的打开对话框),同样的过滤器:只显示exe文件
为什么在我的笔记本上既可以显示exe也可以显示指向exe文件的快捷方式
而在我家台式机上只能显示exe文件,无法显示快捷方式

这是笔记本上的图

这是台式机上的图


而且笔记本上打开快捷方式返回的路径是快捷方式指向的exe的路径
太离奇了,谁能帮我解决下啊


[解决办法]
你的都是什么操作系统?

我在windows 2003下,测试以下代码,只显示.exe文件,不显示快捷方式。

VB code
Option ExplicitPrivate 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 StringEnd TypePrivate Sub Command1_Click()            Dim ofn As OPENFILENAME            Dim rtn As Long            ofn.lStructSize = Len(ofn)            ofn.hwndOwner = Me.hWnd            ofn.hInstance = App.hInstance            ofn.lpstrFilter = "应用程序 (*.exe)" & Chr$(0) & "*.exe" & Chr$(0) & "所有文件 (*.*)" & Chr$(0) & "*.*" & Chr$(0)            ofn.lpstrFile = Space(254)            ofn.nMaxFile = 255            ofn.lpstrFileTitle = Space(254)            ofn.nMaxFileTitle = 255            ofn.lpstrInitialDir = App.Path            ofn.lpstrTitle = "打开文件"            ofn.flags = 6148            rtn = GetOpenFileName(ofn)            If rtn >= 1 Then                Me.Caption = ofn.lpstrFile            Else                Me.Caption = ""            End IfEnd Sub
[解决办法]
是不是有不同的权限?

读书人网 >VB

热点推荐