VB : Files Öffnen
Vivo 04.01.2003 - 20:56 586 4
Vivo
Dreamworker
|
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
VereinsmitgliedDisruptor
|
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
Dreamworker
|
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) : ' 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
VereinsmitgliedDisruptor
|
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. 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
Bearbeitet von JC am 05.01.2003, 14:55 (spelling)
|
Vivo
Dreamworker
|
Is cool ... den werd ich gleichma auschecken und notieren ... Ist ein bisschen vielseitiger als mein Codausschnitt ![:D](/images/smilies/biggrin.gif) ... thx
|