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

Skazii

[VB6] Abrir pdf's

7 mensagens neste tópico

Ola a todos ;)

Estou com um problema em abrir pdf's que se encontram numa base de dados.

Por exemplo tenho 1 botao onde quero carregar e va a base de dados e me abra directamente com o adobe reader.

Se alguem me poder ajudar agradeço ;)

abraços!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Do botao para abrir o ficheiro ainda nao tenho ando aki as voltas mas consigo meter a funcionar como quero =|

tenho e o de guardar e apagar os ficheiros da base de dados

botao guardar!

Dim sql As String

Call selecciona_ficheiro

If CommonDialog1.FileName <> "" Then

  If Confirma("Pretende adicionar o ficheiro?") Then

      sql = "INSERT INTO JornaisPeriodicos VALUES("

      sql = sql & P(G.TextMatrix(G.Row, COL_id)) & ","

      sql = sql & Prox_Num("JornaisPeriodicos", "cod_foto", "True") & ","

      sql = sql & P(CommonDialog1.FileName) & ")"

      EXEC_SQL (sql)

  End If

End If

abracos!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Asgorath sim eu sei, mas o problema e k nao consigo abrir os pdf's  ;)

Tipo eu ja tenho o programa a visualizar imagens do genero .jpg

No caso dos pdf's ja os consigo gravar na base de dados e apagar so  nao consigo os visualizar axo k nao da para abrir no vb6 por isso keria meter 1 botao para chamar o adobe reader e assim conseguia os visualizar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Utiliza a API ShellExecute.

Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function GetShortPathName Lib "Kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long


Private Function GetDosPath(LongPath As String) As String
    Dim s As String
    Dim i As Long
    Dim PathLength As Long
    i = Len(LongPath) + 1
    s = String(i, 0)
    PathLength = GetShortPathName(LongPath, s, i)
    GetDosPath = Left$(s, PathLength)
End Function



Private Function FiltraDir(Str As String)
Dim temp As String
Dim strInv As String
Dim sup As Integer

temp = Str
strInv = StrReverse(temp)
sup = InStr(strInv, ".")

If sup = 0 Then
    FiltraDir = ""
    Exit Function
End If

temp = Left(temp, (Len(temp) - sup))
FiltraDir = temp
End Function



Private Sub Command1_Click()
Dim sProg As String
Dim WinDir As String
Dim DirProg As String
sProg = "C:\Programas\Foxit Software\Foxit Reader\Foxit Reader.exe"

'retira a extenção do nome do programa
DirProg = FiltraDir(sProg)
WinDir = "c:\a.pdf"
ShellExecute Me.hwnd, "open", GetDosPath(sProg), GetDosPath(WinDir), GetDosPath(DirProg), 1
End Su

Por vezes há problemas quando se utilizam espaços nos nomes dos directórios do tipo "c:\Minha Pasta\Meu Programa.exe" e por isso a utilização a função GetDosPath() que retira esses espaços e passa para outro formato do tipo "c:\Minha~1\Meu Pro~1.exe" . Agora é só alterares as directorios

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

NuGuN ja esta a funcionar as mil maravilhas :)

Ao inicio tava me a dar uns erros por causa disto (Call ShellExecute(Me.hwnd, "open", doc, "", "C:\", 1)

mas ja resolvi o problema :)

Obrigado pela ajuda :D

abraços!

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