功能在Windows 7中不起作用,但是在O.K.在10 [英] Function not working in Windows 7 but O.K. in 10
问题描述
以下代码适用于Win 10但不适用于7生成com错误。它曾经在两者中工作但是大约两个月没有。
公共
功能 CDI( ByVal
InstallPath As
String )
As
布尔
Public Function CDI(ByVal InstallPath As String) As Boolean
CDI = 假
暗淡 oShell
As Shell32.Shell
暗淡 oFolder
As Shell32.Folder
暗淡 oFolderItem
As Shell32.FolderItem =
没什么
暗淡 i
As
整数
暗淡 bFound
As
布尔
暗淡 dr
As
String =
""
尝试
oShell = 新 Shell32.Shell
oShell = New Shell32.Shell
oFolder = oShell.NameSpace(& H19&) '这是所有用户的桌面快捷方式(特殊文件夹)
oFolder = oShell.NameSpace(&H19&) 'This is the all users’ desktop shortcuts (Special Folders)
如果 ( 不
oFolder
没什么 )
然后
If (Not oFolder Is Nothing) Then
用于 i = 1
To oFolder.Items.Count - 1
如果 oFolder.Items.Item(i).IsLink
然后
<跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
如果 oFolder.Items.Item(i).Name.ToString
喜欢
ApName
然后
If oFolder.Items.Item(i).Name.ToString Like ApName Then
<跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
oFolderItem = oFolder.Items.Item(i)
oFolderItem = oFolder.Items.Item(i)
<跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
bFound = 真
bFound = True
<跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
退出
用于
<跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
结束
如果
结束
如果
下一步 我
如果 bFound =
False
然后
oFolder = 没什么
oFolder = Nothing
oShell = 没什么
oShell = Nothing
如果 WriteLog( " NET
引擎: "& ApName&"
无法找到桌面快捷方式。" )
然后
结束
如果
退出
功能
结束
如果
如果
不 oFolderItem
是
没什么
然后
If Not oFolderItem Is Nothing Then
暗淡 oShellLink
As Shell32.ShellLinkObject
oShellLink = CType (oFolderItem.GetLink,Shell32.ShellLinkObject)
oShellLink = CType(oFolderItem.GetLink, Shell32.ShellLinkObject)
如果
不 oShellLink
是
没什么
然后
If Not oShellLink Is Nothing Then
oShellLink.ShowCommand = 7
'在Windows 7中产生错误
oShellLink.ShowCommand = 7 ‘Produces error in Windows 7
<跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
oShellLink.Save()
oShellLink.Save()
结束
如果
oShellLink = 没什么
oShellLink = Nothing
如果
WriteLog( "NET"引擎
"& ApName&"
找到桌面快捷方式,并且已成功修改。" )
然后
结束
如果
其他
如果 WriteLog( " NET
引擎: "& ApName&"
找不到桌面快捷方式名称
"& ApName&"。 " )
然后
If WriteLog("NET Engine: " & ApName & " can’t locate the desktop shortcut name " & ApName & ".") Then
结束
如果
结束
如果
oFolderItem = 没什么
oFolderItem = Nothing
结束
如果
Catch
如果 WriteLog( " NET
引擎:意外的错误编辑 "& ApName&"
遇到桌面快捷方式。错误是: - " & Err.Description&
"。" )
然后
If WriteLog("NET Engine: AN unexpected error editing " & ApName & " desktop shortcut was encountered. The error was: - " & Err.Description & ".") Then
结束
如果
oFolder = 没什么
oFolder = Nothing
oShell = 没什么
oShell = Nothing
退出
功能
结束
尝试
oFolder = 没什么
oFolder = Nothing
oShell = 没什么
oShell = Nothing
CDI = 真
结束
功能
已经长了
推荐答案
请指定抛出异常时获得的确切异常消息,以便任何想要帮助的人知道从哪里开始。
Please specify the exact exception message you get when the exception is thrown so anyone here that wants to assist has an idea where to start.
这篇关于功能在Windows 7中不起作用,但是在O.K.在10的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!