VBA - Bibliotecas de referencias - Windows Script Host Object
VBA - Bibliotecas de referencias - Windows Script Host Object
Sempre crie uma frase de segurança única para jogos, Airdrops e qualquer outra coisa de origem desconhecida, em vez de usar sua carteira principal.
Nome completo: Modelo de objeto do host de scripts do Windows
LibName: IWshRuntimeScripting
Local: ...\WINDOWS\system32\wshom.ocx
A dica atual está intimamente relacionada às informações anteriores escritas pelo A Dezii sobre a biblioteca Scripting Runtime. Ambas as bibliotecas compartilham a mesma funcionalidade das funções de arquivo, mas a biblioteca no tópico fornece possibilidades adicionais que podem ser usadas com vantagem. Aqui está uma breve visão geral: Um monte de funções de arquivo (o mesmo que na biblioteca Scripting Runtime) Funções de rede e impressora. Criando atalhos. Funções do shell, incluindo: inicialização avançada de aplicativos, registro de eventos e funções de registro, etc.
A dica atual é dedicada a dois aspectos mais utilizados: criação de atalhos e lançamento de aplicativos. Os interessados em informações mais abrangentes devem reservar um tempo para acessar o MSDN: Windows Script Host .
Criando Atalhos
O código abaixo, bastante auto-explicativo, eu acho, cria um atalho de URL em "Favoritos" e atalhos de arquivo na área de trabalho e no menu Iniciar. Ele usa a coleção IWshRuntimeLibrary.WshShell.SpecialFolders para obter caminhos para diretórios relevantes. A lista completa dos nomes da coleção SpecialFolders pode ser encontrada no MSDN: SpecialFolders.
vba
Copy code
Public Sub CreateShortcuts()
'declaração de variáveis
Dim objWshShell As New IWshRuntimeLibrary.WshShell
Dim objWshShortcut As IWshRuntimeLibrary.WshShortcut
Dim objWshURLShortcut As IWshRuntimeLibrary.WshURLShortcut
Dim strTargetFolder As String
'criar atalho em "Favoritos"
With objWshShell
'caminho para "Favoritos"
strTargetFolder = .SpecialFolders("Favoritos")
'crie um atalho de URL em "Favoritos"
Set objWshURLShortcut = .CreateShortcut(strTargetFolder & "\TheScripts.url")
End With
'defina o taget de atalho de URL e salve-o
With objWshURLShortcut
.TargetPath = "http://www.thescripts.com"
.Save
End With
'criar atalho na área de trabalho disponível para todos os usuários
With objWshShell
'caminho para "Todos os usuários da área de trabalho"
strTargetFolder = .SpecialFolders("AllUsersDeskTop")
'create a shortcut in "All Users Desktop"
Set objWshShortcut = .CreateShortcut(strTargetFolder & "\MyShortcut.lnk")
End With
With objWshShortcut
'set the shortcut target, description and save it
.TargetPath = "C:\SomeFile.txt"
.Description = "Link to my file"
.Save
End With
'create the same shortcut in Start Menu available for all users
With objWshShell
strTargetFolder = .SpecialFolders("AllUsersStartMenu")
Set objWshShortcut = .CreateShortcut(strTargetFolder & "\MyShortcut.lnk")
End With
With objWshShortcut
.TargetPath = "C:\SomeFile.txt"
.Description = "Link to my file"
.Save
End With
'destroy object variables
Set objWshURLShortcut = Nothing
Set objWshShortcut = Nothing
Set objWshShell = Nothing
End Sub
Iniciando um Aplicativo
A biblioteca WSHOM fornece um método de função melhor que o VBA Shell para executar um aplicativo que não suporta automação. No exemplo a seguir, o Calc.exe é iniciado quando um botão de alternância é pressionado e finalizado quando é liberado ou o formulário é fechado. Além disso, o manipulador de eventos Form_Timer monitora o status do aplicativo Calc.exe e sempre que ele é fechado, o botão de alternância é liberado.
vba
Copy code
'form public variable para armazenar o objeto WshExec referindo
'para lançado aplicativo Calc.exe
Dim objCalc As IWshRuntimeLibrary.WshExec
Private Sub Form_Close()
'terminate Calc.exe quando o formulário está sendo fechado
If Not objCalc Is Nothing Then
objCalc.Terminate
Set objCalc = Nothing
End If
End Sub
'manipulador de eventos do timer de formulário para monitorar o status do aplicativo Calc.exe
Private Sub Form_Timer()
'se a variável pública WshExec não existir, então deixe o procedimento
If objCalc Is Nothing Then Exit Sub
'definir o estado do botão de alternância de acordo com o status do Calc.exe
With Me
If objCalc.Status = WshRunning Then
.tglCalc = True
Else
.tglCalc = False
End If
End With
End Sub
Private Sub tglCalc_AfterUpdate()
Dim objWshShell As New IWshRuntimeLibrary.wshShell
If Me.tglCalc Then
'Se o botão de alternância for pressionado, execute o Calc.exe
'e atribuir o objeto WshExec retornado para formar uma variável pública
Set objCalc = objWshShell.Exec("calc.exe")
Else
'Se o botão de alternância for liberado, encerre o arquivo Calc.exe
objCalc.Terminate
End If
Set objWshShell = Nothing
End Sub
Espero que isso ajude!
Nenhum comentário
Comente só assim vamos crescer juntos!
Observação: somente um membro deste blog pode postar um comentário.