功能在Windows 7中不起作用,但是在O.K.在10 [英] Function not working in Windows 7 but O.K. in 10

查看:56
本文介绍了功能在Windows 7中不起作用,但是在O.K.在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆