Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Galera!
Uso VB express 2008.
Tenho uma aplicação que quando "entende" que há atualização disponível, mostra um botão para que quando clicado, chame outro EXE para baixar as atualizações.
Shell("programa_de_atualizacao.exe", AppWinStyle.NormalFocus)
Criei uns instalador com o inno setup, maravilha, instala na maior!
O problema, é que depois de instalado, o programa fica na pasta arquivos de programa, e quando clico para atualizar, chama o EXE q baixa a atualização certinho, mas como precisa fazer o download de arquivos, da problema de acesso negado.
Se eu executar o exe q baixa a atualização clicando diretamente no icone do mesmo, e pedindo para executar como admin, funciona tranquilo.
A pergunta é: COMO EU FAÇO PARA CHAMAR VIA CÓDIGO, OUTRO EXE E QUE ESTE SEJA EXECUTADO COMO ADMIN?
Com isso deverá permitir o download e tudo estará resolvido.
Alguém pode me ajudar?
Obrigado!
Eis a solução:
Dim process As System.Diagnostics.Process = Nothing
Dim processStartInfo As System.Diagnostics.ProcessStartInfo
processStartInfo = New System.Diagnostics.ProcessStartInfo()
processStartInfo.FileName = "programa.exe"
If System.Environment.OSVersion.Version.Major >= 6 Then ' Windows Vista or higher
processStartInfo.Verb = "runas"
Else
' No need to prompt to run as admin
End If
processStartInfo.Arguments = ""
processStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal
processStartInfo.UseShellExecute = True
Try
process = System.Diagnostics.Process.Start(processStartInfo)
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
If Not (process Is Nothing) Then
process.Dispose()
End If
End Try
I love google!
Fonte: http://www.mztools.com/articles/2009/MZ2009007.aspx
Não que não tenha procurado antes, mas nem tudo vem no nosso tempo, certo?
Obrigado a todos!