01. september 2004 - 07:22Der er
11 kommentarer og 1 løsning
"dobbeltklik" på fil
Jeg har en variabel, der indeholder teksten "c:\fil.xls" - den kunne også indeholde noget med fil.msg eller fil.doc eler fil.txt eller fil.dwg.
Jeg vil gerne på en eller anden måde smide en kommando af sted (evt. ved Shell?) der svarer til, at der dobbeltklikkes på filen fra stifinderen. Windows skal selv finde ud af hvilket program der skal bruges til at åbne.
Har ikke vb på denne pc til at teste, så håber på aftestet svar :o)
I Modul: 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
Bruges: a = ShellExecute(hwnd, "Open", Filnavn, Filnavn, "", 1)
martin_moth du plejer da godt at kunne lave lidt API.. Men hvis du ikke har fået det til at virke, så er her måske lidt hjælp..
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 Const SW_SHOWNORMAL As Long = 1 Private Const SW_SHOWMINIMIZED As Long = 2 Private Const SW_SHOWMAXIMIZED As Long = 3
Private Sub Form_Load() Dim strFile As String Dim strPath As String
strFile = "D:\AOF-Dansk\Haveparty.doc"
strPath = Left$(strFile, InStrRev(strFile, "\")) Call ShellExecute(Me.hwnd, "Open", "WINWORD.EXE", strFile, strPath, SW_SHOWMAXIMIZED) End Sub
Ja, men problemet er, at jeg er i den sindsyge situation, at jeg sidder og koder i Textpad, og skulle gerne have det 90% på plads når jeg hopper over til VB (som er på min hjemmePC som står i en flyttekasse.... Så jeg kan ikke lige teste :o(
Se - jeg skal ikke selv angive "winword.exe", windows skal selv finde en passende app. at starte op afhængig af extention på filen...
peter.erikse > Problemet er at du angiver "Filnavn" nummer 2 som et parameter. Det kan godt være at det virker, men det vil svare til at du skræv sådan:
"program.exe program.exe" eller "c:\...\dokument.doc c:\...\dokument.doc" under kør.. ;)
martin_moth > ellers så gør du bare såadn:
Private Sub Form_Load() Dim strFile As String Dim strPath As String
strFile = "D:\AOF-Dansk\Haveparty.doc"
strPath = Left$(strFile, InStrRev(strFile, "\")) Call ShellExecute(Me.hwnd, "Open", strFile, vbNullString, strPath, SW_SHOWMAXIMIZED) End Sub
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.