Hej. Jag har inget bra svar, däremot har jag en fundering: innehåller sökvägen något i stil med åäö eller liknande? Det har orsakat problem med lokala filer och firefox för mig, om det sedan är felaktiga anrop eller inte vet jag inte... Har du mellanslag i sökvägen? Oskar:Öppna lokat html-dokument med standardwebbläsaren, funkar dåligt
Jag tänkte börja skriva hjälpfiler till mina program i html-format, som alltså då startas av standardwebbläsaren från programmet. Men det vill inte fungera som det borde.
Kör jag funktionen från en knapp i mitt program, ser jag att datorn jobbar, men sedan händer ingenting. I Aktivitetshanteraren ser jag att webbläsaren är startad, men inte öppnad. Kör jag knappen en gång till, öppnas webbläsaren med rätt dokument. Detta händer varje gång, det behövs alltså två körningar för att webbläsaren ska starta med html-filen. Men om jag kör koden två gånger, öppnas två webbläsarfönster, båda med html-filen. Helt knas alltså.
Jag har förvisso bara provat med Firefox, eftersom det är min standardwebbläsare, men det spelar inte roll om det fungerar med IE, för det måste ju fortfarande fungera även med Firefox, så...
Min kod:
-------------
Dim lTemp As Long, länk As String
länk = App.Path & "\help.html"
If Dir(länk) = "" Then
MsgBox "Hjälpfilen ''help.html'' kunde inte hittas i programmappen!", 48
Exit Sub
End If
txthelp.Text = länk
'byt alla \ till / för att webbläsaren lättare ska fatta.
If InStr(txthelp.Text, "\") Then
If Len(txthelp.Text) > 0 Then
For i = 1 To Len(txthelp.Text)
Check = Asc(Mid(txthelp.Text, i, 1))
Select Case Check
Case Asc("\")
txthelp.SelStart = i - 1
txthelp.SelLength = 1
txthelp.SelText = "/"
i = i - 1
If i >= Len(txthelp.Text) Then Exit For
End Select
Next i
End If
End If 'om tecknet finns
länk = "file:///" & txthelp.Text
lTemp = ShellExecute(Me.hwnd, vbNullString, länk, vbNullString, "c:\", SW_SHOWNORMAL)
------------
Någon som helst idé? Är det bara Firefox som ballar ur för att det är en fil på hårddisken? Jag har funktioner för att starta internetsidor, och de fungerar.Sv: Öppna lokat html-dokument med standardwebbläsaren, funkar dåligt
En liten fundering; skriver du i vb 6? Vb 6 har funktionen Replace nämligen, but ut hela din långa ersättningssnurra mot:
länk = Replace(länk, "\", "/")Sv: Öppna lokat html-dokument med standardwebbläsaren, funkar dåligt
Sv:Öppna lokat html-dokument med standardwebbläsaren, funkar dåligt
Sökvägen innehåller inga konstiga tecken eller åäö. Jag har bara VB 5, så jag får bygga mina egna Split- och Replace-funktioner.
Göran:
Jag har provat både utan och med mellanslag i sökvägen. Det är samma problem.
Jag löste det temporärt med följande kod (men jag tycker det ser fult ut) :
-----
Dim sTemp As String, sPath As String
sTemp = App.Path & "\help.html"
sPath = String$(260, Chr(0))
'sökväg till associerat program:
Call FindExecutable(sTemp, vbNullString, sPath)
txthelp = sPath
'starta programmet tillsammans med filen:
txthelp = txthelp & " " & lblcitat & sTemp & lblcitat
aaa = Shell(txthelp, vbNormalFocus)
-----
...och med den koden spelar det ingen roll om jag byter ut \ till /, eller har mellanslag i sökvägen. Den här koden funkar. Undrar varför.