关于打开对话框的过滤器
同样的代码(用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
[解决办法]
是不是有不同的权限?