2010-12-25 16 views
12

EditVisual Basic Otwórz adres URL w domyślnej przeglądarce

Dla VB 6

End Edit

Hey to wydaje się, że powinna być łatwo naprawić, a ja nie przepadam język Visual Basica, ale jak otworzyć URL w domyślnej przeglądarce, używając kodu?

Edytuj
Dlaczego ciągle pojawia się ten błąd?

Wywołanie funkcji pinvoke 'CrackleMail! WindowsApplication1.FormFinal :: ShellExecute' ma niesymetryczny stos. Jest tak prawdopodobnie dlatego, że zarządzany podpis PInvoke nie pasuje do niezarządzanego sygnatury docelowej . Sprawdź, czy konwencja wywoływania i parametry podpisu PInvoke są zgodne z docelową sygnaturą niezarządzaną.

+3

VB 6 lub VB.NET? – abatishchev

+0

Zaktualizowałem swój post, aby poprawić sygnaturę funkcji – abatishchev

+0

Więc VB5,6 lub VB.NET ?! – abatishchev

Odpowiedz

11

VB.NET:

System.Diagnostics.Process.Start("http://example.com") 

VB 6 (nie jestem pewien):

Declare Function ShellExecuteA Lib "shell32.dll" (_ 
    ByVal hWnd As IntPtr, _ 
    ByVal lpOperation As String, _ 
    ByVal lpFile As String, _ 
    ByVal lpParameters As String, _ 
    ByVal lpDirectory As String, _ 
    ByVal nShowCmd As Integer) As IntPtr 

ShellExecuteA(Me.Handle, "open", "http://example.com", "", "", 4) 
+0

Myślę, że nie musisz używać Aliasu. – Shimmy

+0

@Shimmy: Wszystko, co wiedziałem w VB5/6 na pewno zapomniałem, więc możesz edytować moją odpowiedź lub napisać własną :) – abatishchev

+0

W rzeczywistości nigdy nie znałem VB6, ale w VB.NET, AFAIK, kiedy używasz 'Declare 'w tych okolicznościach nie potrzebujesz' Alias'. – Shimmy

11

Kod w przyjętym odpowiedź dał błąd kompilacji dla mnie Dostałem poniżej kod z MSDN Use ShellExecute to launch the default Web browser

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 Sub Command1_Click() 
    Dim r As Long 
    r = ShellExecute(0, "open", "http://www.microsoft.com", 0, 0, 1) 
End Sub 
2

It i s proste! Wystarczy użyć metody Wscript createobject

CreateObject("Wscript.Shell").Run "www.example.com" 
0
Option Explicit 

'Link the kernel method that allows a process to be open/spawn 

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 Sub mnuAbrirNavegador_Click(Index As Integer) 
    OpenUrl("http://www.microsoft.com") 
End Sub 

Private Sub OpenUrl(ByVal url As String) 
    r = ShellExecute(0, "open", url, 0, 0, 1) 
End Sub 
Powiązane problemy