2013-08-26 1 views
0

.url 또는 .lnk (바로 가기) 속성을 변경하는 코드가 있지만 아무 것도 보이지 않습니다.VB : 바로 가기 권한 변경

Imports System.IO 
Imports Shell32 

Module Module1 
    Sub Main() 
     'References Microsoft Shell Controls and Automation. 
     'http://msdn.microsoft.com/en-us/library/bb776890%28v=VS.85%29.aspx 
    End Sub 
    Public Sub Change_Shortcut() 

    Dim shell As Shell32.Shell 
    Dim folder As Shell32.Folder 
    Dim folderItem As Shell32.FolderItem 
    Dim shortcut As Shell32.ShellLinkObject 

    shell = New Shell32.Shell 

    folder = shell.NameSpace("C:\Users\GrzegoP\Desktop\xxx") 'Shortcut path 
    If Not folder Is Nothing Then 
     folderItem = folder.ParseName("o2.url") 'Shortcut name 
     If Not folderItem Is Nothing Then 
      shortcut = folderItem.GetLink 
      If Not shortcut Is Nothing Then 
       shortcut.Path = "www.o2.ie" 'new shortcut address 
       shortcut.Save() 
       MsgBox("Shortcut changed") 
      Else 
       MsgBox("Shortcut link within file not found") 
      End If 
     Else 
      MsgBox("Shortcut file not found") 
     End If 
    Else 
     MsgBox("Desktop folder not found") 
    End If 

End Sub 

End Module 

사람은 나에게 내가 잘못 가고 몇 가지 조언을 줄 수 있습니까?

감사합니다.

+0

어떤 메시지 상자가 나타 납니까? 어떤 오류가 발생했는지 알고 있다면 좋을 것입니다. –

+0

중단 된 메시지가 표시되지 않습니다. – Saint

답변

1

당신이 바로 가기 그런 식으로 URL을 생성 할 수 있음을 주목 : 그것은 내부에 텍스트의 다음 줄을 작성,

http://msdn.microsoft.com/en-us/library/windows/desktop/bb776891%28v=vs.85%29.aspx

당신은 대신 단순히 바탕 화면에 xxx.url 파일을 만들어야을 :

[InternetShortcut] 
URL=http://www.o2.ie 

Windows에서 웹 사이트 바로 가기로 변환합니다. 라인에

0

제 생각에 아무것도 실행되지 않는 것 같습니다. 하위의 시작 부분에 중단 점을 두어 호출되는지 확인하십시오. 그렇지 않으면 Change_Shortcut()을 제대로 연결할 수 있는지 확인하여 올바르게 호출되도록하십시오.

일단 중단 점을 설정하면 코드를 살펴보고 결국 어디에서 끝나는 지 예상하여 예상대로 작동하는지 확인해야합니다.

+0

확인했는데 HRESULT : 0x80041001 예외 코드가 있습니다.이 코드 줄에는 : shortcut.Path = "www.o2.ie" – Saint

+0

새 대답이 추가되었습니다. 내 솔루션이 문제를 발견하는 데 도움이된다면 내 대답을 적절하게 받아들입니다. –

0

내 문제에 대한 간단한 솔루션 ...

: shortcut.Path = "www.o2.ie"

나는 주소 앞에 http://을 넣어 잊어 버렸습니다.