VB : Files Öffnen

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/vb_files_oeffnen_61518/page_1 - zur Vollversion wechseln!


Vivo schrieb am 04.01.2003 um 20:56

Hio,

hab wiederma eine kleine VB - Frage :

Wie öffne ich ein File mit dem Windows-Standardprogramm über VB ...
Nur kurz zur Verdeutlichung : Ich sage ich möchte das File 'hallo.doc' öffnen und das vb-prog öffnet das dann zb. im Word ...

tia Vivo

btw. bitte kein g0t google antorten auch wenns sauleicht is, hab grad bisschen nen stress und soll dieses Prog auch noch nebenbei machen und hab jetzt in der Eile nichts gefunden ...


JC schrieb am 04.01.2003 um 22:31

Du musst das das File, dass du über den Open-Dialog (CommonDialog-Control) auswählst, mit der API-Anweisung ShellExecute ausführen. Da kann du angeben, dass das File mit dem zugehörigen Programm zu öffnen ist. Des weiteren kannst du hier auch verschiedene Parameter übergeben.

Mehr dazu findest in der MSDN-Library. :)


Vivo schrieb am 05.01.2003 um 14:06

Danke für deinen Tip, aber da ich es nur für Office Dokumente brauche (was ich zugegebenermasen nicht dazugepostet hab) hab ich es folgendermasen gelöst (in dem Fall mit Access Projekt) :

Code:
' Access-Objekt Variable definieren
Dim acApp As Object
Dim sAccessFilename As String

sAccessFilename = App.Path + "database.mdb"


'Access-Objekt erzeugen
'Set acApp = CreateObject("Access.Application")
Set acApp = New access.Application

With acApp
  ' Access anzeigen
  .Application.Visible = True
  .Application.OpenCurrentDatabase sAccessFilename

  ' Access-Dokument laden und anzeigen
  '.Documents.Open sAccessFilename

End With
Also das is nur für den Fall das dies wiedermal jemand braucht. Geht mit Word, Excel, etc. fast gleich ...

NG Vivo


JC schrieb am 05.01.2003 um 14:17

So ist das aber recht ineffizient. What 'bout this? Der Code ist nur aus einer meiner Klassen rauskopiert, sollte sich aber so ohne weiteres in ein Modul einfügen lassen.

Code:
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_SHOWMINIMIZED = 2
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOWNOACTIVATE = 4
Private Const SW_SHOW = 5

Public Enum udeWinDisplayState
   [_Hidden_LB_WinDisplay] = 2
   Minimized = SW_SHOWMINIMIZED
   Maximized = SW_SHOWMAXIMIZED
   NormalNoActivate = SW_SHOWNOACTIVATE
   NormalAndActivate = SW_SHOW
   [_Hidden_UB_WinDisplay] = 5
End Enum

Public Sub OpenWith0wner(hWnd As Long, FileName As String, WindowsState _
  As udeWinDisplayState)
    Dim lRetVal As Long

    On Error Resume Next
    If WindowsState < [_Hidden_LB_WinDisplay] Or _
      WindowsState > [_Hidden_UB_WinDisplay] Then _
      WindowsState = NormalAndActivate
    lRetVal = ShellExecute(hWnd, "Open", FileName, 0&, 0&, WindowsState)

    'Hier ErrorHandling nicht vergessen.
End Sub


Vivo schrieb am 05.01.2003 um 14:22

Is cool ... den werd ich gleichma auschecken und notieren ...
Ist ein bisschen vielseitiger als mein Codausschnitt :D ...

thx




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025