代码如下:
Public 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 LongPrivate Sub lvwMain_DblClick()
If Not lvwMain.SelectedItem Is Nothing Then
ShellExecute Me.hWnd, vbNullString, "d:\1.lnk", gblnTry, vbNullString, 1
End If
End Sub-------------------------------------------------------
在其他系统中运行一切正常,在某些XP下运行也很正常,可是后来用户反应他们的XP上运行不了,注意了一下,确实有一些XP运行不了上面的代码,一点错误提示都没有,可是就是不能调用快捷方式,但是如果同样的语句调用其他文件,那有一切正常,晕倒了~~~查了一下CSDN以前的帖子,也有朋友问到一样的问题,可惜好像都说不出一个所以然来,更谈不上解决问题了,不知道现在那位朋友知道上面的问题的原因和解决方法的???
可以看看网友的其他帖子,一摸一样的问题:
http://search.csdn.net/Expert/topic/2167/2167068.xml?temp=.552395
Public 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 LongPrivate Sub lvwMain_DblClick()
If Not lvwMain.SelectedItem Is Nothing Then
ShellExecute Me.hWnd, vbNullString, "d:\1.lnk", gblnTry, vbNullString, 1
End If
End Sub-------------------------------------------------------
在其他系统中运行一切正常,在某些XP下运行也很正常,可是后来用户反应他们的XP上运行不了,注意了一下,确实有一些XP运行不了上面的代码,一点错误提示都没有,可是就是不能调用快捷方式,但是如果同样的语句调用其他文件,那有一切正常,晕倒了~~~查了一下CSDN以前的帖子,也有朋友问到一样的问题,可惜好像都说不出一个所以然来,更谈不上解决问题了,不知道现在那位朋友知道上面的问题的原因和解决方法的???
可以看看网友的其他帖子,一摸一样的问题:
http://search.csdn.net/Expert/topic/2167/2167068.xml?temp=.552395
解决方案 »
- float型数据溢出为-1.#QNAN的处理
- MSFlexGrid行删除出错
- 求助:3070 Microsoft Jet 数据库引擎不能识别 <名称> 是有效的字段名或表达
- OCX问题--本机上运行正常,装在其它服务器上有问题,急盼高手指点,先谢谢了,并祝大新年好!
- Vb 在哪里设置菜单栏里的“文件”里面的“最近浏览文件的数目”,数量太少不好用
- 那位高手能说一下客户端通过浏览器访问服务器时,服务器获得客户端IP地址的详细过程。不胜感激。
- Active reports的问题,急!在线等!100分
- windows 2000的问题
- 如何在字符和ASCII码之间转换
- 菜单
- [友情解答]请问在win2003下的shellexecute函数中的参数问题(不散分)
- ShellExecute?????
将你机子上的那个shell32.dll拷过去.
Public Declare Function ShellExecute Lib "f:\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'定义成你那个shell32.dll的路径
Option ExplicitPrivate Sub Command1_Click()
Shell GetTargetPath("C:\Documents and Settings\MyUserName\桌面\RealOne.lnk")
End SubFunction GetTargetPath(ByVal FileName As String)
Dim Obj As Object
Dim Shortcut As Object
Set Obj = CreateObject("WScript.Shell")
Set Shortcut = Obj.CreateShortcut(FileName)
GetTargetPath = Shortcut.TargetPath
Shortcut.Save
End Function
------------------------------------------------------------------------
02-Apr-2004 03:15 6.0.2800.1502 8,348,672 Shell32.dll x86
01-Apr-2004 23:10 5.1.2600.1363 676,864 Sxs.dll x86
10-Mar-2004 17:59 5.1.2600.1363 593,408 Xpsp2res.dll x86
01-Apr-2004 23:10 6.0.2800.1361 921,600 Comctl32.dll x86
01-Apr-2004 23:10 1,812 Controls.man x86
01-Apr-2004 23:10 621 Comctl.man x86
上面是微软的列表,对比了一下发现用户上诉的文件有部分或全部版本更低,主要是shell32.dll,然后让该用户通过windows update更新系统后,问题解决~其他用户还没有测试~估计也是可以这样子解决的。
我贴的代码是看LNK文件的对象地址而直接SHELL它的。
dongge2000贴的代码是看LNK文件的对象地址而直接SHELL它的。
连"运行"菜单也不行.
而"运行"菜单里行的"iexplore http://xxx.com",用shellexecute也不行,提示文件找不到,超郁闷:(