VB 2005 -  Criando um atalho para o seu programa no desktop


 

Como criar um atalho no Desktop no Visual Basic 2005 ? (Na verdade funciona também na versão anterior...) Oh, dúvida cruel ....

 

Pelo menos você lembra como se fazia isto no VB6 ?  Também não ? Ora, você tinha que usar o a DLL Windows Scripting.

 

Podemos tentar trilhar o mesmo caminho no .NET via COM interop referenciando a Windows Scripting Library . Vamos lá...

 

Imaginando que você não queira saber detalhes de implementação vou mostrar como você resolve o problema e cria um atalho para o seu programa VB no desktop.

 

Criando o atalho

 

Crie um novo projeto no VB 2005 dando ao projeto o nome de criandoAtalho. Na janela Solution Explorer clique com o botão direito do mouse sobre o nome do projeto e selecione a opção Add Reference.

 

Na janela Add Reference abra a guia COM e selecione a opção : Windows Scriptins Host Object Model e click no botão OK.

 


Ponha um botão de comando no formulário do projeto só para ter algo em que clicar ... e, no evento click inclua a chamada a função criaAtalhoNoDesktop()

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


If criaAtalhoNoDesktop() Then

   MsgBox("Diretorio criado com sucesso.")

Else

   MsgBox("Opa, algo sai errado...")

End If


End
Sub

 

Agora digite o código abaixo para a função criaAtalhoNoDesktop()

 

Public Function criaAtalhoNoDesktop() As Boolean


Try

  Dim WshShell As New IWshRuntimeLibrary.WshShell

  Dim diretorioDesktop As String = CType(WshShell.SpecialFolders.Item("Desktop"), String)

  Dim atalho As IWshRuntimeLibrary.IWshShortcut


  ' o arquivo de atalho possui uma extensão .lnk

  atalho = CType(WshShell.CreateShortcut(diretorioDesktop & "\MeuPrimeiroAtalhoNoDesktop.lnk"), IWshRuntimeLibrary.IWshShortcut)


  ' define as propriedades do atalho

  With atalho

   .TargetPath = System.Reflection.Assembly.GetExecutingAssembly.Location()

  .WindowStyle = 1

  .Description = "Meu primeiro atalho"

  .WorkingDirectory = diretorioDesktop

  ' obtem o primeiro icon a partiro do programa executor

  .IconLocation = System.Reflection.Assembly.GetExecutingAssembly.Location() & ", 0"

  'salva o arquivo de atalho

  .Save()

  End With

  'deu tudo certo

  Return True

Catch ex As System.Exception

   Return False

End Try

End Function

 

Ao executar o projeto e clicar no botão de comando o atalho será criado no Desktop conforme mostra a figura:

 

 

Desconfio que haja alguma forma mais fácil de obter o mesmo resultado no VB 2005 ,afinal estamos apelando para o COM em tempos de código gerenciado, se alguém souber que se declare...

 

Aguarde em breve mais artigos sobre os novos recursos VB.NET 2005. Até breve...
 


José Carlos Macoratti