URL: https://www.overclockers.at/coding-stuff/vb_files_oeffnen_61518/page_1 - zur Vollversion wechseln!
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 ...
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.
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) :
Also das is nur für den Fall das dies wiedermal jemand braucht. Geht mit Word, Excel, etc. fast gleich ...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
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
Is cool ... den werd ich gleichma auschecken und notieren ...
Ist ein bisschen vielseitiger als mein Codausschnitt ...
thx
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025