• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Dotinho

Abrir documentos em vb

7 mensagens neste tópico

Boas, eu sei que para iniciar um programa, usa-se a shell(<caminho do programa>), mas infelizmente nao funciona para documentos tipo C:\luis.doc, alguem tem alguma sugestão?

inclusive ja esprimentei shell(C:\programas\...\winword.exe C:\luis.doc), isto de várias maneiras e nunca consegui..

cmps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usando API's tens de usar o ShellExecute() e não o Shell().  Mas em .NET podes fazer:

Process.Start("caminho + nome do ficheiro")

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas é necessário username e password, e para um programa que poderá nao server só para mim, é chato..e não encontrei o ShellExecute, apenas tenho o shell e o Process.Start()

cmps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O ShellExecute() é uma API que tens de declarar e não está disponível directamente no codigo. Se pesquisares encontras vários exemplos na net (alguns até meus :) )

Não entendi a parte do username e da password

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, afinal não funciona muito bem, encontrei um link da MS : http://support.microsoft.com/kb/170918

Está lá como se declara a API, e as constantes..

Mas da um erro entre 100000000 e 800000000

e ainda nao encontrei nada sobre isso..

Aqui fica o codigo :



    Const SW_SHOWNORMAL = 1
    Const SE_ERR_FNF = 2&
    Const SE_ERR_PNF = 3&
    Const SE_ERR_ACCESSDENIED = 5&
    Const SE_ERR_OOM = 8&
    Const SE_ERR_DLLNOTFOUND = 32&
    Const SE_ERR_SHARE = 26&
    Const SE_ERR_ASSOCINCOMPLETE = 27&
    Const SE_ERR_DDETIMEOUT = 28&
    Const SE_ERR_DDEFAIL = 29&
    Const SE_ERR_DDEBUSY = 30&
    Const SE_ERR_NOASSOC = 31&
    Const ERROR_BAD_FORMAT = 11&

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
                    (ByVal hwnd As Long, ByVal lpszOp As String, _
                     ByVal lpszFile As String, ByVal lpszParams As String, _
                     ByVal LpszDir As String, ByVal FsShowCmd As Long) _
                     As Long

Private Declare Function GetDesktopWindow Lib "user32" () As Long

' e no botão tenho:

Try
            Dim r As Long = StartDoc(LV.SelectedItems(0).SubItems(2).Text)
            MsgBox("RES=" & r) : Dim msg As String
  Catch ex As Exception
            MsgBox(ex.ToString)
   End Try



0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora