Avatar billede hcichosz Praktikant
02. november 2006 - 16:45 Der er 3 kommentarer og
1 løsning

hvordan åbnen jeg en bestemt file i VB6

Hej
vis nu jeg på min form har en knap der skal åbne en bestemt file
F.eks. test.xls  hvordan gør man det
Avatar billede falster Ekspert
02. november 2006 - 17:23 #1
Der er sikkert mere elegante måder, men jeg fandt engang denne og oversatte fejlmeddelelserne til dansk. Kopiér det ind i en tekstfil og gem den som "ModulEtEllerAndet.bas". Knyt modulet til dit VB-projekt. Og brug så funktionen RunProgram i din click event. Se de små bemærkninger ved '.

Attribute VB_Name = "modShell"
Option Explicit
'API STUFF ====================================================================
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 Const SW_SHOWNORMAL = 1
Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const ERROR_BAD_FORMAT = 11&
Private Const SE_ERR_ACCESSDENIED = 5
Private Const SE_ERR_ASSOCINCOMPLETE = 27
Private Const SE_ERR_DDEBUSY = 30
Private Const SE_ERR_DDEFAIL = 29
Private Const SE_ERR_DDETIMEOUT = 28
Private Const SE_ERR_DLLNOTFOUND = 32
Private Const SE_ERR_FNF = 2
Private Const SE_ERR_NOASSOC = 31
Private Const SE_ERR_OOM = 8
Private Const SE_ERR_PNF = 3
Private Const SE_ERR_SHARE = 26

'strProgram is the name of a program to run, or a file to open
'EX: calc.exe or c:\test.doc or http:\\www.microsoft.com
Public Sub RunProgram(strProgram As String)
    Dim lRet As Long    ' Get the return value
   
    ' Execute the API call
    lRet = ShellExecute(vbNull, "", strProgram, "", "", SW_SHOWNORMAL)
   
    ' If ShellExecute works it will return a number greate than 32
    ' Otherwise call our ReportError function to see what went wrong
    If lRet <= 32 Then
        ReportShellExecuteError (lRet)
    End If
End Sub

Private Sub ReportShellExecuteError(lErrNum As Long)
    Dim strErr As String
    Select Case lErrNum
        Case ERROR_FILE_NOT_FOUND
            strErr = "Protokollen foreligger endnu ikke scannet." & vbCrLf & "Men det vil den snart gøre."
        Case ERROR_PATH_NOT_FOUND
            strErr = "Stien blev ikke fundet."
        Case ERROR_BAD_FORMAT
            strErr = "Denne .exe-fil fungerer ikke (ikke en Win32® .exe e.l.)."
        Case SE_ERR_ACCESSDENIED
            strErr = "Styresystemet giver ikke adgang til denne fil."
        Case SE_ERR_ASSOCINCOMPLETE
            strErr = "Filtypen er mangelfuld eller ugyldig."
        Case SE_ERR_DDEBUSY
            strErr = "DDE handlingen kunne ikke fuldføres, fordi en anden DDE handling var under eksekvering."
        Case SE_ERR_DDEFAIL
            strErr = "DDE handlingen mislykkedes."
        Case SE_ERR_DDETIMEOUT
            strErr = "DDE handlingen kunne ikke fuldføres, fordi anmodningen udløb."
        Case SE_ERR_DLLNOTFOUND
            strErr = "Denne dll-fil blev ikke fundet."
        Case SE_ERR_FNF
            strErr = "Filen blev ikke fundet."
        Case SE_ERR_NOASSOC
            strErr = "Der er ikke et program associeret med denne filtype. Denne fejlmeddelelse kommer også, hvis man prøver at printe en fil, som ikke kan printes."
        Case SE_ERR_OOM
            strErr = "Der var ikke nok hukommelse til at udføre denne handling."
        Case SE_ERR_PNF
            strErr = "Stien blev ikke fundet."
        Case SE_ERR_SHARE
            strErr = "A sharing violation occurred."
    End Select
   
    MsgBox strErr, vbExclamation, "Udførelsen mislykkedes."
End Sub
Avatar billede falster Ekspert
02. november 2006 - 17:26 #2
Den første fejlmeddelelse "FILE_NOT_FOUND" er specifik for én af mine anvendelser. Men den kan du bare rette.
Avatar billede hcichosz Praktikant
03. november 2006 - 19:19 #3
Hej
jeg mener at huske der er en kort version når det er en offic tybe file man skal åbne jeg kan bare ikke lige finde/huske den, er det helt forkert..
Avatar billede hcichosz Praktikant
04. november 2006 - 23:18 #4
Hej
den simple måder har jeg fundt udaf nu, det er også bare med en Shell
Eks.
Shell "explorer C:\Documents and Settings\test.xls", vbMaximizedFocus
men tak for hjælpen H.C
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester